questo è legato a: https://stackoverflow.com/a/13413099/1284631Chiamata di sistema di riavvio di Linux(): perché chiama do_exit (0) dopo kernel_halt()?
Ora, la domanda è:
Perché la chiamata di sistema riavvio(), quando viene chiamato con LINUX_REBOOT_CMD_HALT
parametro (vedi qui: http://lxr.linux.no/linux+v3.6.6/kernel/sys.c#L480) sta chiamando do_exit(0)
dopo aver già chiamato kernel_halt()
, come chiamando kernel_halt()
si riduce a chiamare stop_this_cpu()
(vedere qui: http://lxr.linux.no/linux+v3.6.6/arch/x86/kernel/process.c#L519), come parte di native_machine_halt()
(vedere qui: http://lxr.linux.no/linux+v3.6.6/arch/x86/kernel/reboot.c#L680).
Oppure, mi sembra che stop_this_cpu()
non ritorni mai (termina con un ciclo infinito).
Quindi, è do_exit(0)
chiamato nel caso in cui kernel_halt()
non fa il suo lavoro e restituisce? Perché non direttamente lo panic()
, allora?
panic rendere kernel stallo, uscita, probabilmente riavvio –
@eicto: sì, sono d'accordo, ho detto la stessa cosa nella frase finale del mio post. La vera domanda è: perché la chiamata a do_exit (0) * prima * del panico()? Se vuoi far stalli, uscire o riavviare il kernel, perché non chiamare direttamente panic()? – user1284631