All conntrack entries should be removed before unloading/disabling the driver.
This patch forces a flush of all the entries during the cleanup routine. The bug was found using driver verifier. Signed-off-by: Alin Gabriel Serdean <[email protected]> --- datapath-windows/ovsext/Conntrack.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/datapath-windows/ovsext/Conntrack.c b/datapath-windows/ovsext/Conntrack.c index 56a7cbc..f482783 100644 --- a/datapath-windows/ovsext/Conntrack.c +++ b/datapath-windows/ovsext/Conntrack.c @@ -42,6 +42,8 @@ static PNDIS_RW_LOCK_EX ovsConntrackLockObj; extern POVS_SWITCH_CONTEXT gOvsSwitchContext; static UINT64 ctTotalEntries; +static __inline NDIS_STATUS OvsCtFlush(UINT16 zone); + /* *---------------------------------------------------------------------------- * OvsInitConntrack @@ -117,6 +119,9 @@ OvsCleanupConntrack(VOID) KernelMode, FALSE, NULL); ObDereferenceObject(ctThreadCtx.threadObject); + /* Force flush all entries before removing */ + OvsCtFlush(0); + if (ovsConntrackTable) { OvsFreeMemoryWithTag(ovsConntrackTable, OVS_CT_POOL_TAG); ovsConntrackTable = NULL; -- 2.10.2.windows.1 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
