Sizes and addresses should use QAPI type 'size' (uint64_t). PciMemoryRegion members @address and @size are 'int' (int64_t). qmp_query_pci_regions() implicitly converts from pcibus_t, i.e. uint64_t.
Change these PciMemoryRegion members to 'size'. query-pci now reports sizes and addresses above 2^63-1 correctly instead of their (negative) two's complement. HMP's "info pci" already reported them correctly, because it implicitly converted back to uint64_t. Signed-off-by: Markus Armbruster <arm...@redhat.com> --- qapi-schema.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qapi-schema.json b/qapi-schema.json index 6aa6be9..c8cceb9 100644 --- a/qapi-schema.json +++ b/qapi-schema.json @@ -2062,7 +2062,7 @@ # Since: 0.14.0 ## { 'struct': 'PciMemoryRegion', - 'data': {'bar': 'int', 'type': 'str', 'address': 'int', 'size': 'int', + 'data': {'bar': 'int', 'type': 'str', 'address': 'size', 'size': 'size', '*prefetch': 'bool', '*mem_type_64': 'bool' } } ## -- 2.7.5