From patchwork Fri Feb 9 10:36:55 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Piotr Sarna X-Patchwork-Id: 871306 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=skytechnology.pl header.i=@skytechnology.pl header.b="ln2ZdMV/"; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zdBN04GJRz9s7M for ; Fri, 9 Feb 2018 21:37:35 +1100 (AEDT) Received: from localhost ([::1]:60388 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ek63g-00032l-OT for incoming@patchwork.ozlabs.org; Fri, 09 Feb 2018 05:37:32 -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) 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) 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) 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+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" 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, 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; if (dev->realized) { qdev_prop_set_after_realize(dev, name, errp); return; } - 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, const char *name, } const PropertyInfo qdev_prop_blocksize = { - .name = "uint16", - .description = "A power of two between 512 and 32768", - .get = get_uint16, + .name = "uint32", + .description = "A power of two between 512 and 2147483648", + .get = get_uint32, .set = set_blocksize, .set_default_value = 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 @@ 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, PCIHostDeviceAddress) #define DEFINE_PROP_MEMORY_REGION(_n, _s, _f) \