powerpc/pseries: All events of EPOW_SYSTEM_SHUTDOWN must initiate shutdown
authorAnshuman Khandual <khandual@linux.vnet.ibm.com>
Tue, 21 Oct 2014 08:11:29 +0000 (13:41 +0530)
committerMichael Ellerman <mpe@ellerman.id.au>
Fri, 23 Jan 2015 00:17:30 +0000 (11:17 +1100)
The current handling of EPOW_SHUTDOWN_ON_UPS event does not shutdown the
system after logging the message. All the events of EPOW_SYSTEM_SHUTDOWN
action code (EPOW_SHUTDOWN_ON_UPS is a part of it) must initiate system
shutdown as per the SPAPR spec. If the LPAR does not shutdown after
receiving this rtas based event, it will expose itself to a forced
abrupt shutdown initiated by the platform firmware. This patch fixes the
situation.

Signed-off-by: Anshuman Khandual <khandual@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/platforms/pseries/ras.c

index c3b2a7e81ddb29b23af221fc0defa39c20730e27..02e4a17455164d6faf5f983fde85b44bcc04008a 100644 (file)
@@ -89,6 +89,8 @@ static void handle_system_shutdown(char event_modifier)
        case EPOW_SHUTDOWN_ON_UPS:
                pr_emerg("Loss of power reported by firmware, system is "
                        "running on UPS/battery");
+               pr_emerg("Check RTAS error log for details");
+               orderly_poweroff(true);
                break;
 
        case EPOW_SHUTDOWN_LOSS_OF_CRITICAL_FUNCTIONS: