On Fri, Sep 26, 2025 at 07:08:17PM +0800, Li Zhaoxin wrote:
> Commit c255488d67 "virtio: add vhost support for virtio devices"
> added the get_vhost() function, but it did not include vhost-vdpa devices.
>
> So when I use the vdpa device and query the status of the vdpa device
> with the x-query-virtio-status qmp command, since vdpa does not implement
> vhost_get, it will cause qemu to crash.
>
> Therefore, in order to obtain the status of the virtio device under
> vhost-vdpa,
> we need to add a vhost_get implement for the vdpa device.
>
> Co-developed-by: Miao Kezhan <[email protected]>
> Signed-off-by: Miao Kezhan <[email protected]>
> Signed-off-by: Li Zhaoxin <[email protected]>
For some reason, in my inbox I have this with
From: Li Zhaoxin <[email protected]>
but on qemu-devel the from address is mangled:
https://lore.kernel.org/all/2778f817cb6740a15ecb37927804a67288b062d1.1758860411.git.lizhaoxi...@baidu.com/
I fixed it up but I suggest you figure out what happened here,
because I do not like to fix up patches manually.
> ---
> hw/virtio/vdpa-dev.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/hw/virtio/vdpa-dev.c b/hw/virtio/vdpa-dev.c
> index d1da40afc8..4a7b970976 100644
> --- a/hw/virtio/vdpa-dev.c
> +++ b/hw/virtio/vdpa-dev.c
> @@ -338,6 +338,12 @@ static int vhost_vdpa_device_set_status(VirtIODevice
> *vdev, uint8_t status)
> return 0;
> }
>
> +static struct vhost_dev *vhost_vdpa_device_get_vhost(VirtIODevice *vdev)
> +{
> + VhostVdpaDevice *s = VHOST_VDPA_DEVICE(vdev);
> + return &s->dev;
> +}
> +
> static const Property vhost_vdpa_device_properties[] = {
> DEFINE_PROP_STRING("vhostdev", VhostVdpaDevice, vhostdev),
> DEFINE_PROP_UINT16("queue-size", VhostVdpaDevice, queue_size, 0),
> @@ -369,6 +375,7 @@ static void vhost_vdpa_device_class_init(ObjectClass
> *klass, const void *data)
> vdc->set_config = vhost_vdpa_device_set_config;
> vdc->get_features = vhost_vdpa_device_get_features;
> vdc->set_status = vhost_vdpa_device_set_status;
> + vdc->get_vhost = vhost_vdpa_device_get_vhost;
> }
>
> static void vhost_vdpa_device_instance_init(Object *obj)
> --
> 2.34.1