> > > Any chance that anyone is thinking of adding hot-plug support > > to the pcnet32 driver? > > You want to give me a hotplug machine ? :-) > > Best regards, > Helge > - > : send the line "unsubscribe linux-net" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > > Here is a repeat of a patch to enable PCI Hot Plug for pcnet32. --- linux-2.6.0/drivers/net/pcnet32.c Wed Dec 10 10:43:25 2003 +++ linux-2.6.0p/drivers/net/pcnet32.c Wed Dec 10 14:59:40 2003 @@ -806,8 +806,12 @@ dev->tx_timeout = pcnet32_tx_timeout; dev->watchdog_timeo = (5*HZ); - lp->next = pcnet32_dev; - pcnet32_dev = dev; + if (pdev) + pci_set_drvdata(pdev, dev); + else { + lp->next = pcnet32_dev; + pcnet32_dev = dev; + } /* Fill in the generic fields of the device structure. */ register_netdev(dev); @@ -1703,9 +1707,25 @@ mod_timer (&(lp->watchdog_timer), PCNET32_WATCHDOG_TIMEOUT); } +static void __devexit pcnet32_remove_one(struct pci_dev *pdev) +{ + struct net_device *dev = pci_get_drvdata(pdev); + + if (dev) { + struct pcnet32_private *lp = dev->priv; + + unregister_netdev(dev); + release_region(dev->base_addr, PCNET32_TOTAL_SIZE); + pci_free_consistent(lp->pci_dev, sizeof(*lp), lp, lp->dma_addr); + free_netdev(dev); + pci_set_drvdata(pdev, NULL); + } +} + static struct pci_driver pcnet32_driver = { .name = DRV_NAME, .probe = pcnet32_probe_pci, + .remove = __devexit_p(pcnet32_remove_one), .id_table = pcnet32_pci_tbl, }; -- Don Fry brazilnut@us.ibm.com - : send the line "unsubscribe linux-net" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html