From 8f51506164655ce9af14970ce4f765f28c7970e9 Mon Sep 17 00:00:00 2001 From: Paul Mackerras Date: Mon, 3 Dec 2007 09:30:04 +1100 Subject: [PATCH 1/2] Revert "[POWERPC] Fix RTAS os-term usage on kernel panic" This reverts commit a2b51812a4dc5db09ab4d4638d4d8ed456e2457e. It turns out that this change caused some machines to fail to come back up when being rebooted, and generated an error in the hypervisor error log on some machines. The platform architecture (PAPR) is a little unclear on exactly when the RTAS ibm,os-term function should be called. Until that is clarified I'm reverting this commit. Signed-off-by: Paul Mackerras --- arch/powerpc/kernel/rtas.c | 12 ++++++------ arch/powerpc/platforms/pseries/setup.c | 3 +-- include/asm-powerpc/rtas.h | 3 +-- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/arch/powerpc/kernel/rtas.c b/arch/powerpc/kernel/rtas.c index 053cac19f71..52e95c2158c 100644 --- a/arch/powerpc/kernel/rtas.c +++ b/arch/powerpc/kernel/rtas.c @@ -638,18 +638,18 @@ void rtas_halt(void) /* Must be in the RMO region, so we place it here */ static char rtas_os_term_buf[2048]; -void rtas_panic_msg(char *str) -{ - snprintf(rtas_os_term_buf, 2048, "OS panic: %s", str); -} - -void rtas_os_term(void) +void rtas_os_term(char *str) { int status; + if (panic_timeout) + return; + if (RTAS_UNKNOWN_SERVICE == rtas_token("ibm,os-term")) return; + snprintf(rtas_os_term_buf, 2048, "OS panic: %s", str); + do { status = rtas_call(rtas_token("ibm,os-term"), 1, 1, NULL, __pa(rtas_os_term_buf)); diff --git a/arch/powerpc/platforms/pseries/setup.c b/arch/powerpc/platforms/pseries/setup.c index fdeefe54ea9..fdb9b1c8f97 100644 --- a/arch/powerpc/platforms/pseries/setup.c +++ b/arch/powerpc/platforms/pseries/setup.c @@ -507,8 +507,7 @@ define_machine(pseries) { .restart = rtas_restart, .power_off = pSeries_power_off, .halt = rtas_halt, - .panic = rtas_panic_msg, - .machine_shutdown = rtas_os_term, + .panic = rtas_os_term, .get_boot_time = rtas_get_boot_time, .get_rtc_time = rtas_get_rtc_time, .set_rtc_time = rtas_set_rtc_time, diff --git a/include/asm-powerpc/rtas.h b/include/asm-powerpc/rtas.h index 87db8728e82..8eaa7b28d9d 100644 --- a/include/asm-powerpc/rtas.h +++ b/include/asm-powerpc/rtas.h @@ -164,8 +164,7 @@ extern int rtas_call(int token, int, int, int *, ...); extern void rtas_restart(char *cmd); extern void rtas_power_off(void); extern void rtas_halt(void); -extern void rtas_panic_msg(char *str); -extern void rtas_os_term(void); +extern void rtas_os_term(char *str); extern int rtas_get_sensor(int sensor, int index, int *state); extern int rtas_get_power_level(int powerdomain, int *level); extern int rtas_set_power_level(int powerdomain, int level, int *setlevel); From b80fa3cce7390185e43ea22e9b3c38ab138bc580 Mon Sep 17 00:00:00 2001 From: Grant Likely Date: Tue, 20 Nov 2007 17:08:49 +1100 Subject: [PATCH 2/2] [POWERPC] Remove xmon from ml300 and ml403 defconfig in arch/ppc xmon is broken under arch/ppc so remove it from the defconfig. Signed-off-by: Grant Likely Signed-off-by: Paul Mackerras --- arch/ppc/configs/ml300_defconfig | 2 +- arch/ppc/configs/ml403_defconfig | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/ppc/configs/ml300_defconfig b/arch/ppc/configs/ml300_defconfig index 69bad91a6b6..d66cacdb95b 100644 --- a/arch/ppc/configs/ml300_defconfig +++ b/arch/ppc/configs/ml300_defconfig @@ -719,7 +719,7 @@ CONFIG_DEBUG_INFO=y CONFIG_FORCED_INLINING=y # CONFIG_RCU_TORTURE_TEST is not set # CONFIG_KGDB is not set -CONFIG_XMON=y +# CONFIG_XMON is not set # CONFIG_BDI_SWITCH is not set # CONFIG_SERIAL_TEXT_DEBUG is not set diff --git a/arch/ppc/configs/ml403_defconfig b/arch/ppc/configs/ml403_defconfig index a78896ea456..71bcfa7ab7f 100644 --- a/arch/ppc/configs/ml403_defconfig +++ b/arch/ppc/configs/ml403_defconfig @@ -720,7 +720,7 @@ CONFIG_DEBUG_INFO=y CONFIG_FORCED_INLINING=y # CONFIG_RCU_TORTURE_TEST is not set # CONFIG_KGDB is not set -CONFIG_XMON=y +# CONFIG_XMON is not set # CONFIG_BDI_SWITCH is not set # CONFIG_SERIAL_TEXT_DEBUG is not set