Commit cebd78a8 authored by Matthew Wilcox's avatar Matthew Wilcox Committed by Linus Torvalds

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: default avatarMatthew Wilcox <willy@linux.intel.com>
Tested-by: default avatarAndrew Patterson <andrew.patterson@hp.com>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 7cc47662
...@@ -99,11 +99,11 @@ void pci_update_resource(struct pci_dev *dev, int resno) ...@@ -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)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment