File 0251-scsi-disk-fix-reads-from-scsi-disk-.patch of Package qemu.6352
From fd751772adc6200dc68ccb2681b0bd9e00860f1d Mon Sep 17 00:00:00 2001
From: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Date: Fri, 3 Jun 2016 06:17:01 +0100
Subject: [PATCH] scsi-disk: fix reads from scsi-disk devices
Commit fcaafb1001b9c42817714dd3b2aadcfdb997b53d accidentally broke reads from
scsi-disk devices when being updated from its original form to use the new
byte-based block functions. Add the extra missing sector to offset conversion
in order to restore read functionality.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Reviewed-by: Eric Blake <eblake@redhat.com>
Tested-by: xiaoqiang zhao <zxq_yx_007@163.com>
Message-id: 1464931021-25117-1-git-send-email-mark.cave-ayland@ilande.co.uk
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
(cherry picked from commit 890e48d7fc7d2ba490610b7ccaa3f479b5f3c1b1)
[BR: BSC#1043176 BSC#1067824]
Signed-off-by: Bruce Rogers <brogers@suse.com>
---
hw/scsi/scsi-disk.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c
index 8bae9d81cd..d479451762 100644
--- a/hw/scsi/scsi-disk.c
+++ b/hw/scsi/scsi-disk.c
@@ -349,7 +349,7 @@ static void scsi_do_read(SCSIDiskReq *r, int ret)
n = scsi_init_iovec(r, SCSI_DMA_BUF_SIZE);
block_acct_start(blk_get_stats(s->qdev.conf.blk), &r->acct,
n * BDRV_SECTOR_SIZE, BLOCK_ACCT_READ);
- r->req.aiocb = sdc->dma_readv(r->sector, &r->qiov,
+ r->req.aiocb = sdc->dma_readv(r->sector << BDRV_SECTOR_BITS, &r->qiov,
scsi_read_complete, r, r);
}