浏览代码

powerpc/pseries: All events of EPOW_SYSTEM_SHUTDOWN must initiate shutdown

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>
Anshuman Khandual 11 年之前
父节点
当前提交
79872e3546
共有 1 个文件被更改,包括 2 次插入0 次删除
  1. 2 0
      arch/powerpc/platforms/pseries/ras.c

+ 2 - 0
arch/powerpc/platforms/pseries/ras.c

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