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:
David Daney <david.daney@cavium.com>
Signed-off-by:  Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by:
Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by:  Arnd Bergmann <arnd@arndb.de>
Acked-by:
Arnd Bergmann <arnd@arndb.de>
Acked-by:  Will Deacon <will.deacon@arm.com>
Will Deacon <will.deacon@arm.com>
Loading
Please register or sign in to comment
