staging: wilc1000: set hif_drv before it is used
authorGlen Lee <glen.lee@atmel.com>
Mon, 21 Dec 2015 05:18:49 +0000 (14:18 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 21 Dec 2015 21:21:09 +0000 (13:21 -0800)
We are using hif_drv of vif, so it needs to be set before it is used.
Set hif_drv to vif->hifdrv soon after it is allocated.

Signed-off-by: Glen Lee <glen.lee@atmel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/wilc1000/host_interface.c
drivers/staging/wilc1000/linux_wlan.c

index d6b23cdc745c1f33112af8bd4e809cb567c62ed7..8c7752034032b804e267fb48f4513740e476eb63 100644 (file)
@@ -3782,6 +3782,7 @@ s32 wilc_init(struct net_device *dev, struct host_if_drv **hif_drv_handler)
        struct host_if_drv *hif_drv;
        struct wilc_vif *vif;
        struct wilc *wilc;
+       int i;
 
        vif = netdev_priv(dev);
        wilc = vif->wilc;
@@ -3798,6 +3799,11 @@ s32 wilc_init(struct net_device *dev, struct host_if_drv **hif_drv_handler)
                goto _fail_;
        }
        *hif_drv_handler = hif_drv;
+       for (i = 0; i < wilc->vif_num; i++)
+               if (dev == wilc->vif[i]->ndev) {
+                       wilc->vif[i]->hif_drv = hif_drv;
+                       break;
+               }
 
        wilc_optaining_ip = false;
 
index a50e3ffcbb8d523875192b4b26a325c246d433b2..54fe9d74b78082b57988d24fbf68e325fab67095 100644 (file)
@@ -1036,7 +1036,6 @@ int wilc_mac_open(struct net_device *ndev)
        for (i = 0; i < wl->vif_num; i++) {
                if (ndev == wl->vif[i]->ndev) {
                        memcpy(wl->vif[i]->src_addr, mac_add, ETH_ALEN);
-                       wl->vif[i]->hif_drv = priv->hWILCWFIDrv;
                        break;
                }
        }