From a78602118043eb9923996504d5b2e1b14a1ec38d Mon Sep 17 00:00:00 2001 From: libai Date: Thu, 21 Dec 2023 11:03:37 +0800 Subject: [PATCH] vdpa: suspend function return 0 when the vdpa device is stopped When vhost vdpa device is stopped(vdpa->started is false), suspend operation do nothing and return success, instead of return failure. The same goes for resume function. Signed-off-by: libai --- hw/virtio/vdpa-dev-mig.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/hw/virtio/vdpa-dev-mig.c b/hw/virtio/vdpa-dev-mig.c index 8b13f89c85..b889dd4715 100644 --- a/hw/virtio/vdpa-dev-mig.c +++ b/hw/virtio/vdpa-dev-mig.c @@ -134,8 +134,8 @@ static int vhost_vdpa_device_suspend(VhostVdpaDevice *vdpa) VirtioBusClass *k = VIRTIO_BUS_GET_CLASS(qbus); int ret; - if (!vdpa->started) { - return -EFAULT; + if (!vdpa->started || vdpa->suspended) { + return 0; } if (!k->set_guest_notifiers) { @@ -178,6 +178,10 @@ static int vhost_vdpa_device_resume(VhostVdpaDevice *vdpa) VirtioBusClass *k = VIRTIO_BUS_GET_CLASS(qbus); int i, ret; + if (vdpa->started || !vdpa->suspended) { + return 0; + } + if (!k->set_guest_notifiers) { error_report("binding does not support guest notifiers\n"); return -ENOSYS; -- 2.27.0