Skip to content

Commit

Permalink
hw/virtio: Support set_config() callback in vhost-user-base
Browse files Browse the repository at this point in the history
The Virtio input device invokes set_config() callback for retrieving
the event configuration info, but the callback is not supported in
vhost-user-base.

This patch adds support set_config() callback in vhost-user-base.

Signed-off-by: Leo Yan <leo.yan@linaro.org>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20231120043721.50555-2-leo.yan@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20240104210945.1223134-9-alex.bennee@linaro.org>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
  • Loading branch information
Leo Yan authored and mstsirkin committed Feb 14, 2024
1 parent e7fe912 commit a26105d
Showing 1 changed file with 17 additions and 0 deletions.
17 changes: 17 additions & 0 deletions hw/virtio/vhost-user-base.c
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,22 @@ static void vub_get_config(VirtIODevice *vdev, uint8_t *config)
}
}

static void vub_set_config(VirtIODevice *vdev, const uint8_t *config_data)
{
VHostUserBase *vub = VHOST_USER_BASE(vdev);
int ret;

g_assert(vub->config_size && vub->vhost_user.supports_config == true);

ret = vhost_dev_set_config(&vub->vhost_dev, config_data,
0, vub->config_size,
VHOST_SET_CONFIG_TYPE_FRONTEND);
if (ret) {
error_report("vhost guest set device config space failed: %d", ret);
return;
}
}

/*
* When the daemon signals an update to the config we just need to
* signal the guest as we re-read the config on demand above.
Expand Down Expand Up @@ -337,6 +353,7 @@ static void vub_class_init(ObjectClass *klass, void *data)
vdc->unrealize = vub_device_unrealize;
vdc->get_features = vub_get_features;
vdc->get_config = vub_get_config;
vdc->set_config = vub_set_config;
vdc->set_status = vub_set_status;
}

Expand Down

0 comments on commit a26105d

Please sign in to comment.