diff options
author | Yinghai Lu <yinghai@kernel.org> | 2013-11-05 13:34:38 -0700 |
---|---|---|
committer | Bjorn Helgaas <bhelgaas@google.com> | 2013-11-05 16:36:02 -0700 |
commit | cf3e1feba7f906f233790f1806592730a88f584d (patch) | |
tree | f078aab6108d10ffe9f8859967fbb30b8aa8bf71 /net/lapb/lapb_timer.c | |
parent | 6b87e700cd65120b70aaa097a8f4e7f22f1945ee (diff) |
PCI: Workaround missing pci_set_master in pci drivers
Ben Herrenschmidt found that commit 928bea964827 ("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>
Diffstat (limited to 'net/lapb/lapb_timer.c')
0 files changed, 0 insertions, 0 deletions