linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH] ACPI/PCI: Fix bus range comparation in pci_mcfg_lookup
@ 2016-12-22  9:07 Zhou Wang
  2017-01-03  1:28 ` Zhou Wang
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Zhou Wang @ 2016-12-22  9:07 UTC (permalink / raw)
  To: Rafael J. Wysocki, Len Brown, Tomasz Nowicki, Jayachandran C,
	Lorenzo Pieralisi, jorn Helgaas
  Cc: liudongdong3, gabriele.paoloni, linux-acpi, linux-pci,
	linux-kernel, Zhou Wang

Multiple PCIe host bridges may exists in one PCIe segment. So bus range for each
host bridge should be in the coverage of bus range of related PCIe segment.

This patch will support this kind of scenario:

MCFG:
	bus range: 0x00~0xff.
	segment: 0.
DSDT:
	host bridge 1:
		bus range: 0x00~0x1f.
		segment: 0.
	host bridge 2:
		bus range: 0x20~0x4f.
		segment: 0.

Signed-off-by: Zhou Wang <wangzhou1@hisilicon.com>
---
 drivers/acpi/pci_mcfg.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/acpi/pci_mcfg.c b/drivers/acpi/pci_mcfg.c
index b5b376e..46a3e32 100644
--- a/drivers/acpi/pci_mcfg.c
+++ b/drivers/acpi/pci_mcfg.c
@@ -40,11 +40,10 @@ phys_addr_t pci_mcfg_lookup(u16 seg, struct resource *bus_res)
 	struct mcfg_entry *e;
 
 	/*
-	 * We expect exact match, unless MCFG entry end bus covers more than
-	 * specified by caller.
+	 * We expect the range in bus_res in the coverage of MCFG bus range.
 	 */
 	list_for_each_entry(e, &pci_mcfg_list, list) {
-		if (e->segment == seg && e->bus_start == bus_res->start &&
+		if (e->segment == seg && e->bus_start <= bus_res->start &&
 		    e->bus_end >= bus_res->end)
 			return e->addr;
 	}
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2017-01-04  5:44 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-12-22  9:07 [RFC PATCH] ACPI/PCI: Fix bus range comparation in pci_mcfg_lookup Zhou Wang
2017-01-03  1:28 ` Zhou Wang
2017-01-03  6:39 ` Tomasz Nowicki
2017-01-03  9:07   ` Zhou Wang
2017-01-03 12:00 ` Lorenzo Pieralisi
2017-01-04  5:44   ` Zhou Wang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).