The block sector size should be in unit of 512 bytes, not in bytes.

Signed-off-by: Long Li <lon...@microsoft.com>

---
 drivers/scsi/sd.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
index 428c03e..4bce17e 100644
--- 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;
 
-- 
1.8.5.6

Reply via email to