The function is called at > DISPATCH_LEVEL so it cannot wait, even with a
zero timeout. Having this call there causes the system to hang.
Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
Reported-by: Fabio Fantoni <fabio.fantoni@m2r.biz>
{
PSYSTEM_CONTEXT Context = &SystemContext;
PSYSTEM_CPU Cpu = Context->Cpu[Index];
- LARGE_INTEGER Timeout;
- NTSTATUS status;
- ASSERT3U(Index, <, MAXIMUM_PROCESSORS);
-
- Timeout.QuadPart = 0;
-
- // Make sure the SystemCpuInformation() has run
- status = KeWaitForSingleObject(&Cpu->Event,
- Executive,
- KernelMode,
- FALSE,
- &Timeout);
- ASSERT(NT_SUCCESS(status) && status != STATUS_TIMEOUT);
+ ASSERT(Cpu != NULL);
return Cpu->ProcessorID;
}