net/virtio-user: fix crash as features change
authorJianfeng Tan <jianfeng.tan@intel.com>
Tue, 23 Jan 2018 09:52:43 +0000 (09:52 +0000)
committerFerruh Yigit <ferruh.yigit@intel.com>
Mon, 29 Jan 2018 09:04:28 +0000 (10:04 +0100)
Since commit 59fe5e17d930 ("vhost: propagate set features handling error"),
vhost does not allow to set different features without reset.

The virtio-user driver fails to reset the device in below commit.

To fix, we send the reset message as stopping the device.

Fixes: c12a26ee209e ("net/virtio-user: fix not properly reset device")
Cc: stable@dpdk.org
Reported-by: Lei Yao <lei.a.yao@intel.com>
Reported-by: Tiwei Bie <tiwei.bie@intel.com>
Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com>
Acked-by: Yuanhan Liu <yliu@fridaylinux.org>
drivers/net/virtio/virtio_user/virtio_user_dev.c

index 7a70c18..3b5f737 100644 (file)
@@ -142,6 +142,11 @@ int virtio_user_stop_device(struct virtio_user_dev *dev)
        for (i = 0; i < dev->max_queue_pairs; ++i)
                dev->ops->enable_qp(dev, i, 0);
 
+       if (dev->ops->send_request(dev, VHOST_USER_RESET_OWNER, NULL) < 0) {
+               PMD_DRV_LOG(INFO, "Failed to reset the device\n");
+               return -1;
+       }
+
        return 0;
 }