summaryrefslogtreecommitdiff
path: root/datapath-windows/ovsext/IpHelper.c
diff options
context:
space:
mode:
Diffstat (limited to 'datapath-windows/ovsext/IpHelper.c')
-rw-r--r--datapath-windows/ovsext/IpHelper.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/datapath-windows/ovsext/IpHelper.c b/datapath-windows/ovsext/IpHelper.c
index e995e56ae..6bbd096c5 100644
--- a/datapath-windows/ovsext/IpHelper.c
+++ b/datapath-windows/ovsext/IpHelper.c
@@ -1989,6 +1989,12 @@ OvsInitIpHelper(NDIS_HANDLE ndisFilterHandle)
HANDLE threadHandle;
UINT32 i;
+ status = ExInitializeResourceLite(&ovsInstanceListLock);
+ if (status != NDIS_STATUS_SUCCESS) {
+ return status;
+ }
+ InitializeListHead(&ovsInstanceList);
+
ovsFwdHashTable = (PLIST_ENTRY)OvsAllocateMemoryWithTag(
sizeof(LIST_ENTRY) * OVS_FWD_HASH_TABLE_SIZE, OVS_IPHELPER_POOL_TAG);
@@ -2009,9 +2015,6 @@ OvsInitIpHelper(NDIS_HANDLE ndisFilterHandle)
ipRouteNotificationHandle = NULL;
unicastIPNotificationHandle = NULL;
- ExInitializeResourceLite(&ovsInstanceListLock);
- InitializeListHead(&ovsInstanceList);
-
if (ovsFwdHashTable == NULL ||
ovsRouteHashTable == NULL ||
ovsNeighHashTable == NULL ||
@@ -2074,7 +2077,7 @@ init_cleanup:
ExDeleteResourceLite(&ovsInstanceListLock);
NdisFreeSpinLock(&ovsIpHelperLock);
}
- return STATUS_SUCCESS;
+ return status;
}