From ac542a513bd7905fa1a700881e0a40a94d3ed46a Mon Sep 17 00:00:00 2001 From: Kenji Kaneshige Date: Sat, 1 Sep 2007 16:36:26 +0900 Subject: [PATCH] [IA64] Fix kernel panic in kdump on INIT 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 Signed-off-by: Tony Luck --- arch/ia64/kernel/crash.c | 2 +- arch/ia64/kernel/mca_drv.h | 2 -- include/asm-ia64/mca.h | 2 ++ 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/ia64/kernel/crash.c b/arch/ia64/kernel/crash.c index 1d64ef478d..b2367dd667 100644 --- a/arch/ia64/kernel/crash.c +++ b/arch/ia64/kernel/crash.c @@ -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; } diff --git a/arch/ia64/kernel/mca_drv.h b/arch/ia64/kernel/mca_drv.h index c85e943ba5..485e34d0b1 100644 --- a/arch/ia64/kernel/mca_drv.h +++ b/arch/ia64/kernel/mca_drv.h @@ -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); diff --git a/include/asm-ia64/mca.h b/include/asm-ia64/mca.h index edd5d01028..823553bf12 100644 --- a/include/asm-ia64/mca.h +++ b/include/asm-ia64/mca.h @@ -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; -- 2.39.5