[PATCH 0/4] irqchip/sg2042-msi: Fix broken affinity setting

Inochi Amaoto posted 4 patches 1 month, 4 weeks ago
There is a newer version of this series
drivers/irqchip/irq-sg2042-msi.c | 13 ++++++--
drivers/pci/msi/irqdomain.c      | 52 ++++++++++++++++++++++++++++++++
include/linux/irq.h              |  2 ++
include/linux/msi.h              |  2 ++
kernel/irq/chip.c                | 37 +++++++++++++++++++++++
5 files changed, 104 insertions(+), 2 deletions(-)
[PATCH 0/4] irqchip/sg2042-msi: Fix broken affinity setting
Posted by Inochi Amaoto 1 month, 4 weeks ago
When using NVME on SG2044, the NVME always complains "I/O tag XXX
(XXX) QID XX timeout, completion polled", which is caused by the
broken handler of the sg2042-msi driver.

As PLIC driver can only setting affinity when enabling, the sg2042-msi
does not properly handled affinity setting previously and enable irq in
an unexpected executing path.

Add irq_startup/irq_shutdown support to the PCI template domain,
then set irq_chip_[startup/shutdown]_parent for irq_startup/
irq_shutdown of the sg2042-msi driver. So the irq can be started
properly.

Inochi Amaoto (4):
  genirq: Add irq_chip_(startup/shutdown)_parent
  PCI/MSI: Add startup/shutdown support for per device MSI[X] domains
  irqchip/sg2042-msi: Fix broken affinity setting
  irqchip/sg2042-msi: Set MSI_FLAG_MULTI_PCI_MSI flags for SG2044

 drivers/irqchip/irq-sg2042-msi.c | 13 ++++++--
 drivers/pci/msi/irqdomain.c      | 52 ++++++++++++++++++++++++++++++++
 include/linux/irq.h              |  2 ++
 include/linux/msi.h              |  2 ++
 kernel/irq/chip.c                | 37 +++++++++++++++++++++++
 5 files changed, 104 insertions(+), 2 deletions(-)

--
2.50.1