if (*linkp == NULL)
return;
- if (link->dev)
- unregister_netdev(dev);
-
if (link->state & DEV_CONFIG)
fmvj18x_release(link);
/* Unlink device structure, free pieces */
*linkp = link->next;
+ if (link->dev)
+ unregister_netdev(dev);
free_netdev(dev);
} /* fmvj18x_detach */
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;