From patchwork Wed May 1 12:56:03 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Fan X-Patchwork-Id: 13650594 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 62EA3C10F1A for ; Wed, 1 May 2024 12:49:56 +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:Cc:To:In-Reply-To: References:Message-Id:Subject:Date:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=sWGSGHnF1tBojObVDaizE9SB1dR7tmaBlPY9BFm19hs=; b=BpMnTqZZPTdZIM0Tfa4aehspss B/hFkf9l1viFLaGXnfiaiESL3FErt0fs0UcR/JEDSrX4wS+XFKzobLzJ2c/DXZsETDEHNtursERQJ Lt1bbnmGTtgHgguGNG+/Kzewk+IN2tOWvrLq1aJLDm8nzy/F2wxgFG7qMwuZK3uWzyj/UtYBVaHHj jT0Yj8Avx1JTj4KTbO8G5ZVOCnCi/40K9mD4CcnckxORCm1CvqkdsPy4HX9MMVMC1iE7nquyglH0g xJJ5APzY0wiTTB0wk9whGmW7QdqCVTosb0o46FjtqNXzYKsKaSLQVMmMJiRd6jDzaXnVt9LSRn4UG Jtt5NyYQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1s29PD-00000009YmE-30zP; Wed, 01 May 2024 12:49:51 +0000 Received: from mail-he1eur01on062d.outbound.protection.outlook.com ([2a01:111:f400:fe1e::62d] helo=EUR01-HE1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1s29PA-00000009YjN-2416; Wed, 01 May 2024 12:49:50 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ve29h5h8BcMVkb+1Je5Ycjsz2hAQoJQAfcpoCPU02rQDiyi6eMWbgVqmiWH4CRT1p62sO9E19JP4f25oOEsmIHGpAz4ku6WoIq0YUio1YmVW/b5ARmtMuVhdRHK02wVhdfAWpZAK0nJ5DQxIdNYzvXifSpe6KGckHIVHXoB3YNhXRGwHyjAgiHT5gK6lKdqVozw+aJyCK9KvXfjvM8hn4ppfeZyQf2IguSj9M3b7hQZIMw1a8Z67jLJkG49b2FU74tFuugnZa/QV2Ig7BGqdnZf8LQxATKJCYNgEMK4pJBxGfVeyapd8HpLIISzOPdCv+F6QbyvUEysCq8lkLCbeuA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=d9YUvofIdVB4JzzWI0NRmFDL50mIRPG79od9oDhnF78=; b=PPhfLsW7SuP9/IvAj5c89Hoi0/EXWbKMLgY7B1VIvBQJrSFz+yJ2h3I8OCIEpR9P5B3upMAK7wRGfRw0cFThZvo1dxhwm1ikWlIID7Vu4U6R8qCOHKvZLejQf90xt/PX8uVOPJuK8RcUWMJ5TV6NquI7WSVxAp7yESb3PFHSv5JAH+tBc5DBM7NdNxdFWdE+TkrKQUX4mln/1/8+o5FisgMwQP2BXPm5qEyX0207BsDr9GVsWH60V3unBlYZQtailGffEbkIA4KD/mko7Q+RiBlTDJf3y53dCRWEEgsPRQV0MqmXePiV2RxD/URSZQmE+APkfHC2FSEEek2Bc7y1rA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=d9YUvofIdVB4JzzWI0NRmFDL50mIRPG79od9oDhnF78=; b=I4jnerqdQYo0PtLUHhRdWVFBJn9zKyabdPh2sFHr9ErIfFjM4EJAx/AfwpKuCgOWapMfbTA7kiB2d7vu2v23jbN9ACMwe4V1EEew196pVQLukDvdMKqca8QzxuKP2g8hk3SCMyOwVFL5QxYNdnE1jeZcPCkC20Rc0O7isVHd8n0= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by DBAPR04MB7448.eurprd04.prod.outlook.com (2603:10a6:10:1a6::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7519.38; Wed, 1 May 2024 12:49:43 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::d30b:44e7:e78e:662d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::d30b:44e7:e78e:662d%4]) with mapi id 15.20.7519.031; Wed, 1 May 2024 12:49:43 +0000 From: "Peng Fan (OSS)" Date: Wed, 01 May 2024 20:56:03 +0800 Subject: [PATCH 05/21] pinctrl: starfive: Use scope based of_node_put() cleanups Message-Id: <20240501-pinctrl-cleanup-v1-5-797ceca46e5c@nxp.com> References: <20240501-pinctrl-cleanup-v1-0-797ceca46e5c@nxp.com> In-Reply-To: <20240501-pinctrl-cleanup-v1-0-797ceca46e5c@nxp.com> To: Linus Walleij , Thierry Reding , Jonathan Hunter , Dvorkin Dmitry , Wells Lu , Maxime Coquelin , Alexandre Torgue , Emil Renner Berthing , Jianlong Huang , Hal Feng , Orson Zhai , Baolin Wang , Chunyan Zhang , Viresh Kumar , Shiraz Hashim , soc@kernel.org, Krzysztof Kozlowski , Sylwester Nawrocki , Alim Akhtar , Geert Uytterhoeven , Patrice Chotard , Heiko Stuebner , Damien Le Moal , Ludovic Desroches , Nicolas Ferre , Alexandre Belloni , Claudiu Beznea , Dong Aisheng , Fabio Estevam , Shawn Guo , Jacky Bai , Pengutronix Kernel Team , Chester Lin , Matthias Brugger , Ghennadi Procopciuc , Sean Wang , Matthias Brugger , AngeloGioacchino Del Regno , Sascha Hauer , Andrew Jeffery , Joel Stanley , Dan Carpenter Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org, linux-tegra@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-stm32@st-md-mailman.stormreply.com, linux-samsung-soc@vger.kernel.org, linux-renesas-soc@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-riscv@lists.infradead.org, linux-mediatek@lists.infradead.org, imx@lists.linux.dev, linux-aspeed@lists.ozlabs.org, openbmc@lists.ozlabs.org, Peng Fan X-Mailer: b4 0.12.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1714568179; l=6656; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=q6W94Hjdjjw7xg0ybaSa/7rYn9TOuVxzheASMuMVWPs=; b=oeYu4Ud4YU5lBztSso/rf0zqe1lgwaHPiuNrD5LA72yGh5Bng1xSawl8uORrM5WFZwafQV+S2 Y5SNiNdKNvaCP9Ni25D/AlYfbPj+Btc+9YyZx4MFETYbweNVA8teD7Y X-Developer-Key: i=peng.fan@nxp.com; a=ed25519; pk=I4sJg7atIT1g63H7bb5lDRGR2gJW14RKDD0wFL8TT1g= X-ClientProxiedBy: SG2PR02CA0064.apcprd02.prod.outlook.com (2603:1096:4:54::28) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU0PR04MB9417:EE_|DBAPR04MB7448:EE_ X-MS-Office365-Filtering-Correlation-Id: a0db37d7-54bf-423e-011b-08dc69dd2c5c X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230031|1800799015|376005|7416005|52116005|366007|921011|38350700005; X-Microsoft-Antispam-Message-Info: =?utf-8?q?oUCenlbZPPdCsuS0TC4XsecKdLSrq8U?= =?utf-8?q?ICKFMXROKOoFXZmQNOHynLfXAwY4p+MpGZFVFor2yCos4zcOhqg8+PMeoW6X4gzt+?= =?utf-8?q?YR2GX5sBER0bFAV3qNiTKW0/9iYDKHDUIjJ+L1IF+mkDFfpdCPlvBzLASEyBGhedB?= =?utf-8?q?qKPLXRtTj5GF70k5oDOlplFWh/UdOUxTaN9Vjl+p2vHEFv+2jdiJWvZwuHBQN4JQR?= =?utf-8?q?n+HqTdVBUAtWl1lYnQQCdUT/AUUnY/nT/RGgXnxwMEpqCUexFXMWJhuJHMWY+DkXn?= =?utf-8?q?euz6PqjpO+oy71TdFIThUfSawGflULoTwW026Wn4WvVY+bjZMhWc75movg6eOY0w0?= =?utf-8?q?X5IZccw2K0bEjxVLTv7JyoAJExjfbSpmEDQSyQRibPGZwTB710kxlKT6RoF7jAdRe?= =?utf-8?q?DHqyuCSyhNHLzGfN1OXbIfEJid/uPq1zT9HR/Huy6pZ4sZ66lBPkCsAjvtFn8039a?= =?utf-8?q?fJEevd5Rsf3hZeFySGSIfrhGcx/vOItnVBJ3PhqDA3aR06o1PawA5eIw1MkjjL11k?= =?utf-8?q?X4fAjhn+Uom9qI9oev6GEm4+NTuZpReRHTuZJ1AuwEV62cL73vWuvSQO9jwVTsCml?= =?utf-8?q?7Cxt+KUsLBH0aNS7J+COWKUL51cKtz53OXqNKSnAdG4kvgk0JxeJHUKYbCwT3LCSB?= =?utf-8?q?iAKsKOc2TOSMEu79hJZwmucXK80FQJA0VjzRUVnH5m8hHu/chElUmOaLaO9dxMzM9?= =?utf-8?q?W+hl7M5H2QQOEvFuJVWtTc3r0WBQmAyHCCny0e01BMg3jTkBpjtLKUVS9DD28a+a8?= =?utf-8?q?EzBtt996sreBP0jqfbmAqNwq9JIzm4DnHfdii8fQ0G4lYY9kS2udFvQ+iwJ+yjtj1?= =?utf-8?q?0HbZMPK08TpaL7yPGyM4Uky0hRr5+s60dUwcTVmeWFVkVHMnCQ9Sf+RW7n/uJd1m+?= =?utf-8?q?rQwODwXxYsGRXlfHTkai3Fc+78QtW9qL8RvRLf8F7R+7R9Xe9qFqXvAZiSdwqNUko?= =?utf-8?q?LBlILcasq2Bslg8fWLcDpoXnl//H8sYctKjBS8y1PPgfoiSZ77Piren8RJGQtS1X1?= =?utf-8?q?sdqycasFnznQ2i7wur2GquO0kb4Q5DSaHu2ceeOEZ7cNSZ1ZqWBAeDE6rf/4qMRRv?= =?utf-8?q?6Ea9M9dUivcY42vcFdDwwojMpy1D1NrnJQofUyzQXTLjA5nFxbX8at89z5GyznEe8?= =?utf-8?q?mDZqCzOueHuD6QPEweJUUtfOtNVIDBxIP/mM4TwksSWnlOuYWy5YI+Kr10YOinBXw?= =?utf-8?q?YhKZqdFQXUWG6xFA7j4bf37AKcoPA+0XtF6jGrBlgQrjppdLjbGQFmYOdjNtv7NaJ?= =?utf-8?q?NYGGahtf3YPPvdkChDVbwWprVTIWVciAvdMeLsq30xVPquA+1HH1LP6o=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR04MB9417.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(1800799015)(376005)(7416005)(52116005)(366007)(921011)(38350700005);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?jtzVL6ZIIpJKMXZw8f8FZKflyBTw?= =?utf-8?q?O/eaOqtFm9eovq8exIJ/Qg3SgXoUG0bjWGazuFsW/OxAaapBdXmtk71cp3geBU5RE?= =?utf-8?q?BM5nw0KYiFguW87dnBUoUWhIAYvl7wnXzO41SaQocrWEcyF42uahpLn2FuCHMv5rV?= =?utf-8?q?+ksGWOtNOOCXr68gjsFM+0bwDI15zQ3sFmT50gd85UZ2VtY4d8RS1w3VK1uU1MUm2?= =?utf-8?q?WhHXnFpZ5i78H+FtzjpDd9QdDlwUU0OYFovm4Xl4ba+Oh3MQ8RY9KiE3LlguJ8jjo?= =?utf-8?q?CmJ4WX3QNybPL7n9cPsvu7wNFtVsgbUgEU3sqGGp20egwMytqSg/sXfQXpUXMEf6n?= =?utf-8?q?I04FaZioTxrVdvEi4/0fSdJ6UyypjUwqauP3/FbGFIKeP2h+8icuU4KPp1yR5P5mD?= =?utf-8?q?ajAF65YSjDemscjfL9Vf7Xmg0ICwMwtP/cs8c91Ezt96Ubd1FYtgJbfHIWJmNIe0C?= =?utf-8?q?P7OnMYK6CMl6z0UWXf1ypdjX0O0R11yRk5ZQrurxyfgT05z+9mafqgKvrLDhW+TCY?= =?utf-8?q?9nA2OmRHGOJGLyfr3OLVqIOftY8mrYF0mRH1TAIyAMMIO+ohQzvaJKfcBLuPvsExX?= =?utf-8?q?sYzJco/ybUNO9MElzS/JsXV+GO6V7Z1hs9xucY4Y+gQ/TfJzL+P2mvmjbh5axuY8m?= =?utf-8?q?CCExl9nlb9NnxOGOyWbGhfLjTCEoMzNT9vg+dEB2MrbqXJlE7vkXzMZqeTGcRZxc2?= =?utf-8?q?yQvPCHVcvx3wUUSP1NiRruh/3lb0PWDC6AQuH7cFfIPkHPBZa01WMZnHXWKxpgR7O?= =?utf-8?q?0ClCKWjZFLLo94YkX+vmT4lHw19dw1dR5ZQvrbV5VAKz4ZRRi2baBD3lJvrkOXhUV?= =?utf-8?q?w4ax0LTz/tx995BZtkCFQYPb1H1t5Li+OMXMQ5jXl+SomPpRWx0PmQp7ncFsIik6a?= =?utf-8?q?2OjIbXa2181v9owWZ96dgiKBCV4mtyEcte7QKBu2W4w65Wc07iUy5mOnM2fyvl7RG?= =?utf-8?q?WqfZYpi+/lNkUPJpPZWy+G4TwY1KEuvMz/OrrdqBYIWmNedSZC5oJg+3Hv5nTP334?= =?utf-8?q?BzmLD3HE30Euskcz9PAE1t66pqyFNs8VITGJ3Kb0jFftQW7JD6LtfORjyOqhVBaE/?= =?utf-8?q?JK6yYaNAB3Y28s15PMHQVsT4s3b5p0MW3/f+RrM1+KGrnsZtwklZTY79NtgXfhJWB?= =?utf-8?q?jHoAqLcEhrJBOnH4T1wIlOsnydNXJK1MLBnxzBT3skObYTpAX7pn1IVQXpVBBWoI4?= =?utf-8?q?svibUnUcfiwDkbRpkv68yk8pnPZgyZqjDDR2UU5xO9zwYtHvaB27Gtcx3OGnWRLAj?= =?utf-8?q?YOPY5rTNt2MNuuYn1+YZbBPp0Jtnh6VDBdcaTFvVHFbFvtxWZx9rdSoLqhDe4PTiN?= =?utf-8?q?doHY0n3drgD1MmIAzHO7hYuE35M/N3z2U39IURAeWzf+oOzH2w58R7/ip8VBJGRAn?= =?utf-8?q?l0IBZyKOv2FsFm7HKtD7oiAQwgffwLjUrQNhgCJPSU6pEsIdO5GMwFo4zAgZIRH3x?= =?utf-8?q?xtFHgz/MGC+pBGdP8b+cy3Pn8uqmiR5UKiUqSPaNPIl1rfbHOlqV5bVHTcyqbxmmb?= =?utf-8?q?CBdje/rEAAlR?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: a0db37d7-54bf-423e-011b-08dc69dd2c5c X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 May 2024 12:49:43.3920 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: a8VMXjN5tnTZbVk5RTJATfV4WVyud8UqeKUIyvYzYSsszFnA3M3VjRSQ8h35vE1kbq/I+796vLW9oWOt6tBpLA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR04MB7448 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240501_054948_757263_69584BB0 X-CRM114-Status: GOOD ( 14.58 ) X-BeenThere: linux-rockchip@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Upstream kernel work for Rockchip platforms List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "Linux-rockchip" Errors-To: linux-rockchip-bounces+linux-rockchip=archiver.kernel.org@lists.infradead.org From: Peng Fan Use scope based of_node_put() cleanup to simplify code. Signed-off-by: Peng Fan Acked-by: Emil Renner Berthing --- drivers/pinctrl/starfive/pinctrl-starfive-jh7100.c | 27 +++++++++------------- drivers/pinctrl/starfive/pinctrl-starfive-jh7110.c | 18 +++++++-------- 2 files changed, 19 insertions(+), 26 deletions(-) diff --git a/drivers/pinctrl/starfive/pinctrl-starfive-jh7100.c b/drivers/pinctrl/starfive/pinctrl-starfive-jh7100.c index 6df7a310c7ed..27f99183d994 100644 --- a/drivers/pinctrl/starfive/pinctrl-starfive-jh7100.c +++ b/drivers/pinctrl/starfive/pinctrl-starfive-jh7100.c @@ -480,7 +480,6 @@ static int starfive_dt_node_to_map(struct pinctrl_dev *pctldev, { struct starfive_pinctrl *sfp = pinctrl_dev_get_drvdata(pctldev); struct device *dev = sfp->gc.parent; - struct device_node *child; struct pinctrl_map *map; const char **pgnames; const char *grpname; @@ -492,20 +491,18 @@ static int starfive_dt_node_to_map(struct pinctrl_dev *pctldev, nmaps = 0; ngroups = 0; - for_each_available_child_of_node(np, child) { + for_each_available_child_of_node_scoped(np, child) { int npinmux = of_property_count_u32_elems(child, "pinmux"); int npins = of_property_count_u32_elems(child, "pins"); if (npinmux > 0 && npins > 0) { dev_err(dev, "invalid pinctrl group %pOFn.%pOFn: both pinmux and pins set\n", np, child); - of_node_put(child); return -EINVAL; } if (npinmux == 0 && npins == 0) { dev_err(dev, "invalid pinctrl group %pOFn.%pOFn: neither pinmux nor pins set\n", np, child); - of_node_put(child); return -EINVAL; } @@ -527,14 +524,14 @@ static int starfive_dt_node_to_map(struct pinctrl_dev *pctldev, nmaps = 0; ngroups = 0; mutex_lock(&sfp->mutex); - for_each_available_child_of_node(np, child) { + for_each_available_child_of_node_scoped(np, child) { int npins; int i; grpname = devm_kasprintf(dev, GFP_KERNEL, "%pOFn.%pOFn", np, child); if (!grpname) { ret = -ENOMEM; - goto put_child; + goto free_map; } pgnames[ngroups++] = grpname; @@ -543,18 +540,18 @@ static int starfive_dt_node_to_map(struct pinctrl_dev *pctldev, pins = devm_kcalloc(dev, npins, sizeof(*pins), GFP_KERNEL); if (!pins) { ret = -ENOMEM; - goto put_child; + goto free_map; } pinmux = devm_kcalloc(dev, npins, sizeof(*pinmux), GFP_KERNEL); if (!pinmux) { ret = -ENOMEM; - goto put_child; + goto free_map; } ret = of_property_read_u32_array(child, "pinmux", pinmux, npins); if (ret) - goto put_child; + goto free_map; for (i = 0; i < npins; i++) { unsigned int gpio = starfive_pinmux_to_gpio(pinmux[i]); @@ -570,7 +567,7 @@ static int starfive_dt_node_to_map(struct pinctrl_dev *pctldev, pins = devm_kcalloc(dev, npins, sizeof(*pins), GFP_KERNEL); if (!pins) { ret = -ENOMEM; - goto put_child; + goto free_map; } pinmux = NULL; @@ -580,18 +577,18 @@ static int starfive_dt_node_to_map(struct pinctrl_dev *pctldev, ret = of_property_read_u32_index(child, "pins", i, &v); if (ret) - goto put_child; + goto free_map; pins[i] = v; } } else { ret = -EINVAL; - goto put_child; + goto free_map; } ret = pinctrl_generic_add_group(pctldev, grpname, pins, npins, pinmux); if (ret < 0) { dev_err(dev, "error adding group %s: %d\n", grpname, ret); - goto put_child; + goto free_map; } ret = pinconf_generic_parse_dt_config(child, pctldev, @@ -600,7 +597,7 @@ static int starfive_dt_node_to_map(struct pinctrl_dev *pctldev, if (ret) { dev_err(dev, "error parsing pin config of group %s: %d\n", grpname, ret); - goto put_child; + goto free_map; } /* don't create a map if there are no pinconf settings */ @@ -623,8 +620,6 @@ static int starfive_dt_node_to_map(struct pinctrl_dev *pctldev, mutex_unlock(&sfp->mutex); return 0; -put_child: - of_node_put(child); free_map: pinctrl_utils_free_map(pctldev, map, nmaps); mutex_unlock(&sfp->mutex); diff --git a/drivers/pinctrl/starfive/pinctrl-starfive-jh7110.c b/drivers/pinctrl/starfive/pinctrl-starfive-jh7110.c index 9609eb1ecc3d..4ce080caa233 100644 --- a/drivers/pinctrl/starfive/pinctrl-starfive-jh7110.c +++ b/drivers/pinctrl/starfive/pinctrl-starfive-jh7110.c @@ -150,7 +150,7 @@ static int jh7110_dt_node_to_map(struct pinctrl_dev *pctldev, nmaps = 0; ngroups = 0; mutex_lock(&sfp->mutex); - for_each_available_child_of_node(np, child) { + for_each_available_child_of_node_scoped(np, child) { int npins = of_property_count_u32_elems(child, "pinmux"); int *pins; u32 *pinmux; @@ -161,13 +161,13 @@ static int jh7110_dt_node_to_map(struct pinctrl_dev *pctldev, "invalid pinctrl group %pOFn.%pOFn: pinmux not set\n", np, child); ret = -EINVAL; - goto put_child; + goto free_map; } grpname = devm_kasprintf(dev, GFP_KERNEL, "%pOFn.%pOFn", np, child); if (!grpname) { ret = -ENOMEM; - goto put_child; + goto free_map; } pgnames[ngroups++] = grpname; @@ -175,18 +175,18 @@ static int jh7110_dt_node_to_map(struct pinctrl_dev *pctldev, pins = devm_kcalloc(dev, npins, sizeof(*pins), GFP_KERNEL); if (!pins) { ret = -ENOMEM; - goto put_child; + goto free_map; } pinmux = devm_kcalloc(dev, npins, sizeof(*pinmux), GFP_KERNEL); if (!pinmux) { ret = -ENOMEM; - goto put_child; + goto free_map; } ret = of_property_read_u32_array(child, "pinmux", pinmux, npins); if (ret) - goto put_child; + goto free_map; for (i = 0; i < npins; i++) pins[i] = jh7110_pinmux_pin(pinmux[i]); @@ -200,7 +200,7 @@ static int jh7110_dt_node_to_map(struct pinctrl_dev *pctldev, pins, npins, pinmux); if (ret < 0) { dev_err(dev, "error adding group %s: %d\n", grpname, ret); - goto put_child; + goto free_map; } ret = pinconf_generic_parse_dt_config(child, pctldev, @@ -209,7 +209,7 @@ static int jh7110_dt_node_to_map(struct pinctrl_dev *pctldev, if (ret) { dev_err(dev, "error parsing pin config of group %s: %d\n", grpname, ret); - goto put_child; + goto free_map; } /* don't create a map if there are no pinconf settings */ @@ -233,8 +233,6 @@ static int jh7110_dt_node_to_map(struct pinctrl_dev *pctldev, *num_maps = nmaps; return 0; -put_child: - of_node_put(child); free_map: pinctrl_utils_free_map(pctldev, map, nmaps); mutex_unlock(&sfp->mutex);