[ovs-dev] [PATCH] [datapath-windows] BSOD when no event queue found
Alin Serdean
aserdean at cloudbasesolutions.com
Thu Oct 23 23:38:21 UTC 2014
kd> ??instance
struct _OVS_OPEN_INSTANCE * 0xffffe000`037f2880
+0x000 cookie : 1
+0x008 fileObject : 0xffffe000`02c59f20 _FILE_OBJECT
+0x010 eventQueue : (null)
+0x018 packetQueue : 0xffffe000`02d50100 _OVS_USER_PACKET_QUEUE
+0x020 pid : 2
+0x024 inUse : 0n1
+0x028 dumpState : <unnamed-tag>
+0x038 pidLink : _LIST_ENTRY [ 0xffffe000`03ad83f0 - 0xffffe000`03ad83f0 ]
kd> k
Child-SP RetAddr Call Site
ffffd000`2876eb18 fffff801`f364b7c6 nt!DbgBreakPointWithStatus
ffffd000`2876eb20 fffff801`f364b0d7 nt!KiBugCheckDebugBreak+0x12
ffffd000`2876eb80 fffff801`f35c21a4 nt!KeBugCheck2+0x8ab
ffffd000`2876f290 fffff801`f35cdbe9 nt!KeBugCheckEx+0x104
ffffd000`2876f2d0 fffff801`f35cc43a nt!KiBugCheckDispatch+0x69
ffffd000`2876f410 fffff800`02626666 nt!KiPageFault+0x23a
ffffd000`2876f5a0 fffff800`026318d7 OVSExt!OvsWaitEventIoctl+0x116 [c:\work\ovs\datapath-windows\ovsext\event.c @ 472]
ffffd000`2876f610 fffff800`026339b4 OVSExt!OvsPendEventCmdHandler+0x57 [c:\work\ovs\datapath-windows\ovsext\datapath.c @ 1056]
ffffd000`2876f660 fffff800`0264d9c5 OVSExt!InvokeNetlinkCmdHandler+0xf4 [c:\work\ovs\datapath-windows\ovsext\datapath.c @ 938]
ffffd000`2876f6b0 fffff800`006f1c18 OVSExt!OvsDeviceControl+0x855 [c:\work\ovs\datapath-windows\ovsext\datapath.c @ 853]
ffffd000`2876f840 fffff801`f383c395 NDIS!ndisDummyIrpHandler+0x88
ffffd000`2876f870 fffff801`f383cd2a nt!IopXxxControlFile+0x845
ffffd000`2876fa20 fffff801`f35cd8b3 nt!NtDeviceIoControlFile+0x56
ffffd000`2876fa90 00000000`775c2772 nt!KiSystemServiceCopyEnd+0x13
00000000`010feef8 00000000`775c2371 wow64cpu!CpupSyscallStub+0x2
00000000`010fef00 00000000`7765323a wow64cpu!DeviceIoctlFileFault+0x31
00000000`010fefb0 00000000`7765317e wow64!RunCpuSimulation+0xa
00000000`010ff000 00007ff8`f1076bd0 wow64!Wow64LdrpInitialize+0x172
00000000`010ff540 00007ff8`f1076aa6 ntdll!_LdrpInitialize+0xd8
00000000`010ff5b0 00000000`00000000 ntdll!LdrInitializeThunk+0xe
kd> ??poll
struct _OVS_EVENT_POLL * 0xffffd000`2876f640
+0x000 cookie : 0x3a9ae28
+0x004 dpNo : 0
SYMBOL_STACK_INDEX: 6
SYMBOL_NAME: OVSExt!OvsWaitEventIoctl+116
FOLLOWUP_NAME: MachineOwner
MODULE_NAME: OVSExt
IMAGE_NAME: OVSExt.sys
DEBUG_FLR_IMAGE_TIMESTAMP: 54498bc5
BUCKET_ID_FUNC_OFFSET: 116
FAILURE_BUCKET_ID: AV_OVSExt!OvsWaitEventIoctl
BUCKET_ID: AV_OVSExt!OvsWaitEventIoctl
ANALYSIS_SOURCE: KM
FAILURE_ID_HASH_STRING: km:av_ovsext!ovswaiteventioctl
FAILURE_ID_HASH: {07550bfb-c3b5-0412-b95d-f89a5c4671a9}
Signed-off-by: Alin Gabriel Serdean <aserdean at cloudbasesolutions.com>
---
datapath-windows/ovsext/Event.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/datapath-windows/ovsext/Event.c b/datapath-windows/ovsext/Event.c
index 656f719..d38bc70 100644
--- a/datapath-windows/ovsext/Event.c
+++ b/datapath-windows/ovsext/Event.c
@@ -469,6 +469,11 @@ OvsWaitEventIoctl(PIRP irp,
}
queue = (POVS_EVENT_QUEUE)instance->eventQueue;
+ if (queue == NULL) {
+ OvsReleaseEventQueueLock();
+ OVS_LOG_TRACE("Exit: Event queue does not exist");
+ return STATUS_INVALID_PARAMETER;
+ }
if (queue->pendingIrp) {
OvsReleaseEventQueueLock();
OVS_LOG_TRACE("Exit: Event queue already in pending state");
--
1.9.4.msysgit.1
More information about the dev
mailing list