On Mon, Sep 14, 2015 at 10:36 AM, Yinghai Lu <yinghai@xxxxxxxxxx> wrote: > On Mon, Sep 14, 2015 at 9:28 AM, Lorenzo Pieralisi > <lorenzo.pieralisi@xxxxxxx> wrote: >> On Mon, Sep 14, 2015 at 05:05:50PM +0100, Yinghai Lu wrote: >>> We could just revert >>> dff22d2054b5 (" PCI: Call pci_read_bridge_bases() from core instead of >>> arch code") >>> instead. >> > if arch code called pci_read_bridge_bases() via pcibios_fixup_bus(), > then it need to have > to call pcibios_allocate_bus_resources() later. > > but now arm (mips ?) does not have calling pcibios_allocate_bus_resources(). Found other problem that is caused by dff22d2054b5 (" PCI: Call pci_read_bridge_bases() from core instead of arch code") If that commit does not get reverted, will need to have attached patch Subject: [PATCH] PCI: Skip reading bridge bases with existing ones on rescan Noticed there is noisy print out pci bridge bases read out for existing devices that is caused by commit dff22d2054b5 ("PCI: Call pci_read_bridge_bases() from core instead of arch code") pci_bus 0000:06: scanning bus pcieport 0000:06:00.0: scanning [bus 07-09] behind bridge, pass 0 pcieport 0000:06:00.0: PCI bridge to [bus 07-09] pcieport 0000:06:00.0: bridge window [io 0x1000-0x2fff] pcieport 0000:06:00.0: bridge window [mem 0xfda00000-0xfddfffff] pcieport 0000:06:00.0: bridge window [mem 0xfc000000-0xfc3fffff 64bit pref] pci_bus 0000:07: scanning bus pcieport 0000:07:00.0: scanning [bus 08-08] behind bridge, pass 0 pcieport 0000:07:00.0: PCI bridge to [bus 08] pcieport 0000:07:00.0: bridge window [io 0x2000-0x2fff] pcieport 0000:07:00.0: bridge window [mem 0xfdc00000-0xfddfffff] pcieport 0000:07:00.0: bridge window [mem 0xfc200000-0xfc3fffff 64bit pref] pci_bus 0000:08: scanning bus pcieport 0000:07:00.1: scanning [bus 09-09] behind bridge, pass 0 pcieport 0000:07:00.1: PCI bridge to [bus 09] pcieport 0000:07:00.1: bridge window [io 0x1000-0x1fff] pcieport 0000:07:00.1: bridge window [mem 0xfda00000-0xfdbfffff] pcieport 0000:07:00.1: bridge window [mem 0xfc000000-0xfc1fffff 64bit pref] Add is_added checking to avoid those wrong reading. Fixes: dff22d2054b5 ("PCI: Call pci_read_bridge_bases() from core instead of arch code") Signed-off-by: Yinghai Lu <yinghai@xxxxxxxxxx> --- drivers/pci/probe.c | 3 +++ 1 file changed, 3 insertions(+) Index: linux-2.6/drivers/pci/probe.c =================================================================== --- linux-2.6.orig/drivers/pci/probe.c +++ linux-2.6/drivers/pci/probe.c @@ -455,6 +455,9 @@ void pci_read_bridge_bases(struct pci_bu struct resource *res; int i; + if (child->is_added) + return; + if (pci_is_root_bus(child)) /* It's a host bus, nothing to read */ return;
Subject: [PATCH] PCI: Skip reading bridge bases with existing ones on rescan Noticed there is noisy print out pci bridge bases read out for existing devices that is caused by commit dff22d2054b5 ("PCI: Call pci_read_bridge_bases() from core instead of arch code") pci_bus 0000:06: scanning bus pcieport 0000:06:00.0: scanning [bus 07-09] behind bridge, pass 0 pcieport 0000:06:00.0: PCI bridge to [bus 07-09] pcieport 0000:06:00.0: bridge window [io 0x1000-0x2fff] pcieport 0000:06:00.0: bridge window [mem 0xfda00000-0xfddfffff] pcieport 0000:06:00.0: bridge window [mem 0xfc000000-0xfc3fffff 64bit pref] pci_bus 0000:07: scanning bus pcieport 0000:07:00.0: scanning [bus 08-08] behind bridge, pass 0 pcieport 0000:07:00.0: PCI bridge to [bus 08] pcieport 0000:07:00.0: bridge window [io 0x2000-0x2fff] pcieport 0000:07:00.0: bridge window [mem 0xfdc00000-0xfddfffff] pcieport 0000:07:00.0: bridge window [mem 0xfc200000-0xfc3fffff 64bit pref] pci_bus 0000:08: scanning bus pcieport 0000:07:00.1: scanning [bus 09-09] behind bridge, pass 0 pcieport 0000:07:00.1: PCI bridge to [bus 09] pcieport 0000:07:00.1: bridge window [io 0x1000-0x1fff] pcieport 0000:07:00.1: bridge window [mem 0xfda00000-0xfdbfffff] pcieport 0000:07:00.1: bridge window [mem 0xfc000000-0xfc1fffff 64bit pref] Add is_added checking to avoid those wrong reading. Fixes: dff22d2054b5 ("PCI: Call pci_read_bridge_bases() from core instead of arch code") Signed-off-by: Yinghai Lu <yinghai@xxxxxxxxxx> --- drivers/pci/probe.c | 3 +++ 1 file changed, 3 insertions(+) Index: linux-2.6/drivers/pci/probe.c =================================================================== --- linux-2.6.orig/drivers/pci/probe.c +++ linux-2.6/drivers/pci/probe.c @@ -455,6 +455,9 @@ void pci_read_bridge_bases(struct pci_bu struct resource *res; int i; + if (child->is_added) + return; + if (pci_is_root_bus(child)) /* It's a host bus, nothing to read */ return;