On Wed, Mar 31, 2021 at 03:27:27PM +0100, Stefan Hajnoczi wrote: > The checks in vu_blk_sect_range_ok() assume VIRTIO_BLK_SECTOR_SIZE is > equal to BDRV_SECTOR_SIZE. This is true, but let's add a > QEMU_BUILD_BUG_ON() to make it explicit. > > We might as well check that the request buffer size is a multiple of > VIRTIO_BLK_SECTOR_SIZE while we're at it. > > Suggested-by: Max Reitz <mre...@redhat.com> > Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> > --- > block/export/vhost-user-blk-server.c | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-)
Ping for QEMU 6.1. Stefan > > diff --git a/block/export/vhost-user-blk-server.c > b/block/export/vhost-user-blk-server.c > index fa06996d37..1862563336 100644 > --- a/block/export/vhost-user-blk-server.c > +++ b/block/export/vhost-user-blk-server.c > @@ -70,9 +70,16 @@ static void vu_blk_req_complete(VuBlkReq *req) > static bool vu_blk_sect_range_ok(VuBlkExport *vexp, uint64_t sector, > size_t size) > { > - uint64_t nb_sectors = size >> BDRV_SECTOR_BITS; > + uint64_t nb_sectors; > uint64_t total_sectors; > > + if (size % VIRTIO_BLK_SECTOR_SIZE) { > + return false; > + } > + > + nb_sectors = size >> VIRTIO_BLK_SECTOR_BITS; > + > + QEMU_BUILD_BUG_ON(BDRV_SECTOR_SIZE != VIRTIO_BLK_SECTOR_SIZE); > if (nb_sectors > BDRV_REQUEST_MAX_SECTORS) { > return false; > } > -- > 2.30.2 >
signature.asc
Description: PGP signature