linux/drivers/pci
Konrad Rzeszutek Wilk 0e4ccb1505 PCI: Add x86_msi.msi_mask_irq() and msix_mask_irq()
Certain platforms do not allow writes in the MSI-X BARs to setup or tear
down vector values.  To combat against the generic code trying to write to
that and either silently being ignored or crashing due to the pagetables
being marked R/O this patch introduces a platform override.

Note that we keep two separate, non-weak, functions default_mask_msi_irqs()
and default_mask_msix_irqs() for the behavior of the arch_mask_msi_irqs()
and arch_mask_msix_irqs(), as the default behavior is needed by x86 PCI
code.

For Xen, which does not allow the guest to write to MSI-X tables - as the
hypervisor is solely responsible for setting the vector values - we
implement two nops.

This fixes a Xen guest crash when passing a PCI device with MSI-X to the
guest.  See the bugzilla for more details.

[bhelgaas: add bugzilla info]
Reference: https://bugzilla.kernel.org/show_bug.cgi?id=64581
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
CC: Sucheta Chakraborty <sucheta.chakraborty@qlogic.com>
CC: Zhenzhong Duan <zhenzhong.duan@oracle.com>
2013-11-06 16:32:19 -07:00
..
host ARM: SoC platform changes for 3.12 2013-09-06 13:30:06 -07:00
hotplug PCI: acpiphp_ibm: Convert to dynamic debug 2013-09-25 17:00:51 -06:00
pcie PCI: Update pcie_ports 'auto' behavior for non-ACPI platforms 2013-11-01 09:25:16 -06:00
access.c PCI: Remove pcie_cap_has_devctl() 2013-08-28 20:51:39 -06:00
ats.c
bus.c PCI: Delay enabling bridges until they're needed 2013-07-25 12:35:03 -06:00
host-bridge.c PCI: add host bridge release support 2012-04-30 14:52:43 -06:00
hotplug-pci.c PCI: hotplug: remove pci_do_scan_bus() 2012-06-13 15:42:27 -06:00
htirq.c
ioapic.c PCI: Convert ioapic.c to module_pci_driver 2013-05-27 17:05:28 -06:00
iov.c PCI: Return -ENOSYS for SR-IOV operations on non-SR-IOV devices 2013-07-31 16:47:56 -06:00
irq.c PCI: Convert dev_printk(KERN_<LEVEL> to dev_<level>( 2012-11-07 15:24:18 -07:00
Kconfig PCI: remove ARCH_SUPPORTS_MSI kconfig option 2013-08-12 15:26:48 +00:00
Makefile pci: PCIe driver for Marvell Armada 370/XP systems 2013-05-20 19:18:44 +00:00
msi.c PCI: Add x86_msi.msi_mask_irq() and msix_mask_irq() 2013-11-06 16:32:19 -07:00
of.c
pci-acpi.c PCI / ACPI / PM: Clear pme_poll for devices in D3cold on wakeup 2013-09-20 00:24:43 +02:00
pci-driver.c PCI: Warn on driver probe return value greater than zero 2013-11-06 16:08:17 -07:00
pci-label.c
pci-stub.c PCI: Convert dev_printk(KERN_<LEVEL> to dev_<level>( 2012-11-07 15:24:18 -07:00
pci-sysfs.c PCI: Add pci_dev_show_local_cpu() to simplify code 2013-10-07 15:12:46 -06:00
pci.c PCI: Drop warning about drivers that don't use pci_set_master() 2013-11-05 16:36:06 -07:00
pci.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2013-09-05 14:54:29 -07:00
probe.c PCI: Remove unused "is_pcie" from pci_dev structure 2013-09-25 15:43:44 -06:00
proc.c pci/proc: switch to fixed_size_llseek() 2013-06-29 12:57:48 +04:00
quirks.c PCI: Remove Intel Haswell D3 delays 2013-09-25 15:45:06 -06:00
remove.c PCI: Add pcibios hooks for adding and removing PCI buses 2013-04-12 15:38:25 -06:00
rom.c PCI: Add PCI ROM helper for platform-provided ROM images 2013-03-26 17:19:41 -06:00
search.c PCI: Fix reference count leak in pci_dev_present() 2013-01-25 13:49:27 -07:00
setup-bus.c PCI: Pass type, width, and prefetchability for window alignment 2013-09-25 15:44:58 -06:00
setup-irq.c PCI: Provide a default pcibios_update_irq() 2012-09-18 17:28:21 -06:00
setup-res.c PCI: Remove unused variables 2013-04-15 10:56:27 -06:00
slot.c PCI: Warn about failures instead of "must_check" functions 2013-04-17 10:21:12 -06:00
syscall.c
vpd.c
xen-pcifront.c xen/pcifront: Deal with toolstack missing 'XenbusStateClosing' state. 2013-06-14 12:28:59 -04:00