OK, great, I applied this to master.

On Fri, Jun 12, 2015 at 1:54 PM, Alin Serdean
<[email protected]> wrote:
> Acked-by: Alin Gabriel Serdean <[email protected]>
>
>
>
> -----Mesaj original-----
> De la: dev [mailto:[email protected]] În numele Sorin Vinturis
> Trimis: Thursday, May 28, 2015 11:31 PM
> Către: [email protected]
> Subiect: [ovs-dev] [PATCH] datapath-windows: BSOD when disabling the extension
>
> When the filter detach routine is called while there are packets still in 
> processing, the OvsUninitSwitchContext function call will decrement the 
> switch context reference count without releasing the switch context 
> structure. This behaviour is correct and expected, but the BSOD is caused in 
> this case because the gOvsSwitchContext variable is set to NULL, which is 
> wrong.
>
> The gOvsSwitchContext global variable must be set to NULL only when the 
> switch context structure is actually released.
>
> Signed-off-by: Sorin Vinturis <[email protected]>
> Reported-by: Sorin Vinturis <[email protected]>
> Reported-at: https://github.com/openvswitch/ovs-issues/issues/80
> ---
>  datapath-windows/ovsext/Switch.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/datapath-windows/ovsext/Switch.c 
> b/datapath-windows/ovsext/Switch.c
> index f877854..99a306d 100644
> --- a/datapath-windows/ovsext/Switch.c
> +++ b/datapath-windows/ovsext/Switch.c
> @@ -201,6 +201,7 @@ OvsCreateSwitch(NDIS_HANDLE ndisFilterHandle,
>      status = OvsInitSwitchContext(switchContext);
>      if (status != NDIS_STATUS_SUCCESS) {
>          OvsFreeMemoryWithTag(switchContext, OVS_SWITCH_POOL_TAG);
> +        switchContext = NULL;
>          goto create_switch_done;
>      }
>
> @@ -240,7 +241,6 @@ OvsExtDetach(NDIS_HANDLE filterModuleContext)
>      }
>      OvsDeleteSwitch(switchContext);
>      OvsCleanupIpHelper();
> -    gOvsSwitchContext = NULL;
>      /* This completes the cleanup, and a new attach can be handled now. */
>
>      OVS_LOG_TRACE("Exit: OvsDetach Successfully"); @@ -495,6 +495,7 @@ 
> OvsReleaseSwitchContext(POVS_SWITCH_CONTEXT switchContext)
>
>      if (ref == 1) {
>          OvsDeleteSwitchContext(switchContext);
> +        gOvsSwitchContext = NULL;
>      }
>  }
>
> --
> 1.9.0.msysgit.0
> _______________________________________________
> dev mailing list
> [email protected]
> http://openvswitch.org/mailman/listinfo/dev



-- 
"I don't normally do acked-by's.  I think it's my way of avoiding
getting blamed when it all blows up."               Andrew Morton
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev

Reply via email to