mirror of
https://github.com/reactos/reactos.git
synced 2024-12-29 10:35:28 +00:00
f72d6dd4c5
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. |
||
---|---|---|
.. | ||
boot.S | ||
context.c | ||
cpu.c | ||
ctxswitch.S | ||
except.c | ||
interrupt.c | ||
ipi.c | ||
irql.c | ||
kiinit.c | ||
krnlinit.c | ||
mproc.c | ||
spinlock.c | ||
stubs.c | ||
thrdini.c | ||
trap.S | ||
traphandler.c | ||
usercall.c | ||
usercall_asm.S | ||
zeropage.S |