Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2010d7fe787b39afd31daba5d5284dd432de4e8f
Commit:     2010d7fe787b39afd31daba5d5284dd432de4e8f
Parent:     ac542a513bd7905fa1a700881e0a40a94d3ed46a
Author:     Kenji Kaneshige <[EMAIL PROTECTED]>
AuthorDate: Sat Sep 1 16:37:48 2007 +0900
Committer:  Tony Luck <[EMAIL PROTECTED]>
CommitDate: Fri Oct 12 15:24:40 2007 -0700

    [IA64] Fix kernel hangup in kdump on INIT
    
    Fix the problem that kdump on INIT hung up if kdump kernel image is
    not configured.
    
    The kdump_init_notifier() on monarch CPU stops its operation at
    DIE_INIT_MONARCH_LEAVE time if the kdump kernel image is not
    configured. On the other hand, kdump_init_notifier() on non-monarch
    CPUs get into spin because they don't know the fact the monarch stops
    its operation. This is the cause of this problem. To fix this problem,
    we need to check the kdump kernel image at the top of the
    kdump_init_notifier() function.
    
    Signed-off-by: Kenji Kaneshige <[EMAIL PROTECTED]>
    Signed-off-by: Tony Luck <[EMAIL PROTECTED]>
---
 arch/ia64/kernel/crash.c |   13 ++++++++-----
 1 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/arch/ia64/kernel/crash.c b/arch/ia64/kernel/crash.c
index b2367dd..f1cf2df 100644
--- a/arch/ia64/kernel/crash.c
+++ b/arch/ia64/kernel/crash.c
@@ -118,11 +118,6 @@ machine_crash_shutdown(struct pt_regs *pt)
 static void
 machine_kdump_on_init(void)
 {
-       if (!ia64_kimage) {
-               ia64_mca_printk(KERN_NOTICE "machine_kdump_on_init(): "
-                               "kdump not configured\n");
-               return;
-       }
        local_irq_disable();
        kexec_disable_iosapic();
        machine_kexec(ia64_kimage);
@@ -156,6 +151,14 @@ kdump_init_notifier(struct notifier_block *self, unsigned 
long val, void *data)
        if (!kdump_on_init)
                return NOTIFY_DONE;
 
+       if (!ia64_kimage) {
+               if (val == DIE_INIT_MONARCH_LEAVE)
+                       ia64_mca_printk(KERN_NOTICE
+                                       "%s: kdump not configured\n",
+                                       __FUNCTION__);
+               return NOTIFY_DONE;
+       }
+
        if (val != DIE_INIT_MONARCH_LEAVE &&
            val != DIE_INIT_SLAVE_LEAVE &&
            val != DIE_INIT_MONARCH_PROCESS &&
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to