Exemplo n.º 1
0
static void __exit scc_enet_cleanup(void)
{
	struct rtnet_device *rtdev = rtdev_root;
	struct scc_enet_private *cep = (struct scc_enet_private *)rtdev->priv;
	volatile cpm8xx_t *cp = cpmp;
	volatile scc_enet_t *ep;

	if (rtdev) {
		rtdm_irq_disable(&cep->irq_handle);
		rtdm_irq_free(&cep->irq_handle);

		ep = (scc_enet_t *)(&cp->cp_dparam[PROFF_ENET]);
		m8xx_cpm_dpfree(ep->sen_genscc.scc_rbase);
		m8xx_cpm_dpfree(ep->sen_genscc.scc_tbase);

		rt_stack_disconnect(rtdev);
		rt_unregister_rtnetdev(rtdev);
		rt_rtdev_disconnect(rtdev);

		printk("%s: unloaded\n", rtdev->name);
		rtskb_pool_release(&cep->skb_pool);
		rtdev_free(rtdev);
		rtdev_root = NULL;
	}
}
Exemplo n.º 2
0
static void tulip_remove_one (struct pci_dev *pdev)
{
	struct rtnet_device *rtdev = (struct rtnet_device *) pci_get_drvdata (pdev);
	struct tulip_private *tp;

	if (!rtdev || !rtdev->priv)
		return;

	tp = rtdev->priv;
	pci_free_consistent (pdev,
			     sizeof (struct tulip_rx_desc) * RX_RING_SIZE +
			     sizeof (struct tulip_tx_desc) * TX_RING_SIZE,
			     tp->rx_ring, tp->rx_ring_dma);
	rt_unregister_rtnetdev (rtdev);
	if (tp->mtable)
		kfree (tp->mtable);
#ifndef USE_IO_OPS
	iounmap((void *)rtdev->base_addr);
#endif
	/*RTnet*/
	rt_rtdev_disconnect(rtdev);
	rtdev_free (rtdev);
	/*RTnet*/
	pci_release_regions (pdev);
	pci_set_drvdata (pdev, NULL);

	/* pci_power_off (pdev, -1); */
}
Exemplo n.º 3
0
/***
 *  loopback_cleanup
 */
static void __exit loopback_cleanup(void)
{
    struct rtnet_device *rtdev = rt_loopback_dev;

    printk("removing loopback...\n");

    rt_unregister_rtnetdev(rtdev);
    rt_rtdev_disconnect(rtdev);

    rtdev_free(rtdev);
}
Exemplo n.º 4
0
void rt2x00_core_remove(struct rtnet_device * rtnet_dev) {

    struct rtwlan_device * rtwlan_dev = rtnetdev_priv(rtnet_dev);

    rtskb_pool_release(&rtwlan_dev->skb_pool);
    rt_unregister_rtnetdev(rtnet_dev);
    rt_rtdev_disconnect(rtnet_dev);

    rtdev_free(rtnet_dev);
  
}