Signed-off-by: Ankur Sharma <ankursha...@vmware.com>
---
 datapath-windows/ovsext/User.c | 6 ++++--
 datapath-windows/ovsext/User.h | 6 +++---
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/datapath-windows/ovsext/User.c b/datapath-windows/ovsext/User.c
index 42b251f..cce99a5 100644
--- a/datapath-windows/ovsext/User.c
+++ b/datapath-windows/ovsext/User.c
@@ -141,6 +141,7 @@ OvsSubscribeDpIoctl(PVOID instanceP,
         OvsReleaseCtrlLock();
         return STATUS_INVALID_PARAMETER;
     }
+    OvsReleaseCtrlLock();
 
     if (instance->packetQueue && !join) {
         /* unsubscribe */
@@ -171,7 +172,6 @@ OvsSubscribeDpIoctl(PVOID instanceP,
         OvsAddPidInstance(gOvsSwitchContext, pid, instance);
         OvsReleaseCtrlLock();
 
-
     } else {
         /* user mode should call only once for subscribe */
         return STATUS_INVALID_PARAMETER;
@@ -1009,7 +1009,9 @@ OvsCreateQueueNlPacket(PVOID userData,
         return NULL;
     }
 
-    if (!OvsGetPid(vport, nb, &pid)) {
+    OvsGetPid(vport, nb, &pid);
+
+    if (!pid) {
         /*
          * There is no userspace queue created yet, so there is no point for
          * creating a new packet to be queued.
diff --git a/datapath-windows/ovsext/User.h b/datapath-windows/ovsext/User.h
index 47fb10b..139b0ca 100644
--- a/datapath-windows/ovsext/User.h
+++ b/datapath-windows/ovsext/User.h
@@ -1,4 +1,4 @@
-/*
+ /*
  * Copyright (c) 2014 VMware, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -49,6 +49,7 @@ typedef struct _OVS_USER_PACKET_QUEUE {
 } OVS_USER_PACKET_QUEUE, *POVS_USER_PACKET_QUEUE;
 
 typedef struct _OVS_PACKET_QUEUE_ELEM {
+    UINT32  upcallPid;
     LIST_ENTRY link;
     OVS_PACKET_HDR_INFO hdrInfo;
     OVS_PACKET_INFO packet;
@@ -78,8 +79,7 @@ POVS_PACKET_QUEUE_ELEM OvsCreateQueueNlPacket(PVOID userData,
                                               BOOLEAN isRecv,
                                               POVS_PACKET_HDR_INFO hdrInfo);
 
-VOID OvsQueuePackets(UINT32 queueId, PLIST_ENTRY packetList,
-                     UINT32 numElems);
+VOID OvsQueuePackets(PLIST_ENTRY packetList, UINT32 numElems);
 NTSTATUS OvsCreateAndAddPackets(PVOID userData,
                                 UINT32 userDataLen,
                                 UINT32 cmd,
-- 
1.9.1

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to