The block sector size should be in unit of 512 bytes, not in bytes.
Signed-off-by: Long Li <longli@xxxxxxxxxxxxx>
---
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;