From nobody Wed Apr 15 19:30:48 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 95472C4321E for ; Thu, 17 Nov 2022 21:12:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233563AbiKQVMH (ORCPT ); Thu, 17 Nov 2022 16:12:07 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56946 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240736AbiKQVL5 (ORCPT ); Thu, 17 Nov 2022 16:11:57 -0500 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7C7DE22283 for ; Thu, 17 Nov 2022 13:11:56 -0800 (PST) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ovmAp-0007On-Uh; Thu, 17 Nov 2022 22:11:52 +0100 Received: from [2a0a:edc0:0:900:1d::77] (helo=ptz.office.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1ovmAo-004v5m-6M; Thu, 17 Nov 2022 22:11:51 +0100 Received: from ukl by ptz.office.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ovmAo-00HN0F-Dh; Thu, 17 Nov 2022 22:11:50 +0100 From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= To: Thierry Reding Cc: linux-pwm@vger.kernel.org, Andy Shevchenko , linux-kernel@vger.kernel.org, kernel@pengutronix.de Subject: [PATCH v2 1/4] pwm: Document variables protected by pwm_lock Date: Thu, 17 Nov 2022 22:11:40 +0100 Message-Id: <20221117211143.3817381-2-u.kleine-koenig@pengutronix.de> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221117211143.3817381-1-u.kleine-koenig@pengutronix.de> References: <20221117211143.3817381-1-u.kleine-koenig@pengutronix.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Developer-Signature: v=1; a=openpgp-sha256; l=1336; i=u.kleine-koenig@pengutronix.de; h=from:subject; bh=gVppIEf/lpbSlfN4FOCkWayRJhongp4knJTqk4NtP9Q=; b=owEBbQGS/pANAwAKAcH8FHityuwJAcsmYgBjdqN+8HG4Bay2je5Xh/cc1bSrfdvdcwF88fPwunKV FGDfVEKJATMEAAEKAB0WIQR+cioWkBis/z50pAvB/BR4rcrsCQUCY3ajfgAKCRDB/BR4rcrsCZV5B/ 9+W4jlFDJayYkJPKxcszuItsiylo7wpidxU8YNXE9cYbwpw9aXu/eJ8gOOAjfs5i6/+QoofiLTTGkt 5CYqgvRLMpgvNir2eQKwgkINkJIvlzJQUzmnTTFJeTbpgi/RgfHDUszIXPQyEbgCXAXMDgiLo4UUBr c5kcgAICd0yyNvgELU6yXEzSvrUTNx3AXKzIhCl+Xsd81KTD/thUy6CqvlVYwEN3AAdlMs37u1lwkU cbsGobvw+yqbpoVuZ3+RHpOEZuyx+vjQ5VBsWSbLoKiFlxngfmULjIYCVWHfXVTBaLcl3ygzE/Y5ja Ieu0+bMI2x6YndkGlNKIHmqZPv+XNh X-Developer-Key: i=u.kleine-koenig@pengutronix.de; a=openpgp; fpr=0D2511F322BFAB1C1580266BE2DCDD9132669BD6 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ukl@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org To simplify validation of the used locking, document for the global pwm mutex what it actually protects against concurrent access. Also note for two functions modifying these that pwm_lock is held by the caller. Reviewed-by: Andy Shevchenko Signed-off-by: Uwe Kleine-K=C3=B6nig --- drivers/pwm/core.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/pwm/core.c b/drivers/pwm/core.c index d333e7422f4a..ebe06efe9de5 100644 --- a/drivers/pwm/core.c +++ b/drivers/pwm/core.c @@ -27,7 +27,10 @@ =20 static DEFINE_MUTEX(pwm_lookup_lock); static LIST_HEAD(pwm_lookup_list); + +/* protects access to pwm_chips, allocated_pwms, and pwm_tree */ static DEFINE_MUTEX(pwm_lock); + static LIST_HEAD(pwm_chips); static DECLARE_BITMAP(allocated_pwms, MAX_PWMS); static RADIX_TREE(pwm_tree, GFP_KERNEL); @@ -37,6 +40,7 @@ static struct pwm_device *pwm_to_device(unsigned int pwm) return radix_tree_lookup(&pwm_tree, pwm); } =20 +/* Called with pwm_lock held */ static int alloc_pwms(unsigned int count) { unsigned int start; @@ -50,6 +54,7 @@ static int alloc_pwms(unsigned int count) return start; } =20 +/* Called with pwm_lock held */ static void free_pwms(struct pwm_chip *chip) { unsigned int i; --=20 2.38.1 From nobody Wed Apr 15 19:30:48 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0878FC4332F for ; Thu, 17 Nov 2022 21:12:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240772AbiKQVMM (ORCPT ); Thu, 17 Nov 2022 16:12:12 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56964 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240721AbiKQVL5 (ORCPT ); Thu, 17 Nov 2022 16:11:57 -0500 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 551C620182 for ; Thu, 17 Nov 2022 13:11:56 -0800 (PST) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ovmAp-0007Oo-Uf; Thu, 17 Nov 2022 22:11:51 +0100 Received: from [2a0a:edc0:0:900:1d::77] (helo=ptz.office.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1ovmAo-004v5p-80; Thu, 17 Nov 2022 22:11:51 +0100 Received: from ukl by ptz.office.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ovmAo-00HN0I-Km; Thu, 17 Nov 2022 22:11:50 +0100 From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= To: Thierry Reding Cc: linux-pwm@vger.kernel.org, Andy Shevchenko , linux-kernel@vger.kernel.org, kernel@pengutronix.de Subject: [PATCH v2 2/4] pwm: Reduce time the pwm_lock mutex is held in pwmchip_add() Date: Thu, 17 Nov 2022 22:11:41 +0100 Message-Id: <20221117211143.3817381-3-u.kleine-koenig@pengutronix.de> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221117211143.3817381-1-u.kleine-koenig@pengutronix.de> References: <20221117211143.3817381-1-u.kleine-koenig@pengutronix.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Developer-Signature: v=1; a=openpgp-sha256; l=1801; i=u.kleine-koenig@pengutronix.de; h=from:subject; bh=W5msw8zxagwiJj6hJi4SU67DWQ0AjhZfTFm/qYmXeAw=; b=owEBbQGS/pANAwAKAcH8FHityuwJAcsmYgBjdqOBYckSnoEgissL+BaN7xiZzh9ivhj1/pMXWrvx 7N8xgGaJATMEAAEKAB0WIQR+cioWkBis/z50pAvB/BR4rcrsCQUCY3ajgQAKCRDB/BR4rcrsCXo5B/ 0dktt/af+nBKYFHSIzUWzlrkfNaF39SwKZymqqNFesWnRgx5Bme1h08zFbNC/AiGiSHNoO0ZLUqWvD wSwuRbHHcanZJzaITHzqoKV1LB0HQP5+czqi39f1uyXmDd7zzNf7MVPsHU9KSBRv+VJeq1Nf2OCelT Dp5XHO6a1Eq/oLfVtkOu1Fejl47Hn9yUjFgjYDYcx9g4r8Fl11kzajFwA3A4/1hIXbe6qXg3U7n9QO atAsT6jYdTRua1p3eY7s/nsD6RbMruUuhkUMlYhlfwJ2b1ejYAgK83zp47LjivQN617DWai9oolwqz e+0PtbpKksP+vwSwf6Tu25N2pAWeyO X-Developer-Key: i=u.kleine-koenig@pengutronix.de; a=openpgp; fpr=0D2511F322BFAB1C1580266BE2DCDD9132669BD6 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ukl@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This simplifies error handling as the need for goto error handling goes away and at the end of the function the code can be simplified as this code isn't used in the error case any more. Now memory allocation and the call to of_pwmchip_add() are done without holding the lock. Both don't access the data structures protected by &pwm_lock. Reviewed-by: Andy Shevchenko Signed-off-by: Uwe Kleine-K=C3=B6nig --- drivers/pwm/core.c | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/drivers/pwm/core.c b/drivers/pwm/core.c index ebe06efe9de5..2338119a09d8 100644 --- a/drivers/pwm/core.c +++ b/drivers/pwm/core.c @@ -272,20 +272,21 @@ int pwmchip_add(struct pwm_chip *chip) if (!pwm_ops_check(chip)) return -EINVAL; =20 + chip->pwms =3D kcalloc(chip->npwm, sizeof(*pwm), GFP_KERNEL); + if (!chip->pwms) + return -ENOMEM; + mutex_lock(&pwm_lock); =20 ret =3D alloc_pwms(chip->npwm); - if (ret < 0) - goto out; + if (ret < 0) { + mutex_unlock(&pwm_lock); + kfree(chip->pwms); + return ret; + } =20 chip->base =3D ret; =20 - chip->pwms =3D kcalloc(chip->npwm, sizeof(*pwm), GFP_KERNEL); - if (!chip->pwms) { - ret =3D -ENOMEM; - goto out; - } - for (i =3D 0; i < chip->npwm; i++) { pwm =3D &chip->pwms[i]; =20 @@ -301,18 +302,14 @@ int pwmchip_add(struct pwm_chip *chip) INIT_LIST_HEAD(&chip->list); list_add(&chip->list, &pwm_chips); =20 - ret =3D 0; + mutex_unlock(&pwm_lock); =20 if (IS_ENABLED(CONFIG_OF)) of_pwmchip_add(chip); =20 -out: - mutex_unlock(&pwm_lock); - - if (!ret) - pwmchip_sysfs_export(chip); + pwmchip_sysfs_export(chip); =20 - return ret; + return 0; } EXPORT_SYMBOL_GPL(pwmchip_add); =20 --=20 2.38.1 From nobody Wed Apr 15 19:30:48 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A4302C433FE for ; Thu, 17 Nov 2022 21:12:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240806AbiKQVMZ (ORCPT ); Thu, 17 Nov 2022 16:12:25 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56984 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240743AbiKQVL5 (ORCPT ); Thu, 17 Nov 2022 16:11:57 -0500 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 10BE06150F for ; Thu, 17 Nov 2022 13:11:57 -0800 (PST) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ovmAq-0007P1-Gt; Thu, 17 Nov 2022 22:11:52 +0100 Received: from [2a0a:edc0:0:900:1d::77] (helo=ptz.office.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1ovmAo-004v5t-Un; Thu, 17 Nov 2022 22:11:51 +0100 Received: from ukl by ptz.office.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ovmAo-00HN0L-RH; Thu, 17 Nov 2022 22:11:50 +0100 From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= To: Thierry Reding Cc: linux-pwm@vger.kernel.org, Andy Shevchenko , linux-kernel@vger.kernel.org, kernel@pengutronix.de Subject: [PATCH v2 3/4] pwm: Mark free pwm IDs as used in alloc_pwms() Date: Thu, 17 Nov 2022 22:11:42 +0100 Message-Id: <20221117211143.3817381-4-u.kleine-koenig@pengutronix.de> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221117211143.3817381-1-u.kleine-koenig@pengutronix.de> References: <20221117211143.3817381-1-u.kleine-koenig@pengutronix.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Developer-Signature: v=1; a=openpgp-sha256; l=1158; i=u.kleine-koenig@pengutronix.de; h=from:subject; bh=ZlStsEzR95pbO/ZmKK1BH2TWL3+UitzetoByqrewymQ=; b=owEBbQGS/pANAwAKAcH8FHityuwJAcsmYgBjdqOFnLAl+llZa8VfE8hGENgCr2OBorW+EwWwj6Sc hxVKKIWJATMEAAEKAB0WIQR+cioWkBis/z50pAvB/BR4rcrsCQUCY3ajhQAKCRDB/BR4rcrsCQvECA CODszKvUNGCAramGpOaGYzlu1hv/odKmef2JzgxlizzQv+z1poDO3IeRXSiuE7ybsHKdBuZvDVbQcY 1xGQQefeaKCttbIHkgWK6IICO/9tAGFpXAR94Ib5V6lJtD/KuDiq8slejxKqM7hsg4cp2zbdOd0Lh5 +bb/PFYPrZqdzjpgDNux7hnMXaoqSQqXTPWU349JUOul1vS3/NFdmzbp3s17/5kI8U+8jqWzOGQ9cO H1msrkwSlSspKerk+msMJKtsWsd/BDa/mH48HsXwy3+6b/S8stWqfNW08FohfLc2dsAOEyDOB1sqSA uT43cx+lM3hdfI+guzKUQrYK4Zq4Pm X-Developer-Key: i=u.kleine-koenig@pengutronix.de; a=openpgp; fpr=0D2511F322BFAB1C1580266BE2DCDD9132669BD6 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ukl@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org alloc_pwms() only identified a free range of IDs and this range was marked as used only later by pwmchip_add(). Instead let alloc_pwms() already do the marking (which makes the function actually allocating the range and so justifies the function name). This way access to the allocated_pwms bitfield is limited to two functions only. Reviewed-by: Andy Shevchenko Signed-off-by: Uwe Kleine-K=C3=B6nig --- drivers/pwm/core.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/pwm/core.c b/drivers/pwm/core.c index 2338119a09d8..b43b24bd3c9f 100644 --- a/drivers/pwm/core.c +++ b/drivers/pwm/core.c @@ -51,6 +51,8 @@ static int alloc_pwms(unsigned int count) if (start + count > MAX_PWMS) return -ENOSPC; =20 + bitmap_set(allocated_pwms, start, count); + return start; } =20 @@ -297,8 +299,6 @@ int pwmchip_add(struct pwm_chip *chip) radix_tree_insert(&pwm_tree, pwm->pwm, pwm); } =20 - bitmap_set(allocated_pwms, chip->base, chip->npwm); - INIT_LIST_HEAD(&chip->list); list_add(&chip->list, &pwm_chips); =20 --=20 2.38.1 From nobody Wed Apr 15 19:30:48 2026 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 vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id DCC0EC4332F for ; Thu, 17 Nov 2022 21:12:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240456AbiKQVMW (ORCPT ); Thu, 17 Nov 2022 16:12:22 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56982 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240742AbiKQVL5 (ORCPT ); Thu, 17 Nov 2022 16:11:57 -0500 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 080CD61505 for ; Thu, 17 Nov 2022 13:11:57 -0800 (PST) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ovmAq-0007PE-MB; Thu, 17 Nov 2022 22:11:52 +0100 Received: from [2a0a:edc0:0:900:1d::77] (helo=ptz.office.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1ovmAp-004v5y-5E; Thu, 17 Nov 2022 22:11:52 +0100 Received: from ukl by ptz.office.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ovmAp-00HN0P-3H; Thu, 17 Nov 2022 22:11:51 +0100 From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= To: Thierry Reding Cc: linux-pwm@vger.kernel.org, Andy Shevchenko , linux-kernel@vger.kernel.org, kernel@pengutronix.de Subject: [PATCH v2 4/4] pwm: Don't initialize list head before calling list_add() Date: Thu, 17 Nov 2022 22:11:43 +0100 Message-Id: <20221117211143.3817381-5-u.kleine-koenig@pengutronix.de> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221117211143.3817381-1-u.kleine-koenig@pengutronix.de> References: <20221117211143.3817381-1-u.kleine-koenig@pengutronix.de> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Developer-Signature: v=1; a=openpgp-sha256; l=754; i=u.kleine-koenig@pengutronix.de; h=from:subject; bh=K9jS1ZpU4xG3DAU/vPGftlodsO7fioNr3gh5KvNrnro=; b=owGbwMvMwMV48I9IxdpTbzgZT6slMSSXLe7M+hkc9qOvk/3InQeV8Sbtn0wv7nQSmCmkdkzfo3jR 2T19nYzGLAyMXAyyYoosdUVaYhMk1vy3K1nCDTOIlQlkCgMXpwBMJKyQg6HNZY6umEDMrI1ar2YY3H 5/6rjQrqpd845qHl8lp8bzyHhJYXpAWb+bfGez/vup2RetS1Q/fZ+QO71lqRZ/40aXt7lbtKqqbyb+ XbHS6Nfqn/vXW278w7NHQWrheS61yshil7jAvytu5Pv3H1M8NN3wpmpOYr1zzNX3X794bTHUOCEx5V iLUJHRamWja4uXWxRHGWzdziQVn3B12qtri7otDmkZtCxy2uAXe5w5XlRUe32h9ll9ebOvJj9T/rzz STviU5wh+mb6Yi6/+fy6Gn25VtWWnc37vP5F30ha2ldbdo7Bp5vz336jGuWIyyy5/Gp3zytUaRlmre 5dMj89Ro5JatrdTvHnpbGRaad5AQ== X-Developer-Key: i=u.kleine-koenig@pengutronix.de; a=openpgp; fpr=0D2511F322BFAB1C1580266BE2DCDD9132669BD6 Content-Transfer-Encoding: quoted-printable X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ukl@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org list_add() just overwrites the members of the element to add (here: chip->list) without any checks, even in the DEBUG_LIST case. So save the effort to initialize the list. Reviewed-by: Andy Shevchenko Signed-off-by: Uwe Kleine-K=C3=B6nig --- drivers/pwm/core.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/pwm/core.c b/drivers/pwm/core.c index b43b24bd3c9f..61bacd8d9b44 100644 --- a/drivers/pwm/core.c +++ b/drivers/pwm/core.c @@ -299,7 +299,6 @@ int pwmchip_add(struct pwm_chip *chip) radix_tree_insert(&pwm_tree, pwm->pwm, pwm); } =20 - INIT_LIST_HEAD(&chip->list); list_add(&chip->list, &pwm_chips); =20 mutex_unlock(&pwm_lock); --=20 2.38.1