Message ID | 20231004014532.1228637-3-stefanha@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | vhost: clean up device reset | expand |
On 04.10.23 03:45, Stefan Hajnoczi wrote: > vhost_kernel_reset_device() invokes RESET_OWNER, which disassociates the > owner process from the device. The device is left non-operational since > SET_OWNER is only called once during startup in vhost_dev_init(). > > vhost_kernel_reset_device() is never called so this latent bug never > appears. Get rid of vhost_kernel_reset_device() for now. If someone > needs it in the future they'll need to implement it correctly. > > Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> > --- > hw/virtio/vhost-backend.c | 6 ------ > 1 file changed, 6 deletions(-) The obvious way would be to immediately call SET_OWNER again, but I assume that just like in vhost-user, it is probably pretty much left undefined what exactly should happen in the back-end on RESET_OWNER, and so I agree that in general, starting to call this function now when we didn’t before is more of a liability then anything. Reviewed-by: Hanna Czenczek <hreitz@redhat.com>
diff --git a/hw/virtio/vhost-backend.c b/hw/virtio/vhost-backend.c index 8e581575c9..17f3fc6a08 100644 --- a/hw/virtio/vhost-backend.c +++ b/hw/virtio/vhost-backend.c @@ -197,11 +197,6 @@ static int vhost_kernel_set_owner(struct vhost_dev *dev) return vhost_kernel_call(dev, VHOST_SET_OWNER, NULL); } -static int vhost_kernel_reset_device(struct vhost_dev *dev) -{ - return vhost_kernel_call(dev, VHOST_RESET_OWNER, NULL); -} - static int vhost_kernel_get_vq_index(struct vhost_dev *dev, int idx) { assert(idx >= dev->vq_index && idx < dev->vq_index + dev->nvqs); @@ -322,7 +317,6 @@ const VhostOps kernel_ops = { .vhost_get_features = vhost_kernel_get_features, .vhost_set_backend_cap = vhost_kernel_set_backend_cap, .vhost_set_owner = vhost_kernel_set_owner, - .vhost_reset_device = vhost_kernel_reset_device, .vhost_get_vq_index = vhost_kernel_get_vq_index, .vhost_vsock_set_guest_cid = vhost_kernel_vsock_set_guest_cid, .vhost_vsock_set_running = vhost_kernel_vsock_set_running,
vhost_kernel_reset_device() invokes RESET_OWNER, which disassociates the owner process from the device. The device is left non-operational since SET_OWNER is only called once during startup in vhost_dev_init(). vhost_kernel_reset_device() is never called so this latent bug never appears. Get rid of vhost_kernel_reset_device() for now. If someone needs it in the future they'll need to implement it correctly. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> --- hw/virtio/vhost-backend.c | 6 ------ 1 file changed, 6 deletions(-)