From nobody Sun Feb 8 02:56:21 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 629C7EB64DA for ; Fri, 14 Jul 2023 03:43:42 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234817AbjGNDnl (ORCPT ); Thu, 13 Jul 2023 23:43:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50432 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234448AbjGNDnf (ORCPT ); Thu, 13 Jul 2023 23:43:35 -0400 Received: from mail.208.org (unknown [183.242.55.162]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7349ACD for ; Thu, 13 Jul 2023 20:43:33 -0700 (PDT) Received: from mail.208.org (email.208.org [127.0.0.1]) by mail.208.org (Postfix) with ESMTP id 4R2HPs2GBlzBRSVN for ; Fri, 14 Jul 2023 11:43:29 +0800 (CST) Authentication-Results: mail.208.org (amavisd-new); dkim=pass reason="pass (just generated, assumed good)" header.d=208.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=208.org; h= content-transfer-encoding:content-type:message-id:user-agent :references:in-reply-to:subject:to:from:date:mime-version; s= dkim; t=1689306209; x=1691898210; bh=SCgw1WCmhD6P4vsV5hq9Xr7uYP9 setPOegeKh2ZR/og=; b=V8ILV1ZwBGiiFJdC6+tlNJKDUEXN+p0iSjkZWWJGVNe f2ZE5EPEd3PO7w3iUZ58DyO/XJhrxUQXH/VHZ9DfBXKE+YFyMy20nx0eLMgz+TV4 5ozlOQm9TYt3A+drTcan7+G77wd1/ppS9h4VuQT/OmOJIh9dMhDd9daNPVdAG8Sn Bi/+2gT/wT2IvdfupJA7FHfbGhcH9F39b7ZguXpZMPEukOOEHKZwyZ/8/SX8bJI3 Y1S/ksrrY7xPGkytnkXrwYSpmGLWOAOoiBXCbcKs+jnR4t+kHrl0MgpHk/Zojj83 I+Gku1ArEU5Lhtuz0XHOHGn+e5TzckJgjVFbcI3zkIg== X-Virus-Scanned: amavisd-new at mail.208.org Received: from mail.208.org ([127.0.0.1]) by mail.208.org (mail.208.org [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id EI4ObUIrq84E for ; Fri, 14 Jul 2023 11:43:29 +0800 (CST) Received: from localhost (email.208.org [127.0.0.1]) by mail.208.org (Postfix) with ESMTPSA id 4R2HPs0696zBHXhN; Fri, 14 Jul 2023 11:43:28 +0800 (CST) MIME-Version: 1.0 Date: Fri, 14 Jul 2023 11:43:28 +0800 From: liubin001@208suo.com To: tglx@linutronix.de, maz@kernel.org Cc: linux-kernel@vger.kernel.org Subject: Fwd: [PATCH] irqchip:Use the "put_device" function to release the memory after calling the of_find_device_by_node function. In-Reply-To: References: User-Agent: Roundcube Webmail Message-ID: <66d48e6ce0db4f89737172a2963195a9@208suo.com> X-Sender: liubin001@208suo.com Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8"; format="flowed" Write the put_device function before return Signed-off-by: Liu Bin --- drivers/irqchip/irq-renesas-rzg2l.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/irqchip/irq-renesas-rzg2l.c=20 b/drivers/irqchip/irq-renesas-rzg2l.c index 4bbfa2b0a4df..a9d75135ba24 100644 --- a/drivers/irqchip/irq-renesas-rzg2l.c +++ b/drivers/irqchip/irq-renesas-rzg2l.c @@ -325,35 +325,42 @@ static int rzg2l_irqc_init(struct device_node=20 *node, struct device_node *parent) pdev =3D of_find_device_by_node(node); if (!pdev) + put_device(pdev); return -ENODEV; parent_domain =3D irq_find_host(parent); if (!parent_domain) { dev_err(&pdev->dev, "cannot find parent domain\n"); + put_device(pdev); return -ENODEV; } priv =3D devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); if (!priv) + put_device(pdev); return -ENOMEM; priv->base =3D devm_of_iomap(&pdev->dev, pdev->dev.of_node, 0, NULL); if (IS_ERR(priv->base)) + put_device(pdev); return PTR_ERR(priv->base); ret =3D rzg2l_irqc_parse_interrupts(priv, node); if (ret) { dev_err(&pdev->dev, "cannot parse interrupts: %d\n", ret); + put_device(pdev); return ret; } resetn =3D devm_reset_control_get_exclusive(&pdev->dev, NULL); if (IS_ERR(resetn)) + put_device(pdev); return PTR_ERR(resetn); ret =3D reset_control_deassert(resetn); if (ret) { dev_err(&pdev->dev, "failed to deassert resetn pin, %d\n",=20 ret); + put_device(pdev); return ret; } @@ -374,7 +381,7 @@ static int rzg2l_irqc_init(struct device_node *node,=20 struct device_node *parent) ret =3D -ENOMEM; goto pm_put; } - + put_device(pdev); return 0; pm_put: @@ -382,6 +389,7 @@ static int rzg2l_irqc_init(struct device_node *node,=20 struct device_node *parent) pm_disable: pm_runtime_disable(&pdev->dev); reset_control_assert(resetn); + put_device(pdev); return ret; }