Re: [Fastboot] Re: Re: tg3: issue for reboot/kexec
From: Eric W. Biederman <hidden>
Date: 2005-06-30 23:52:55
Also in:
linux-pm
Greg KH [off-list ref] writes:
On Thu, Jun 30, 2005 at 05:21:45PM -0600, Eric W. Biederman wrote:quoted
However I have gotten feedback a couple of times that driver writers tend to prefer using reboot notifiers. In part because shutdown functions don't exist for non-pci devices.That's a very lame excuse. All busses should have shutdown functions. And any device that is just bypassing all of the existing bus logic is still tying into the driver core directly (which is a bad thing by itself, but that's a different matter.) And there's a shutdown method there too. So there is no excuse to not use it. Please, if they complain, point them to me :)
Ok. Then there is still my complaint and device_shutdown doesn't get called on module removal which means it really doesn't get implemented. Perhaps with kexec now being in the mainline kernel this will get better. Currently I have the following patch outstanding against the e1000 driver because on reboot on some boxes it card revisions it places the card into a sleep state the driver initialization routing cannot get the card out of. And yes the e1000 is bad and is using a reboot_notifier. Eric e1000_main.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) diff -uNr linux-2.4.29-kexec-apic-virtwire-on-shutdownx86_64/drivers/net/e1000/e1000_main.c linux-2.4.29-e1000-no-poweroff-on-reboot/drivers/net/e1000/e1000_main.c
--- linux-2.4.29-kexec-apic-virtwire-on-shutdownx86_64/drivers/net/e1000/e1000_main.c Tue Feb 15 14:17:09 2005
+++ linux-2.4.29-e1000-no-poweroff-on-reboot/drivers/net/e1000/e1000_main.c Wed Feb 16 05:49:00 2005@@ -2777,7 +2777,7 @@ case SYS_POWER_OFF: while((pdev = pci_find_device(PCI_ANY_ID, PCI_ANY_ID, pdev))) { if(pci_dev_driver(pdev) == &e1000_driver) - e1000_suspend(pdev, 3); + e1000_suspend(pdev, (event == SYS_DOWN)?0:3); } } return NOTIFY_DONE;