* [bug report] firmware: qcom_scm: Make __qcom_scm_is_call_available() return bool @ 2021-10-11 9:20 Dan Carpenter 2021-10-11 18:40 ` Guru Das Srinagesh 0 siblings, 1 reply; 4+ messages in thread From: Dan Carpenter @ 2021-10-11 9:20 UTC (permalink / raw) To: swboyd; +Cc: linux-arm-msm 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 ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [bug report] firmware: qcom_scm: Make __qcom_scm_is_call_available() return bool 2021-10-11 9:20 [bug report] firmware: qcom_scm: Make __qcom_scm_is_call_available() return bool Dan Carpenter @ 2021-10-11 18:40 ` Guru Das Srinagesh 2021-10-11 19:06 ` Stephen Boyd 0 siblings, 1 reply; 4+ messages in thread From: Guru Das Srinagesh @ 2021-10-11 18:40 UTC (permalink / raw) To: Dan Carpenter; +Cc: swboyd, linux-arm-msm 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@quicinc.com> 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@oracle.com> Signed-off-by: Guru Das Srinagesh <quic_gurus@quicinc.com> --- 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. ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [bug report] firmware: qcom_scm: Make __qcom_scm_is_call_available() return bool 2021-10-11 18:40 ` Guru Das Srinagesh @ 2021-10-11 19:06 ` Stephen Boyd 2021-10-11 20:10 ` Guru Das Srinagesh 0 siblings, 1 reply; 4+ messages in thread From: Stephen Boyd @ 2021-10-11 19:06 UTC (permalink / raw) To: Dan Carpenter, Guru Das Srinagesh; +Cc: linux-arm-msm 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@quicinc.com> > 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@oracle.com> > Signed-off-by: Guru Das Srinagesh <quic_gurus@quicinc.com> > --- Resend as a proper patch? Reviewed-by: Stephen Boyd <swboyd@chromium.org> ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [bug report] firmware: qcom_scm: Make __qcom_scm_is_call_available() return bool 2021-10-11 19:06 ` Stephen Boyd @ 2021-10-11 20:10 ` Guru Das Srinagesh 0 siblings, 0 replies; 4+ messages in thread From: Guru Das Srinagesh @ 2021-10-11 20:10 UTC (permalink / raw) To: Stephen Boyd; +Cc: Dan Carpenter, linux-arm-msm On Mon, Oct 11, 2021 at 12:06:13PM -0700, Stephen Boyd wrote: > Resend as a proper patch? > > Reviewed-by: Stephen Boyd <swboyd@chromium.org> Done: https://lore.kernel.org/lkml/1633982414-28347-1-git-send-email-quic_gurus@quicinc.com/ Thank you. Guru Das. ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2021-10-11 20:10 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-10-11 9:20 [bug report] firmware: qcom_scm: Make __qcom_scm_is_call_available() return bool Dan Carpenter 2021-10-11 18:40 ` Guru Das Srinagesh 2021-10-11 19:06 ` Stephen Boyd 2021-10-11 20:10 ` Guru Das Srinagesh
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).