vhost: remove vhost-net requirements from generic APIs
authorDarek Stojaczyk <dariusz.stojaczyk@intel.com>
Sun, 24 Feb 2019 23:35:55 +0000 (00:35 +0100)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 1 Mar 2019 17:17:36 +0000 (18:17 +0100)
The rte_vhost API to put data into virtqueues operates
on mbufs and hence it is strictly vhost-net specific.
External backends need to implement virtqueue handling
from scratch and that's just not possible without APIs
to get/set vring base addresses.

Those relevant APIs are there, but they have a check that
prevents them from working with any non-vhost-net device.
This patch removes those checks.

rte_vhost_get_log_base() is not necessarily needed for
external backends, as other, higher level vhost APIs for
live migration are available and could be used instead.
We remove the extra check from it anyway for consistency.

Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Reviewed-by: Tiwei Bie <tiwei.bie@intel.com>
lib/librte_vhost/vhost.c

index 00ec58e..e480aea 100644 (file)
@@ -766,13 +766,6 @@ int rte_vhost_get_log_base(int vid, uint64_t *log_base,
        if (!dev)
                return -1;
 
-       if (unlikely(!(dev->flags & VIRTIO_DEV_BUILTIN_VIRTIO_NET))) {
-               RTE_LOG(ERR, VHOST_DATA,
-                       "(%d) %s: built-in vhost net backend is disabled.\n",
-                       dev->vid, __func__);
-               return -1;
-       }
-
        *log_base = dev->log_base;
        *log_size = dev->log_size;
 
@@ -787,13 +780,6 @@ int rte_vhost_get_vring_base(int vid, uint16_t queue_id,
        if (!dev)
                return -1;
 
-       if (unlikely(!(dev->flags & VIRTIO_DEV_BUILTIN_VIRTIO_NET))) {
-               RTE_LOG(ERR, VHOST_DATA,
-                       "(%d) %s: built-in vhost net backend is disabled.\n",
-                       dev->vid, __func__);
-               return -1;
-       }
-
        *last_avail_idx = dev->virtqueue[queue_id]->last_avail_idx;
        *last_used_idx = dev->virtqueue[queue_id]->last_used_idx;
 
@@ -808,13 +794,6 @@ int rte_vhost_set_vring_base(int vid, uint16_t queue_id,
        if (!dev)
                return -1;
 
-       if (unlikely(!(dev->flags & VIRTIO_DEV_BUILTIN_VIRTIO_NET))) {
-               RTE_LOG(ERR, VHOST_DATA,
-                       "(%d) %s: built-in vhost net backend is disabled.\n",
-                       dev->vid, __func__);
-               return -1;
-       }
-
        dev->virtqueue[queue_id]->last_avail_idx = last_avail_idx;
        dev->virtqueue[queue_id]->last_used_idx = last_used_idx;