diff options
author | Luca Boccassi <luca.boccassi@gmail.com> | 2019-03-20 14:50:04 +0000 |
---|---|---|
committer | Luca Boccassi <luca.boccassi@gmail.com> | 2019-03-20 14:50:10 +0000 |
commit | 36e178648f46ea9fb63d89097c59ce45fb8a67fe (patch) | |
tree | e3ee0ea25a45aa28918dc721dd1fe19b27d6849c /drivers/net/virtio/virtio_user | |
parent | 1ab31fb74132eabd45f326413eb6e4f647de48d9 (diff) | |
parent | f7a9461e29147c47ce2bb81bd157ac1833cf5eb1 (diff) |
Merge tag 'upstream/16.11.9' into 16.11.x
Upstream version 16.11.9
Change-Id: I947c2532ec89a9850d135bde544b4d5812b49e4f
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; } |