diff options
author | 2019-03-20 14:45:09 +0000 | |
---|---|---|
committer | 2019-03-20 14:45:37 +0000 | |
commit | f7a9461e29147c47ce2bb81bd157ac1833cf5eb1 (patch) | |
tree | 6f3b4f4850cf9f116acc1dda3f0515259673e13b /drivers/net/virtio/virtio_user | |
parent | 8e6d9d118f6105a3627b64a7949e1fb0b145879e (diff) |
New upstream version 16.11.9upstream/16.11.9upstream-16.11-stable
Change-Id: Ia1ac246c53e5050b6a29d6952fb668ad6c782996
Signed-off-by: Luca Boccassi <luca.boccassi@gmail.com>
Diffstat (limited to 'drivers/net/virtio/virtio_user')
-rw-r--r-- | drivers/net/virtio/virtio_user/virtio_user_dev.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/drivers/net/virtio/virtio_user/virtio_user_dev.c b/drivers/net/virtio/virtio_user/virtio_user_dev.c index 8bb155d8..3e6787a0 100644 --- a/drivers/net/virtio/virtio_user/virtio_user_dev.c +++ b/drivers/net/virtio/virtio_user/virtio_user_dev.c @@ -142,9 +142,6 @@ virtio_user_start_device(struct virtio_user_dev *dev) uint64_t features; int ret; - /* Do not check return as already done in init, or reset in stop */ - vhost_user_sock(dev->vhostfd, VHOST_USER_SET_OWNER, NULL); - /* Step 0: tell vhost to create queues */ if (virtio_user_queue_setup(dev, virtio_user_create_queue) < 0) goto error; @@ -185,6 +182,7 @@ error: int virtio_user_stop_device(struct virtio_user_dev *dev) { + struct vhost_vring_state state; uint32_t i; for (i = 0; i < dev->max_queue_pairs * 2; ++i) { @@ -195,6 +193,17 @@ int virtio_user_stop_device(struct virtio_user_dev *dev) for (i = 0; i < dev->max_queue_pairs; ++i) vhost_user_enable_queue_pair(dev->vhostfd, i, 0); + /* Stop the backend. */ + for (i = 0; i < dev->max_queue_pairs * 2; ++i) { + state.index = i; + if (vhost_user_sock(dev->vhostfd, VHOST_USER_GET_VRING_BASE, + &state) < 0) { + PMD_DRV_LOG(ERR, "get_vring_base failed, index=%u\n", + i); + return -1; + } + } + return 0; } |