これは以下に関連しています: https://stackoverflow.com/a/13413099/1284631
さて、問題は次のとおりです。
LINUX_REBOOT_CMD_HALT
パラメータを指定して呼び出されたときにreboot()システムコールが呼び出される理由(ここを参照してください: http://lxr.linux.no/linux+v3.6.6/kernel/sys.c#L480 )は、呼び出しが沸騰するため、do_exit(0)
すでに呼び出された後に呼び出されます(ここを参照: http : //lxr.linux .no/linux+v3.6.6/arch/x86/kernel/reboot.c#L680 )。kernel_halt()
kernel_halt()
stop_this_cpu()
native_machine_halt()
または、それstop_this_cpu()
が戻ってこないように思えます(無限ループで終了します)。
それで、それが仕事をせずに戻ってきdo_exit(0)
た場合に備えて呼び出されますか?では、代わりに直接しkernel_halt()
ないのはなぜですか?panic()