Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp1566872pxa; Sun, 23 Aug 2020 07:49:53 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxGLy+QFJGWHaF/cutTNfiKNZlsr4a9vs1C4wUNr0ka6W1/f3xhOjPaSGsXBXAxrEjxRd1r X-Received: by 2002:a17:906:5418:: with SMTP id q24mr1665207ejo.296.1598194193151; Sun, 23 Aug 2020 07:49:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1598194193; cv=none; d=google.com; s=arc-20160816; b=0S0DLYrpGwwDWMoCde/etzk0sJKpPeeCx7tgCwdCSQyUGsWQ+WTZVRONgXXeqo60sR k1GEzS93dTjkxSNKcLZQVeVSUK80ggjKQLy3l8vj3GehL8YjGy4Cq/FbFFXhueqzhrcc aZXYdXNn0SNu4nBEcykGkVR5rK3K9gz5yCZuyI6usJruGIntdcll78GKoKeBxEsYA8vW fbo/nFTHhZQKYBbjqgBh7qUOkjIBHMYR+1lern4DdVR9XhLze3VHC/PutELUsS+l2h/J +x9GGj1Q2ACtcfVvuwPoQ0dDDLT+CRxfd3FGYPZVKmy6fNQMIivspq4UteYydsM/ENKM hnAQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date; bh=CR+E2qu4MZ+/Iq43l8BtXQ73UlE9fsewlObOEY49ops=; b=bzw6E79r7xQbsGgXZuQC7ZFFZOvI/3w7qGad5qjxpTgUX0nND2/dgJwvqRuyqDQDZd RfaDyDaJN16qynCvrhUQXavNtJrnZeoIfMzMp2ZU4Fc+KpTbVn+97W9K2FcHE2iJekKM qMPkdafPMWP5tEckDv9mvq18EmqWwawDmgwRjGCqDNTF0Ns3bDAHwB15yUPC7RYWpR1f HIQDQvxWOv3Th63WKT1QjHrulRDXQIwH4oI7PXBSdum4bFuwB/cKMD3XMvXlvpshaLOv FnbWnDtFa1wQPpP+aQQf4iBBhCI2L+QG+Le/mRUgeDfGZ8bkcezfmBRRrungBAZ9GXz1 VWPQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id u23si5048294edt.577.2020.08.23.07.49.00; Sun, 23 Aug 2020 07:49:53 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727048AbgHWO2y (ORCPT + 99 others); Sun, 23 Aug 2020 10:28:54 -0400 Received: from vps0.lunn.ch ([185.16.172.187]:40480 "EHLO vps0.lunn.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725887AbgHWO2y (ORCPT ); Sun, 23 Aug 2020 10:28:54 -0400 Received: from andrew by vps0.lunn.ch with local (Exim 4.94) (envelope-from ) id 1k9qz7-00BN35-V6; Sun, 23 Aug 2020 16:28:37 +0200 Date: Sun, 23 Aug 2020 16:28:37 +0200 From: Andrew Lunn To: Sumera Priyadarsini Cc: davem@davemloft.net, Julia.Lawall@lip6.fr, sean.wang@mediatek.com, vivien.didelot@gmail.com, f.fainelli@gmail.com, kuba@kernel.org, matthias.bgg@gmail.com, netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] net: dsa: Add of_node_put() before break statement Message-ID: <20200823142837.GD2588906@lunn.ch> References: <20200823140116.6606-1-sylphrenadin@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200823140116.6606-1-sylphrenadin@gmail.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sun, Aug 23, 2020 at 07:31:16PM +0530, Sumera Priyadarsini wrote: > Every iteration of for_each_child_of_node() decrements > the reference count of the previous node, however when control > is transferred from the middle of the loop, as in the case of > a return or break or goto, there is no decrement thus ultimately > resulting in a memory leak. > > Fix a potential memory leak in mt7530.c by inserting of_node_put() > before the break statement. > > Issue found with Coccinelle. > > Signed-off-by: Sumera Priyadarsini > --- > drivers/net/dsa/mt7530.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c > index 8dcb8a49ab67..af83e5034842 100644 > --- a/drivers/net/dsa/mt7530.c > +++ b/drivers/net/dsa/mt7530.c > @@ -1334,6 +1334,7 @@ mt7530_setup(struct dsa_switch *ds) > if (id == 4) > priv->p5_intf_sel = P5_INTF_SEL_PHY_P4; > } > + of_node_put(mac_np); > of_node_put(phy_node); > break; > } Within the same loop is: if (phy_node->parent == priv->dev->of_node->parent) { ret = of_get_phy_mode(mac_np, &interface); if (ret && ret != -ENODEV) return ret; shouldn't this also have a put? Andrew