lkml.org 
[lkml]   [2019]   [Dec]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.4 168/177] firmware: qcom: scm: Ensure a0 status code is treated as signed
    Date
    From: Will Deacon <will@kernel.org>

    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 | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/drivers/firmware/qcom_scm-64.c
    +++ b/drivers/firmware/qcom_scm-64.c
    @@ -150,7 +150,7 @@ static int qcom_scm_call(struct device *
    kfree(args_virt);
    }

    - if (res->a0 < 0)
    + if ((long)res->a0 < 0)
    return qcom_scm_remap_error(res->a0);

    return 0;

    \
     
     \ /
      Last update: 2019-12-16 19:22    [W:3.221 / U:0.204 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site