From: GuoHan Zhao <[email protected]>
vhost_vdpa_device_set_config() receives the updated config buffer, but
forwards s->config to the vhost backend. Since s->config is refreshed by
get_config(), it may contain stale backend state.
Pass the supplied config buffer to vhost_dev_set_config() instead.
Fixes: b430a2bd2303 ("vdpa: add vdpa-dev support")
Signed-off-by: GuoHan Zhao <[email protected]>
Reviewed-by: Michael S. Tsirkin <[email protected]>
Signed-off-by: Michael S. Tsirkin <[email protected]>
Message-ID: <[email protected]>
(cherry picked from commit 421f45d03f328267ebf77fab823a7a25ab3d6c83)
Signed-off-by: Michael Tokarev <[email protected]>
diff --git a/hw/virtio/vdpa-dev.c b/hw/virtio/vdpa-dev.c
index ee228af66f2..7f890d60b14 100644
--- a/hw/virtio/vdpa-dev.c
+++ b/hw/virtio/vdpa-dev.c
@@ -213,7 +213,7 @@ vhost_vdpa_device_set_config(VirtIODevice *vdev, const
uint8_t *config)
VhostVdpaDevice *s = VHOST_VDPA_DEVICE(vdev);
int ret;
- ret = vhost_dev_set_config(&s->dev, s->config, 0, s->config_size,
+ ret = vhost_dev_set_config(&s->dev, config, 0, s->config_size,
VHOST_SET_CONFIG_TYPE_FRONTEND);
if (ret) {
error_report("set device config space failed");
--
2.47.3