reactos/ntoskrnl/ke/amd64
Oleg Dubinskiy f72d6dd4c5
[NTOS:KE] Set IRQL to SYNCH_LEVEL when exiting from idle after the thread is ready for execution (#6386)
CORE-1697

Raise IRQL to SYNCH_LEVEL when exiting from the idle thread in the
idle loop, in case it is scheduled for execution. Then restore it
back to DISPATCH_LEVEL, after this is done.
This behaviour is a bit similar to the way it's done on x64.

This IRQL raise is necessary only in SMP builds.
Calls are placed in CONFIG_SMP ifdef: this avoids unnecessary IRQL
changes on UP, since SYNCH_LEVEL and DISPATCH_LEVEL are identical
there, unlike in MP, where SYNCH_LEVEL is IPI_LEVEL - 2 actually.

This prevents bugcheck DRIVER_IRQL_NOT_LESS_OR_EQUAL when booting
SMP x86 ReactOS, in KiTimerExpiration when calling it 2nd time.
The BSOD happened due to IRQL levels mismatch.
2024-01-20 15:55:20 +01:00
..
boot.S
context.c
cpu.c [NTOS:KE/x64] Implement detection of more KF_* feature flags 2023-10-03 19:45:44 +03:00
ctxswitch.S [NTOS] Fix unwinding through KiThreadStartup 2022-11-24 21:17:58 +02:00
except.c [NTOS] Fix a bug in KiPrepareUserDebugData 2022-11-24 21:17:58 +02:00
interrupt.c
ipi.c [NTOS:KE/x64] Implement initial IPI code 2023-12-18 23:16:39 +02:00
irql.c
kiinit.c [NTOS:KE/x64] Factor out KiIntializeProcessorBootStructures 2023-12-08 20:16:51 +02:00
krnlinit.c [NTOS:KE] Fix initialization of node block for application processors 2024-01-18 22:41:46 +01:00
mproc.c [NTOS:KE][HALX86] Implement AP startup code (#5879) 2023-11-19 15:51:33 -08:00
spinlock.c
stubs.c [NTOS:KE] Set IRQL to SYNCH_LEVEL when exiting from idle after the thread is ready for execution (#6386) 2024-01-20 15:55:20 +01:00
thrdini.c [NTOSKRNL/x64] Fix bug in KiInitializeContextThread 2023-09-07 01:16:14 +03:00
trap.S [NTOSKRNL/x64] Fix a bug in KeSwitchKernelStack 2023-09-17 10:37:50 +03:00
traphandler.c [NTOS:KE/x64] Add back a stubs.c file 2023-12-08 19:38:59 +02:00
usercall.c
usercall_asm.S
zeropage.S