From nobody Sun May 5 15:37:32 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1518172695468521.0634742660692; Fri, 9 Feb 2018 02:38:15 -0800 (PST) Received: from localhost ([::1]:60445 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ek64J-0003Vs-30 for importer@patchew.org; Fri, 09 Feb 2018 05:38:11 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33779) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ek63F-000312-K2 for qemu-devel@nongnu.org; Fri, 09 Feb 2018 05:37:06 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ek63C-0006yE-Fk for qemu-devel@nongnu.org; Fri, 09 Feb 2018 05:37:05 -0500 Received: from mail-lf0-x242.google.com ([2a00:1450:4010:c07::242]:37911) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ek63C-0006xO-42 for qemu-devel@nongnu.org; Fri, 09 Feb 2018 05:37:02 -0500 Received: by mail-lf0-x242.google.com with SMTP id g72so10576476lfg.5 for ; Fri, 09 Feb 2018 02:37:01 -0800 (PST) Received: from sarna-pc.skytech.lan ([185.16.37.46]) by smtp.gmail.com with ESMTPSA id f77sm391949lfe.96.2018.02.09.02.36.59 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 09 Feb 2018 02:36:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=skytechnology.pl; s=google; h=from:to:cc:subject:date:message-id; bh=rd66pnrWFlYyuxS8R1QFbXLlByxAKgTT5eMY4te6T/M=; b=ln2ZdMV/82QOsGQneWKlZuSdZbp6tsK9/UGLdzkRojQ674+OF92ci9k1K8I+IShbMS 8wSzim7CHSQg8n+Fb8v3A9W+4jLEO7yjkmZIVPFgDLgxuIbfS77yLTfS/6l15IKDcXwl V4wv8Gzfvc1Hb4PdRyIDSjzqutNQxBw/IlDxI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=rd66pnrWFlYyuxS8R1QFbXLlByxAKgTT5eMY4te6T/M=; b=PqGMcoveb+mNYCg7fg6/lqg4y3oOrB8viKpqLtxEGD/wdWUtyUTMIKPnHICEZyOGzb bnNdYADapBnJ0J26kDa9G64cP9YqIfm24d77URK2RIP5H/l743wfCht6LfNqLDxddzwX NlYvkUm3HmCYIRekbw0QpBCgEPuwPKRpiUl/3PItAJ9kZINoYY7fXdtFrnKiMxwobBo7 2VBFphMTE2lR7cGRtP8Re9dNE4fANUNvU+VJDGbHsS5v8hfzA+3x/OzTSTu5y/xEOPKR N3vPcb5R8LXVtVeKXslsjeeMgSdNnvFrpBHkVLEnYxcxKn+bCQanC2q820dgq60XGSa9 vAkA== X-Gm-Message-State: APf1xPDpl+r0fo3VT6Cc4oHkCbfP6UeBsiVElaQ5W6uoXAVx3FzSMo1V aKXjEIBd+ah3Q/XbfWifDVmJF1R6 X-Google-Smtp-Source: AH8x2256Ye4vN0TtfZu0MFxG0lW4isfHk/M7VrLBFfBDDt9DeJZv/8JdOB1h9Zu93ghMY66f8f/f8A== X-Received: by 10.46.41.68 with SMTP id u65mr1575172lje.112.1518172620364; Fri, 09 Feb 2018 02:37:00 -0800 (PST) From: Piotr Sarna To: qemu-devel@nongnu.org Date: Fri, 9 Feb 2018 11:36:55 +0100 Message-Id: <1518172615-1260-1-git-send-email-sarna@skytechnology.pl> X-Mailer: git-send-email 2.7.4 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4010:c07::242 Subject: [Qemu-devel] [PATCH v3] block: unify blocksize types X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kwolf@redhat.com, Piotr Sarna , famz@redhat.com, qemu-block@nongnu.org, mreitz@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 --- 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, co= nst char *name, { DeviceState *dev =3D DEVICE(obj); Property *prop =3D opaque; - uint16_t value, *ptr =3D qdev_get_prop_ptr(dev, prop); + uint32_t value, *ptr =3D qdev_get_prop_ptr(dev, prop); Error *local_err =3D NULL; const int64_t min =3D 512; - const int64_t max =3D 32768; + const int64_t max =3D 2147483648; =20 if (dev->realized) { qdev_prop_set_after_realize(dev, name, errp); return; } =20 - visit_type_uint16(v, name, &value, &local_err); + visit_type_uint32(v, name, &value, &local_err); if (local_err) { error_propagate(errp, local_err); return; @@ -762,9 +762,9 @@ static void set_blocksize(Object *obj, Visitor *v, cons= t char *name, } =20 const PropertyInfo qdev_prop_blocksize =3D { - .name =3D "uint16", - .description =3D "A power of two between 512 and 32768", - .get =3D get_uint16, + .name =3D "uint32", + .description =3D "A power of two between 512 and 2147483648", + .get =3D get_uint32, .set =3D set_blocksize, .set_default_value =3D set_default_value_uint, }; diff --git a/include/hw/block/block.h b/include/hw/block/block.h index 64b9298..c9e6e27 100644 --- a/include/hw/block/block.h +++ b/include/hw/block/block.h @@ -17,8 +17,8 @@ =20 typedef struct BlockConf { BlockBackend *blk; - uint16_t physical_block_size; - uint16_t logical_block_size; + uint32_t physical_block_size; + uint32_t logical_block_size; uint16_t min_io_size; uint32_t opt_io_size; int32_t bootindex; diff --git a/include/hw/qdev-properties.h b/include/hw/qdev-properties.h index 1d61a35..c68d7bf 100644 --- a/include/hw/qdev-properties.h +++ b/include/hw/qdev-properties.h @@ -210,7 +210,7 @@ extern const PropertyInfo qdev_prop_off_auto_pcibar; #define DEFINE_PROP_BIOS_CHS_TRANS(_n, _s, _f, _d) \ DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_bios_chs_trans, int) #define DEFINE_PROP_BLOCKSIZE(_n, _s, _f) \ - DEFINE_PROP_UNSIGNED(_n, _s, _f, 0, qdev_prop_blocksize, uint16_t) + DEFINE_PROP_UNSIGNED(_n, _s, _f, 0, qdev_prop_blocksize, uint32_t) #define DEFINE_PROP_PCI_HOST_DEVADDR(_n, _s, _f) \ DEFINE_PROP(_n, _s, _f, qdev_prop_pci_host_devaddr, PCIHostDeviceAddre= ss) #define DEFINE_PROP_MEMORY_REGION(_n, _s, _f) \ --=20 2.7.4