mirror of
https://github.com/reactos/reactos.git
synced 2024-07-06 04:35:07 +00:00
![]() 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 | ||
cpu.c | ||
ctxswtch.s | ||
exp.c | ||
interrupt.c | ||
ke_i.h | ||
kiinit.c | ||
stubs_asm.s | ||
thrdini.c | ||
trap.s | ||
trapc.c | ||
usercall.c |