OSDN Git Service

vdpa: stop all svq on device deletion
authorEugenio Pérez <eperezma@redhat.com>
Thu, 9 Feb 2023 17:00:04 +0000 (18:00 +0100)
committerMichael S. Tsirkin <mst@redhat.com>
Thu, 2 Mar 2023 08:10:48 +0000 (03:10 -0500)
commit2e1a9de96b487cf818a22d681cad8d3f5d18dcca
tree4c797dcf590427f216862e9a64e0a8071bb4c3a7
parenta84ec9935f2082a56737859f8009cd5fa75aef41
vdpa: stop all svq on device deletion

Not stopping them leave the device in a bad state when virtio-net
fronted device is unplugged with device_del monitor command.

This is not triggable in regular poweroff or qemu forces shutdown
because cleanup is called right after vhost_vdpa_dev_start(false).  But
devices hot unplug does not call vdpa device cleanups.  This lead to all
the vhost_vdpa devices without stop the SVQ but the last.

Fix it and clean the code, making it symmetric with
vhost_vdpa_svqs_start.

Fixes: dff4426fa656 ("vhost: Add Shadow VirtQueue kick forwarding capabilities")
Reported-by: Lei Yang <leiyang@redhat.com>
Signed-off-by: Eugenio Pérez <eperezma@redhat.com>
Message-Id: <20230209170004.899472-1-eperezma@redhat.com>
Tested-by: Laurent Vivier <lvivier@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
hw/virtio/vhost-vdpa.c