[PATCH] fix an IA64 MCA kdump bug in kdump_init_notifier

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.

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;
 

[Index of Archives]     [Linux Kernel]     [Sparc Linux]     [DCCP]     [Linux ARM]     [Yosemite News]     [Linux SCSI]     [Linux x86_64]     [Linux for Ham Radio]

  Powered by Linux