diff options
author | Bjorn Helgaas <bhelgaas@google.com> | 2014-04-14 23:30:09 +0200 |
---|---|---|
committer | Bjorn Helgaas <bhelgaas@google.com> | 2014-04-25 19:09:04 +0200 |
commit | 4e4ba9441fb431f3996de2454522342e0b1d9263 (patch) | |
tree | d3c3f093bcf34b5946ff9876d363491b38efa880 | |
parent | x86/PCI: Fix Broadcom CNB20LE unintended sign extension (diff) | |
download | linux-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>
-rw-r--r-- | arch/x86/pci/i386.c | 15 |
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; + } } } } |