> -----Original Message-----
> From: stable <stable-boun...@dpdk.org> On Behalf Of Matan Azrad
> Sent: Friday, June 19, 2020 3:08 AM
> To: Maxime Coquelin <maxime.coque...@redhat.com>
> Cc: dev@dpdk.org; sta...@dpdk.org
> Subject: [dpdk-stable] [PATCH] vhost: fix features definition location
>
> The vhost library provide an infrastructure in order to help the DPDK users to
> manage vhost devices.
>
> One of the infrastructure parts is the features enablement APIs.
>
> Some features bits may be defined only in the internal file vhost.h in case
> the
> kernel version doesn't include them.
>
> Hence, user running on old kernel may not be able to manage thus features.
>
> Move all the feature bits definitions to the API file rte_vhost.h.
>
> Fixes: db69be54b6ff ("vhost: hide internal code")
> Fixes: 8d286dbeb8d7 ("vhost: fix multiple queue not enabled for old kernels")
> Fixes: 3d3c6590b58c ("vhost: enable virtio MTU feature")
> Fixes: 704098fc478c ("vhost: fix build with old kernels")
> Cc: sta...@dpdk.org
>
> Signed-off-by: Matan Azrad <ma...@mellanox.com>
> ---
> lib/librte_vhost/rte_vhost.h | 17 +++++++++++++++++
> lib/librte_vhost/vhost.h | 17 -----------------
> 2 files changed, 17 insertions(+), 17 deletions(-)
>
> diff --git a/lib/librte_vhost/rte_vhost.h b/lib/librte_vhost/rte_vhost.h index
> d43669f..329ed8a 100644
> --- a/lib/librte_vhost/rte_vhost.h
> +++ b/lib/librte_vhost/rte_vhost.h
> @@ -36,6 +36,23 @@
> /* support only linear buffers (no chained mbufs) */
> #define RTE_VHOST_USER_LINEARBUF_SUPPORT (1ULL << 6)
>
> +/* Features. */
> +#ifndef VIRTIO_NET_F_GUEST_ANNOUNCE
> + #define VIRTIO_NET_F_GUEST_ANNOUNCE 21 #endif
> +
> +#ifndef VIRTIO_NET_F_MQ
> + #define VIRTIO_NET_F_MQ 22
> +#endif
> +
> +#ifndef VIRTIO_NET_F_MTU
> + #define VIRTIO_NET_F_MTU 3
> +#endif
> +
> +#ifndef VIRTIO_F_ANY_LAYOUT
> + #define VIRTIO_F_ANY_LAYOUT 27
> +#endif
> +
> /** Protocol features. */
> #ifndef VHOST_USER_PROTOCOL_F_MQ
> #define VHOST_USER_PROTOCOL_F_MQ 0
> diff --git a/lib/librte_vhost/vhost.h b/lib/librte_vhost/vhost.h index
> df98d15..17f1e9a 100644
> --- a/lib/librte_vhost/vhost.h
> +++ b/lib/librte_vhost/vhost.h
> @@ -202,26 +202,9 @@ struct vhost_virtqueue {
> TAILQ_HEAD(, vhost_iotlb_entry) iotlb_pending_list; }
> __rte_cache_aligned;
>
> -/* Old kernels have no such macros defined */ -#ifndef
> VIRTIO_NET_F_GUEST_ANNOUNCE
> - #define VIRTIO_NET_F_GUEST_ANNOUNCE 21 -#endif
> -
> -#ifndef VIRTIO_NET_F_MQ
> - #define VIRTIO_NET_F_MQ 22
> -#endif
> -
> #define VHOST_MAX_VRING 0x100
> #define VHOST_MAX_QUEUE_PAIRS 0x80
>
> -#ifndef VIRTIO_NET_F_MTU
> - #define VIRTIO_NET_F_MTU 3
> -#endif
> -
> -#ifndef VIRTIO_F_ANY_LAYOUT
> - #define VIRTIO_F_ANY_LAYOUT 27
> -#endif
> -
> /* Declare IOMMU related bits for older kernels */ #ifndef
> VIRTIO_F_IOMMU_PLATFORM
>
> --
> 1.8.3.1
Reviewed-by: Chenbo Xia <chenbo....@intel.com>