Received: by 2002:a25:824b:0:0:0:0:0 with SMTP id d11csp5524033ybn; Sat, 28 Sep 2019 23:55:14 -0700 (PDT) X-Google-Smtp-Source: APXvYqyrL3EXBC15WJGMjYkKwOcPsCHiXXMXPw+7nxehC031kFdHnE59jHOE0o3J+mm1G5FlqM9v X-Received: by 2002:a17:906:b283:: with SMTP id q3mr14624219ejz.7.1569740114103; Sat, 28 Sep 2019 23:55:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1569740114; cv=none; d=google.com; s=arc-20160816; b=gni/w9B65YsVjoKPRJ2aUxS6sHuYfxJZCbHPRkD+Aa2cbzby92pLXfS85avqMrE7qh nCp9xnvV6kcTvoRvEOp3N1/NWLab6l/Og3+zpeFDrU3PagQOlv+F2aQ3DR8fvCdRK6BD 4RBau0Irb5wlfrAhB+rxfbMr4gpyudZ8p+g60URcEtY+VEKQpRRsG3dd3O9bQ1ZNfsN7 JdTZNuCfGHfRu28/216i7AO3i9bzNRLIuaBHUAjZ4vMb8ucvRQtY5qF77I0drLWzPZvQ UHtnrn9EO31meN3DLsccEye1OvsMmlrRRJLG/3gRX5ieFZ7bc+rXzuYPxKawNlrkkjlz BT0A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=ix9iz+eR8rvU2NjlIdEEOx5npC0IVAIVzqoIafKER3M=; b=VeURrCR1u8aJ5R5yM7owhWXwY0oETLPoQA6i++0NdDKiKORD3P+eARPNvrV9K47sqb wJ7bR3jmLGn7UcYXnNnrofiLWDMHyELc0081ONx2huOXCX+yRykHjB2xdyAEp8g2ABYG /V7M7QN3wabKdFtEsepHFeOKVJd56nFaKptEyh/bDhfgx5+FLZBdxr5l6flvlbT3tJXJ sdw5RJdi+wDHxlArKq902GeSigijn+gUGTziOGyADQCnq9UGy6s7i4iUHnq/VmWRUMsq YFJQABRxJElLWH1aEgh2DRDV0OeFTjjiCjF+RmOPlkt93lbnJi7C5tXqR/XS6I2DbL0d xJ8g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id e48si4987071eda.130.2019.09.28.23.54.41; Sat, 28 Sep 2019 23:55:14 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728266AbfI2Gyf (ORCPT + 99 others); Sun, 29 Sep 2019 02:54:35 -0400 Received: from out4436.biz.mail.alibaba.com ([47.88.44.36]:50376 "EHLO out4436.biz.mail.alibaba.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725906AbfI2Gyf (ORCPT ); Sun, 29 Sep 2019 02:54:35 -0400 X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R581e4;CH=green;DM=||false|;FP=0|-1|-1|-1|0|-1|-1|-1;HT=e01e01451;MF=wenyang@linux.alibaba.com;NM=1;PH=DS;RN=8;SR=0;TI=SMTPD_---0Tdgp2DH_1569740065; Received: from localhost(mailfrom:wenyang@linux.alibaba.com fp:SMTPD_---0Tdgp2DH_1569740065) by smtp.aliyun-inc.com(127.0.0.1); Sun, 29 Sep 2019 14:54:32 +0800 From: Wen Yang To: Alexandre Belloni , Microchip Linux Driver Support , davem@davemloft.net Cc: xlpang@linux.alibaba.com, zhiche.yy@alibaba-inc.com, Wen Yang , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] net: mscc: ocelot: add missing of_node_put after calling of_get_child_by_name Date: Sun, 29 Sep 2019 14:54:24 +0800 Message-Id: <20190929065424.2437-1-wenyang@linux.alibaba.com> X-Mailer: git-send-email 2.23.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org of_node_put needs to be called when the device node which is got from of_get_child_by_name finished using. In both cases of success and failure, we need to release 'ports', so clean up the code using goto. fixes: a556c76adc05 ("net: mscc: Add initial Ocelot switch support") Signed-off-by: Wen Yang Cc: Alexandre Belloni Cc: Microchip Linux Driver Support Cc: "David S. Miller" Cc: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org --- drivers/net/ethernet/mscc/ocelot_board.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/net/ethernet/mscc/ocelot_board.c b/drivers/net/ethernet/mscc/ocelot_board.c index b063eb7..aac1151 100644 --- a/drivers/net/ethernet/mscc/ocelot_board.c +++ b/drivers/net/ethernet/mscc/ocelot_board.c @@ -388,13 +388,14 @@ static int mscc_ocelot_probe(struct platform_device *pdev) continue; phy = of_phy_find_device(phy_node); + of_node_put(phy_node); if (!phy) continue; err = ocelot_probe_port(ocelot, port, regs, phy); if (err) { of_node_put(portnp); - return err; + goto out_put_ports; } phy_mode = of_get_phy_mode(portnp); @@ -422,7 +423,8 @@ static int mscc_ocelot_probe(struct platform_device *pdev) "invalid phy mode for port%d, (Q)SGMII only\n", port); of_node_put(portnp); - return -EINVAL; + err = -EINVAL; + goto out_put_ports; } serdes = devm_of_phy_get(ocelot->dev, portnp, NULL); @@ -435,7 +437,8 @@ static int mscc_ocelot_probe(struct platform_device *pdev) "missing SerDes phys for port%d\n", port); - goto err_probe_ports; + of_node_put(portnp); + goto out_put_ports; } ocelot->ports[port]->serdes = serdes; @@ -447,9 +450,8 @@ static int mscc_ocelot_probe(struct platform_device *pdev) dev_info(&pdev->dev, "Ocelot switch probed\n"); - return 0; - -err_probe_ports: +out_put_ports: + of_node_put(ports); return err; } -- 1.8.3.1