mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-15 00:04:15 +08:00
ab42fcb511
On a PCI adapter that provides up to 8 MSI interrupt sources the s390
implementation of PCI interrupts rejected to accommodate them, although
the underlying hardware is able to support that.
For MSI-X it is sufficient to allocate a single irq_desc per msi_desc,
but for MSI multiple irq descriptors are attached to and controlled by
a single msi descriptor. Add the appropriate loops to maintain multiple
irq descriptors and tie/untie them to/from the appropriate AIBV bit, if
a device driver allocates more than 1 MSI interrupt.
Common PCI code passes on requests to allocate a number of interrupt
vectors based on the device drivers' demand and the PCI functions'
capabilities. However, the root-complex of s390 systems support just a
limited number of interrupt vectors per PCI function.
Produce a kernel log message to inform about any architecture-specific
capping that might be done.
With this change, we had a PCI adapter successfully raising
interrupts to its device driver via all 8 sources.
Fixes:
|
||
---|---|---|
.. | ||
Makefile | ||
pci_bus.c | ||
pci_bus.h | ||
pci_clp.c | ||
pci_debug.c | ||
pci_event.c | ||
pci_insn.c | ||
pci_iov.c | ||
pci_iov.h | ||
pci_irq.c | ||
pci_kvm_hook.c | ||
pci_mmio.c | ||
pci_sysfs.c | ||
pci.c |