mirror of
https://github.com/reactos/reactos.git
synced 2024-09-27 21:16:34 +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. |
||
---|---|---|
.. | ||
amd64 | ||
arm | ||
i386 | ||
apc.c | ||
balmgr.c | ||
bug.c | ||
clock.c | ||
config.c | ||
devqueue.c | ||
dpc.c | ||
eventobj.c | ||
except.c | ||
freeze.c | ||
gate.c | ||
gmutex.c | ||
ipi.c | ||
krnlinit.c | ||
mutex.c | ||
procobj.c | ||
profobj.c | ||
queue.c | ||
semphobj.c | ||
spinlock.c | ||
thrdobj.c | ||
thrdschd.c | ||
time.c | ||
timerobj.c | ||
wait.c |