From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 81114C67871 for ; Tue, 17 Jan 2023 10:44:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID:Subject:Cc:To: From:Date:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=Wp/ufY78UCmixKUXVaIm8osdWE5Np/KX7yg2u0aCNA4=; b=hhYvc+kszhO+sE aR5BglxONO5TbqaDZ1RAGgIrY75/MQehFSJKjAvnuCclk6l0EAcjFo5YTGGEUYhLLT+DKFUogJKd0 7JGQCryKMpCsdREJ0/X6mLjQ10Gi5YiGOwx7z2fB1M03RoF8LaUWEGyoC2MqbnQrJS0RG93MyD73L gdd+ELW8aEATPtW/YoqACbjt2W9SODZHwIfoInGPaBIn+Iz0OJLTlaM86yDfWc9B45mwTn3Ym9ckn Sn8Pp0/jrXCNP1bgHw0KxYgr/mVJ9R7jICd6LaS0RDuF3Wa+h17CEn6FgwEYHTw6dqo1lCrhnH8cV SE27+09Lt+EUobv3lvxQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pHjRY-00Dp5p-Ok; Tue, 17 Jan 2023 10:43:52 +0000 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pHjRW-00Dp4z-1x for linux-arm-kernel@lists.infradead.org; Tue, 17 Jan 2023 10:43:51 +0000 Received: by mail-wm1-x331.google.com with SMTP id h12-20020a05600c314c00b003da50afcb33so5526220wmo.4 for ; Tue, 17 Jan 2023 02:43:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-disposition:mime-version:message-id:subject:cc:to:from:date :from:to:cc:subject:date:message-id:reply-to; bh=AgN1yrJaIoqBntJO7wfOXmpt6YshNzz+TBb7e99rgZ0=; b=RGiosOwz2g9tQHWPDKWYaP8A8HqXvivFFstZt+gU+mXYiaVpPPuJKtc0GIwDFcY0oH kk2xkzo8/3x4deXjdSTpBWgW84vijGredVJyVXQvXf99bFnRvzUlV8SSXpY3+s2Qku+v 77rXtrMO+ZhdLF13hNnRZkT+Em2gWDpSuFrfRQBeDAigvRISOcS4EMCdPSb7vOTwFn4h VKNsR1aQA9Kc67xsypzO1K0WldoQW3MeR34AIcVf1LrPl2gNa2vWoJBDfri3DBKWG6sx Ns/4MOA0xoAzNNLmLIInKpfCSKOPELm1FLDdtgDlY0aehH1AAtRelohDhSsxyUhK8Dob R5+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-disposition:mime-version:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=AgN1yrJaIoqBntJO7wfOXmpt6YshNzz+TBb7e99rgZ0=; b=VBq72dl3RmZYL2YMcLHzeLJeJjlHfqpqWfkYHbZLxAUdChbfrUAiG49cG2K6INPfJx yOIT3QMrn5dgd0aRDly+CQTTgI2/D2ygF+y6Bwmr2KnSMW0CmWvuV5X9gO5Tp0k88IXa NiO8YEJS7Nkg9pMee4vxUF6h4tVpSK5q7rczRQf0rLx++j0S+LF57kT2TO0eZeGrFaie yxaqaZGf3Gk7JYj4+Cfsxv0HYNPmJuZvk1YKnPBdlOrmKfemAWywBRlXdMJ53fN4e0gP RIxcM0MeYEpG5PQNqjPT71l/9KN5VQ8n9hb/YXXEm6RPC6rlkb+fuMimdna7vz4KFKT3 cfCQ== X-Gm-Message-State: AFqh2kqBugLHFlkl0+cAfQNsGGJv7MsrEDrpd6aH+ZWVx97HWofQFBzE Mu2wzBWkP8tjpcpHNYRtssY= X-Google-Smtp-Source: AMrXdXvqWKq89XTJPOlj87qEKcxpqdlL3q9joZygP+e8B5DxZDROOpP7JVDjuCPBlJa3cgTU199tww== X-Received: by 2002:a05:600c:510d:b0:3da:f719:50cd with SMTP id o13-20020a05600c510d00b003daf71950cdmr2516731wms.18.1673952228577; Tue, 17 Jan 2023 02:43:48 -0800 (PST) Received: from localhost ([102.36.222.112]) by smtp.gmail.com with ESMTPSA id p10-20020a1c544a000000b003db0647645fsm1826707wmi.48.2023.01.17.02.43.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Jan 2023 02:43:48 -0800 (PST) Date: Tue, 17 Jan 2023 13:43:44 +0300 From: Dan Carpenter To: cristian.marussi@arm.com Cc: linux-arm-kernel@lists.infradead.org, Matthew Wilcox Subject: [bug report] firmware: arm_scmi: Add per-channel Raw injection support Message-ID: MIME-Version: 1.0 Content-Disposition: inline X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230117_024350_122458_2CDF0CB5 X-CRM114-Status: GOOD ( 11.00 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hello Cristian Marussi, The patch 0ae95d6e8b75: "firmware: arm_scmi: Add per-channel Raw injection support" from Jan 13, 2023, leads to the following Smatch static checker warning: drivers/firmware/arm_scmi/raw_mode.c:1115 scmi_raw_mode_setup() warn: 'q' is an error pointer or valid drivers/firmware/arm_scmi/raw_mode.c 1087 static int scmi_raw_mode_setup(struct scmi_raw_mode_info *raw, 1088 u8 *channels, int num_chans) 1089 { 1090 int ret, idx; 1091 void *gid; 1092 struct device *dev = raw->handle->dev; 1093 1094 gid = devres_open_group(dev, NULL, GFP_KERNEL); 1095 if (!gid) 1096 return -ENOMEM; 1097 1098 for (idx = 0; idx < SCMI_RAW_MAX_QUEUE; idx++) { 1099 raw->q[idx] = scmi_raw_queue_init(raw); 1100 if (IS_ERR(raw->q[idx])) { 1101 ret = PTR_ERR(raw->q[idx]); 1102 goto err; 1103 } 1104 } 1105 1106 if (num_chans > 1) { 1107 int i; 1108 1109 idr_init(&raw->queues_idr); 1110 1111 for (i = 0; i < num_chans; i++) { 1112 struct scmi_raw_queue *q; 1113 1114 q = scmi_raw_queue_init(raw); --> 1115 if (!q) 1116 continue; This should be something like: if (IS_ERR(q)) { ret = PTR_ERR(q); goto err; } 1117 1118 ret = idr_alloc(&raw->queues_idr, q, 1119 channels[i], channels[i] + 1, 1120 GFP_KERNEL); 1121 if (ret != channels[i]) 1122 dev_err(dev, 1123 "Fail to allocate Raw queue 0x%02X\n", 1124 channels[i]); Heh. I've never seen anyone use an IDR range of one value before... Just printing an error is not correct error handling. I think these IDR values have to be freed on the error path? Or is there a devm_ trick happening here? 1125 } 1126 } 1127 1128 ret = scmi_xfer_raw_worker_init(raw); 1129 if (ret) 1130 goto err; 1131 1132 devres_close_group(dev, gid); 1133 raw->gid = gid; 1134 1135 return 0; 1136 1137 err: 1138 devres_release_group(dev, gid); 1139 return ret; 1140 } regards, dan carpenter _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel