On Mon, Mar 19, 2007 at 07:12:44PM -0700, Jay Lan wrote: > In my original patch to support MCA in kdump, changes were made to > kdump_init_notifier() of arch/ia64/kernel/crash.c. But one change > was somehow incorrectly modified in 2.6.20 to as below: > > > if ((val == DIE_INIT_MONARCH_ENTER || DIE_INIT_SLAVE_ENTER) && > > nd->sos->rv_rc == 1) > > return NOTIFY_DONE; > > Since DIE_INIT_SLAVE_ENTER is a non-zero value, thus "nd->sos->rv_rc > ==1" is always evaluated. The kdump kernel aborted because nd->sos > is NULL in (at least some) MCA cases. > > This patch corrects the problem. It was created against 2.6.21-rc4. Hi Jay, I think that your fix below does correct a problem, in that "|| DIE_INIT_SLAVE_ENTER" appears to be quite bogus. But if you are worried about nd->sos being NULL, is it worth checking for that explicitly. Or will it always be non-NULL with the code below? > > Signed-Off-By: Jay Lan <jlan@xxxxxxx> > > Index: linux/arch/ia64/kernel/crash.c > =================================================================== > --- linux.orig/arch/ia64/kernel/crash.c 2007-03-15 17:20:01.000000000 -0700 > +++ linux/arch/ia64/kernel/crash.c 2007-03-19 17:27:42.102401208 -0700 > @@ -164,7 +164,7 @@ kdump_init_notifier(struct notifier_bloc > > nd = (struct ia64_mca_notify_die *)args->err; > /* Reason code 1 means machine check rendezous*/ > - if ((val == DIE_INIT_MONARCH_ENTER || DIE_INIT_SLAVE_ENTER) && > + if ((val == DIE_INIT_MONARCH_ENTER || val == DIE_INIT_SLAVE_ENTER) && > nd->sos->rv_rc == 1) > return NOTIFY_DONE; > -- Horms H: http://www.vergenet.net/~horms/ W: http://www.valinux.co.jp/en/ - To unsubscribe from this list: send the line "unsubscribe linux-ia64" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
![]() |