Staging: hv: Get rid of the indirection in invoking rndis_filter_device_remove()
authorK. Y. Srinivasan <kys@microsoft.com>
Tue, 10 May 2011 14:55:01 +0000 (07:55 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 11 May 2011 20:48:48 +0000 (13:48 -0700)
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
Signed-off-by: Abhishek Kane <v-abkane@microsoft.com>
Signed-off-by: Hank Janssen <hjanssen@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/hv/netvsc_drv.c

index d962308926f042bf8aa3e21df070135e8212b177..3fc39cdafed64776221f3e94fb5d9fd7a5df8bcf 100644 (file)
@@ -342,8 +342,6 @@ static void netvsc_send_garp(struct work_struct *w)
 
 static int netvsc_probe(struct hv_device *dev)
 {
-       struct netvsc_driver *net_drv_obj =
-               drv_to_netvscdrv(dev->device.driver);
        struct net_device *net = NULL;
        struct net_device_context *net_device_ctx;
        struct netvsc_device_info device_info;
@@ -398,7 +396,7 @@ static int netvsc_probe(struct hv_device *dev)
        ret = register_netdev(net);
        if (ret != 0) {
                /* Remove the device and release the resource */
-               net_drv_obj->base.dev_rm(dev);
+               rndis_filter_device_remove(dev);
                free_netdev(net);
        }
 
@@ -407,8 +405,6 @@ static int netvsc_probe(struct hv_device *dev)
 
 static int netvsc_remove(struct hv_device *dev)
 {
-       struct netvsc_driver *net_drv_obj =
-               drv_to_netvscdrv(dev->device.driver);
        struct net_device *net = dev_get_drvdata(&dev->device);
        int ret;
 
@@ -417,9 +413,6 @@ static int netvsc_remove(struct hv_device *dev)
                return 0;
        }
 
-       if (!net_drv_obj->base.dev_rm)
-               return -1;
-
        /* Stop outbound asap */
        netif_stop_queue(net);
        /* netif_carrier_off(net); */
@@ -430,7 +423,7 @@ static int netvsc_remove(struct hv_device *dev)
         * Call to the vsc driver to let it know that the device is being
         * removed
         */
-       ret = net_drv_obj->base.dev_rm(dev);
+       ret = rndis_filter_device_remove(dev);
        if (ret != 0) {
                /* TODO: */
                netdev_err(net, "unable to remove vsc device (ret %d)\n", ret);