VServer 1.9.2 (patch-2.6.8.1-vs1.9.2.diff)
[linux-2.6.git] / drivers / net / pcmcia / nmclan_cs.c
index bcf284b..947dad4 100644 (file)
@@ -551,6 +551,9 @@ static void nmclan_detach(dev_link_t *link)
     if (*linkp == NULL)
        return;
 
+    if (link->dev)
+       unregister_netdev(dev);
+
     if (link->state & DEV_CONFIG)
        nmclan_release(link);
 
@@ -559,8 +562,6 @@ static void nmclan_detach(dev_link_t *link)
 
     /* Unlink device structure, free bits */
     *linkp = link->next;
-    if (link->dev)
-       unregister_netdev(dev);
     free_netdev(dev);
 } /* nmclan_detach */
 
@@ -834,10 +835,8 @@ static int nmclan_event(event_t event, int priority,
   switch (event) {
     case CS_EVENT_CARD_REMOVAL:
       link->state &= ~DEV_PRESENT;
-      if (link->state & DEV_CONFIG) {
+      if (link->state & DEV_CONFIG)
        netif_device_detach(dev);
-       nmclan_release(link);
-      }
       break;
     case CS_EVENT_CARD_INSERTION:
       link->state |= DEV_PRESENT | DEV_CONFIG_PENDING;
@@ -1473,7 +1472,7 @@ updateCRC
        Modified from Am79C90 data sheet.
 ---------------------------------------------------------------------------- */
 
-#if BROKEN_MULTICAST
+#ifdef BROKEN_MULTICAST
 
 static void updateCRC(int *CRC, int bit)
 {