Thread (72 messages) 72 messages, 5 authors, 2021-04-16

Re: [PATCH 04/24] mpi3mr: add support of queue command processing

From: Tomas Henzl <hidden>
Date: 2021-02-25 14:13:30

On 2/25/21 2:24 PM, Kashyap Desai wrote:
quoted
quoted
  * mpi3mr_slave_destroy - Slave destroy callback handler
  * @sdev: SCSI device reference
@@ -126,10 +658,114 @@ static int mpi3mr_target_alloc(struct
scsi_target *starget)  static int mpi3mr_qcmd(struct Scsi_Host *shost,
 	struct scsi_cmnd *scmd)
 {
+	struct mpi3mr_ioc *mrioc = shost_priv(shost);
+	struct mpi3mr_stgt_priv_data *stgt_priv_data;
+	struct mpi3mr_sdev_priv_data *sdev_priv_data;
+	struct scmd_priv *scmd_priv_data = NULL;
+	Mpi3SCSIIORequest_t *scsiio_req = NULL;
+	struct op_req_qinfo *op_req_q = NULL;
 	int retval = 0;
+	u16 dev_handle;
+	u16 host_tag;
+	u32 scsiio_flags = 0;
+	struct request *rq = scmd->request;
+	int iprio_class;
+
+	sdev_priv_data = scmd->device->hostdata;
+	if (!sdev_priv_data || !sdev_priv_data->tgt_priv_data) {
+		scmd->result = DID_NO_CONNECT << 16;
+		scmd->scsi_done(scmd);
+		goto out;
+	}

-	scmd->result = DID_NO_CONNECT << 16;
-	scmd->scsi_done(scmd);
+	if (mrioc->stop_drv_processing) {
+		scmd->result = DID_NO_CONNECT << 16;
+		scmd->scsi_done(scmd);
+		goto out;
+	}
Hi Kashyap,
for what is the above test needed (stop_drv_processing) it looks like
other
quoted
drivers don't need to protect exit function in this was (for example
mpt3sas).
Tomas, This driver code Is still under active development and I will
review this (marking as TBD).
Not only this area, but there are many more optimization possible in
mpi3mr driver.
We want to start with stable version of driver and gradually improve.
<mpi3mr> as multiple h/w queue support and mpt3sas is single queue h/w.
Due to some h/w differences we have noticed some issue are very frequent
for mp3mr vs mpt3sas.

We can opt other way around as well. We can remove this check now and when
we find the bug we can add the fix with root cause details.
Let me know if you are OK to keep this check now or add it whenever it is
required.
You may keep it as it is and remove later if you think that it is safer.
I was only curious how this could be triggered.

Kashyap
quoted
Regards,
Tomash
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help