Fix pci_claim_resource
Instead of starting from the iomem or ioport roots, start from the parent bus' resources. This fixes a bug where child resources would appear above their parents resources if they had the same size. Signed-off-by: Matthew Wilcox <willy@linux.intel.com> Tested-by: Andrew Patterson <andrew.patterson@hp.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
7cc4766219
commit
cebd78a8c5
|
@ -99,11 +99,11 @@ void pci_update_resource(struct pci_dev *dev, int resno)
|
||||||
int pci_claim_resource(struct pci_dev *dev, int resource)
|
int pci_claim_resource(struct pci_dev *dev, int resource)
|
||||||
{
|
{
|
||||||
struct resource *res = &dev->resource[resource];
|
struct resource *res = &dev->resource[resource];
|
||||||
struct resource *root = NULL;
|
struct resource *root;
|
||||||
char *dtype = resource < PCI_BRIDGE_RESOURCES ? "device" : "bridge";
|
char *dtype = resource < PCI_BRIDGE_RESOURCES ? "device" : "bridge";
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
root = pcibios_select_root(dev, res);
|
root = pci_find_parent_resource(dev, res);
|
||||||
|
|
||||||
err = -EINVAL;
|
err = -EINVAL;
|
||||||
if (root != NULL)
|
if (root != NULL)
|
||||||
|
|
Loading…
Reference in New Issue