Re: [PATCH] scsi:sd: define variable dif as unsigned int instead of bool

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

 



On 10/21/19 11:27 PM, chenxiang wrote:
> From: Xiang Chen <chenxiang66@xxxxxxxxxxxxx>
> 
> Variable dif in function sd_setup_read_write_cmnd() is the return value
> of function scsi_host_dif_capable() which returns dif capability of disks.
> If define it as bool, even for the disks which support DIF3, the function
> still return dif=1, which causes IO error. So define variable dif as
> unsigned int instead of bool.
> 
> Fixes: e249e42d277e ("scsi: sd: Clean up sd_setup_read_write_cmnd()")
> Signed-off-by: Xiang Chen <chenxiang66@xxxxxxxxxxxxx>
> ---
>  drivers/scsi/sd.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
> index 32d9517..a763b70 100644
> --- a/drivers/scsi/sd.c
> +++ b/drivers/scsi/sd.c
> @@ -1166,11 +1166,12 @@ static blk_status_t sd_setup_read_write_cmnd(struct scsi_cmnd *cmd)
>  	sector_t lba = sectors_to_logical(sdp, blk_rq_pos(rq));
>  	sector_t threshold;
>  	unsigned int nr_blocks = sectors_to_logical(sdp, blk_rq_sectors(rq));
> -	bool dif, dix;
>  	unsigned int mask = logical_to_sectors(sdp, 1) - 1;
>  	bool write = rq_data_dir(rq) == WRITE;
>  	unsigned char protect, fua;
>  	blk_status_t ret;
> +	unsigned int dif;
> +	bool dix;
>  
>  	ret = scsi_init_io(cmd);
>  	if (ret != BLK_STS_OK)
> 

Reviewed-by: Bart Van Assche <bvanassche@xxxxxxx>




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux