linux/drivers/pci
Keith Busch 390e2db824 PCI/AER: Abstract AER interrupt handling
The aer_inject module was directly calling aer_irq().  This required the
AER driver export its private IRQ handler for no other reason than to
support error injection.  A driver should not have to expose its private
interfaces, so use the IRQ subsystem to route injection to the AER driver,
and make aer_irq() a private interface.

This provides additional benefits:

First, directly calling the IRQ handler bypassed the IRQ subsytem so the
injection wasn't really synthesizing what happens if a shared AER interrupt
occurs.

The error injection had to provide the callback data directly, which may be
racing with a removal that is freeing that structure.  The IRQ subsystem
can handle that race.

Finally, using the IRQ subsystem automatically reacts to threaded IRQs,
keeping the error injection abstracted from that implementation detail.

Signed-off-by: Keith Busch <keith.busch@intel.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2018-10-18 19:43:09 -05:00
..
controller pci-v4.19-changes 2018-08-16 09:21:54 -07:00
endpoint Merge branch 'remotes/lorenzo/pci/dwc' 2018-08-15 14:59:11 -05:00
hotplug PCI: pnv_php: Use kmemdup() 2018-10-02 16:04:40 -05:00
pcie PCI/AER: Abstract AER interrupt handling 2018-10-18 19:43:09 -05:00
switch switchtec: Fix Spectre v1 vulnerability 2018-09-11 08:47:40 -05:00
access.c PCI: Uninline PCI bus accessors for better ftracing 2018-10-04 16:37:37 -05:00
ats.c PCI: Enable PASID only if entire path supports End-End TLP prefixes 2018-06-30 14:10:03 -05:00
bus.c PCI: Fix is_added/is_busmaster race condition 2018-07-31 11:27:54 -05:00
ecam.c PCI: Add SPDX GPL-2.0 to replace GPL v2 boilerplate 2018-01-28 15:48:29 -06:00
host-bridge.c PCI: Tidy comments 2018-03-19 14:20:43 -05:00
iov.c Merge branch 'pci/virtualization' 2018-08-15 14:59:06 -05:00
irq.c PCI: Use IRQF_ONESHOT if pci_request_irq() called with no handler 2018-07-31 10:43:43 -05:00
Kconfig PCI: Collect all native drivers under drivers/pci/controller/ 2018-06-08 07:50:11 -05:00
Makefile PCI: Initialize endpoint library before controllers 2018-06-26 15:37:37 -05:00
mmap.c PCI: Tidy comments 2018-03-19 14:20:43 -05:00
msi.c PCI/MSI: Set IRQCHIP_ONESHOT_SAFE for PCI-MSI irqchips 2018-08-14 16:11:02 -05:00
of.c Merge branch 'pci/resource' 2018-08-15 14:59:01 -05:00
pci-acpi.c PCI / ACPI: Whitelist D3 for more PCIe hotplug ports 2018-10-02 16:04:40 -05:00
pci-driver.c Merge branch 'pci/misc' 2018-08-15 14:58:54 -05:00
pci-label.c PCI: Tidy comments 2018-03-19 14:20:43 -05:00
pci-mid.c PCI: Add SPDX GPL-2.0 to replace GPL v2 boilerplate 2018-01-28 15:48:29 -06:00
pci-pf-stub.c PCI/IOV: Add pci-pf-stub driver for PFs that only enable VFs 2018-04-24 16:47:16 -05:00
pci-stub.c PCI: Tidy comments 2018-03-19 14:20:43 -05:00
pci-sysfs.c Merge branch 'pci/hotplug' 2018-08-15 14:58:52 -05:00
pci.c PCI / ACPI: Whitelist D3 for more PCIe hotplug ports 2018-10-02 16:04:40 -05:00
pci.h PCI / ACPI: Whitelist D3 for more PCIe hotplug ports 2018-10-02 16:04:40 -05:00
probe.c PCI: Make link active reporting detection generic 2018-10-02 16:04:40 -05:00
proc.c proc: introduce proc_create_seq{,_data} 2018-05-16 07:23:35 +02:00
quirks.c Revert "PCI: Add ACS quirk for Intel 300 series" 2018-09-11 08:47:38 -05:00
remove.c Merge branch 'pci/aspm' 2018-08-15 14:58:46 -05:00
rom.c PCI: Make pci_get_rom_size() static 2018-06-29 21:17:26 -05:00
search.c PCI: Tidy comments 2018-03-19 14:20:43 -05:00
setup-bus.c PCI: Equalize hotplug memory and io for occupied and empty slots 2018-10-02 16:04:40 -05:00
setup-irq.c PCI: Tidy comments 2018-03-19 14:20:43 -05:00
setup-res.c PCI: Remove messages about reassigning resources 2018-04-11 08:46:50 -05:00
slot.c PCI/ERR: Use slot reset if available 2018-09-21 12:18:10 -05:00
syscall.c PCI: Tidy comments 2018-03-19 14:20:43 -05:00
vc.c Merge branch 'pci/spdx' into next 2018-02-01 11:40:07 -06:00
vpd.c PCI/VPD: Check for VPD access completion before checking for timeout 2018-08-14 16:04:46 -05:00
xen-pcifront.c PCI: Tidy comments 2018-03-19 14:20:43 -05:00