On Fri, Jun 19, 2015 at 9:33 AM, Sorin Vinturis
<svintu...@cloudbasesolutions.com> wrote:
> When the extension is initialized the global reference count, used for
> preventing early deallocation of the switch extension, is set to 1.
> Enabling and then disabling the extension leaves the latter reference
> count to zero. Because of this the switch context fails to be acquired,
> i.e OvsAcquireSwitchContext returns zero, and that affects driver's
> communication to the userspace.
>
> The solution is to initialize the reference count each time the extension
> is enabled.
>
> Signed-off-by: Sorin Vinturis <svintu...@cloudbasesolutions.com>
> Reported-by: Nithin Raju <nit...@vmware.com>
> Reported-at: https://github.com/openvswitch/ovs-issues/issues/86
> Acked-by: Nithin Raju <nit...@vmware.com>
Applied.
> ---
>  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 99a306d..f176fa0 100644
> --- a/datapath-windows/ovsext/Switch.c
> +++ b/datapath-windows/ovsext/Switch.c
> @@ -46,7 +46,7 @@ extern PDEVICE_OBJECT gOvsDeviceObject;
>   * Reference count used to prevent premature deallocation of the global 
> switch
>   * context structure, gOvsSwitchContext.
>   */
> -volatile LONG      gOvsSwitchContextRefCount = 1;
> +volatile LONG      gOvsSwitchContextRefCount = 0;
>
>  static NDIS_STATUS OvsCreateSwitch(NDIS_HANDLE ndisFilterHandle,
>                                     POVS_SWITCH_CONTEXT *switchContextOut);
> @@ -137,6 +137,7 @@ OvsExtAttach(NDIS_HANDLE ndisFilterHandle,
>      switchContext->controlFlowState = OvsSwitchAttached;
>      switchContext->dataFlowState = OvsSwitchPaused;
>
> +    gOvsSwitchContextRefCount = 1;
>      gOvsSwitchContext = switchContext;
>      KeMemoryBarrier();
>
> --
> 1.9.0.msysgit.0
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to