x86 / PCI: prevent re-allocation of already existing bridge and ROM resources
authorMika Westerberg <mika.westerberg@linux.intel.com>
Wed, 3 Jul 2013 14:04:48 +0000 (17:04 +0300)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 23 Jul 2013 01:55:56 +0000 (03:55 +0200)
commitc70d65052a1c792bae8d1bb84845f15526b74997
tree27e1e0ea736c7bd5051618d65e604782ec9300f4
parent3b2f64d00c46e1e4e9bd0bb9bb12619adac27a4b
x86 / PCI: prevent re-allocation of already existing bridge and ROM resources

In hotplug case (especially with Thunderbolt enabled systems) we might need
to call pcibios_resource_survey_bus() several times for a bus. The function
ends up calling pci_claim_resource() for each bridge resource that then
fails claiming that the resource exists already (which it does). Once this
happens the resource is invalidated thus preventing devices behind the
bridge to allocate their resources.

To fix this we do what has been done in pcibios_allocate_dev_resources()
and check 'parent' of the given resource. If it is non-NULL it means that
the resource has been allocated already and we can skip it. We do the same
for ROM resources as well.

Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
arch/x86/pci/i386.c