aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorPaul Mackerras <paulus@samba.org>2007-12-02 17:30:04 -0500
committerPaul Mackerras <paulus@samba.org>2007-12-02 17:39:45 -0500
commit8f51506164655ce9af14970ce4f765f28c7970e9 (patch)
tree01011292e656e4ec3da418923aec1f13d5efecb6 /arch
parent92d499d991ec4f5cbd00d6f33967eab9d3ee8d6c (diff)
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')
-rw-r--r--arch/powerpc/kernel/rtas.c12
-rw-r--r--arch/powerpc/platforms/pseries/setup.c3
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)
638/* Must be in the RMO region, so we place it here */ 638/* Must be in the RMO region, so we place it here */
639static char rtas_os_term_buf[2048]; 639static char rtas_os_term_buf[2048];
640 640
641void rtas_panic_msg(char *str) 641void rtas_os_term(char *str)
642{
643 snprintf(rtas_os_term_buf, 2048, "OS panic: %s", str);
644}
645
646void rtas_os_term(void)
647{ 642{
648 int status; 643 int status;
649 644
645 if (panic_timeout)
646 return;
647
650 if (RTAS_UNKNOWN_SERVICE == rtas_token("ibm,os-term")) 648 if (RTAS_UNKNOWN_SERVICE == rtas_token("ibm,os-term"))
651 return; 649 return;
652 650
651 snprintf(rtas_os_term_buf, 2048, "OS panic: %s", str);
652
653 do { 653 do {
654 status = rtas_call(rtas_token("ibm,os-term"), 1, 1, NULL, 654 status = rtas_call(rtas_token("ibm,os-term"), 1, 1, NULL,
655 __pa(rtas_os_term_buf)); 655 __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) {
507 .restart = rtas_restart, 507 .restart = rtas_restart,
508 .power_off = pSeries_power_off, 508 .power_off = pSeries_power_off,
509 .halt = rtas_halt, 509 .halt = rtas_halt,
510 .panic = rtas_panic_msg, 510 .panic = rtas_os_term,
511 .machine_shutdown = rtas_os_term,
512 .get_boot_time = rtas_get_boot_time, 511 .get_boot_time = rtas_get_boot_time,
513 .get_rtc_time = rtas_get_rtc_time, 512 .get_rtc_time = rtas_get_rtc_time,
514 .set_rtc_time = rtas_set_rtc_time, 513 .set_rtc_time = rtas_set_rtc_time,