From 32da793789d7719ba6984fd92f0ce798d7dd1b73 Mon Sep 17 00:00:00 2001 From: Daniel Wagner Date: Mar 28 2024 14:37:50 +0000 Subject: scsi: lpfc: Remove IRQF_ONESHOT flag from threaded IRQ handling (bsc#1221777 bsc#1217958). --- diff --git a/patches.suse/scsi-lpfc-Remove-IRQF_ONESHOT-flag-from-threaded-IRQ.patch b/patches.suse/scsi-lpfc-Remove-IRQF_ONESHOT-flag-from-threaded-IRQ.patch new file mode 100644 index 0000000..31f4075 --- /dev/null +++ b/patches.suse/scsi-lpfc-Remove-IRQF_ONESHOT-flag-from-threaded-IRQ.patch @@ -0,0 +1,37 @@ +From: Justin Tee +Date: Tue, 5 Mar 2024 12:04:54 -0800 +Subject: scsi: lpfc: Remove IRQF_ONESHOT flag from threaded IRQ handling +Patch-mainline: Queued in subsystem maintainer repository +Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git +Git-commit: 4623713e7ade46bfc63a3eade836f566ccbcd771 +References: bsc#1221777 bsc#1217958 + +IRQF_ONESHOT is found to mask HBA generated interrupts when thread_fn is +running. As a result, some EQEs/CQEs miss timely processing resulting in +SCSI layer attempts to abort commands due to io_timeout. Abort CQEs are +also not processed leading to the observations of hangs and spam of "0748 +abort handler timed out waiting for aborting I/O" log messages. + +Remove the IRQF_ONESHOT flag. The cmpxchg and xchg atomic operations on +lpfc_queue->queue_claimed already protect potential parallel access to an +EQ/CQ should the thread_fn get interrupted by the primary irq handler. + +Signed-off-by: Justin Tee +Link: https://lore.kernel.org/r/20240305200503.57317-4-justintee8345@gmail.com +Signed-off-by: Martin K. Petersen +Acked-by: Daniel Wagner +--- + drivers/scsi/lpfc/lpfc_init.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/scsi/lpfc/lpfc_init.c ++++ b/drivers/scsi/lpfc/lpfc_init.c +@@ -13059,7 +13059,7 @@ lpfc_sli4_enable_msix(struct lpfc_hba *p + rc = request_threaded_irq(eqhdl->irq, + &lpfc_sli4_hba_intr_handler, + &lpfc_sli4_hba_intr_handler_th, +- IRQF_ONESHOT, name, eqhdl); ++ 0, name, eqhdl); + if (rc) { + lpfc_printf_log(phba, KERN_WARNING, LOG_INIT, + "0486 MSI-X fast-path (%d) " diff --git a/series.conf b/series.conf index ac118a3..06b1b7f 100644 --- a/series.conf +++ b/series.conf @@ -20070,6 +20070,7 @@ patches.suse/scsi-qla2xxx-Update-version-to-10.02.09.200-k.patch patches.suse/scsi-lpfc-Remove-unnecessary-log-message-in-queuecom.patch patches.suse/scsi-lpfc-Move-NPIV-s-transport-unregistration-to-af.patch + patches.suse/scsi-lpfc-Remove-IRQF_ONESHOT-flag-from-threaded-IRQ.patch ######################################################## # end of sorted patches