pcmcia: dev_node removal (drivers with unregister_netdev check)
[deliverable/linux.git] / drivers / net / wireless / wl3501_cs.c
index c43f05b98c4e2b97711fb3a50d70bc5582c11b7b..5e5d24c1ce2b60f9ec6eb31ea7290fa70d725c4e 100644 (file)
@@ -1451,6 +1451,8 @@ static void wl3501_detach(struct pcmcia_device *link)
        netif_device_detach(dev);
        wl3501_release(link);
 
+       unregister_netdev(dev);
+
        if (link->priv)
                free_netdev(link->priv);
 
@@ -1977,20 +1979,15 @@ static int wl3501_config(struct pcmcia_device *link)
        }
 
        this = netdev_priv(dev);
-       /*
-        * At this point, the dev_node_t structure(s) should be initialized and
-        * arranged in a linked list at link->dev_node.
-        */
-       link->dev_node = &this->node;
 
        this->base_addr = dev->base_addr;
 
        if (!wl3501_get_flash_mac_addr(this)) {
                printk(KERN_WARNING "%s: Cant read MAC addr in flash ROM?\n",
                       dev->name);
+               unregister_netdev(dev);
                goto failed;
        }
-       strcpy(this->node.dev_name, dev->name);
 
        for (i = 0; i < 6; i++)
                dev->dev_addr[i] = ((char *)&this->mac_addr)[i];
@@ -2034,12 +2031,6 @@ failed:
  */
 static void wl3501_release(struct pcmcia_device *link)
 {
-       struct net_device *dev = link->priv;
-
-       /* Unlink the device chain */
-       if (link->dev_node)
-               unregister_netdev(dev);
-
        pcmcia_disable_device(link);
 }
 
This page took 0.024734 seconds and 5 git commands to generate.