qemu with hax to log dma reads & writes jcs.org/2018/11/12/vfio

vhost-user-fs: convert to the new virtio_delete_queue function

use the new virtio_delete_queue function to cleanup.

Signed-off-by: Pan Nengyuan <pannengyuan@huawei.com>
Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
Cc: Stefan Hajnoczi <stefanha@redhat.com>
Message-Id: <20200225075554.10835-3-pannengyuan@huawei.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>

authored by

Pan Nengyuan and committed by
Michael S. Tsirkin
2e5bc659 ba07cf5d

+11 -6
+9 -6
hw/virtio/vhost-user-fs.c
··· 209 209 sizeof(struct virtio_fs_config)); 210 210 211 211 /* Hiprio queue */ 212 - virtio_add_queue(vdev, fs->conf.queue_size, vuf_handle_output); 212 + fs->hiprio_vq = virtio_add_queue(vdev, fs->conf.queue_size, vuf_handle_output); 213 213 214 214 /* Request queues */ 215 + fs->req_vqs = g_new(VirtQueue *, fs->conf.num_request_queues); 215 216 for (i = 0; i < fs->conf.num_request_queues; i++) { 216 - virtio_add_queue(vdev, fs->conf.queue_size, vuf_handle_output); 217 + fs->req_vqs[i] = virtio_add_queue(vdev, fs->conf.queue_size, vuf_handle_output); 217 218 } 218 219 219 220 /* 1 high prio queue, plus the number configured */ ··· 230 231 231 232 err_virtio: 232 233 vhost_user_cleanup(&fs->vhost_user); 233 - virtio_del_queue(vdev, 0); 234 + virtio_delete_queue(fs->hiprio_vq); 234 235 for (i = 0; i < fs->conf.num_request_queues; i++) { 235 - virtio_del_queue(vdev, i + 1); 236 + virtio_delete_queue(fs->req_vqs[i]); 236 237 } 238 + g_free(fs->req_vqs); 237 239 virtio_cleanup(vdev); 238 240 g_free(fs->vhost_dev.vqs); 239 241 return; ··· 252 254 253 255 vhost_user_cleanup(&fs->vhost_user); 254 256 255 - virtio_del_queue(vdev, 0); 257 + virtio_delete_queue(fs->hiprio_vq); 256 258 for (i = 0; i < fs->conf.num_request_queues; i++) { 257 - virtio_del_queue(vdev, i + 1); 259 + virtio_delete_queue(fs->req_vqs[i]); 258 260 } 261 + g_free(fs->req_vqs); 259 262 virtio_cleanup(vdev); 260 263 g_free(fs->vhost_dev.vqs); 261 264 fs->vhost_dev.vqs = NULL;
+2
include/hw/virtio/vhost-user-fs.h
··· 37 37 struct vhost_virtqueue *vhost_vqs; 38 38 struct vhost_dev vhost_dev; 39 39 VhostUserState vhost_user; 40 + VirtQueue **req_vqs; 41 + VirtQueue *hiprio_vq; 40 42 41 43 /*< public >*/ 42 44 } VHostUserFS;