Re: [bug report] firmware: qcom_scm: Make __qcom_scm_is_call_available() return bool

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Quoting Guru Das Srinagesh (2021-10-11 11:40:22)
> On Mon, Oct 11, 2021 at 12:20:54PM +0300, Dan Carpenter wrote:
> > Hello Stephen Boyd,
> >
> > The patch 9d11af8b06a8: "firmware: qcom_scm: Make
> > __qcom_scm_is_call_available() return bool" from Feb 23, 2021, leads
> > to the following Smatch static checker warning:
> >
> >       drivers/firmware/qcom_scm.c:255 __qcom_scm_is_call_available()
> >       warn: signedness bug returning '(-22)'
> >
> > drivers/firmware/qcom_scm.c
> >     232 static bool __qcom_scm_is_call_available(struct device *dev, u32 svc_id,
> >     233                                          u32 cmd_id)
> >     234 {
> >     235         int ret;
> >     236         struct qcom_scm_desc desc = {
> >     237                 .svc = QCOM_SCM_SVC_INFO,
> >     238                 .cmd = QCOM_SCM_INFO_IS_CALL_AVAIL,
> >     239                 .owner = ARM_SMCCC_OWNER_SIP,
> >     240         };
> >     241         struct qcom_scm_res res;
> >     242
> >     243         desc.arginfo = QCOM_SCM_ARGS(1);
> >     244         switch (__get_convention()) {
> >     245         case SMC_CONVENTION_ARM_32:
> >     246         case SMC_CONVENTION_ARM_64:
> >     247                 desc.args[0] = SCM_SMC_FNID(svc_id, cmd_id) |
> >     248                                 (ARM_SMCCC_OWNER_SIP << ARM_SMCCC_OWNER_SHIFT);
> >     249                 break;
> >     250         case SMC_CONVENTION_LEGACY:
> >     251                 desc.args[0] = SCM_LEGACY_FNID(svc_id, cmd_id);
> >     252                 break;
> >     253         default:
> >     254                 pr_err("Unknown SMC convention being used\n");
> > --> 255                 return -EINVAL;
> >
> > Presumably this should be "return false;"?
> >
> >     256         }
> >     257
> >     258         ret = qcom_scm_call(dev, &desc, &res);
> >     259
> >     260         return ret ? false : !!res.result[0];
> >     261 }
> >
> > regards,
> > dan carpenter
>
> Hi Dan, Stephen,
>
> Please find the fix below:
>
>
> From 8bbdb1517c3f58b6b29d0915424b9b0e03752e14 Mon Sep 17 00:00:00 2001
> From: Guru Das Srinagesh <quic_gurus@xxxxxxxxxxx>
> Date: Mon, 11 Oct 2021 11:18:06 -0700
> Subject: [PATCH] firmware: qcom_scm: Fix error retval in
>  __qcom_scm_is_call_available()
>
> Since __qcom_scm_is_call_available() returns bool, have it return false
> instead of -EINVAL if an invalid SMC convention is detected.
>
> This fixes the Smatch static checker warning:
>
>         drivers/firmware/qcom_scm.c:255 __qcom_scm_is_call_available()
>         warn: signedness bug returning '(-22)'
>
> Fixes: 9d11af8b06a8 ("firmware: qcom_scm: Make __qcom_scm_is_call_available() return bool")
> Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
> Signed-off-by: Guru Das Srinagesh <quic_gurus@xxxxxxxxxxx>
> ---

Resend as a proper patch?

Reviewed-by: Stephen Boyd <swboyd@xxxxxxxxxxxx>



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux