Message ID | 20191017150019.75769-1-hare@suse.de (mailing list archive) |
---|---|
State | Mainlined |
Commit | 1052b41b25cbadcb85ff04c3b46663e21168dd3e |
Headers | show |
Series | lpfc: remove left-over BUILD_NVME defines | expand |
On 10/17/2019 8:00 AM, Hannes Reinecke wrote: > The BUILD_NVME define never got defined anywhere, causing > NVMe commands to be treated as SCSI commands when freeing > the buffers. > This was causing a stuck discovery and a horrible crash > in lpfc_set_rrq_active() later on. > > Fixes: c00f62e6c546 ("scsi: lpfc: Merge per-protocol WQ/CQ pairs into single per-cpu pair") > > Signed-off-by: Hannes Reinecke <hare@suse.com> > --- > drivers/scsi/lpfc/lpfc_init.c | 2 -- > drivers/scsi/lpfc/lpfc_scsi.c | 2 -- > 2 files changed, 4 deletions(-) > > Yep. Thanks. Reviewed-by: James Smart <james.smart@broadcom.com> -- james
Hannes, > The BUILD_NVME define never got defined anywhere, causing NVMe > commands to be treated as SCSI commands when freeing the buffers. > This was causing a stuck discovery and a horrible crash in > lpfc_set_rrq_active() later on. Applied to 5.4/scsi-fixes, thanks!
On 10/17/2019 7:01 PM, Martin K. Petersen wrote: > Hannes, > >> The BUILD_NVME define never got defined anywhere, causing NVMe >> commands to be treated as SCSI commands when freeing the buffers. >> This was causing a stuck discovery and a horrible crash in >> lpfc_set_rrq_active() later on. > Applied to 5.4/scsi-fixes, thanks! > The offending patches that introduced the define are: From 12.2.0.0: scsi: lpfc: Move SCSI and NVME Stats to hardware queue structures commit 4c47efc140fa926f00aa59c248458d95bd7b5eab From 12.4.0.0: scsi: lpfc: Merge per-protocol WQ/CQ pairs into single per-cpu pair commit c00f62e6c5468ed0673c583f1ff284274e817410 The 12.2 patch just misses some stats - no big deal. But the 12.4 patch introduces a logic error, and is in the head of the stable tree. I assume that 5.4/scsi-fixes will get merged into 5.4 pre-release, and that the stable tree will rebase to pick it up ? -- james
James, > I assume that 5.4/scsi-fixes will get merged into 5.4 pre-release, Yes. > and that the stable tree will rebase to pick it up ? stable/master is tracking Linus until final release. If you want the stats issue fixed in 5.3, it's best to wait for Hannes' commit to be merged by Linus. You can then request a stable backport.
diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c index a0aa7a555811..6e6bb8da97d6 100644 --- a/drivers/scsi/lpfc/lpfc_init.c +++ b/drivers/scsi/lpfc/lpfc_init.c @@ -9066,7 +9066,6 @@ lpfc_sli4_queue_create(struct lpfc_hba *phba) } } -#if defined(BUILD_NVME) /* Clear NVME stats */ if (phba->cfg_enable_fc4_type & LPFC_ENABLE_NVME) { for (idx = 0; idx < phba->cfg_hdw_queue; idx++) { @@ -9074,7 +9073,6 @@ lpfc_sli4_queue_create(struct lpfc_hba *phba) sizeof(phba->sli4_hba.hdwq[idx].nvme_cstat)); } } -#endif /* Clear SCSI stats */ if (phba->cfg_enable_fc4_type & LPFC_ENABLE_FCP) { diff --git a/drivers/scsi/lpfc/lpfc_scsi.c b/drivers/scsi/lpfc/lpfc_scsi.c index f06f63e58596..67b7a1aed45c 100644 --- a/drivers/scsi/lpfc/lpfc_scsi.c +++ b/drivers/scsi/lpfc/lpfc_scsi.c @@ -528,7 +528,6 @@ lpfc_sli4_io_xri_aborted(struct lpfc_hba *phba, list_del_init(&psb->list); psb->exch_busy = 0; psb->status = IOSTAT_SUCCESS; -#ifdef BUILD_NVME if (psb->cur_iocbq.iocb_flag == LPFC_IO_NVME) { qp->abts_nvme_io_bufs--; spin_unlock(&qp->abts_io_buf_list_lock); @@ -536,7 +535,6 @@ lpfc_sli4_io_xri_aborted(struct lpfc_hba *phba, lpfc_sli4_nvme_xri_aborted(phba, axri, psb); return; } -#endif qp->abts_scsi_io_bufs--; spin_unlock(&qp->abts_io_buf_list_lock);
The BUILD_NVME define never got defined anywhere, causing NVMe commands to be treated as SCSI commands when freeing the buffers. This was causing a stuck discovery and a horrible crash in lpfc_set_rrq_active() later on. Fixes: c00f62e6c546 ("scsi: lpfc: Merge per-protocol WQ/CQ pairs into single per-cpu pair") Signed-off-by: Hannes Reinecke <hare@suse.com> --- drivers/scsi/lpfc/lpfc_init.c | 2 -- drivers/scsi/lpfc/lpfc_scsi.c | 2 -- 2 files changed, 4 deletions(-)