From: Stefan Hajnoczi Date: Tue, 30 Jan 2024 00:27:12 +0000 (-0500) Subject: pflash: fix sectors vs bytes confusion in blk_pread_nonzeroes() X-Git-Tag: v9.0.0~131^2~2 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=d5eaeefbdac30d9ca62612f18e2d3f4509272856;hp=615eaeab3d318ba239d54141a4251746782f65c1;p=mirror_qemu.git pflash: fix sectors vs bytes confusion in blk_pread_nonzeroes() The following expression is incorrect because blk_pread_nonzeroes() deals in units of bytes, not sectors: bytes = MIN(size - offset, BDRV_REQUEST_MAX_SECTORS) ^^^^^^^ BDRV_REQUEST_MAX_BYTES is the appropriate constant. Fixes: a4b15a8b9ef2 ("pflash: Only read non-zero parts of backend image") Cc: Xiang Zheng Signed-off-by: Stefan Hajnoczi Reviewed-by: Philippe Mathieu-Daudé Message-id: 20240130002712.257815-1-stefanha@redhat.com Signed-off-by: Stefan Hajnoczi --- diff --git a/hw/block/block.c b/hw/block/block.c index 9f52ee6e72..ff503002aa 100644 --- a/hw/block/block.c +++ b/hw/block/block.c @@ -30,7 +30,7 @@ static int blk_pread_nonzeroes(BlockBackend *blk, hwaddr size, void *buf) BlockDriverState *bs = blk_bs(blk); for (;;) { - bytes = MIN(size - offset, BDRV_REQUEST_MAX_SECTORS); + bytes = MIN(size - offset, BDRV_REQUEST_MAX_BYTES); if (bytes <= 0) { return 0; }