Messages in this thread Patch in this message | | | Date | Mon, 25 Apr 2005 22:42:07 +0200 | From | Pavel Machek <> | Subject | Re: [PATCH] PCI: Add pci shutdown ability |
| |
Hi!
> Well it seems that people are starting to want to hook the reboot > notifier, or the device shutdown facility in order to properly shutdown > pci drivers to make kexec work nicer. > > So here's a patch for the PCI core that allows pci drivers to now just > add a "shutdown" notifier function that will be called when the system > is being shutdown. It happens just after the reboot notifier happens, > and it should happen in the proper device tree order, so everyone should > be happy. > > Any objections to this patch?
Yes.
I believe it should just do suspend(PMSG_SUSPEND) before system shutdown. If you think distintion between shutdown and suspend is important (I am not 100% convinced it is), we can just add flag saying "this is system shutdown".
Actually this patch should be in the queue somewhere... We had it in suse trees for a long time, and IMO it can solve problem easily.
Pavel
--- clean-git/kernel/sys.c 2005-04-23 23:21:55.000000000 +0200 +++ linux/kernel/sys.c 2005-04-24 00:20:47.000000000 +0200 @@ -404,6 +404,7 @@ case LINUX_REBOOT_CMD_HALT: notifier_call_chain(&reboot_notifier_list, SYS_HALT, NULL); system_state = SYSTEM_HALT; + device_suspend(PMSG_SUSPEND); device_shutdown(); printk(KERN_EMERG "System halted.\n"); machine_halt(); @@ -414,6 +415,7 @@ case LINUX_REBOOT_CMD_POWER_OFF: notifier_call_chain(&reboot_notifier_list, SYS_POWER_OFF, NULL); system_state = SYSTEM_POWER_OFF; + device_suspend(PMSG_SUSPEND); device_shutdown(); printk(KERN_EMERG "Power down.\n"); machine_power_off(); @@ -430,6 +432,7 @@ notifier_call_chain(&reboot_notifier_list, SYS_RESTART, buffer); system_state = SYSTEM_RESTART; + device_suspend(PMSG_FREEZE); device_shutdown(); printk(KERN_EMERG "Restarting system with command '%s'.\n", buffer); machine_restart(buffer);
-- Boycott Kodak -- for their patent abuse against Java. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |