mpt3sas: Fix use sas_is_tlr_enabled API before enabling MPI2_SCSIIO_CONTROL_TLR_ON flag
Before enabling MPI2_SCSIIO_CONTROL_TLR_ON flag in MPI SCSI IO request message, check whether TLR is enabled on the drive using 'sas_is_tlr_enabled' API. Actually in the driver code, driver is using below API's 1. sas_enable_tlr() - to enable the TLR 2. sas_disable_tlr() - to disable the TLR 3. sas_is_tlr_enabled() - to check whether TLR is enabled or not. but in scsih_qcmd() we have missed to use sas_is_tlr_enabled() API, instead we checking for TLR bit from flag field of driver's 'struct MPT3SAS_DEVIC' structure. which is corrected with this patch. Signed-off-by: Sreekanth Reddy <Sreekanth.Reddy@avagotech.com> Reviewed-by: Hannes Reinecke <hare@suse.de> Reviewed-by: Tomas Henzl <thenzl@redhat.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
2c5d16d6a9
commit
15de0de29f
|
@ -3905,8 +3905,7 @@ scsih_qcmd(struct Scsi_Host *shost, struct scsi_cmnd *scmd)
|
||||||
* We do not expose raid functionality to upper layer for warpdrive.
|
* We do not expose raid functionality to upper layer for warpdrive.
|
||||||
*/
|
*/
|
||||||
if (!ioc->is_warpdrive && !scsih_is_raid(&scmd->device->sdev_gendev)
|
if (!ioc->is_warpdrive && !scsih_is_raid(&scmd->device->sdev_gendev)
|
||||||
&& (sas_device_priv_data->flags & MPT_DEVICE_TLR_ON) &&
|
&& sas_is_tlr_enabled(scmd->device) && scmd->cmd_len != 32)
|
||||||
scmd->cmd_len != 32)
|
|
||||||
mpi_control |= MPI2_SCSIIO_CONTROL_TLR_ON;
|
mpi_control |= MPI2_SCSIIO_CONTROL_TLR_ON;
|
||||||
|
|
||||||
smid = mpt3sas_base_get_smid_scsiio(ioc, ioc->scsi_io_cb_idx, scmd);
|
smid = mpt3sas_base_get_smid_scsiio(ioc, ioc->scsi_io_cb_idx, scmd);
|
||||||
|
|
Loading…
Reference in New Issue