static int net_close(struct net_device *dev) { netif_stop_queue(dev); /* disable queueing */ flush_tx_buffers((struct net_local *) dev); return (0); /* success */ } /* net_close */
static int net_close(struct net_device *dev) { netif_stop_queue(dev); /* disable queueing */ if (((struct net_local *) dev)->is_open) MOD_DEC_USE_COUNT; /* adjust module counter */ ((struct net_local *) dev)->is_open = 0; flush_tx_buffers((struct net_local *) dev); return (0); /* success */ } /* net_close */
int hysdn_net_release(hysdn_card * card) { struct net_device *dev = card->netif; if (!dev) return (0); /* non existing */ card->netif = NULL; /* clear out pointer */ net_close(dev); flush_tx_buffers((struct net_local *) dev); /* empty buffers */ unregister_netdev(dev); /* release the device */ free_netdev(dev); /* release the memory allocated */ if (card->debug_flags & LOG_NET_INIT) hysdn_addlog(card, "network device deleted"); return (0); /* always successful */ } /* hysdn_net_release */