Patch "scsi: lpfc: Fix EEH encountering oops with NVMe traffic" has been added to the 5.10-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    scsi: lpfc: Fix EEH encountering oops with NVMe traffic

to the 5.10-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     scsi-lpfc-fix-eeh-encountering-oops-with-nvme-traffi.patch
and it can be found in the queue-5.10 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 08cab573380aed1e507a5fd77e9b4079f9714843
Author: James Smart <jsmart2021@xxxxxxxxx>
Date:   Wed Jan 27 14:16:01 2021 -0800

    scsi: lpfc: Fix EEH encountering oops with NVMe traffic
    
    [ Upstream commit 8c65830ae1629b03e5d65e9aafae7e2cf5f8b743 ]
    
    In testing, in a configuration with Redfish and native NVMe multipath when
    an EEH is injected, a kernel oops is being encountered:
    
    (unreliable)
    lpfc_nvme_ls_req+0x328/0x720 [lpfc]
    __nvme_fc_send_ls_req.constprop.13+0x1d8/0x3d0 [nvme_fc]
    nvme_fc_create_association+0x224/0xd10 [nvme_fc]
    nvme_fc_reset_ctrl_work+0x110/0x154 [nvme_fc]
    process_one_work+0x304/0x5d
    
    the NBMe transport is issuing a Disconnect LS request, which the driver
    receives and tries to post but the work queue used by the driver is already
    being torn down by the eeh.
    
    Fix by validating the validity of the work queue before proceeding with the
    LS transmit.
    
    Link: https://lore.kernel.org/r/20210127221601.84878-1-jsmart2021@xxxxxxxxx
    Reviewed-by: Ewan D. Milne <emilne@xxxxxxxxxx>
    Signed-off-by: James Smart <jsmart2021@xxxxxxxxx>
    Signed-off-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/scsi/lpfc/lpfc_nvme.c b/drivers/scsi/lpfc/lpfc_nvme.c
index 69f1a0457f51e..03c81cec6bc98 100644
--- a/drivers/scsi/lpfc/lpfc_nvme.c
+++ b/drivers/scsi/lpfc/lpfc_nvme.c
@@ -714,6 +714,9 @@ __lpfc_nvme_ls_req(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
 		return -ENODEV;
 	}
 
+	if (!vport->phba->sli4_hba.nvmels_wq)
+		return -ENOMEM;
+
 	/*
 	 * there are two dma buf in the request, actually there is one and
 	 * the second one is just the start address + cmd size.



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux