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>