summaryrefslogtreecommitdiffstats
path: root/arch/x86/pci/i386.c
diff options
context:
space:
mode:
authorBjorn Helgaas <bhelgaas@google.com>2014-04-14 23:30:09 +0200
committerBjorn Helgaas <bhelgaas@google.com>2014-04-25 19:09:04 +0200
commit4e4ba9441fb431f3996de2454522342e0b1d9263 (patch)
treed3c3f093bcf34b5946ff9876d363491b38efa880 /arch/x86/pci/i386.c
parentx86/PCI: Fix Broadcom CNB20LE unintended sign extension (diff)
downloadlinux-4e4ba9441fb431f3996de2454522342e0b1d9263.tar.xz
linux-4e4ba9441fb431f3996de2454522342e0b1d9263.zip
x86/PCI: Don't try to move IORESOURCE_PCI_FIXED resources
Don't attempt to move resource marked IORESOURCE_PCI_FIXED, even if pci_claim_resource() fails. In some cases, these are legacy resources that cannot be moved. Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Diffstat (limited to 'arch/x86/pci/i386.c')
-rw-r--r--arch/x86/pci/i386.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/arch/x86/pci/i386.c b/arch/x86/pci/i386.c
index db6b1ab43255..6db58d68feb5 100644
--- a/arch/x86/pci/i386.c
+++ b/arch/x86/pci/i386.c
@@ -271,11 +271,16 @@ static void pcibios_allocate_dev_resources(struct pci_dev *dev, int pass)
"BAR %d: reserving %pr (d=%d, p=%d)\n",
idx, r, disabled, pass);
if (pci_claim_resource(dev, idx) < 0) {
- /* We'll assign a new address later */
- pcibios_save_fw_addr(dev,
- idx, r->start);
- r->end -= r->start;
- r->start = 0;
+ if (r->flags & IORESOURCE_PCI_FIXED) {
+ dev_info(&dev->dev, "BAR %d %pR is immovable\n",
+ idx, r);
+ } else {
+ /* We'll assign a new address later */
+ pcibios_save_fw_addr(dev,
+ idx, r->start);
+ r->end -= r->start;
+ r->start = 0;
+ }
}
}
}