On 2/25/21 2:24 PM, Kashyap Desai wrote: >>> * 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 >> 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 > >> Regards, >> Tomash