PCI hotplug: fakephp: Allocate PCI resources before adding the device
authorDarrick J. Wong <djwong@us.ibm.com>
Tue, 25 Nov 2008 21:51:44 +0000 (13:51 -0800)
committerJesse Barnes <jbarnes@virtuousgeek.org>
Tue, 27 Jan 2009 18:53:24 +0000 (10:53 -0800)
commitbf4162bcf82ebc3258d6bc0ddd6453132abde72d
treeb426269a7f99566bb2c52384e35f593c4c6b3c02
parentbffac3c593eba1f9da3efd0199e49ea6558a40ce
PCI hotplug: fakephp: Allocate PCI resources before adding the device

For PCI devices, pci_bus_assign_resources() must be called to set up the
pci_device->resource array before pci_bus_add_devices() can be called, else
attempts to load drivers results in BAR collision errors where there are none.
This is not done in fakephp, so devices can be "unplugged" but scanning the
parent bus won't bring the devices back due to resource unallocation.  Move the
pci_bus_add_device-calling logic into pci_rescan_bus and preface it with a call
to pci_bus_assign_resources so that we only have to (re)allocate resources once
per bus where a new device is found.

Signed-off-by: Darrick J. Wong <djwong@us.ibm.com>
Acked-by: Alex Chiang <achiang@hp.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
drivers/pci/hotplug/fakephp.c