projects
/
cascardo
/
ovs.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
e1799eb
)
datapath-windows: Avoid BSOD when no event queue found.
author
Alin Serdean
<aserdean@cloudbasesolutions.com>
Thu, 23 Oct 2014 23:38:21 +0000
(23:38 +0000)
committer
Ben Pfaff
<blp@nicira.com>
Fri, 24 Oct 2014 15:58:57 +0000
(08:58 -0700)
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@cloudbasesolutions.com>
Acked-by: Eitan Eliahu <eliahue@vmware.com>
Acked-by: Sorin Vinturis <svinturis@cloudbasesolutions.com>
Acked-by: Nithin Raju <nithin@vmware.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
datapath-windows/ovsext/Event.c
patch
|
blob
|
history
diff --git
a/datapath-windows/ovsext/Event.c
b/datapath-windows/ovsext/Event.c
index
656f719
..
d38bc70
100644
(file)
--- 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");