[PATCH 0/2] NTB: epf: Fix ntb_hw_epf ISR issues

Koichiro Den <[email protected]> Wed, 4 Mar 2026 17:30:26 +0900
Newsgroups dev.linux.lists.ntb,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
ntb_hw_epf handles doorbell interrupts using multiple MSI/MSI-X vectors.
This small patch series is to address two issues in the interrupt
setup/handler path:

 1) ntb_epf_init_isr() does not unwind already requested IRQs when
    request_irq() fails part-way through the vector loop.

 2) ntb_epf_vec_isr() calls pci_irq_vector() in hardirq context to
    derive the vector number. pci_irq_vector() performs an MSI domain
    lookup (msi_get_virq()) that takes a mutex, which can trigger
    "scheduling while atomic" splats.

Patch 1 fixes the request_irq() unwind path.
Patch 2 caches the Linux IRQ number for vector 0 and uses it as a base in
the ISR, avoiding pci_irq_vector() from hardirq context.

Both patches are Cc'd to stable (v5.12+).

Best regards,
Koichiro

Koichiro Den (2):
  NTB: epf: Fix request_irq() unwind in ntb_epf_init_isr()
  NTB: epf: Avoid pci_irq_vector() from hardirq context

 drivers/ntb/hw/epf/ntb_hw_epf.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

-- 
2.51.0