Looks OK and also work on my HW.
Andrew, can you please take this updated version, it is much cleaner and
safer, because it handle the IRQ correctly.
--- a/drivers/net/tulip/tulip_core.c 2005-05-27 22:06:00.000000000 -0400
+++ b/drivers/net/tulip/tulip_core.c 2005-06-07 16:34:13.641177456 -0400
@@ -1756,11 +1756,19 @@
{
struct net_device *dev = pci_get_drvdata(pdev);
- if (dev && netif_running (dev) && netif_device_present (dev)) {
- netif_device_detach (dev);
- tulip_down (dev);
- /* pci_power_off(pdev, -1); */
- }
+ if (!dev)
+ return -EINVAL;
+
+ if (netif_running(dev))
+ tulip_down(dev);
+
+ netif_device_detach(dev);
+ pci_save_state(pdev);
+
+ free_irq(dev->irq, dev);
isn't it safer to swap these last two guys ?? in theory there could be
an IRQ betwen pci_save_state() and free_irq()...
+ pci_disable_device(pdev);
+ pci_set_power_state(pdev, pci_choose_state(pdev, state));
+
return 0;
}
regards
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]