Am 09.02.2018 um 11:36 hat Piotr Sarna geschrieben:
> BlockSizes structure used in block size probing has uint32_t types
> for logical and physical sizes. These fields are wrongfully assigned
> to uint16_t in BlockConf, which results, among other errors,
> in assigning 0 instead of 65536 (which will be the case in at least
> future LizardFS block device driver among other things).
> 
> This commit makes BlockConf's physical_block_size and logical_block_size
> fields uint32_t to avoid inconsistencies.
> 
> Signed-off-by: Piotr Sarna <sa...@skytechnology.pl>
> ---
>  hw/core/qdev-properties.c    | 12 ++++++------
>  include/hw/block/block.h     |  4 ++--
>  include/hw/qdev-properties.h |  2 +-
>  3 files changed, 9 insertions(+), 9 deletions(-)
> 
> diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c
> index 5bbc2d9..c4a1b8f 100644
> --- a/hw/core/qdev-properties.c
> +++ b/hw/core/qdev-properties.c
> @@ -728,17 +728,17 @@ static void set_blocksize(Object *obj, Visitor *v, 
> const char *name,
>  {
>      DeviceState *dev = DEVICE(obj);
>      Property *prop = opaque;
> -    uint16_t value, *ptr = qdev_get_prop_ptr(dev, prop);
> +    uint32_t value, *ptr = qdev_get_prop_ptr(dev, prop);
>      Error *local_err = NULL;
>      const int64_t min = 512;
> -    const int64_t max = 32768;
> +    const int64_t max = 2147483648;

Please see my reply to the v1 patch, this breaks IDE at least.

Kevin

Reply via email to