[dpdk-dev,Qemu-devel] vhost: fix compilation issue caused by virtio 1.0 support

Message ID 1446550121-27776-1-git-send-email-marcel@redhat.com (mailing list archive)
State Accepted, archived
Headers

Commit Message

Marcel Apfelbaum Nov. 3, 2015, 11:28 a.m. UTC
  Commit 15e9ee6982a4822ce395fd597dd500a61ceafa7c (vhost: enable virtio 1.0)
uses the VIRTIO_F_VERSION_1 macro existing only in newer kernels.

Fixed it by manually defining it for older kernels.

Reported-by: Xu, Qian Q <qian.q.xu@intel.com>
Signed-off-by: Marcel Apfelbaum <marcel@redhat.com>
---

Hi,

I reproduced the issue with 3.9.5 kernel and solved using
Xie, Huawei's idea.

By the way, what is the earlier kernel that DPDK supports?
I tried 3.19 with no luck.

Please let me know if you prefer another way to do it.

Thanks,
Marcel

 lib/librte_vhost/rte_virtio_net.h | 7 +++++++
 1 file changed, 7 insertions(+)
  

Comments

Marcel Apfelbaum Nov. 3, 2015, 11:35 a.m. UTC | #1
On 11/03/2015 01:28 PM, Marcel Apfelbaum wrote:
> Commit 15e9ee6982a4822ce395fd597dd500a61ceafa7c (vhost: enable virtio 1.0)
> uses the VIRTIO_F_VERSION_1 macro existing only in newer kernels.
>
> Fixed it by manually defining it for older kernels.

I added to CC the involved developers, the git-send-email blocked it.
Also sorry for the [Qemu-devel] prefix.

Thanks,
Marcel

>
> Reported-by: Xu, Qian Q <qian.q.xu@intel.com>
> Signed-off-by: Marcel Apfelbaum <marcel@redhat.com>
> ---
>
> Hi,
>
> I reproduced the issue with 3.9.5 kernel and solved using
> Xie, Huawei's idea.
>
> By the way, what is the earlier kernel that DPDK supports?
> I tried 3.19 with no luck.
>
> Please let me know if you prefer another way to do it.
>
> Thanks,
> Marcel
>
>   lib/librte_vhost/rte_virtio_net.h | 7 +++++++
>   1 file changed, 7 insertions(+)
>
> diff --git a/lib/librte_vhost/rte_virtio_net.h b/lib/librte_vhost/rte_virtio_net.h
> index b6386f9..5687452 100644
> --- a/lib/librte_vhost/rte_virtio_net.h
> +++ b/lib/librte_vhost/rte_virtio_net.h
> @@ -108,6 +108,13 @@ struct vhost_virtqueue {
>    #define VHOST_SUPPORTS_MQ	0
>   #endif
>
> +/*
> + * Define virtio 1.0 for older kernels
> + */
> +#ifndef VIRTIO_F_VERSION_1
> + #define VIRTIO_F_VERSION_1 32
> +#endif
> +
>   /**
>    * Device structure contains all configuration information relating to the device.
>    */
>
  
Thomas Monjalon Nov. 3, 2015, 11:35 a.m. UTC | #2
2015-11-03 13:28, Marcel Apfelbaum:
> Commit 15e9ee6982a4822ce395fd597dd500a61ceafa7c (vhost: enable virtio 1.0)
> uses the VIRTIO_F_VERSION_1 macro existing only in newer kernels.
> 
> Fixed it by manually defining it for older kernels.
> 
> Reported-by: Xu, Qian Q <qian.q.xu@intel.com>
> Signed-off-by: Marcel Apfelbaum <marcel@redhat.com>

Applied, thanks

> By the way, what is the earlier kernel that DPDK supports?
> I tried 3.19 with no luck.

We always try to support the latest one.
If there is a bug with 3.19, please report.
  

Patch

diff --git a/lib/librte_vhost/rte_virtio_net.h b/lib/librte_vhost/rte_virtio_net.h
index b6386f9..5687452 100644
--- a/lib/librte_vhost/rte_virtio_net.h
+++ b/lib/librte_vhost/rte_virtio_net.h
@@ -108,6 +108,13 @@  struct vhost_virtqueue {
  #define VHOST_SUPPORTS_MQ	0
 #endif
 
+/*
+ * Define virtio 1.0 for older kernels
+ */
+#ifndef VIRTIO_F_VERSION_1
+ #define VIRTIO_F_VERSION_1 32
+#endif
+
 /**
  * Device structure contains all configuration information relating to the device.
  */