linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v14 0/1] PCI: Support to workaround bus level HW issues in IDT switch
@ 2018-07-09 15:28 James Puthukattukaran
  2018-07-09 15:31 ` [PATCH v14 1/1] Workaround for ACS related bug in certain IDT switches James Puthukattukaran
  2018-07-09 23:41 ` [PATCH v14 0/1] PCI: Support to workaround bus level HW issues in IDT switch Bjorn Helgaas
  0 siblings, 2 replies; 4+ messages in thread
From: James Puthukattukaran @ 2018-07-09 15:28 UTC (permalink / raw)
  To: Bjorn Helgaas; +Cc: Alex Williamson, linux-pci@vger.kernel.org

There are bugs in certain PCIe switches that cause access violations when an
endpoint device is hotplugged. In particular, there's an issue with
certain IDT switches that trigger a ACS violation when bringing up a newly
plugged PCIe endpoint device. This is a major issue for platforms
designed to issue a fatal reset in the case of this event.

This patch checks if the endpoint device lies behind this errant IDT switch
and if so, implements the suggested workaround

James

-v2: move workaround to pci_bus_read_dev_vendor_id() from pci_bus_check_dev()
     and move enable_acs_sv to drivers/pci/pci.c -- by Yinghai
-v3: add bus->self check for root bus and virtual bus for sriov vfs.
-v4: only do workaround for IDT switches
-v5: tweak pci_std_enable_acs_sv to deal with unimplemented SV
-v6: Added errata verbiage verbatim and resolved patch format issues
-v7: changed int to bool for found and idt_workaround declarations. Also
     added bugzilla https://bugzilla.kernel.org/show_bug.cgi?id=196979
-v8: Rewrote the patch by adding a new acs quirk to keep the workaround
     out of the main code path
-v9: changed function name from pci_dev_specific_fixup_acs_quirk to
     pci_bus_acs_quirk. Also, tested for FLR and hot reset scenarios and did
     not see issues where workaround was required. The issue seems to be
     related only to cold reset/power on situation.
-v10: Moved the contents of pci_bus_read_vendor_id into an internal function
      __pci_bus_read_vendor_id
-v11: Split the patch into two patches. The first a general quirk framework.
-v12: Add pci_bus_generic_read_dev_vendor_id() to carry out default behavior
      when detecting endpoint and pci_bus_specific_read_dev_vendor_id for
      bus quirk behavior
-v13: Fixed build errors found for non-x86 platforms via cross compiles when
      CONFIG_QUIRKS is not defined
-v14: Remove the general quirk framework as per Bjorn; it was deemed an
      overkill. Simplified the code requiring just one patch

James Puthukattukaran(1):
  Workaround for ACS related bug in certain IDT switches

 drivers/pci/pci.h    |  5 ++++
 drivers/pci/probe.c  | 17 +++++++++++++-
 drivers/pci/quirks.c | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 86 insertions(+), 1 deletion(-)

-- 
1.8.3.1

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2018-07-09 23:41 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-07-09 15:28 [PATCH v14 0/1] PCI: Support to workaround bus level HW issues in IDT switch James Puthukattukaran
2018-07-09 15:31 ` [PATCH v14 1/1] Workaround for ACS related bug in certain IDT switches James Puthukattukaran
2018-07-09 23:15   ` Alex Williamson
2018-07-09 23:41 ` [PATCH v14 0/1] PCI: Support to workaround bus level HW issues in IDT switch Bjorn Helgaas

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).