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