linux/drivers/pci
Yinghai Lu f41f064cf4 PCI: Workaround missing pci_set_master in pci drivers
Ben Herrenschmidt found that commit 928bea9648 ("PCI: Delay enabling
bridges until they're needed") breaks PCI in some powerpc environments.

The reason is that the PCIe port driver will call pci_enable_device() on
the bridge, so the device is enabled, but skips pci_set_master because
pcie_port_auto and no acpi on powerpc.

Because of that, pci_enable_bridge() later on (called as a result of the
child device driver doing pci_enable_device) will see the bridge as
already enabled and will not call pci_set_master() on it.

Fixed by add checking in pci_enable_bridge, and call pci_set_master
if driver skip that.

That will make the code more robot and wade off problem for missing
pci_set_master in drivers.

Reported-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2013-09-28 13:25:30 -07:00
..
host ARM: SoC platform changes for 3.12 2013-09-06 13:30:06 -07:00
hotplug Merge branch 'acpi-pci-hotplug' 2013-09-10 23:15:02 +02:00
pcie PCI changes for the v3.12 merge window: 2013-09-03 16:24:35 -07:00
access.c PCI: Remove pcie_cap_has_devctl() 2013-08-28 20:51:39 -06:00
ats.c
bus.c
host-bridge.c
hotplug-pci.c
htirq.c
ioapic.c
iov.c
irq.c
Kconfig
Makefile
msi.c Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
of.c
pci-acpi.c PCI / ACPI / PM: Clear pme_poll for devices in D3cold on wakeup 2013-09-20 00:24:43 +02:00
pci-driver.c
pci-label.c
pci-stub.c
pci-sysfs.c
pci.c PCI: Workaround missing pci_set_master in pci drivers 2013-09-28 13:25:30 -07:00
pci.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2013-09-05 14:54:29 -07:00
probe.c ARM: SoC platform changes for 3.12 2013-09-06 13:30:06 -07:00
proc.c
quirks.c
remove.c
rom.c
search.c
setup-bus.c PCI changes for the v3.12 merge window: 2013-09-03 16:24:35 -07:00
setup-irq.c
setup-res.c
slot.c
syscall.c
vpd.c
xen-pcifront.c