Skip to content

Commit 8c65830

Browse files
jsmart-ghmartinkpetersen
authored andcommitted
scsi: lpfc: Fix EEH encountering oops with NVMe traffic
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@gmail.com Reviewed-by: Ewan D. Milne <emilne@redhat.com> Signed-off-by: James Smart <jsmart2021@gmail.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
1 parent aa2c24e commit 8c65830

1 file changed

Lines changed: 3 additions & 0 deletions

File tree

drivers/scsi/lpfc/lpfc_nvme.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -559,6 +559,9 @@ __lpfc_nvme_ls_req(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
559559
return -ENODEV;
560560
}
561561

562+
if (!vport->phba->sli4_hba.nvmels_wq)
563+
return -ENOMEM;
564+
562565
/*
563566
* there are two dma buf in the request, actually there is one and
564567
* the second one is just the start address + cmd size.

0 commit comments

Comments
 (0)