If device_suspend(PMSG_FREEZE) is not ready to be called in kernel_restart it is definitely not ready to be called in the even more fickle kernel_kexec.
Unified · Split
| @@ -392,7 +392,6 @@ void kernel_kexec(void) · 391 unmodified lines | |||
| 392 | } | 392 | } |
| 393 | notifier_call_chain(&reboot_notifier_list, SYS_RESTART, NULL); | 393 | notifier_call_chain(&reboot_notifier_list, SYS_RESTART, NULL); |
| 394 | system_state = SYSTEM_RESTART; | 394 | system_state = SYSTEM_RESTART; |
| 395 | device_suspend(PMSG_FREEZE); | ||
| 396 | device_shutdown(); | 395 | device_shutdown(); |
| 397 | printk(KERN_EMERG "Starting new kernel\n"); | 396 | printk(KERN_EMERG "Starting new kernel\n"); |
| 398 | machine_shutdown(); | 397 | machine_shutdown(); |