[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH] Only call EvtchnFlush on valid Cpus
The Evtchn processor array is created using KeQueryMaximumProcessorCountEx, which can include processors that do not get initialized. Skip cleanup and flushing uninitialized event channels Signed-off-by: Owen Smith <owen.smith@xxxxxxxxx> --- src/xenbus/evtchn.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/xenbus/evtchn.c b/src/xenbus/evtchn.c index 2e63edb..ec4ac28 100644 --- a/src/xenbus/evtchn.c +++ b/src/xenbus/evtchn.c @@ -1752,10 +1752,16 @@ EvtchnRelease( for (Cpu = 0; Cpu < Context->ProcessorCount; Cpu++) { PXENBUS_EVTCHN_PROCESSOR Processor; + unsigned int vcpu_id; + NTSTATUS status; ASSERT(Context->Processor != NULL); Processor = &Context->Processor[Cpu]; + status = SystemProcessorVcpuId(Cpu, &vcpu_id); + if (!NT_SUCCESS(status)) + continue; + EvtchnFlush(Context, Cpu); (VOID) KeRemoveQueueDpc(&Processor->Dpc); -- 2.39.0.windows.1
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |