diff mbox series

[07/10] scsi: libsas: Delete sas_ssp_task.task_prio

Message ID 20230814141022.36875-8-john.g.garry@oracle.com (mailing list archive)
State Superseded
Headers show
Series libsas: Some tidy-up | expand

Commit Message

John Garry Aug. 14, 2023, 2:10 p.m. UTC
Since libsas was introduced in commit 2908d778ab3e ("[SCSI] aic94xx: new
driver"), sas_ssp_task.task_prio is never set, so delete it
and any references which depend on it being set (all of them).

Signed-off-by: John Garry <john.g.garry@oracle.com>
---
 drivers/scsi/aic94xx/aic94xx_task.c    | 1 -
 drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 3 +--
 drivers/scsi/hisi_sas/hisi_sas_v2_hw.c | 3 +--
 drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 2 +-
 drivers/scsi/isci/request.c            | 1 -
 drivers/scsi/mvsas/mv_sas.c            | 3 +--
 drivers/scsi/pm8001/pm8001_hwi.c       | 1 -
 drivers/scsi/pm8001/pm80xx_hwi.c       | 1 -
 include/scsi/libsas.h                  | 1 -
 9 files changed, 4 insertions(+), 12 deletions(-)

Comments

Damien Le Moal Aug. 15, 2023, 2:17 a.m. UTC | #1
On 8/14/23 23:10, John Garry wrote:
> Since libsas was introduced in commit 2908d778ab3e ("[SCSI] aic94xx: new
> driver"), sas_ssp_task.task_prio is never set, so delete it
> and any references which depend on it being set (all of them).
> 
> Signed-off-by: John Garry <john.g.garry@oracle.com>
> ---
>  drivers/scsi/aic94xx/aic94xx_task.c    | 1 -
>  drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 3 +--
>  drivers/scsi/hisi_sas/hisi_sas_v2_hw.c | 3 +--
>  drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 2 +-
>  drivers/scsi/isci/request.c            | 1 -
>  drivers/scsi/mvsas/mv_sas.c            | 3 +--
>  drivers/scsi/pm8001/pm8001_hwi.c       | 1 -
>  drivers/scsi/pm8001/pm80xx_hwi.c       | 1 -
>  include/scsi/libsas.h                  | 1 -
>  9 files changed, 4 insertions(+), 12 deletions(-)
> 
> diff --git a/drivers/scsi/aic94xx/aic94xx_task.c b/drivers/scsi/aic94xx/aic94xx_task.c
> index 1ac4d3afc1a1..f67983e8b262 100644
> --- a/drivers/scsi/aic94xx/aic94xx_task.c
> +++ b/drivers/scsi/aic94xx/aic94xx_task.c
> @@ -485,7 +485,6 @@ static int asd_build_ssp_ascb(struct asd_ascb *ascb, struct sas_task *task,
>  	scb->ssp_task.ssp_frame.tptt = cpu_to_be16(0xFFFF);
>  
>  	memcpy(scb->ssp_task.ssp_cmd.lun, task->ssp_task.LUN, 8);
> -	scb->ssp_task.ssp_cmd.efb_prio_attr |= (task->ssp_task.task_prio << 3);
>  	scb->ssp_task.ssp_cmd.efb_prio_attr |= (task->ssp_task.task_attr & 7);
>  	memcpy(scb->ssp_task.ssp_cmd.cdb, task->ssp_task.cmd->cmnd,
>  	       task->ssp_task.cmd->cmd_len);
> diff --git a/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c
> index d4e3c3a058e0..3c555579f9a1 100644
> --- a/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c
> +++ b/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c
> @@ -1022,8 +1022,7 @@ static void prep_ssp_v1_hw(struct hisi_hba *hisi_hba,
>  
>  	memcpy(buf_cmd, &task->ssp_task.LUN, 8);
>  	if (!tmf) {
> -		buf_cmd[9] = task->ssp_task.task_attr |
> -				(task->ssp_task.task_prio << 3);
> +		buf_cmd[9] = task->ssp_task.task_attr;
>  		memcpy(buf_cmd + 12, task->ssp_task.cmd->cmnd,
>  				task->ssp_task.cmd->cmd_len);
>  	} else {
> diff --git a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
> index 404aa7e179cb..73b378837da7 100644
> --- a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
> +++ b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
> @@ -1798,8 +1798,7 @@ static void prep_ssp_v2_hw(struct hisi_hba *hisi_hba,
>  
>  	memcpy(buf_cmd, &task->ssp_task.LUN, 8);
>  	if (!tmf) {
> -		buf_cmd[9] = task->ssp_task.task_attr |
> -				(task->ssp_task.task_prio << 3);
> +		buf_cmd[9] = task->ssp_task.task_attr;
>  		memcpy(buf_cmd + 12, task->ssp_task.cmd->cmnd,
>  				task->ssp_task.cmd->cmd_len);
>  	} else {
> diff --git a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
> index 813807a24ae1..bbb64ee6afd7 100644
> --- a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
> +++ b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
> @@ -1326,7 +1326,7 @@ static void prep_ssp_v3_hw(struct hisi_hba *hisi_hba,
>  
>  	memcpy(buf_cmd, &task->ssp_task.LUN, 8);
>  	if (!tmf) {
> -		buf_cmd[9] = ssp_task->task_attr | (ssp_task->task_prio << 3);
> +		buf_cmd[9] = ssp_task->task_attr;
>  		memcpy(buf_cmd + 12, scsi_cmnd->cmnd, scsi_cmnd->cmd_len);
>  	} else {
>  		buf_cmd[10] = tmf->tmf;
> diff --git a/drivers/scsi/isci/request.c b/drivers/scsi/isci/request.c
> index 6370cdbfba08..fdb8dff2e50c 100644
> --- a/drivers/scsi/isci/request.c
> +++ b/drivers/scsi/isci/request.c
> @@ -180,7 +180,6 @@ static void sci_io_request_build_ssp_command_iu(struct isci_request *ireq)
>  	cmd_iu->_r_a = 0;
>  	cmd_iu->_r_b = 0;
>  	cmd_iu->en_fburst = 0; /* unsupported */
> -	cmd_iu->task_prio = task->ssp_task.task_prio;

Shouldn't this be replaced with:
	
	cmd_iu->task_prio = 0;

? (note sure how cmd_iu is being initialized, but given that the other fields
around this code are assigned 0, I would guess this one needs that as well...)

>  	cmd_iu->task_attr = task->ssp_task.task_attr;
>  	cmd_iu->_r_c = 0;
>  
> diff --git a/drivers/scsi/mvsas/mv_sas.c b/drivers/scsi/mvsas/mv_sas.c
> index 165f46320bd2..1444b1f1c4c8 100644
> --- a/drivers/scsi/mvsas/mv_sas.c
> +++ b/drivers/scsi/mvsas/mv_sas.c
> @@ -663,8 +663,7 @@ static int mvs_task_prep_ssp(struct mvs_info *mvi,
>  	memcpy(buf_cmd, &task->ssp_task.LUN, 8);
>  
>  	if (ssp_hdr->frame_type != SSP_TASK) {
> -		buf_cmd[9] = task->ssp_task.task_attr |
> -				(task->ssp_task.task_prio << 3);
> +		buf_cmd[9] = task->ssp_task.task_attr;
>  		memcpy(buf_cmd + 12, task->ssp_task.cmd->cmnd,
>  		       task->ssp_task.cmd->cmd_len);
>  	} else{
> diff --git a/drivers/scsi/pm8001/pm8001_hwi.c b/drivers/scsi/pm8001/pm8001_hwi.c
> index 18070e0e06d5..35797b56ea0a 100644
> --- a/drivers/scsi/pm8001/pm8001_hwi.c
> +++ b/drivers/scsi/pm8001/pm8001_hwi.c
> @@ -4053,7 +4053,6 @@ static int pm8001_chip_ssp_io_req(struct pm8001_hba_info *pm8001_ha,
>  	ssp_cmd.data_len = cpu_to_le32(task->total_xfer_len);
>  	ssp_cmd.device_id = cpu_to_le32(pm8001_dev->device_id);
>  	ssp_cmd.tag = cpu_to_le32(tag);
> -	ssp_cmd.ssp_iu.efb_prio_attr |= (task->ssp_task.task_prio << 3);
>  	ssp_cmd.ssp_iu.efb_prio_attr |= (task->ssp_task.task_attr & 7);
>  	memcpy(ssp_cmd.ssp_iu.cdb, task->ssp_task.cmd->cmnd,
>  	       task->ssp_task.cmd->cmd_len);
> diff --git a/drivers/scsi/pm8001/pm80xx_hwi.c b/drivers/scsi/pm8001/pm80xx_hwi.c
> index ad5a73b86415..1c092ee37bdd 100644
> --- a/drivers/scsi/pm8001/pm80xx_hwi.c
> +++ b/drivers/scsi/pm8001/pm80xx_hwi.c
> @@ -4316,7 +4316,6 @@ static int pm80xx_chip_ssp_io_req(struct pm8001_hba_info *pm8001_ha,
>  	ssp_cmd.data_len = cpu_to_le32(task->total_xfer_len);
>  	ssp_cmd.device_id = cpu_to_le32(pm8001_dev->device_id);
>  	ssp_cmd.tag = cpu_to_le32(tag);
> -	ssp_cmd.ssp_iu.efb_prio_attr |= (task->ssp_task.task_prio << 3);
>  	ssp_cmd.ssp_iu.efb_prio_attr |= (task->ssp_task.task_attr & 7);
>  	memcpy(ssp_cmd.ssp_iu.cdb, task->ssp_task.cmd->cmnd,
>  		       task->ssp_task.cmd->cmd_len);
> diff --git a/include/scsi/libsas.h b/include/scsi/libsas.h
> index d77db53cbd8d..5b2e6932c564 100644
> --- a/include/scsi/libsas.h
> +++ b/include/scsi/libsas.h
> @@ -565,7 +565,6 @@ enum task_attribute {
>  struct sas_ssp_task {
>  	u8     LUN[8];
>  	enum   task_attribute task_attr;
> -	u8     task_prio;
>  	struct scsi_cmnd *cmd;
>  };
>
John Garry Aug. 15, 2023, 7:44 a.m. UTC | #2
On 15/08/2023 03:17, Damien Le Moal wrote:
>> --- a/drivers/scsi/isci/request.c
>> +++ b/drivers/scsi/isci/request.c
>> @@ -180,7 +180,6 @@ static void sci_io_request_build_ssp_command_iu(struct isci_request *ireq)
>>   	cmd_iu->_r_a = 0;
>>   	cmd_iu->_r_b = 0;
>>   	cmd_iu->en_fburst = 0; /* unsupported */
>> -	cmd_iu->task_prio = task->ssp_task.task_prio;
> Shouldn't this be replaced with:
> 	
> 	cmd_iu->task_prio = 0;
> 
> ? (note sure how cmd_iu is being initialized, but given that the other fields
> around this code are assigned 0, I would guess this one needs that as well...)
> 

Yeah, I think that you are right - I'll fix that up. Thanks for checking 
very carefully.

John
Hannes Reinecke Oct. 9, 2023, 6:55 a.m. UTC | #3
On 8/14/23 16:10, John Garry wrote:
> Since libsas was introduced in commit 2908d778ab3e ("[SCSI] aic94xx: new
> driver"), sas_ssp_task.task_prio is never set, so delete it
> and any references which depend on it being set (all of them).
> 
> Signed-off-by: John Garry <john.g.garry@oracle.com>
> ---
>   drivers/scsi/aic94xx/aic94xx_task.c    | 1 -
>   drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 3 +--
>   drivers/scsi/hisi_sas/hisi_sas_v2_hw.c | 3 +--
>   drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 2 +-
>   drivers/scsi/isci/request.c            | 1 -
>   drivers/scsi/mvsas/mv_sas.c            | 3 +--
>   drivers/scsi/pm8001/pm8001_hwi.c       | 1 -
>   drivers/scsi/pm8001/pm80xx_hwi.c       | 1 -
>   include/scsi/libsas.h                  | 1 -
>   9 files changed, 4 insertions(+), 12 deletions(-)
> 
> diff --git a/drivers/scsi/aic94xx/aic94xx_task.c b/drivers/scsi/aic94xx/aic94xx_task.c
> index 1ac4d3afc1a1..f67983e8b262 100644
> --- a/drivers/scsi/aic94xx/aic94xx_task.c
> +++ b/drivers/scsi/aic94xx/aic94xx_task.c
> @@ -485,7 +485,6 @@ static int asd_build_ssp_ascb(struct asd_ascb *ascb, struct sas_task *task,
>   	scb->ssp_task.ssp_frame.tptt = cpu_to_be16(0xFFFF);
>   
>   	memcpy(scb->ssp_task.ssp_cmd.lun, task->ssp_task.LUN, 8);
> -	scb->ssp_task.ssp_cmd.efb_prio_attr |= (task->ssp_task.task_prio << 3);
>   	scb->ssp_task.ssp_cmd.efb_prio_attr |= (task->ssp_task.task_attr & 7);
>   	memcpy(scb->ssp_task.ssp_cmd.cdb, task->ssp_task.cmd->cmnd,
>   	       task->ssp_task.cmd->cmd_len);
> diff --git a/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c
> index d4e3c3a058e0..3c555579f9a1 100644
> --- a/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c
> +++ b/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c
> @@ -1022,8 +1022,7 @@ static void prep_ssp_v1_hw(struct hisi_hba *hisi_hba,
>   
>   	memcpy(buf_cmd, &task->ssp_task.LUN, 8);
>   	if (!tmf) {
> -		buf_cmd[9] = task->ssp_task.task_attr |
> -				(task->ssp_task.task_prio << 3);
> +		buf_cmd[9] = task->ssp_task.task_attr;
>   		memcpy(buf_cmd + 12, task->ssp_task.cmd->cmnd,
>   				task->ssp_task.cmd->cmd_len);
>   	} else {
> diff --git a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
> index 404aa7e179cb..73b378837da7 100644
> --- a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
> +++ b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
> @@ -1798,8 +1798,7 @@ static void prep_ssp_v2_hw(struct hisi_hba *hisi_hba,
>   
>   	memcpy(buf_cmd, &task->ssp_task.LUN, 8);
>   	if (!tmf) {
> -		buf_cmd[9] = task->ssp_task.task_attr |
> -				(task->ssp_task.task_prio << 3);
> +		buf_cmd[9] = task->ssp_task.task_attr;
>   		memcpy(buf_cmd + 12, task->ssp_task.cmd->cmnd,
>   				task->ssp_task.cmd->cmd_len);
>   	} else {
> diff --git a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
> index 813807a24ae1..bbb64ee6afd7 100644
> --- a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
> +++ b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
> @@ -1326,7 +1326,7 @@ static void prep_ssp_v3_hw(struct hisi_hba *hisi_hba,
>   
>   	memcpy(buf_cmd, &task->ssp_task.LUN, 8);
>   	if (!tmf) {
> -		buf_cmd[9] = ssp_task->task_attr | (ssp_task->task_prio << 3);
> +		buf_cmd[9] = ssp_task->task_attr;
>   		memcpy(buf_cmd + 12, scsi_cmnd->cmnd, scsi_cmnd->cmd_len);
>   	} else {
>   		buf_cmd[10] = tmf->tmf;
> diff --git a/drivers/scsi/isci/request.c b/drivers/scsi/isci/request.c
> index 6370cdbfba08..fdb8dff2e50c 100644
> --- a/drivers/scsi/isci/request.c
> +++ b/drivers/scsi/isci/request.c
> @@ -180,7 +180,6 @@ static void sci_io_request_build_ssp_command_iu(struct isci_request *ireq)
>   	cmd_iu->_r_a = 0;
>   	cmd_iu->_r_b = 0;
>   	cmd_iu->en_fburst = 0; /* unsupported */
> -	cmd_iu->task_prio = task->ssp_task.task_prio;
>   	cmd_iu->task_attr = task->ssp_task.task_attr;
>   	cmd_iu->_r_c = 0;
>   
> diff --git a/drivers/scsi/mvsas/mv_sas.c b/drivers/scsi/mvsas/mv_sas.c
> index 165f46320bd2..1444b1f1c4c8 100644
> --- a/drivers/scsi/mvsas/mv_sas.c
> +++ b/drivers/scsi/mvsas/mv_sas.c
> @@ -663,8 +663,7 @@ static int mvs_task_prep_ssp(struct mvs_info *mvi,
>   	memcpy(buf_cmd, &task->ssp_task.LUN, 8);
>   
>   	if (ssp_hdr->frame_type != SSP_TASK) {
> -		buf_cmd[9] = task->ssp_task.task_attr |
> -				(task->ssp_task.task_prio << 3);
> +		buf_cmd[9] = task->ssp_task.task_attr;
>   		memcpy(buf_cmd + 12, task->ssp_task.cmd->cmnd,
>   		       task->ssp_task.cmd->cmd_len);
>   	} else{
> diff --git a/drivers/scsi/pm8001/pm8001_hwi.c b/drivers/scsi/pm8001/pm8001_hwi.c
> index 18070e0e06d5..35797b56ea0a 100644
> --- a/drivers/scsi/pm8001/pm8001_hwi.c
> +++ b/drivers/scsi/pm8001/pm8001_hwi.c
> @@ -4053,7 +4053,6 @@ static int pm8001_chip_ssp_io_req(struct pm8001_hba_info *pm8001_ha,
>   	ssp_cmd.data_len = cpu_to_le32(task->total_xfer_len);
>   	ssp_cmd.device_id = cpu_to_le32(pm8001_dev->device_id);
>   	ssp_cmd.tag = cpu_to_le32(tag);
> -	ssp_cmd.ssp_iu.efb_prio_attr |= (task->ssp_task.task_prio << 3);
>   	ssp_cmd.ssp_iu.efb_prio_attr |= (task->ssp_task.task_attr & 7);
>   	memcpy(ssp_cmd.ssp_iu.cdb, task->ssp_task.cmd->cmnd,
>   	       task->ssp_task.cmd->cmd_len);
> diff --git a/drivers/scsi/pm8001/pm80xx_hwi.c b/drivers/scsi/pm8001/pm80xx_hwi.c
> index ad5a73b86415..1c092ee37bdd 100644
> --- a/drivers/scsi/pm8001/pm80xx_hwi.c
> +++ b/drivers/scsi/pm8001/pm80xx_hwi.c
> @@ -4316,7 +4316,6 @@ static int pm80xx_chip_ssp_io_req(struct pm8001_hba_info *pm8001_ha,
>   	ssp_cmd.data_len = cpu_to_le32(task->total_xfer_len);
>   	ssp_cmd.device_id = cpu_to_le32(pm8001_dev->device_id);
>   	ssp_cmd.tag = cpu_to_le32(tag);
> -	ssp_cmd.ssp_iu.efb_prio_attr |= (task->ssp_task.task_prio << 3);
>   	ssp_cmd.ssp_iu.efb_prio_attr |= (task->ssp_task.task_attr & 7);
>   	memcpy(ssp_cmd.ssp_iu.cdb, task->ssp_task.cmd->cmnd,
>   		       task->ssp_task.cmd->cmd_len);
> diff --git a/include/scsi/libsas.h b/include/scsi/libsas.h
> index d77db53cbd8d..5b2e6932c564 100644
> --- a/include/scsi/libsas.h
> +++ b/include/scsi/libsas.h
> @@ -565,7 +565,6 @@ enum task_attribute {
>   struct sas_ssp_task {
>   	u8     LUN[8];
>   	enum   task_attribute task_attr;
> -	u8     task_prio;
>   	struct scsi_cmnd *cmd;
>   };
>   
Hmm. While true in general, we lose information on how the 'prio' field 
is coded for the various drivers.
Would it be an idea to use explicitly state TASK_ATTR_SIMPLE
in the various drivers such that we know what to fix if we ever
decide to bring task attributes back to life?

Cheers,

Hannes
John Garry Oct. 24, 2023, 10:07 a.m. UTC | #4
On 09/10/2023 07:55, Hannes Reinecke wrote:
>> diff --git a/include/scsi/libsas.h b/include/scsi/libsas.h
>> index d77db53cbd8d..5b2e6932c564 100644
>> --- a/include/scsi/libsas.h
>> +++ b/include/scsi/libsas.h
>> @@ -565,7 +565,6 @@ enum task_attribute {
>>   struct sas_ssp_task {
>>       u8     LUN[8];
>>       enum   task_attribute task_attr;
>> -    u8     task_prio;
>>       struct scsi_cmnd *cmd;
>>   };
> Hmm. While true in general, we lose information on how the 'prio' field 
> is coded for the various drivers.
> Would it be an idea to use explicitly state TASK_ATTR_SIMPLE
> in the various drivers such that we know what to fix if we ever
> decide to bring task attributes back to life?

The HW encoding for these drivers is the same as in the SAS COMMAND 
frame - Command information unit structure, right? So the amount of info 
lost is reduced. And we also have source control history.

I'd be more inclined to get rid of setting task attributes similarly as 
well.

Thanks,
John
Hannes Reinecke Oct. 24, 2023, 10:08 a.m. UTC | #5
On 10/24/23 12:07, John Garry wrote:
> On 09/10/2023 07:55, Hannes Reinecke wrote:
>>> diff --git a/include/scsi/libsas.h b/include/scsi/libsas.h
>>> index d77db53cbd8d..5b2e6932c564 100644
>>> --- a/include/scsi/libsas.h
>>> +++ b/include/scsi/libsas.h
>>> @@ -565,7 +565,6 @@ enum task_attribute {
>>>   struct sas_ssp_task {
>>>       u8     LUN[8];
>>>       enum   task_attribute task_attr;
>>> -    u8     task_prio;
>>>       struct scsi_cmnd *cmd;
>>>   };
>> Hmm. While true in general, we lose information on how the 'prio' 
>> field is coded for the various drivers.
>> Would it be an idea to use explicitly state TASK_ATTR_SIMPLE
>> in the various drivers such that we know what to fix if we ever
>> decide to bring task attributes back to life?
> 
> The HW encoding for these drivers is the same as in the SAS COMMAND 
> frame - Command information unit structure, right? So the amount of info 
> lost is reduced. And we also have source control history.
> 
> I'd be more inclined to get rid of setting task attributes similarly as 
> well.
> 
Fair enough.

Reviewed-by: Hannes Reinecke <hare@suse.de>

Cheers,

Hannes
diff mbox series

Patch

diff --git a/drivers/scsi/aic94xx/aic94xx_task.c b/drivers/scsi/aic94xx/aic94xx_task.c
index 1ac4d3afc1a1..f67983e8b262 100644
--- a/drivers/scsi/aic94xx/aic94xx_task.c
+++ b/drivers/scsi/aic94xx/aic94xx_task.c
@@ -485,7 +485,6 @@  static int asd_build_ssp_ascb(struct asd_ascb *ascb, struct sas_task *task,
 	scb->ssp_task.ssp_frame.tptt = cpu_to_be16(0xFFFF);
 
 	memcpy(scb->ssp_task.ssp_cmd.lun, task->ssp_task.LUN, 8);
-	scb->ssp_task.ssp_cmd.efb_prio_attr |= (task->ssp_task.task_prio << 3);
 	scb->ssp_task.ssp_cmd.efb_prio_attr |= (task->ssp_task.task_attr & 7);
 	memcpy(scb->ssp_task.ssp_cmd.cdb, task->ssp_task.cmd->cmnd,
 	       task->ssp_task.cmd->cmd_len);
diff --git a/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c
index d4e3c3a058e0..3c555579f9a1 100644
--- a/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c
+++ b/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c
@@ -1022,8 +1022,7 @@  static void prep_ssp_v1_hw(struct hisi_hba *hisi_hba,
 
 	memcpy(buf_cmd, &task->ssp_task.LUN, 8);
 	if (!tmf) {
-		buf_cmd[9] = task->ssp_task.task_attr |
-				(task->ssp_task.task_prio << 3);
+		buf_cmd[9] = task->ssp_task.task_attr;
 		memcpy(buf_cmd + 12, task->ssp_task.cmd->cmnd,
 				task->ssp_task.cmd->cmd_len);
 	} else {
diff --git a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
index 404aa7e179cb..73b378837da7 100644
--- a/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
+++ b/drivers/scsi/hisi_sas/hisi_sas_v2_hw.c
@@ -1798,8 +1798,7 @@  static void prep_ssp_v2_hw(struct hisi_hba *hisi_hba,
 
 	memcpy(buf_cmd, &task->ssp_task.LUN, 8);
 	if (!tmf) {
-		buf_cmd[9] = task->ssp_task.task_attr |
-				(task->ssp_task.task_prio << 3);
+		buf_cmd[9] = task->ssp_task.task_attr;
 		memcpy(buf_cmd + 12, task->ssp_task.cmd->cmnd,
 				task->ssp_task.cmd->cmd_len);
 	} else {
diff --git a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
index 813807a24ae1..bbb64ee6afd7 100644
--- a/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
+++ b/drivers/scsi/hisi_sas/hisi_sas_v3_hw.c
@@ -1326,7 +1326,7 @@  static void prep_ssp_v3_hw(struct hisi_hba *hisi_hba,
 
 	memcpy(buf_cmd, &task->ssp_task.LUN, 8);
 	if (!tmf) {
-		buf_cmd[9] = ssp_task->task_attr | (ssp_task->task_prio << 3);
+		buf_cmd[9] = ssp_task->task_attr;
 		memcpy(buf_cmd + 12, scsi_cmnd->cmnd, scsi_cmnd->cmd_len);
 	} else {
 		buf_cmd[10] = tmf->tmf;
diff --git a/drivers/scsi/isci/request.c b/drivers/scsi/isci/request.c
index 6370cdbfba08..fdb8dff2e50c 100644
--- a/drivers/scsi/isci/request.c
+++ b/drivers/scsi/isci/request.c
@@ -180,7 +180,6 @@  static void sci_io_request_build_ssp_command_iu(struct isci_request *ireq)
 	cmd_iu->_r_a = 0;
 	cmd_iu->_r_b = 0;
 	cmd_iu->en_fburst = 0; /* unsupported */
-	cmd_iu->task_prio = task->ssp_task.task_prio;
 	cmd_iu->task_attr = task->ssp_task.task_attr;
 	cmd_iu->_r_c = 0;
 
diff --git a/drivers/scsi/mvsas/mv_sas.c b/drivers/scsi/mvsas/mv_sas.c
index 165f46320bd2..1444b1f1c4c8 100644
--- a/drivers/scsi/mvsas/mv_sas.c
+++ b/drivers/scsi/mvsas/mv_sas.c
@@ -663,8 +663,7 @@  static int mvs_task_prep_ssp(struct mvs_info *mvi,
 	memcpy(buf_cmd, &task->ssp_task.LUN, 8);
 
 	if (ssp_hdr->frame_type != SSP_TASK) {
-		buf_cmd[9] = task->ssp_task.task_attr |
-				(task->ssp_task.task_prio << 3);
+		buf_cmd[9] = task->ssp_task.task_attr;
 		memcpy(buf_cmd + 12, task->ssp_task.cmd->cmnd,
 		       task->ssp_task.cmd->cmd_len);
 	} else{
diff --git a/drivers/scsi/pm8001/pm8001_hwi.c b/drivers/scsi/pm8001/pm8001_hwi.c
index 18070e0e06d5..35797b56ea0a 100644
--- a/drivers/scsi/pm8001/pm8001_hwi.c
+++ b/drivers/scsi/pm8001/pm8001_hwi.c
@@ -4053,7 +4053,6 @@  static int pm8001_chip_ssp_io_req(struct pm8001_hba_info *pm8001_ha,
 	ssp_cmd.data_len = cpu_to_le32(task->total_xfer_len);
 	ssp_cmd.device_id = cpu_to_le32(pm8001_dev->device_id);
 	ssp_cmd.tag = cpu_to_le32(tag);
-	ssp_cmd.ssp_iu.efb_prio_attr |= (task->ssp_task.task_prio << 3);
 	ssp_cmd.ssp_iu.efb_prio_attr |= (task->ssp_task.task_attr & 7);
 	memcpy(ssp_cmd.ssp_iu.cdb, task->ssp_task.cmd->cmnd,
 	       task->ssp_task.cmd->cmd_len);
diff --git a/drivers/scsi/pm8001/pm80xx_hwi.c b/drivers/scsi/pm8001/pm80xx_hwi.c
index ad5a73b86415..1c092ee37bdd 100644
--- a/drivers/scsi/pm8001/pm80xx_hwi.c
+++ b/drivers/scsi/pm8001/pm80xx_hwi.c
@@ -4316,7 +4316,6 @@  static int pm80xx_chip_ssp_io_req(struct pm8001_hba_info *pm8001_ha,
 	ssp_cmd.data_len = cpu_to_le32(task->total_xfer_len);
 	ssp_cmd.device_id = cpu_to_le32(pm8001_dev->device_id);
 	ssp_cmd.tag = cpu_to_le32(tag);
-	ssp_cmd.ssp_iu.efb_prio_attr |= (task->ssp_task.task_prio << 3);
 	ssp_cmd.ssp_iu.efb_prio_attr |= (task->ssp_task.task_attr & 7);
 	memcpy(ssp_cmd.ssp_iu.cdb, task->ssp_task.cmd->cmnd,
 		       task->ssp_task.cmd->cmd_len);
diff --git a/include/scsi/libsas.h b/include/scsi/libsas.h
index d77db53cbd8d..5b2e6932c564 100644
--- a/include/scsi/libsas.h
+++ b/include/scsi/libsas.h
@@ -565,7 +565,6 @@  enum task_attribute {
 struct sas_ssp_task {
 	u8     LUN[8];
 	enum   task_attribute task_attr;
-	u8     task_prio;
 	struct scsi_cmnd *cmd;
 };