diff options
author | Bjorn Helgaas <bhelgaas@google.com> | 2016-03-01 10:58:04 -0600 |
---|---|---|
committer | Bjorn Helgaas <bhelgaas@google.com> | 2016-03-08 12:14:31 -0600 |
commit | 2ea4adf75235c14c5a52a90eb3c282383f79a86b (patch) | |
tree | 80fb32a9161785ae87d2caf2c9821b4f01b6be9a | |
parent | 63e22924f5dc08badf9870c4a52ef4e7f7cbf218 (diff) | |
download | linux-2ea4adf75235c14c5a52a90eb3c282383f79a86b.tar.gz linux-2ea4adf75235c14c5a52a90eb3c282383f79a86b.tar.bz2 linux-2ea4adf75235c14c5a52a90eb3c282383f79a86b.zip |
PCI: Don't assign or reassign immutable resources
IORESOURCE_PCI_FIXED means the resource can't be moved, so if it's set,
don't bother trying to assign or reassign the resource.
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
-rw-r--r-- | drivers/pci/setup-res.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/pci/setup-res.c b/drivers/pci/setup-res.c index 604011e047d6..66c4d8f42233 100644 --- a/drivers/pci/setup-res.c +++ b/drivers/pci/setup-res.c @@ -276,6 +276,9 @@ int pci_assign_resource(struct pci_dev *dev, int resno) resource_size_t align, size; int ret; + if (res->flags & IORESOURCE_PCI_FIXED) + return 0; + res->flags |= IORESOURCE_UNSET; align = pci_resource_alignment(dev, res); if (!align) { @@ -321,6 +324,9 @@ int pci_reassign_resource(struct pci_dev *dev, int resno, resource_size_t addsiz resource_size_t new_size; int ret; + if (res->flags & IORESOURCE_PCI_FIXED) + return 0; + flags = res->flags; res->flags |= IORESOURCE_UNSET; if (!res->parent) { |