X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fnet%2Fpcmcia%2Fpcnet_cs.c;h=2db4baabe9c916f5b47e5d5e447954a591410270;hb=9bf4aaab3e101692164d49b7ca357651eb691cb6;hp=b53f5fcf5d12caf44e8594e456de20d25a18f0db;hpb=db216c3d5e4c040e557a50f8f5d35d5c415e8c1c;p=linux-2.6.git diff --git a/drivers/net/pcmcia/pcnet_cs.c b/drivers/net/pcmcia/pcnet_cs.c index b53f5fcf5..2db4baabe 100644 --- a/drivers/net/pcmcia/pcnet_cs.c +++ b/drivers/net/pcmcia/pcnet_cs.c @@ -326,6 +326,9 @@ static void pcnet_detach(dev_link_t *link) if (*linkp == NULL) return; + if (link->dev) + unregister_netdev(dev); + if (link->state & DEV_CONFIG) pcnet_release(link); @@ -334,8 +337,6 @@ static void pcnet_detach(dev_link_t *link) /* Unlink device structure, free bits */ *linkp = link->next; - if (link->dev) - unregister_netdev(dev); free_netdev(dev); } /* pcnet_detach */ @@ -806,10 +807,8 @@ static int pcnet_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); - pcnet_release(link); - } break; case CS_EVENT_CARD_INSERTION: link->state |= DEV_PRESENT | DEV_CONFIG_PENDING;