Re: [PATCH] ata: libata-scsi: ignore reserved bits for REPORT SUPPORTED OPERATION CODES

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2023/09/18 13:24, Niklas Cassel wrote:
> From: Niklas Cassel <niklas.cassel@xxxxxxx>
> 
> For REPORT SUPPORTED OPERATION CODES command, the service action field is
> defined as bits 0-4 in the second byte in the CDB. Bits 5-7 in the second
> byte are reserved.
> 
> Only look at the service action field in the second byte when determining
> if the MAINTENANCE IN opcode is a REPORT SUPPORTED OPERATION CODES command.
> 
> This matches how we only look at the service action field in the second
> byte when determining if the SERVICE ACTION IN(16) opcode is a READ
> CAPACITY(16) command (reserved bits 5-7 in the second byte are ignored).
> 
> Signed-off-by: Niklas Cassel <niklas.cassel@xxxxxxx>

Applied to for-6.6-fixes with the Fixes tag added. Thanks !

> ---
>  drivers/ata/libata-scsi.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
> index d3f28b82c97b..fb73c145b49a 100644
> --- a/drivers/ata/libata-scsi.c
> +++ b/drivers/ata/libata-scsi.c
> @@ -4312,7 +4312,7 @@ void ata_scsi_simulate(struct ata_device *dev, struct scsi_cmnd *cmd)
>  		break;
>  
>  	case MAINTENANCE_IN:
> -		if (scsicmd[1] == MI_REPORT_SUPPORTED_OPERATION_CODES)
> +		if ((scsicmd[1] & 0x1f) == MI_REPORT_SUPPORTED_OPERATION_CODES)
>  			ata_scsi_rbuf_fill(&args, ata_scsiop_maint_in);
>  		else
>  			ata_scsi_set_invalid_field(dev, cmd, 1, 0xff);

-- 
Damien Le Moal
Western Digital Research




[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux