Re: [PATCH v2 3/3] qla2xxx: Fix NVME cmd and LS cmd timeout race condition

2019-06-20 Thread Quinn Tran
Bart, Yes. It does make sense to combine SRB into nvme_private/scsi_cmnd private. That's is a larger discussion that require our team to buy in + test effort. We are actively discussing this subject. In the mean time, we like other NVME users to not run into this crash until the next submis

Re: [PATCH v2 3/3] qla2xxx: Fix NVME cmd and LS cmd timeout race condition

2019-06-19 Thread Bart Van Assche
On 6/18/19 11:10 AM, Himanshu Madhani wrote: diff --git a/drivers/scsi/qla2xxx/qla_nvme.h b/drivers/scsi/qla2xxx/qla_nvme.h index 2d088add7011..67bb4a2a3742 100644 --- a/drivers/scsi/qla2xxx/qla_nvme.h +++ b/drivers/scsi/qla2xxx/qla_nvme.h @@ -34,6 +34,7 @@ struct nvme_private { struct wo

Re: [PATCH v2 3/3] qla2xxx: Fix NVME cmd and LS cmd timeout race condition

2019-06-18 Thread Bart Van Assche
On 6/18/19 11:10 AM, Himanshu Madhani wrote: +out: + /* kref_get was done before work was schedule. */ + if (sp->type == SRB_NVME_CMD) + kref_put(&sp->cmd_kref, qla_nvme_release_fcp_cmd_kref); + else if (sp->type == SRB_NVME_LS) + kref_put(&sp->cmd_kr

[PATCH v2 3/3] qla2xxx: Fix NVME cmd and LS cmd timeout race condition

2019-06-18 Thread Himanshu Madhani
From: Quinn Tran This patch uses kref to protect access between fcp_abort path and nvme command and LS command completion path. Stack trace below shows the abort path is accessing stale memory (nvme_private->sp). When command kref reaches 0, nvme_private & srb resource will be disconnected from