Re: [PATCH 4/4] virtio-gpu: add x-vmstate-version

2024-05-07 Thread Fabiano Rosas
marcandre.lur...@redhat.com writes:

> From: Marc-André Lureau 
>
> Machine <= 8.2 use v1.
>
> Signed-off-by: Marc-André Lureau 

Reviewed-by: Fabiano Rosas 



[PATCH 4/4] virtio-gpu: add x-vmstate-version

2024-05-07 Thread marcandre . lureau
From: Marc-André Lureau 

Machine <= 8.2 use v1.

Signed-off-by: Marc-André Lureau 
---
 include/hw/virtio/virtio-gpu.h | 1 +
 hw/core/machine.c  | 1 +
 hw/display/virtio-gpu.c| 6 --
 3 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/include/hw/virtio/virtio-gpu.h b/include/hw/virtio/virtio-gpu.h
index ed44cdad6b..af1c77eb3f 100644
--- a/include/hw/virtio/virtio-gpu.h
+++ b/include/hw/virtio/virtio-gpu.h
@@ -177,6 +177,7 @@ typedef struct VGPUDMABuf {
 struct VirtIOGPU {
 VirtIOGPUBase parent_obj;
 
+uint8_t vmstate_version;
 uint64_t conf_max_hostmem;
 
 VirtQueue *ctrl_vq;
diff --git a/hw/core/machine.c b/hw/core/machine.c
index 4ff60911e7..8f6f0dda7c 100644
--- a/hw/core/machine.c
+++ b/hw/core/machine.c
@@ -42,6 +42,7 @@ GlobalProperty hw_compat_8_2[] = {
 { "migration", "zero-page-detection", "legacy"},
 { TYPE_VIRTIO_IOMMU_PCI, "granule", "4k" },
 { TYPE_VIRTIO_IOMMU_PCI, "aw-bits", "64" },
+{ "virtio-gpu-device", "x-vmstate-version", "1" },
 };
 const size_t hw_compat_8_2_len = G_N_ELEMENTS(hw_compat_8_2);
 
diff --git a/hw/display/virtio-gpu.c b/hw/display/virtio-gpu.c
index 4fd72caf3f..ee1cc1acf9 100644
--- a/hw/display/virtio-gpu.c
+++ b/hw/display/virtio-gpu.c
@@ -1246,7 +1246,8 @@ static int virtio_gpu_save(QEMUFile *f, void *opaque, 
size_t size,
 }
 qemu_put_be32(f, 0); /* end of list */
 
-return vmstate_save_state(f, &vmstate_virtio_gpu_scanouts, g, NULL);
+return vmstate_save_state_v(f, &vmstate_virtio_gpu_scanouts, g,
+NULL, g->vmstate_version, NULL);
 }
 
 static bool virtio_gpu_load_restore_mapping(VirtIOGPU *g,
@@ -1351,7 +1352,7 @@ static int virtio_gpu_load(QEMUFile *f, void *opaque, 
size_t size,
 }
 
 /* load & apply scanout state */
-vmstate_load_state(f, &vmstate_virtio_gpu_scanouts, g, 1);
+vmstate_load_state(f, &vmstate_virtio_gpu_scanouts, g, g->vmstate_version);
 
 return 0;
 }
@@ -1671,6 +1672,7 @@ static Property virtio_gpu_properties[] = {
 DEFINE_PROP_BIT("blob", VirtIOGPU, parent_obj.conf.flags,
 VIRTIO_GPU_FLAG_BLOB_ENABLED, false),
 DEFINE_PROP_SIZE("hostmem", VirtIOGPU, parent_obj.conf.hostmem, 0),
+DEFINE_PROP_UINT8("x-vmstate-version", VirtIOGPU, vmstate_version, 2),
 DEFINE_PROP_END_OF_LIST(),
 };
 
-- 
2.41.0.28.gd7d8841f67