drivers: firmware: psci: add INVALID_ADDRESS return value
authorLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Fri, 22 May 2015 13:31:37 +0000 (14:31 +0100)
committerLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Fri, 2 Oct 2015 13:35:16 +0000 (14:35 +0100)
PSCI 1.0 introduces the INVALID_ADDRESS return value for functions
that take an address as input parameter (eg CPU_SUSPEND).

This patch adds INVALID_ADDRESS return value to kernel code and
updates the PSCI to linux error conversion to take it into account.

The kernel error value associated to INVALID_ADDRESS is set to
the error returned when the PSCI error code is INVALID_PARAMETERS
to comply with current call sites expected return value, given
that the kernel at present has no use for the additional error
information reported.

Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Acked-by: Sudeep Holla <sudeep.holla@arm.com>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Tested-by: Jisheng Zhang <jszhang@marvell.com>
drivers/firmware/psci.c
include/uapi/linux/psci.h

index 42700f0..0821e33 100644 (file)
@@ -78,6 +78,7 @@ static int psci_to_linux_errno(int errno)
        case PSCI_RET_NOT_SUPPORTED:
                return -EOPNOTSUPP;
        case PSCI_RET_INVALID_PARAMS:
+       case PSCI_RET_INVALID_ADDRESS:
                return -EINVAL;
        case PSCI_RET_DENIED:
                return -EPERM;
index 310d83e..64469e6 100644 (file)
@@ -86,5 +86,6 @@
 #define PSCI_RET_INTERNAL_FAILURE              -6
 #define PSCI_RET_NOT_PRESENT                   -7
 #define PSCI_RET_DISABLED                      -8
+#define PSCI_RET_INVALID_ADDRESS               -9
 
 #endif /* _UAPI_LINUX_PSCI_H */