kernel-ark/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
hotplug-pci.c
htirq.c
ioapic.c
iov.c PCI: Return -ENOSYS for SR-IOV operations on non-SR-IOV devices 2013-07-31 16:47:56 -06:00
irq.c
Kconfig PCI: remove ARCH_SUPPORTS_MSI kconfig option 2013-08-12 15:26:48 +00:00
Makefile
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-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
rom.c
search.c
setup-bus.c PCI: Pass type, width, and prefetchability for window alignment 2013-09-25 15:44:58 -06:00
setup-irq.c
setup-res.c
slot.c
syscall.c
vpd.c
xen-pcifront.c xen/pcifront: Deal with toolstack missing 'XenbusStateClosing' state. 2013-06-14 12:28:59 -04:00