On 7/15/25 9:59 AM, Akihiko Odaki wrote: > On 2025/07/11 22:02, Paolo Abeni wrote: >> @@ -785,11 +821,12 @@ VirtioStatus *qmp_x_query_virtio_status(const char >> *path, Error **errp) >> status->vhost_dev->nvqs = hdev->nvqs; >> status->vhost_dev->vq_index = hdev->vq_index; >> status->vhost_dev->features = >> - qmp_decode_features(vdev->device_id, hdev->features); >> + qmp_decode_features(vdev->device_id, hdev->features_array); >> status->vhost_dev->acked_features = >> - qmp_decode_features(vdev->device_id, hdev->acked_features); >> + qmp_decode_features(vdev->device_id, >> hdev->acked_features_array); >> status->vhost_dev->backend_features = >> - qmp_decode_features(vdev->device_id, hdev->backend_features); >> + qmp_decode_features(vdev->device_id, >> hdev->backend_features_array); >> + >> status->vhost_dev->protocol_features = >> qmp_decode_protocols(hdev->protocol_features); >> status->vhost_dev->max_queues = hdev->max_queues; >> diff --git a/hw/virtio/virtio-qmp.h b/hw/virtio/virtio-qmp.h >> index 245a446a56..e0a1e49035 100644 >> --- a/hw/virtio/virtio-qmp.h >> +++ b/hw/virtio/virtio-qmp.h >> @@ -18,6 +18,7 @@ >> VirtIODevice *qmp_find_virtio_device(const char *path); >> VirtioDeviceStatus *qmp_decode_status(uint8_t bitmap); >> VhostDeviceProtocols *qmp_decode_protocols(uint64_t bitmap); >> -VirtioDeviceFeatures *qmp_decode_features(uint16_t device_id, uint64_t >> bitmap); >> +VirtioDeviceFeatures *qmp_decode_features(uint16_t device_id, >> + const uint64_t *bitmap); >> >> #endif >> diff --git a/qapi/virtio.json b/qapi/virtio.json >> index 73df718a26..f0442e144b 100644 >> --- a/qapi/virtio.json >> +++ b/qapi/virtio.json >> @@ -488,14 +488,18 @@ >> # unique features) >> # >> # @unknown-dev-features: Virtio device features bitmap that have not >> -# been decoded >> +# been decoded (lower 64 bit) >> +# >> +# @unknown-dev-features-dword2: Virtio device features bitmap that have not >> +# been decoded (bits 65-128) >> # >> # Since: 7.2 >> ## >> { 'struct': 'VirtioDeviceFeatures', >> 'data': { 'transports': [ 'str' ], >> '*dev-features': [ 'str' ], >> - '*unknown-dev-features': 'uint64' } } >> + '*unknown-dev-features': 'uint64', >> + '*unknown-dev-features-dword2': 'uint64' } } > > Let's omit "dword" for consistency with unknown-dev-features, which is > also uint64 but don't have the keyword.
Ok. Can I infer that is actually legit to update a qapi struct definition? It's not clear to me it such change violates any qemu assumptions. /P