]> err.no Git - linux-2.6/commitdiff
[IA64] Fix kernel panic in kdump on INIT
authorKenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
Sat, 1 Sep 2007 07:36:26 +0000 (16:36 +0900)
committerTony Luck <tony.luck@intel.com>
Fri, 12 Oct 2007 22:24:06 +0000 (15:24 -0700)
Fix the problem that kdump on INIT causes a kernel panic if kdump
kernel image is not configured. The cause of this problem is
machine_kexec_on_init() is using printk in INIT context. It should
use ia64_mca_printk() instead.

Signed-off-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
arch/ia64/kernel/crash.c
arch/ia64/kernel/mca_drv.h
include/asm-ia64/mca.h

index 1d64ef478dde9397ec99e5dace2ce9e52ba996d9..b2367dd66766dc9a95348df508ba29cceed4c632 100644 (file)
@@ -119,7 +119,7 @@ static void
 machine_kdump_on_init(void)
 {
        if (!ia64_kimage) {
-               printk(KERN_NOTICE "machine_kdump_on_init(): "
+               ia64_mca_printk(KERN_NOTICE "machine_kdump_on_init(): "
                                "kdump not configured\n");
                return;
        }
index c85e943ba5fd93017a305b34aef00da0b56689f9..485e34d0b199333c3ff763f1c22c919628b09575 100644 (file)
@@ -118,7 +118,5 @@ struct mca_table_entry {
 
 extern const struct mca_table_entry *search_mca_tables (unsigned long addr);
 extern int mca_recover_range(unsigned long);
-extern void ia64_mca_printk(const char * fmt, ...)
-        __attribute__ ((format (printf, 1, 2)));
 extern void ia64_mlogbuf_dump(void);
 
index edd5d01028df93d8d88ad68dbdd1322261bee790..823553bf12e6681861297cbcbcf746a1c0a1a460 100644 (file)
@@ -151,6 +151,8 @@ extern void ia64_mca_cmc_vector_setup(void);
 extern int  ia64_reg_MCA_extension(int (*fn)(void *, struct ia64_sal_os_state *));
 extern void ia64_unreg_MCA_extension(void);
 extern u64 ia64_get_rnat(u64 *);
+extern void ia64_mca_printk(const char * fmt, ...)
+        __attribute__ ((format (printf, 1, 2)));
 
 struct ia64_mca_notify_die {
        struct ia64_sal_os_state *sos;