[ovs-dev] [PATCH] datapath-windows: Proper cleanup in case of driver init failure

Nithin Raju nithin at vmware.com
Tue Sep 1 14:40:52 UTC 2015


Sorin,
Unless I’m missing something here, what is the new cleanup added in this patch? It seems more of code refactoring. Is that right?

-- Nithin

> On Sep 1, 2015, at 5:16 AM, Sorin Vinturis <svinturis at cloudbasesolutions.com> wrote:
> 
> Signed-off-by: Sorin Vinturis <svinturis at cloudbasesolutions.com>
> ---
> datapath-windows/ovsext/Driver.c | 20 ++++++++++++++------
> 1 file changed, 14 insertions(+), 6 deletions(-)
> 
> diff --git a/datapath-windows/ovsext/Driver.c b/datapath-windows/ovsext/Driver.c
> index 13fcde2..853886e 100644
> --- a/datapath-windows/ovsext/Driver.c
> +++ b/datapath-windows/ovsext/Driver.c
> @@ -139,18 +139,26 @@ DriverEntry(PDRIVER_OBJECT driverObject,
>     driverObject->DriverUnload = OvsExtUnload;
> 
>     status = NdisFRegisterFilterDriver(driverObject,
> -                                       (NDIS_HANDLE) gOvsExtDriverObject,
> -                                       &driverChars, &gOvsExtDriverHandle);
> +                                       (NDIS_HANDLE)gOvsExtDriverObject,
> +                                       &driverChars,
> +                                       &gOvsExtDriverHandle);
>     if (status != NDIS_STATUS_SUCCESS) {
> -        return status;
> +        goto cleanup;
>     }
> 
> -    /* Create the communication channel for usersapce. */
> +    /* Create the communication channel for userspace. */
>     status = OvsCreateDeviceObject(gOvsExtDriverHandle);
>     if (status != NDIS_STATUS_SUCCESS) {
> +        goto cleanup;
> +    }
> +
> +cleanup:
> +    if (status != NDIS_STATUS_SUCCESS){
>         OvsCleanup();
> -        NdisFDeregisterFilterDriver(gOvsExtDriverHandle);
> -        gOvsExtDriverHandle = NULL;
> +        if (gOvsExtDriverHandle) {
> +            NdisFDeregisterFilterDriver(gOvsExtDriverHandle);
> +            gOvsExtDriverHandle = NULL;
> +        }
>     }
> 
>     return status;
> -- 
> 1.9.0.msysgit.0
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> https://urldefense.proofpoint.com/v2/url?u=http-3A__openvswitch.org_mailman_listinfo_dev&d=BQIGaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=pNHQcdr7B40b4h6Yb7FIedI1dnBsxdDuTLBYD3JqV80&m=UwM9RbSBfs6QT8UYqjkZr3xJUSmm5djIml87xTIB1WI&s=tQaG105CKQjdDBWZXvRzD9eqd2rsnJDji_xikpq6S7A&e= 



More information about the dev mailing list