Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753309AbdHQQ6v (ORCPT ); Thu, 17 Aug 2017 12:58:51 -0400 Received: from mail.kernel.org ([198.145.29.99]:51948 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752236AbdHQQ6t (ORCPT ); Thu, 17 Aug 2017 12:58:49 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 04D5422B4E Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=helgaas@kernel.org Date: Thu, 17 Aug 2017 11:58:47 -0500 From: Bjorn Helgaas To: Thierry Reding Cc: David Miller , Bjorn Helgaas , Ding Tianhong , Michael Ellerman , mark.rutland@arm.com, gabriele.paoloni@huawei.com, asit.k.mallick@intel.com, catalin.marinas@arm.com, will.deacon@arm.com, linuxarm@huawei.com, alexander.duyck@gmail.com, ashok.raj@intel.com, eric.dumazet@gmail.com, jeffrey.t.kirsher@intel.com, linux-pci@vger.kernel.org, ganeshgr@chelsio.com, Bob.Shaw@amd.com, leedom@chelsio.com, patrick.j.cramer@intel.com, werner@chelsio.com, linux-arm-kernel@lists.infradead.org, amira@mellanox.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, David.Laight@aculab.com, Suravee.Suthikulpanit@amd.com, robin.murphy@arm.com, l.stach@pengutronix.de Subject: Re: [PATCH] PCI: Allow PCI express root ports to find themselves Message-ID: <20170817165847.GJ28977@bhelgaas-glaptop.roam.corp.google.com> References: <1502936730-7368-1-git-send-email-dingtianhong@huawei.com> <20170817110614.11454-1-thierry.reding@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170817110614.11454-1-thierry.reding@gmail.com> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2254 Lines: 64 On Thu, Aug 17, 2017 at 01:06:14PM +0200, Thierry Reding wrote: > From: Thierry Reding > > If the pci_find_pcie_root_port() function is called on a root port > itself, return the root port rather than NULL. > > This effectively reverts commit 0e405232871d6 ("PCI: fix oops when > try to find Root Port for a PCI device") which added an extra check > that would now be redundant. > > Fixes: a99b646afa8a ("PCI: Disable PCIe Relaxed Ordering if unsupported") > Fixes: c56d4450eb68 ("PCI: Turn off Request Attributes to avoid Chelsio T5 Completion erratum") > Signed-off-by: Thierry Reding Acked-by: Bjorn Helgaas I *think* this should work for everybody, but I can't test it personally. > --- > This applies on top of and was tested on next-20170817. > > Michael, it'd be great if you could test this one again to clarify > whether or not the fix that's already in Linus' tree is still needed, or > whether it's indeed obsoleted by this patch. > > drivers/pci/pci.c | 9 ++++----- > 1 file changed, 4 insertions(+), 5 deletions(-) > > diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c > index b05c587e335a..dd56c1c05614 100644 > --- a/drivers/pci/pci.c > +++ b/drivers/pci/pci.c > @@ -514,7 +514,7 @@ EXPORT_SYMBOL(pci_find_resource); > */ > struct pci_dev *pci_find_pcie_root_port(struct pci_dev *dev) > { > - struct pci_dev *bridge, *highest_pcie_bridge = NULL; > + struct pci_dev *bridge, *highest_pcie_bridge = dev; > > bridge = pci_upstream_bridge(dev); > while (bridge && pci_is_pcie(bridge)) { > @@ -522,11 +522,10 @@ struct pci_dev *pci_find_pcie_root_port(struct pci_dev *dev) > bridge = pci_upstream_bridge(bridge); > } > > - if (highest_pcie_bridge && > - pci_pcie_type(highest_pcie_bridge) == PCI_EXP_TYPE_ROOT_PORT) > - return highest_pcie_bridge; > + if (pci_pcie_type(highest_pcie_bridge) != PCI_EXP_TYPE_ROOT_PORT) > + return NULL; > > - return NULL; > + return highest_pcie_bridge; > } > EXPORT_SYMBOL(pci_find_pcie_root_port); > > -- > 2.13.3 > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel