The instance should be removed from pid-hash when vswitchd.exe terminates so the driver won't access it during packet miss (causing BSOD)
Signed-off-by: Eitan Eliahu <[email protected]> Acked-by: Sorin Vinturis <[email protected]> Acked-by: Nithin Raju <[email protected]> --- datapath-windows/ovsext/User.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/datapath-windows/ovsext/User.c b/datapath-windows/ovsext/User.c index 501dc12..fc27f7d 100644 --- a/datapath-windows/ovsext/User.c +++ b/datapath-windows/ovsext/User.c @@ -98,6 +98,7 @@ OvsCleanupPacketQueue(POVS_OPEN_INSTANCE instance) LIST_ENTRY tmp; PIRP irp = NULL; + ASSERT(instance); InitializeListHead(&tmp); queue = (POVS_USER_PACKET_QUEUE)instance->packetQueue; if (queue) { @@ -139,6 +140,11 @@ OvsCleanupPacketQueue(POVS_OPEN_INSTANCE instance) if (queue) { OvsFreeMemory(queue); } + + /* Remove the instance from pidHashArray */ + OvsAcquirePidHashLock(); + OvsDelPidInstance(gOvsSwitchContext, instance->pid); + OvsReleasePidHashLock(); } NTSTATUS -- 1.9.4.msysgit.0 _______________________________________________ dev mailing list [email protected] http://openvswitch.org/mailman/listinfo/dev
