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> --- drivers/firmware/qcom_scm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/firmware/qcom_scm.c b/drivers/firmware/qcom_scm.c index 2ee97ba..27a64de 100644 --- a/drivers/firmware/qcom_scm.c +++ b/drivers/firmware/qcom_scm.c @@ -252,7 +252,7 @@ static bool __qcom_scm_is_call_available(struct device *dev, u32 svc_id, break; default: pr_err("Unknown SMC convention being used\n"); - return -EINVAL; + return false; } ret = qcom_scm_call(dev, &desc, &res); -- 2.7.4 Thank you. Guru Das.