- patches.arch/x86_mce_intel_decode_physical_address.patch:
[linux-flexiantxendom0-3.2.10.git] / arch / powerpc / kernel / rtas.c
index 7436784..0e1ec6f 100644 (file)
@@ -691,10 +691,14 @@ void rtas_os_term(char *str)
 {
        int status;
 
-       if (panic_timeout)
-               return;
-
-       if (RTAS_UNKNOWN_SERVICE == rtas_token("ibm,os-term"))
+       /*
+        * Firmware with the ibm,extended-os-term property is guaranteed
+        * to always return from an ibm,os-term call. Earlier versions without
+        * this property may terminate the partition which we want to avoid
+        * since it interferes with panic_timeout.
+        */
+       if (RTAS_UNKNOWN_SERVICE == rtas_token("ibm,os-term") ||
+           RTAS_UNKNOWN_SERVICE == rtas_token("ibm,extended-os-term"))
                return;
 
        snprintf(rtas_os_term_buf, 2048, "OS panic: %s", str);
@@ -705,8 +709,7 @@ void rtas_os_term(char *str)
        } while (rtas_busy_delay(status));
 
        if (status != 0)
-               printk(KERN_EMERG "ibm,os-term call failed %d\n",
-                              status);
+               printk(KERN_EMERG "ibm,os-term call failed %d\n", status);
 }
 
 static int ibm_suspend_me_token = RTAS_UNKNOWN_SERVICE;