diff options
author | David Daney <david.daney@cavium.com> | 2015-10-08 18:15:10 +0300 |
---|---|---|
committer | Bjorn Helgaas <bhelgaas@google.com> | 2015-10-08 18:15:10 +0300 |
commit | 9a28033753ca9e86593e15050c7ae02fbc03f9ae (patch) | |
tree | 9febdc44f45e6669e4579c432503a82063090b5f /ipc | |
parent | 6701212e86398622a05b85d87391646bf0e81bfc (diff) | |
download | linux-9a28033753ca9e86593e15050c7ae02fbc03f9ae.tar.xz |
PCI: generic: Allow multiple hosts with different map_bus() methods
The generic driver kept a global struct pci_ops ("gen_pci_ops") which it
patched with the .map_bus() method appropriate for the bus device. This is
a problem when we have two different types of bus devices: the .map_bus()
method for the last device probed clobbers the method for previous devices.
The result is that only the last bus device probed has the correct
.map_bus(), and the others fail.
Move the struct pci_ops into the bus-specific structure and initialize a
pointer to it when the bus device is probed.
Signed-off-by: David Daney <david.daney@cavium.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'ipc')
0 files changed, 0 insertions, 0 deletions