firmware: arm_scmi: Fix return error code in smc_send_message
authorSudeep Holla <sudeep.holla@arm.com>
Fri, 17 Apr 2020 10:32:32 +0000 (11:32 +0100)
committerSudeep Holla <sudeep.holla@arm.com>
Mon, 20 Apr 2020 16:57:34 +0000 (17:57 +0100)
SMCCC can return NOT_SUPPORTED(-1). Map it to appropriate Linux error
codes namely -EOPNOTSUPP.

Link: https://lore.kernel.org/r/20200417103232.6896-1-sudeep.holla@arm.com
Reported-and-Tested-by:: Etienne Carriere <etienne.carriere@linaro.org>
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
drivers/firmware/arm_scmi/smc.c

index 833e793b53913d895abf33b878cab770843f89a9..49bc4b0e8428511fa030176f60fb51911f396a60 100644 (file)
@@ -114,7 +114,10 @@ static int smc_send_message(struct scmi_chan_info *cinfo,
 
        mutex_unlock(&scmi_info->shmem_lock);
 
-       return res.a0;
+       /* Only SMCCC_RET_NOT_SUPPORTED is valid error code */
+       if (res.a0)
+               return -EOPNOTSUPP;
+       return 0;
 }
 
 static void smc_fetch_response(struct scmi_chan_info *cinfo,