X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fnet%2Fpcmcia%2Ffmvj18x_cs.c;h=580af370930b3c00a41257bf7f45d02fcb430799;hb=89d192394c0ea1b5d433957770a47418e56acf92;hp=9c40e61fa1bce6edbfdcea1bb5d7ef5ee0534447;hpb=a91482bdcc2e0f6035702e46f1b99043a0893346;p=linux-2.6.git diff --git a/drivers/net/pcmcia/fmvj18x_cs.c b/drivers/net/pcmcia/fmvj18x_cs.c index 9c40e61fa..580af3709 100644 --- a/drivers/net/pcmcia/fmvj18x_cs.c +++ b/drivers/net/pcmcia/fmvj18x_cs.c @@ -332,9 +332,6 @@ static void fmvj18x_detach(dev_link_t *link) if (*linkp == NULL) return; - if (link->dev) - unregister_netdev(dev); - if (link->state & DEV_CONFIG) fmvj18x_release(link); @@ -344,6 +341,8 @@ static void fmvj18x_detach(dev_link_t *link) /* Unlink device structure, free pieces */ *linkp = link->next; + if (link->dev) + unregister_netdev(dev); free_netdev(dev); } /* fmvj18x_detach */ @@ -742,8 +741,10 @@ static int fmvj18x_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); + fmvj18x_release(link); + } break; case CS_EVENT_CARD_INSERTION: link->state |= DEV_PRESENT | DEV_CONFIG_PENDING;