Message ID | 20240515095528.1949992-1-sudeep.holla@arm.com (mailing list archive) |
---|---|
State | Accepted |
Commit | e7c3696d4692e8046d25f6e63f983e934e12f2c5 |
Headers | show |
Series | [RESEND] firmware: psci: Fix return value from psci_system_suspend() | expand |
Hello: This patch was applied to soc/soc.git (arm/fixes) by Arnd Bergmann <arnd@arndb.de>: On Wed, 15 May 2024 10:55:28 +0100 you wrote: > Currently we return the value from invoke_psci_fn() directly as return > value from psci_system_suspend(). It is wrong to send the PSCI interface > return value directly. psci_to_linux_errno() provide the mapping from > PSCI return value to the one that can be returned to the callers within > the kernel. > > Use psci_to_linux_errno() to convert and return the correct value from > psci_system_suspend(). > > [...] Here is the summary with links: - [RESEND] firmware: psci: Fix return value from psci_system_suspend() https://git.kernel.org/soc/soc/c/e7c3696d4692 You are awesome, thank you!
diff --git a/drivers/firmware/psci/psci.c b/drivers/firmware/psci/psci.c index d9629ff87861..2328ca58bba6 100644 --- a/drivers/firmware/psci/psci.c +++ b/drivers/firmware/psci/psci.c @@ -497,10 +497,12 @@ int psci_cpu_suspend_enter(u32 state) static int psci_system_suspend(unsigned long unused) { + int err; phys_addr_t pa_cpu_resume = __pa_symbol(cpu_resume); - return invoke_psci_fn(PSCI_FN_NATIVE(1_0, SYSTEM_SUSPEND), + err = invoke_psci_fn(PSCI_FN_NATIVE(1_0, SYSTEM_SUSPEND), pa_cpu_resume, 0, 0); + return psci_to_linux_errno(err); } static int psci_system_suspend_enter(suspend_state_t state)