firmware: qcom: scm: Ensure 'a0' status code is treated as signed
authorWill Deacon <will@kernel.org>
Mon, 4 Nov 2019 15:58:15 +0000 (15:58 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 21 Dec 2019 09:42:17 +0000 (10:42 +0100)
commit522b47901dda436019347a659d1a81e8bd2a38ad
tree68e429f3fb7c53918f06542b014825cfb0ce0a30
parent0243d180952f3da4f8153098e233e9d6ee2968ec
firmware: qcom: scm: Ensure 'a0' status code is treated as signed

commit ff34f3cce278a0982a7b66b1afaed6295141b1fc upstream.

The 'a0' member of 'struct arm_smccc_res' is declared as 'unsigned long',
however the Qualcomm SCM firmware interface driver expects to receive
negative error codes via this field, so ensure that it's cast to 'long'
before comparing to see if it is less than 0.

Cc: <stable@vger.kernel.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/firmware/qcom_scm-64.c