diff mbox

mpt3sas: Fix use sas_is_tlr_enabled API before enabling MPI2_SCSIIO_CONTROL_TLR_ON flag

Message ID 1447351837-31388-1-git-send-email-Sreekanth.Reddy@avagotech.com (mailing list archive)
State Accepted, archived
Headers show

Commit Message

Sreekanth Reddy Nov. 12, 2015, 6:10 p.m. UTC
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>
---
 drivers/scsi/mpt3sas/mpt3sas_scsih.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Comments

Hannes Reinecke Nov. 13, 2015, 7:24 a.m. UTC | #1
On 11/12/2015 07:10 PM, Sreekanth Reddy wrote:
> 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>
> ---
>  drivers/scsi/mpt3sas/mpt3sas_scsih.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/drivers/scsi/mpt3sas/mpt3sas_scsih.c b/drivers/scsi/mpt3sas/mpt3sas_scsih.c
> index d95206b..9ab77b0 100644
> --- a/drivers/scsi/mpt3sas/mpt3sas_scsih.c
> +++ b/drivers/scsi/mpt3sas/mpt3sas_scsih.c
> @@ -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.
>  	 */
>  	if (!ioc->is_warpdrive && !scsih_is_raid(&scmd->device->sdev_gendev)
> -	    && (sas_device_priv_data->flags & MPT_DEVICE_TLR_ON) &&
> -	    scmd->cmd_len != 32)
> +	    && sas_is_tlr_enabled(scmd->device) && scmd->cmd_len != 32)
>  		mpi_control |= MPI2_SCSIIO_CONTROL_TLR_ON;
>  
>  	smid = mpt3sas_base_get_smid_scsiio(ioc, ioc->scsi_io_cb_idx, scmd);
> 
Reviewed-by: Hannes Reinecke <hare@suse.de>

Cheers,

Hannes
Tomas Henzl Nov. 13, 2015, 3:05 p.m. UTC | #2
On 12.11.2015 19:10, Sreekanth Reddy wrote:
> 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: Tomas Henzl <thenzl@redhat.com>

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Martin K. Petersen Nov. 13, 2015, 8:46 p.m. UTC | #3
>>>>> "Sreekanth" == Sreekanth Reddy <sreekanth.reddy@avagotech.com> writes:

Sreekanth> Before enabling MPI2_SCSIIO_CONTROL_TLR_ON flag in MPI SCSI
Sreekanth> IO request message, check whether TLR is enabled on the drive
Sreekanth> using 'sas_is_tlr_enabled' API.

Applied.
diff mbox

Patch

diff --git a/drivers/scsi/mpt3sas/mpt3sas_scsih.c b/drivers/scsi/mpt3sas/mpt3sas_scsih.c
index d95206b..9ab77b0 100644
--- a/drivers/scsi/mpt3sas/mpt3sas_scsih.c
+++ b/drivers/scsi/mpt3sas/mpt3sas_scsih.c
@@ -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.
 	 */
 	if (!ioc->is_warpdrive && !scsih_is_raid(&scmd->device->sdev_gendev)
-	    && (sas_device_priv_data->flags & MPT_DEVICE_TLR_ON) &&
-	    scmd->cmd_len != 32)
+	    && sas_is_tlr_enabled(scmd->device) && scmd->cmd_len != 32)
 		mpi_control |= MPI2_SCSIIO_CONTROL_TLR_ON;
 
 	smid = mpt3sas_base_get_smid_scsiio(ioc, ioc->scsi_io_cb_idx, scmd);