diff options
author | Yongji Xie <elohimes@gmail.com> | 2017-04-10 19:58:14 +0800 |
---|---|---|
committer | Bjorn Helgaas <bhelgaas@google.com> | 2017-04-19 12:52:47 -0500 |
commit | e3adec72a3c50b733eb277a9f93c044f59ff55eb (patch) | |
tree | 001be0a9f278e5196e85a7d487ffdea161767b5c /drivers/nubus | |
parent | 0dde1c08d1b9dea01cefb327dba8a6e3ae795214 (diff) | |
download | linux-e3adec72a3c50b733eb277a9f93c044f59ff55eb.tar.gz linux-e3adec72a3c50b733eb277a9f93c044f59ff55eb.tar.bz2 linux-e3adec72a3c50b733eb277a9f93c044f59ff55eb.zip |
PCI: Don't resize resources when realigning all devices in system
The "pci=resource_alignment" argument aligns BARs of designated devices by
artificially increasing their size. Increasing the size increases the
alignment and prevents other resources from being assigned in the same
alignment region, e.g., in the same page, but it can break drivers that use
the BAR size to locate things, e.g., ilo_map_device() does this:
off = pci_resource_len(pdev, bar) - 0x2000;
The new pcibios_default_alignment() interface allows an arch to request
that *all* BARs in the system be aligned to a larger size. In this case,
we don't need to artificially increase the resource size because we know
every BAR of every device will be realigned, so nothing will share the same
alignment region.
Use IORESOURCE_STARTALIGN to request realignment of PCI BARs when we know
we're realigning all BARs in the system.
[bhelgaas: comment, changelog]
Signed-off-by: Yongji Xie <elohimes@gmail.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Diffstat (limited to 'drivers/nubus')
0 files changed, 0 insertions, 0 deletions