[PATCH] properly stop devices before poweroff
Without this patch, Linux provokes emergency disk shutdowns and similar nastiness. It was in SuSE kernels for some time, IIRC. Signed-off-by: Pavel Machek <pavel@suse.cz> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
5ce47e59c9
commit
620b032764
@@ -405,6 +405,7 @@ asmlinkage long sys_reboot(int magic1, int magic2, unsigned int cmd, void __user
|
||||
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();
|
||||
@@ -415,6 +416,7 @@ asmlinkage long sys_reboot(int magic1, int magic2, unsigned int cmd, void __user
|
||||
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();
|
||||
@@ -431,6 +433,7 @@ asmlinkage long sys_reboot(int magic1, int magic2, unsigned int cmd, void __user
|
||||
|
||||
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);
|
||||
|
Reference in New Issue
Block a user