mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-02-10 23:45:35 +07:00
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@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> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
116826d615
commit
020680e36d
@ -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.
|
||||
|
Loading…
Reference in New Issue
Block a user