[PATCH v2] kernel/panic/kexec: fix "crash_kexec_post_notifiers" option issue in oops path

Ingo Molnar mingo at kernel.org
Tue Mar 24 00:11:29 PDT 2015


* Masami Hiramatsu <masami.hiramatsu.pt at hitachi.com> wrote:

> (2015/03/23 16:19), Ingo Molnar wrote:
> > 
> > * Baoquan He <bhe at redhat.com> wrote:
> > 
> >> CC more people ...
> >>
> >> On 03/07/15 at 01:31am, "Hatayama, Daisuke/畑山 大輔" wrote:
> >>> The commit f06e5153f4ae2e2f3b0300f0e260e40cb7fefd45 introduced
> >>> "crash_kexec_post_notifiers" kernel boot option, which toggles
> >>> wheather panic() calls crash_kexec() before panic_notifiers and dump
> >>> kmsg or after.
> >>>
> >>> The problem is that the commit overlooks panic_on_oops kernel boot
> >>> option. If it is enabled, crash_kexec() is called directly without
> >>> going through panic() in oops path.
> >>>
> >>> To fix this issue, this patch adds a check to
> >>> "crash_kexec_post_notifiers" in the condition of kexec_should_crash().
> >>>
> >>> Also, put a comment in kexec_should_crash() to explain not obvious
> >>> things on this patch.
> >>>
> >>> Signed-off-by: HATAYAMA Daisuke <d.hatayama at jp.fujitsu.com>
> >>> Acked-by: Baoquan He <bhe at redhat.com>
> >>> Tested-by: Hidehiro Kawai <hidehiro.kawai.ez at hitachi.com>
> >>> Reviewed-by: Masami Hiramatsu <masami.hiramatsu.pt at hitachi.com>
> >>> ---
> >>>  include/linux/kernel.h |  3 +++
> >>>  kernel/kexec.c         | 11 +++++++++++
> >>>  kernel/panic.c         |  2 +-
> >>>  3 files changed, 15 insertions(+), 1 deletion(-)
> > 
> > This is hack upon hack, but why was this crap merged in the first 
> > place?
> > 
> > I see two problems just by cursory review:
> > 
> > 1)
> > 
> > Firstly, the real bug in:
> > 
> >   f06e5153f4ae ("kernel/panic.c: add "crash_kexec_post_notifiers" option for kdump after panic_notifers")
> > 
> > Was that crash_kexec() was called unconditionally after notifiers were 
> > called, which should be fixed via the simple patch below (untested). 
> > Looks much simpler than your fix.
> 
> No, Daisuke's patch is not for that case. [...]

Yet the actual bug is in that commit, 'crash_kexec_post_notifiers' was 
clearly not a no-op in the default case, against expectations.

So the first step should be to restore the original behavior (my 
patch), then should any new tweaks be added.

Thanks,

	Ingo



More information about the kexec mailing list