Sector-based blk_read() should die; switch to byte-based blk_pread() instead.
Signed-off-by: Eric Blake <ebl...@redhat.com> --- hw/ide/atapi.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/hw/ide/atapi.c b/hw/ide/atapi.c index 2bb606c..81000d8 100644 --- a/hw/ide/atapi.c +++ b/hw/ide/atapi.c @@ -119,12 +119,12 @@ cd_read_sector_sync(IDEState *s) switch (s->cd_sector_size) { case 2048: - ret = blk_read(s->blk, (int64_t)s->lba << 2, - s->io_buffer, 4); + ret = blk_pread(s->blk, (int64_t)s->lba << (2 + BDRV_SECTOR_BITS), + s->io_buffer, 4 << BDRV_SECTOR_BITS); break; case 2352: - ret = blk_read(s->blk, (int64_t)s->lba << 2, - s->io_buffer + 16, 4); + ret = blk_pread(s->blk, (int64_t)s->lba << (2 + BDRV_SECTOR_BITS), + s->io_buffer + 16, 4 << BDRV_SECTOR_BITS); if (ret >= 0) { cd_data_to_raw(s->io_buffer, s->lba); } -- 2.5.5