|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [win-pv-devel] [PATCH] Fix an ASSERT failure and BugCheck on XENBUS unload
The Prcoessor array pointer in the EVTCHN code is not being NULLed, leading
to an ASSERT faiure. There is also a race in zero-ing out the per-processor
DPCs and them being present on kernel queues, which leads to a BugCheck.
This patch fixes both issues.
Signed-off-by: Paul Durrant <paul.durrant@xxxxxxxxxx>
---
src/xenbus/evtchn.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/xenbus/evtchn.c b/src/xenbus/evtchn.c
index 23eb189..a5a3caf 100644
--- a/src/xenbus/evtchn.c
+++ b/src/xenbus/evtchn.c
@@ -1374,6 +1374,7 @@ EvtchnRelease(
EvtchnFlush(Context, Index);
+ (VOID) KeRemoveQueueDpc(&Processor->Dpc);
RtlZeroMemory(&Processor->Dpc, sizeof (KDPC));
RtlZeroMemory(&Processor->PendingList, sizeof (LIST_ENTRY));
@@ -1383,6 +1384,7 @@ EvtchnRelease(
ASSERT(IsZeroMemory(Context->Processor, sizeof (XENBUS_EVTCHN_PROCESSOR) *
Context->ProcessorCount));
__EvtchnFree(Context->Processor);
+ Context->Processor = NULL;
Context->ProcessorCount = 0;
FdoFreeInterrupt(Fdo, Context->Interrupt);
--
2.1.1
_______________________________________________
win-pv-devel mailing list
win-pv-devel@xxxxxxxxxxxxxxxxxxxx
http://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |