Message ID | 0a69463200d64d81dc27898ff92ecd10b126d968.1512589016.git.mark.kanda@oracle.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Mark, > virtio-blk logical block size should never be larger than physical block > size because it doesn't make sense to have such configurations. QEMU doesn't > have a way to effectively express this condition; the best it can do is > report the physical block exponent as 0 - indicating the logical block size > equals the physical block size. > > This is identical to commit 3da023b5827543ee4c022986ea2ad9d1274410b2 > but applied to virtio-blk (instead of virtio-scsi). Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
On Wed, Dec 06, 2017 at 01:54:01PM -0600, Mark Kanda wrote: > virtio-blk logical block size should never be larger than physical block > size because it doesn't make sense to have such configurations. QEMU doesn't > have a way to effectively express this condition; the best it can do is > report the physical block exponent as 0 - indicating the logical block size > equals the physical block size. > > This is identical to commit 3da023b5827543ee4c022986ea2ad9d1274410b2 > but applied to virtio-blk (instead of virtio-scsi). > > Signed-off-by: Mark Kanda <mark.kanda@oracle.com> > Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> > Reviewed-by: Ameya More <ameya.more@oracle.com> > --- > hw/block/virtio-blk.c | 7 +++++++ > 1 file changed, 7 insertions(+) Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c index 002c56f..acfca78 100644 --- a/hw/block/virtio-blk.c +++ b/hw/block/virtio-blk.c @@ -949,6 +949,13 @@ static void virtio_blk_device_realize(DeviceState *dev, Error **errp) } blkconf_blocksizes(&conf->conf); + if (conf->conf.logical_block_size > + conf->conf.physical_block_size) { + error_setg(errp, + "logical_block_size > physical_block_size not supported"); + return; + } + virtio_init(vdev, "virtio-blk", VIRTIO_ID_BLOCK, sizeof(struct virtio_blk_config));