]> git.ipfire.org Git - thirdparty/qemu.git/commit
vdpa-dev: Fix the issue of device status not updating when configuration interruption...
authorlyx634449800 <yuxue.liu@jaguarmicro.com>
Mon, 8 Apr 2024 02:00:03 +0000 (10:00 +0800)
committerMichael Tokarev <mjt@tls.msk.ru>
Tue, 9 Apr 2024 17:42:59 +0000 (20:42 +0300)
commitcd461c8445392d02c268d79f7ed68387b440c4b3
tree6206dd4f72c93e4c04bbf50b893a65dad58b9904
parentb57b102a81f7530644b79695335389e4c44d0dd9
vdpa-dev: Fix the issue of device status not updating when configuration interruption is triggered

The set_config callback function vhost_vdpa_device_get_config in
vdpa-dev does not fetch the current device status from the hardware
device, causing the guest os to not receive the latest device status
information.

The hardware updates the config status of the vdpa device and then
notifies the os. The guest os receives an interrupt notification,
triggering a get_config access in the kernel, which then enters qemu
internally. Ultimately, the vhost_vdpa_device_get_config function of
vdpa-dev is called

One scenario encountered is when the device needs to bring down the
vdpa net device. After modifying the status field of virtio_net_config
in the hardware, it sends an interrupt notification. However, the guest
os always receives the STATUS field as VIRTIO_NET_S_LINK_UP.

Signed-off-by: Yuxue Liu <yuxue.liu@jaguarmicro.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Message-Id: <20240408020003.1979-1-yuxue.liu@jaguarmicro.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
(cherry picked from commit 6ae72f609a21cfc56bf655cd4bcded5d07691ce7)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
hw/virtio/vdpa-dev.c