[PATCH v2 22/25] virtio: support .needed for virtio vmsd

Vladimir Sementsov-Ogievskiy posted 25 patches 4 weeks, 1 day ago
[PATCH v2 22/25] virtio: support .needed for virtio vmsd
Posted by Vladimir Sementsov-Ogievskiy 4 weeks, 1 day ago
Virtio devices now don't use .needed field for their VMSD, but
we are going to use it for vhost-user-blk. So, let's handle this
field in generic code. Nothing is changed for existing vmstates.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
---
 hw/virtio/virtio.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index bf361811d0..aa36438e69 100644
--- a/hw/virtio/virtio.c
+++ b/hw/virtio/virtio.c
@@ -3088,7 +3088,7 @@ int virtio_save(VirtIODevice *vdev, QEMUFile *f)
         vdc->save(vdev, f);
     }
 
-    if (vdc->vmsd) {
+    if (vdc->vmsd && vmstate_section_needed(vdc->vmsd, vdev)) {
         int ret = vmstate_save_state(f, vdc->vmsd, vdev, NULL, &local_err);
         if (ret) {
             error_report_err(local_err);
@@ -3412,7 +3412,7 @@ virtio_load(VirtIODevice *vdev, QEMUFile *f, int version_id)
         }
     }
 
-    if (vdc->vmsd) {
+    if (vdc->vmsd && vmstate_section_needed(vdc->vmsd, vdev)) {
         ret = vmstate_load_state(f, vdc->vmsd, vdev, version_id, &local_err);
         if (ret) {
             error_report_err(local_err);
-- 
2.48.1