# git rev-parse -q --verify 90a9b102eddf6a3f987d15f4454e26a2532c1c98^{commit} 90a9b102eddf6a3f987d15f4454e26a2532c1c98 already have revision, skipping fetch # git checkout -q -f -B kisskb 90a9b102eddf6a3f987d15f4454e26a2532c1c98 # git clean -qxdf # < git log -1 # commit 90a9b102eddf6a3f987d15f4454e26a2532c1c98 # Author: Vasant Hegde # Date: Thu Aug 20 11:48:44 2020 +0530 # # powerpc/pseries: Do not initiate shutdown when system is running on UPS # # As per PAPR we have to look for both EPOW sensor value and event # modifier to identify the type of event and take appropriate action. # # In LoPAPR v1.1 section 10.2.2 includes table 136 "EPOW Action Codes": # # SYSTEM_SHUTDOWN 3 # # The system must be shut down. An EPOW-aware OS logs the EPOW error # log information, then schedules the system to be shut down to begin # after an OS defined delay internal (default is 10 minutes.) # # Then in section 10.3.2.2.8 there is table 146 "Platform Event Log # Format, Version 6, EPOW Section", which includes the "EPOW Event # Modifier": # # For EPOW sensor value = 3 # 0x01 = Normal system shutdown with no additional delay # 0x02 = Loss of utility power, system is running on UPS/Battery # 0x03 = Loss of system critical functions, system should be shutdown # 0x04 = Ambient temperature too high # All other values = reserved # # We have a user space tool (rtas_errd) on LPAR to monitor for # EPOW_SHUTDOWN_ON_UPS. Once it gets an event it initiates shutdown # after predefined time. It also starts monitoring for any new EPOW # events. If it receives "Power restored" event before predefined time # it will cancel the shutdown. Otherwise after predefined time it will # shutdown the system. # # Commit 79872e35469b ("powerpc/pseries: All events of # EPOW_SYSTEM_SHUTDOWN must initiate shutdown") changed our handling of # the "on UPS/Battery" case, to immediately shutdown the system. This # breaks existing setups that rely on the userspace tool to delay # shutdown and let the system run on the UPS. # # Fixes: 79872e35469b ("powerpc/pseries: All events of EPOW_SYSTEM_SHUTDOWN must initiate shutdown") # Cc: stable@vger.kernel.org # v4.0+ # Signed-off-by: Vasant Hegde # [mpe: Massage change log and add PAPR references] # Signed-off-by: Michael Ellerman # Link: https://lore.kernel.org/r/20200820061844.306460-1-hegdevasant@linux.vnet.ibm.com # < /opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux-ld --version # < git log --format=%s --max-count=1 90a9b102eddf6a3f987d15f4454e26a2532c1c98 # < make -s -j 80 ARCH=powerpc O=/kisskb/build/powerpc-fixes_44x_iss476-smp_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- 44x/iss476-smp_defconfig WARNING: unmet direct dependencies detected for HOTPLUG_CPU Depends on [n]: SMP [=y] && (PPC_PSERIES [=n] || PPC_PMAC [=n] || PPC_POWERNV [=n] || FSL_SOC_BOOKE [=n]) Selected by [y]: - PM_SLEEP_SMP [=y] && SMP [=y] && (ARCH_SUSPEND_POSSIBLE [=y] || ARCH_HIBERNATION_POSSIBLE [=y]) && PM_SLEEP [=y] WARNING: unmet direct dependencies detected for HOTPLUG_CPU Depends on [n]: SMP [=y] && (PPC_PSERIES [=n] || PPC_PMAC [=n] || PPC_POWERNV [=n] || FSL_SOC_BOOKE [=n]) Selected by [y]: - PM_SLEEP_SMP [=y] && SMP [=y] && (ARCH_SUSPEND_POSSIBLE [=y] || ARCH_HIBERNATION_POSSIBLE [=y]) && PM_SLEEP [=y] # < make -s -j 80 ARCH=powerpc O=/kisskb/build/powerpc-fixes_44x_iss476-smp_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- help # make -s -j 80 ARCH=powerpc O=/kisskb/build/powerpc-fixes_44x_iss476-smp_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- olddefconfig WARNING: unmet direct dependencies detected for HOTPLUG_CPU Depends on [n]: SMP [=y] && (PPC_PSERIES [=n] || PPC_PMAC [=n] || PPC_POWERNV [=n] || FSL_SOC_BOOKE [=n]) Selected by [y]: - PM_SLEEP_SMP [=y] && SMP [=y] && (ARCH_SUSPEND_POSSIBLE [=y] || ARCH_HIBERNATION_POSSIBLE [=y]) && PM_SLEEP [=y] WARNING: unmet direct dependencies detected for HOTPLUG_CPU Depends on [n]: SMP [=y] && (PPC_PSERIES [=n] || PPC_PMAC [=n] || PPC_POWERNV [=n] || FSL_SOC_BOOKE [=n]) Selected by [y]: - PM_SLEEP_SMP [=y] && SMP [=y] && (ARCH_SUSPEND_POSSIBLE [=y] || ARCH_HIBERNATION_POSSIBLE [=y]) && PM_SLEEP [=y] # make -s -j 80 ARCH=powerpc O=/kisskb/build/powerpc-fixes_44x_iss476-smp_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- INFO: Uncompressed kernel (size 0x6830bc) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0x700000) INFO: Uncompressed kernel (size 0x6830bc) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0x700000) Completed OK # rm -rf /kisskb/build/powerpc-fixes_44x_iss476-smp_defconfig_powerpc-gcc5 # Build took: 0:00:59.703840