Khalid Aziz <khalid_aziz@xxxxxx> writes: > On Thu, 2005-06-30 at 17:52 -0600, Eric W. Biederman wrote: > > I have found that I can not walk reboot_notifier list in all cases > before kexec'ing a new kernel. For instance, when handling INIT on ia64, > we are running in interrupt context and atleast some of the reboot > notifier callbacks call schedule(). Calling schedule() is not gonna work > when we are running in interrupt context. I have the same concern for > when panic gets called in interrupt context. So I added a shutdown > function to e1000 driver instead. Patch is attached. This patch has > worked for me. Thanks. I will look at your e1000 driver and see if it works on the hardware I have here. You changes are at least to places that could have fixed the problem I am seeing. For the panic case calling any of the shutdown/reboot notifier bits is actually wrong. That kernel that takes over needs to cope with hardware left in any state. > As soon as I have all the issues sorted out with kexec'ing on INIT on > ia64, I will post a fully updated kexec patch for ia64. I now have kexec > working solid on INIT with e1000 driver and it can handle multiple back > to back INITs and come up in kexec'd kernel every time. I am now trying > to sort some issues out with tg3 driver (another driver with no shutdown > routine :( In the normal case (not kexec on panic) user space should down the interfaces before calling kexec. Is your user space doing that? Eric