On 02/02/2010 03:48 PM, Ales Kozumplik wrote: > Stop the kernel correctly on HALT (so that we dont see 'kernel panic, they > killed init' on i386 and on s390 one gets easy access to manual IPL). > > Introduce a new reboot method that does allow us to see the backtrace and > doesn't scroll the screen up with useless unmount info. > --- > loader/init.c | 8 +++--- > loader/init.h | 5 +++- > loader/shutdown.c | 57 +++++++++++++++++++++++++++++++++------------------- > 3 files changed, 44 insertions(+), 26 deletions(-) > +void shutDown(int doKill, reboot_action rebootAction) > +{ > + if (rebootAction == DELAYED_REBOOT) { > + performDelayedReboot(); > + } else if (doKill) { > + performUnmounts(); > + performTerminations(); > + performReboot(rebootAction); > + } > + printf("you may safely reboot your system\n"); > + exit(0); > + return; Hm, in what cases do we get here? I suppose, if called with doKill==0 (for the DELAYED_REBOOT case only after the user also pressed CTRL+C or CAD to switch over to REBOOT). Since no sync, unmount, or process termination has happened, I'm not sure it is really safe to reboot the system due to unflushed dirty buffers. The old code went into the endless loop after having printed this sentence and finally kicked off unmount, termination, and reboot unconditionally with doKill==1 after the CAD. I fear, that whenever users boot the install system with "nokill" on the boot command line, then we might again get into killing init since we now exit the init process. +void shutDown(int doKill, reboot_action rebootAction) +{ + if (rebootAction != DELAYED_REBOOT) { + performUnmounts(); + performTerminations(); + performReboot(rebootAction); + } + performDelayedReboot(); Maybe that is safer? Plus probably a "return" or "exit(0)" to make the compiler happy. Pressing CTRL+C or CAD afterwards will again put the user in the performDelayedReboot by means of init.c:sigintHandler() because of nokill. I guess that would be intended. After all it is safe. ;) Or am I completely off track here? Steffen Linux on System z Development IBM Deutschland Research & Development GmbH Vorsitzender des Aufsichtsrats: Martin Jetter Geschäftsführung: Dirk Wittkopp Sitz der Gesellschaft: Böblingen Registergericht: Amtsgericht Stuttgart, HRB 243294 _______________________________________________ Anaconda-devel-list mailing list Anaconda-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/anaconda-devel-list