Re: [PATCH 1/2] scsi: sg: use queue_logical_block_size() in max_sectors_bytes()

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

 



On 2020-09-22 22:52, Tom Yan wrote:
> Logical block size was never / is no longer necessarily 512.
> 
> Signed-off-by: Tom Yan <tom.ty89@xxxxxxxxx>
> ---
>  drivers/scsi/sg.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
> index 20472aaaf630..8a2cca71017f 100644
> --- a/drivers/scsi/sg.c
> +++ b/drivers/scsi/sg.c
> @@ -848,10 +848,11 @@ static int srp_done(Sg_fd *sfp, Sg_request *srp)
>  static int max_sectors_bytes(struct request_queue *q)
>  {
>  	unsigned int max_sectors = queue_max_sectors(q);
> +	max_sectors *= queue_logical_block_size(q);
>  
> -	max_sectors = min_t(unsigned int, max_sectors, INT_MAX >> 9);
> +	max_sectors = min_t(unsigned int, max_sectors, INT_MAX);
>  
> -	return max_sectors << 9;
> +	return max_sectors;
>  }

I think the above patch is wrong and also that it breaks code that is
correct. In the Linux kernel, "one sector" is by definition 512 bytes.
See also the definition of the SECTOR_SIZE and SECTOR_SHIFT constants.

Bart.



[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