Skip to content
/ linux Public

Commit adb69cc

Browse files
Sebastian Andrzej SiewiorSasha Levin
authored andcommitted
scsi: efct: Use IRQF_ONESHOT and default primary handler
[ Upstream commit bd81f07 ] There is no added value in efct_intr_msix() compared to irq_default_primary_handler(). Using a threaded interrupt without a dedicated primary handler mandates the IRQF_ONESHOT flag to mask the interrupt source while the threaded handler is active. Otherwise the interrupt can fire again before the threaded handler had a chance to run. Use the default primary interrupt handler by specifying NULL and set IRQF_ONESHOT so the interrupt source is masked until the secondary handler is done. Fixes: 4df84e8 ("scsi: elx: efct: Driver initialization routines") Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Thomas Gleixner <tglx@kernel.org> Link: https://patch.msgid.link/20260128095540.863589-8-bigeasy@linutronix.de Signed-off-by: Sasha Levin <sashal@kernel.org>
1 parent ddc34a1 commit adb69cc

File tree

1 file changed

+1
-7
lines changed

1 file changed

+1
-7
lines changed

drivers/scsi/elx/efct/efct_driver.c

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -415,12 +415,6 @@ efct_intr_thread(int irq, void *handle)
415415
return IRQ_HANDLED;
416416
}
417417

418-
static irqreturn_t
419-
efct_intr_msix(int irq, void *handle)
420-
{
421-
return IRQ_WAKE_THREAD;
422-
}
423-
424418
static int
425419
efct_setup_msix(struct efct *efct, u32 num_intrs)
426420
{
@@ -450,7 +444,7 @@ efct_setup_msix(struct efct *efct, u32 num_intrs)
450444
intr_ctx->index = i;
451445

452446
rc = request_threaded_irq(pci_irq_vector(efct->pci, i),
453-
efct_intr_msix, efct_intr_thread, 0,
447+
NULL, efct_intr_thread, IRQF_ONESHOT,
454448
EFCT_DRIVER_NAME, intr_ctx);
455449
if (rc) {
456450
dev_err(&efct->pci->dev,

0 commit comments

Comments
 (0)