linux/drivers/pci
Prarit Bhargava 36265cadf5 PCI: Disable all BAR sizing for devices with non-compliant BARs
commit ad67b437f1 upstream.

b84106b4e2 ("PCI: Disable IO/MEM decoding for devices with non-compliant
BARs") disabled BAR sizing for BARs 0-5 of devices that don't comply with
the PCI spec.  But it didn't do anything for expansion ROM BARs, so we
still try to size them, resulting in warnings like this on Broadwell-EP:

  pci 0000:ff:12.0: BAR 6: failed to assign [mem size 0x00000001 pref]

Move the non-compliant BAR check from __pci_read_base() up to
pci_read_bases() so it applies to the expansion ROM BAR as well as
to BARs 0-5.

Note that direct callers of __pci_read_base(), like sriov_init(), will now
bypass this check.  We haven't had reports of devices with broken SR-IOV
BARs yet.

[bhelgaas: changelog]
Fixes: b84106b4e2 ("PCI: Disable IO/MEM decoding for devices with non-compliant BARs")
Signed-off-by: Prarit Bhargava <prarit@redhat.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
CC: Thomas Gleixner <tglx@linutronix.de>
CC: Ingo Molnar <mingo@redhat.com>
CC: "H. Peter Anvin" <hpa@zytor.com>
CC: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
History 2016-08-22 22:38:00 +01:00
..
host PCI: imx6: Move link up check into imx6_pcie_wait_for_link() 2016-05-01 00:05:44 +02:00
hotplug ACPI / PCI / hotplug: unlock in error path in acpiphp_enable_slot() 2016-02-16 19:50:02 +00:00
pcie PCI/AER: Flush workqueue on device remove to avoid use-after-free 2016-02-25 00:18:35 +00:00
access.c PCI: Use function 0 VPD for identical functions, regular VPD for others 2015-10-19 10:54:35 +01:00
ats.c PCI: Removed unused parts of Page Request Interface support 2014-01-10 14:00:47 -07:00
bus.c PCI: Fix minimum allocation address overwrite 2016-02-02 19:09:18 +00:00
host-bridge.c PCI: Remove unnecessary includes of <linux/init.h> 2014-04-14 16:12:37 -06:00
hotplug-pci.c PCI: Remove unnecessary __ref annotations 2014-04-29 17:36:44 -06:00
htirq.c PCI changes for the v3.16 merge window (part 2): 2014-06-12 13:20:24 -07:00
ioapic.c ACPI and power management updates for 3.14-rc1 2014-01-24 15:51:02 -08:00
iov.c PCI: Make pci_bus_add_device() void 2014-05-30 09:34:27 -06:00
irq.c PCI: Fix whitespace, capitalization, and spelling errors 2013-11-14 11:28:18 -07:00
Kconfig PCI: Convert ioapic to be builtin only, not modular 2014-01-03 14:31:38 -07:00
Makefile Merge branch 'x86-nuke-platforms-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-04-02 13:15:58 -07:00
msi.c PCI/MSI: Add device flag indicating that 64-bit MSIs don't work 2014-12-10 17:15:17 +00:00
of.c PCI: OF: Don't crash when bridge parent is NULL. 2011-08-19 08:51:37 -07:00
pci-acpi.c PCI: Use pci_is_bridge() to simplify code 2014-05-27 14:53:41 -06:00
pci-driver.c PCI: Generate uppercase hex for modalias var in uevent 2015-02-24 10:01:02 +00:00
pci-label.c ACPI / PCI: Fix sysfs acpi_index and label errors 2014-09-05 16:36:34 -07:00
pci-stub.c PCI: Whitespace cleanup 2014-06-10 20:20:19 -06:00
pci-sysfs.c PCI: Supply CPU physical address (not bus address) to iomem_is_exclusive() 2016-08-22 22:37:51 +01:00
pci.c PCI: Add flag for devices where we can't use bus reset 2015-02-04 10:57:26 +00:00
pci.h PCI: Add pci_bus_clip_resource() to clip to fit upstream window 2015-02-04 10:57:28 +00:00
probe.c PCI: Disable all BAR sizing for devices with non-compliant BARs 2016-08-22 22:38:00 +01:00
proc.c PCI: Whitespace cleanup 2014-06-10 20:20:19 -06:00
quirks.c PCI: Use function 0 VPD for identical functions, regular VPD for others 2015-10-19 10:54:35 +01:00
remove.c Revert "PCI: Remove from bus_list and release resources in pci_release_dev()" 2014-02-01 10:24:31 -08:00
rom.c PCI: Fix infinite loop with ROM image of size 0 2015-02-24 10:01:09 +00:00
search.c PCI: Whitespace cleanup 2014-06-10 20:20:19 -06:00
setup-bus.c PCI: Add pci_claim_bridge_resource() to clip window if necessary 2015-02-04 10:57:29 +00:00
setup-irq.c PCI: Whitespace cleanup 2014-06-10 20:20:19 -06:00
setup-res.c PCI: Keep original resource if we fail to expand it 2014-09-05 16:36:34 -07:00
slot.c VERIFY_OCTAL_PERMISSIONS: stricter checking for sysfs perms. 2014-03-24 12:21:00 +10:30
syscall.c PCI: Whitespace cleanup 2014-06-10 20:20:19 -06:00
vc.c PCI: Rename PCI_VC_PORT_REG1/2 to PCI_VC_PORT_CAP1/2 2013-12-17 17:49:39 -07:00
vpd.c pci: Fix files needing export.h for EXPORT_SYMBOL/THIS_MODULE 2011-10-31 19:31:22 -04:00
xen-pcifront.c xen/pcifront: Fix mysterious crashes when NUMA locality information was extracted. 2016-03-08 12:15:21 +00:00