diff options
author | Paul Mackerras <paulus@samba.org> | 2007-12-03 09:30:04 +1100 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2007-12-03 09:39:45 +1100 |
commit | 8f51506164655ce9af14970ce4f765f28c7970e9 (patch) | |
tree | 01011292e656e4ec3da418923aec1f13d5efecb6 /arch/powerpc | |
parent | 92d499d991ec4f5cbd00d6f33967eab9d3ee8d6c (diff) | |
download | linux-8f51506164655ce9af14970ce4f765f28c7970e9.tar.bz2 |
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 <paulus@samba.org>
Diffstat (limited to 'arch/powerpc')
-rw-r--r-- | arch/powerpc/kernel/rtas.c | 12 | ||||
-rw-r--r-- | arch/powerpc/platforms/pseries/setup.c | 3 |
2 files changed, 7 insertions, 8 deletions
diff --git a/arch/powerpc/kernel/rtas.c b/arch/powerpc/kernel/rtas.c index 053cac19f714..52e95c2158c0 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 fdeefe54ea91..fdb9b1c8f977 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, |