Received: by 2002:a05:6a10:a852:0:0:0:0 with SMTP id d18csp3860289pxy; Tue, 4 May 2021 11:31:22 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwUJEvD8i2GGCXIhjpD0IN10j8/JelIF0HeYUzTcvQKaNtuco7o0X5+cPLk2ppfm4PP4y60 X-Received: by 2002:a05:6402:100d:: with SMTP id c13mr26914081edu.195.1620153082246; Tue, 04 May 2021 11:31:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620153082; cv=none; d=google.com; s=arc-20160816; b=k3kz2k0qt1F9VskNAaN9APUH8TDHFFZsF7/sbiXJ2Zh5xgHpj0i0z52EVcZ4dcpuF0 hYI/QtLhd6zLfUUXwhWnoGUJ5KRd4JdiyJ7+NIyy4PzVuUuxf/NbDAlYAOZy09+XyJba zPVo8VEq0r/MaDGUDmLkrHj1meAcW6YUi1k1MuGcS8aLZKEQ2k/mCcklm/0WUz31NHst dZ3CCXFxdtDz3gfxB9exclShG6yx0fEGRqwSnKDXYYjGjS//fAxSIZnyZ2p/wAUKdHl/ KK8aZNCjHX2qLtYGiLaUbgWHGO/VMyKEtkocLnPEuBboKGkkoWSeUn/vMbknFOLs/PqJ BF/g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=9wgenfezt3nWmFyAFJ66IgDV9SwpkUvkswDV/1sc6kw=; b=yCfKObIEBIO/mQTEzqiTZtVDvFxU38ERL6bX54YoxcwpDPHWk90LlXrO+JH7rlwjjT Yr4NePgutBqqBc7ywzmCqwvpV9OkHrscwEoHbmoPeBe4Yi+4nLbxYFW+CUkA4neth/z8 su00l3drJpWAARzQG4+ViNQOhWsiXVaBSQpYutqy6NXbkQWZXGyr3O69REHXk6RCXPfy ehlR47UhgwSTSf03sfFNHjp0ZpbH/sLrskLl/RbdqWvJb7B34rw0sGvNnm0mRJI6h3Eg ptKmCcMLq4Z3SbXbEdIoMHGor7OKOBA1ykaGFux7Ic3lOpynliE2edXOtYNQWB7HQUHp vwBQ== 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 go7si3109811ejc.278.2021.05.04.11.30.57; Tue, 04 May 2021 11:31:22 -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 S232108AbhEDRSr (ORCPT + 99 others); Tue, 4 May 2021 13:18:47 -0400 Received: from smtp06.smtpout.orange.fr ([80.12.242.128]:23476 "EHLO smtp.smtpout.orange.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232063AbhEDRSn (ORCPT ); Tue, 4 May 2021 13:18:43 -0400 Received: from localhost.localdomain ([86.243.172.93]) by mwinf5d41 with ME id 0hHl2500221Fzsu03hHlrD; Tue, 04 May 2021 19:17:46 +0200 X-ME-Helo: localhost.localdomain X-ME-Auth: Y2hyaXN0b3BoZS5qYWlsbGV0QHdhbmFkb28uZnI= X-ME-Date: Tue, 04 May 2021 19:17:46 +0200 X-ME-IP: 86.243.172.93 From: Christophe JAILLET To: thierry.reding@gmail.com, lorenzo.pieralisi@arm.com, robh@kernel.org, bhelgaas@google.com, jonathanh@nvidia.com Cc: linux-tegra@vger.kernel.org, linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org, Christophe JAILLET Subject: [PATCH 1/3] PCI: tegra: Fix OF node reference leak Date: Tue, 4 May 2021 19:17:42 +0200 Message-Id: <55b11e9a7fa2987fbc0869d68ae59888954d65e2.1620148539.git.christophe.jaillet@wanadoo.fr> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit 9e38e690ace3 ("PCI: tegra: Fix OF node reference leak") has fixed some node reference leaks in this function but missed some of them. In fact, having 'port' referenced in the 'rp' structure is not enough to prevent the leak, until 'rp' is actually added in the 'pcie->ports' list. Add the missing 'goto err_node_put' accordingly. Signed-off-by: Christophe JAILLET --- drivers/pci/controller/pci-tegra.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/drivers/pci/controller/pci-tegra.c b/drivers/pci/controller/pci-tegra.c index 8069bd9232d4..006bf0346dec 100644 --- a/drivers/pci/controller/pci-tegra.c +++ b/drivers/pci/controller/pci-tegra.c @@ -2193,13 +2193,15 @@ static int tegra_pcie_parse_dt(struct tegra_pcie *pcie) rp->np = port; rp->base = devm_pci_remap_cfg_resource(dev, &rp->regs); - if (IS_ERR(rp->base)) - return PTR_ERR(rp->base); + if (IS_ERR(rp->base)) { + err = PTR_ERR(rp->base); + goto err_node_put; + } label = devm_kasprintf(dev, GFP_KERNEL, "pex-reset-%u", index); if (!label) { - dev_err(dev, "failed to create reset GPIO label\n"); - return -ENOMEM; + err = -ENOMEM; + goto err_node_put; } /* @@ -2217,7 +2219,8 @@ static int tegra_pcie_parse_dt(struct tegra_pcie *pcie) } else { dev_err(dev, "failed to get reset GPIO: %ld\n", PTR_ERR(rp->reset_gpio)); - return PTR_ERR(rp->reset_gpio); + err = PTR_ERR(rp->reset_gpio); + goto err_node_put; } } -- 2.30.2