linux/drivers/pci
Bjorn Helgaas b1a8a31879 PCI: Apply _HPX settings only to relevant devices
[ Upstream commit 977509f7c5 ]

Previously we didn't check the type of device before trying to apply Type 1
(PCI-X) or Type 2 (PCIe) Setting Records from _HPX.

We don't support PCI-X Setting Records, so this was harmless, but the
warning was useless.

We do support PCIe Setting Records, and we didn't check whether a device
was PCIe before applying settings.  I don't think anything bad happened on
non-PCIe devices because pcie_capability_clear_and_set_word(),
pcie_cap_has_lnkctl(), etc., would fail before doing any harm.  But it's
ugly to depend on those internals.

Check the device type before attempting to apply Type 1 and Type 2 Setting
Records (Type 0 records are applicable to PCI, PCI-X, and PCIe devices).

A side benefit is that this prevents useless "not supported" warnings when
a BIOS supplies a Type 1 (PCI-X) Setting Record and we try to apply it to
every single device:

  pci 0000:00:00.0: PCI-X settings not supported

After this patch, we'll get the warning only when a BIOS supplies a Type 1
record and we have a PCI-X device to which it should be applied.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=187731
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2017-11-30 08:39:10 +00:00
..
host PCI: mvebu: Handle changes to the bridge windows while enabled 2017-11-15 15:53:11 +01:00
hotplug PCI: pciehp: Report power fault only once until we clear it 2017-09-27 14:39:24 +02:00
pcie PCI/PME: Restore pcie_pme_driver.remove 2017-02-23 17:44:36 +01:00
access.c PCI: Avoid possible deadlock on pci_lock and p->pi_lock 2017-11-08 10:08:37 +01:00
ats.c PCI: Remove pci_ats_enabled() 2015-08-13 15:59:59 -05:00
bus.c Merge branches 'pci/demodularize-hosts' and 'pci/host-request-windows' into next 2016-08-01 12:23:57 -05:00
ecam.c tree-wide: replace config_enabled() with IS_ENABLED() 2016-08-04 08:50:07 -04:00
host-bridge.c cxl: use pcibios_free_controller_deferred() when removing vPHBs 2016-08-22 11:09:33 +10:00
hotplug-pci.c PCI: Remove unnecessary __ref annotations 2014-04-29 17:36:44 -06:00
htirq.c x86/htirq: Use hierarchical irqdomain to manage Hypertransport interrupts 2015-04-24 15:36:50 +02:00
iov.c PCI: Do any VF BAR updates before enabling the BARs 2017-03-22 12:43:37 +01:00
irq.c PCI: Fix whitespace, capitalization, and spelling errors 2013-11-14 11:28:18 -07:00
Kconfig PCI/MSI: Enable PCI_MSI_IRQ_DOMAIN support for ARC 2016-09-06 10:53:32 -05:00
Makefile x86/platform/intel-mid: Add Power Management Unit driver 2016-06-15 10:10:49 +02:00
msi.c PCI/MSI: Return failure when msix_setup_entries() fails 2017-11-08 10:08:34 +01:00
of.c PCI/MSI: Use of_msi_get_domain instead of open-coded "msi-parent" parsing 2015-10-16 13:07:14 +01:00
pci-acpi.c PCI: Query platform firmware for device power state 2016-09-28 11:46:51 -05:00
pci-driver.c PCI/PM: Restore the status of PCI devices across hibernation 2017-07-27 15:08:00 -07:00
pci-label.c PCI: Fix broken URL for Dell biosdevname 2016-02-29 12:03:19 -06:00
pci-mid.c x86/platform/intel-mid: Retrofit pci_platform_pm_ops ->get_state hook 2016-11-07 13:06:59 +01:00
pci-stub.c PCI: Whitespace cleanup 2014-06-10 20:20:19 -06:00
pci-sysfs.c PCI: Fix race condition with driver_override 2017-10-05 09:44:03 +02:00
pci.c PCI/PM: Add needs_resume flag to avoid suspend complete optimization 2017-06-17 06:41:48 +02:00
pci.h PCI: Remove pci_resource_bar() and pci_iov_resource_bar() 2017-03-22 12:43:36 +01:00
probe.c PCI: Apply _HPX settings only to relevant devices 2017-11-30 08:39:10 +00:00
proc.c PCI: Only allow WC mmap on prefetchable resources 2017-05-25 15:44:47 +02:00
quirks.c PCI: Set Cavium ACS capability quirk flags to assert RR/CR/SV/UF 2017-11-30 08:39:02 +00:00
remove.c PCI: Fix bridge_d3 update on device removal 2016-09-13 16:00:18 -05:00
rom.c PCI: Add comments about ROM BAR updating 2017-03-22 12:43:36 +01:00
search.c PCI: Add support for multiple DMA aliases 2016-04-11 14:34:32 -05:00
setup-bus.c x86/ioapic: Ignore root bridges without a companion ACPI device 2016-09-10 20:30:31 +02:00
setup-irq.c PCI: Export symbols required for loadable host driver modules 2015-04-08 14:17:10 -05:00
setup-res.c PCI: Ignore BAR updates on virtual functions 2017-03-22 12:43:37 +01:00
slot.c PCI: Hold pci_slot_mutex while searching bus->slots list 2015-07-30 16:19:53 -05:00
syscall.c PCI: Whitespace cleanup 2014-06-10 20:20:19 -06:00
vc.c PCI: Fix unaligned accesses in VC code 2016-06-20 13:24:20 -05: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 treewide: replace obsolete _refok by __ref 2016-08-02 17:31:41 -04:00