On 5/28/20 4:39 PM, Roman Kagan wrote:
Convert all size-related properties in BlockConf to 32bit. This will
allow to accomodate bigger block sizes (in a followup patch).
s/allow to accomodate/accommodate/
This also allows to make them all accept size suffixes, either via
DEFINE_PROP_BLOCKSIZE or via DEFINE_PROP_SIZE32.
Also, since min_io_size is exposed to the guest by scsi and virtio-blk
devices as an uint16_t in units of logical blocks, introduce an
additional check in blkconf_blocksizes to prevent its silent truncation.
Signed-off-by: Roman Kagan <rvka...@yandex-team.ru>
---
+ if (conf->min_io_size / conf->logical_block_size > UINT16_MAX) {
+ error_setg(errp,
+ "min_io_size must not exceed " stringify(UINT16_MAX)
+ " logical blocks");
On my libc, this results in "must not exceed (65535) logical blocks".
Worse, I could envision a platform where it prints something funky like:
"exceed (2 * (32768) + 1) logical", based on however complex the
definition of UINT16_MAX is. You're better off printing this one with
%d than with stringify().
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3226
Virtualization: qemu.org | libvirt.org