dOn Thu, 2016-05-26 at 17:08 -0700, Long Li wrote:
> The block sector size should be in unit of 512 bytes, not in bytes.

Thanks.  The patch subject should use something like:

[PATCH] sd: Use the correct size to set block max sectors

to show what subsystem is being modified.

> diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
[]
> @@ -2862,9 +2862,11 @@ static int sd_revalidate_disk(struct gendisk *disk)
>       if (sdkp->opt_xfer_blocks &&
>           sdkp->opt_xfer_blocks <= dev_max &&
>           sdkp->opt_xfer_blocks <= SD_DEF_XFER_BLOCKS &&
> -         sdkp->opt_xfer_blocks * sdp->sector_size >= PAGE_SIZE)
> -             rw_max = q->limits.io_opt =
> +         sdkp->opt_xfer_blocks * sdp->sector_size >= PAGE_SIZE) {
> +             q->limits.io_opt =
>                       sdkp->opt_xfer_blocks * sdp->sector_size;
> +             rw_max = (q->limits.io_opt >> 9);
> +     }
>       else
>               rw_max = BLK_DEF_MAX_SECTORS;

And style trivia:  it'd be more kernel style consistent as:

        if (...
            sdkp->opt_xfer_blocks * sdp->sector_size >= PAGE_SIZE) {
                q->limits.io_opt = sdkp->opt_xfer_blocks * sdp->sector_size;
                rw_max = q->limits.io_opt >> 9;
        } else {
                rw_max = BLK_DEF_MAX_SECTORS;
        }

ie: no parentheses necessary around the shifted value and
    braces around both arms.

Reply via email to