public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
* [PATCH] firmware: psci: Fix return value from psci_system_suspend()
@ 2023-11-13 15:34 Sudeep Holla
  2024-01-08 19:53 ` Sudeep Holla
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Sudeep Holla @ 2023-11-13 15:34 UTC (permalink / raw)
  To: linux-arm-kernel; +Cc: Sudeep Holla, Mark Rutland, Lorenzo Pieralisi

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().

Fixes: faf7ec4a92c0 ("drivers: firmware: psci: add system suspend support")
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
---
 drivers/firmware/psci/psci.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Hi,

For some reason, this has gone unnoticed for years. I bumped into this when
I was trying to test suspend on FVP which claims to support but returns error
when called. The error was getting not communicated properly(incorrect
error code) before this patch.

Regards,
Sudeep

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)
--
2.42.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2024-06-17 10:40 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-11-13 15:34 [PATCH] firmware: psci: Fix return value from psci_system_suspend() Sudeep Holla
2024-01-08 19:53 ` Sudeep Holla
2024-01-09  9:48 ` Mark Rutland
2024-06-17 10:12 ` Sudeep Holla
2024-06-17 10:40   ` Mark Rutland

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox