[dpdk-dev] distributor: fix compilation on icc 2015

Message ID 1448617773-97621-1-git-send-email-pablo.de.lara.guarch@intel.com (mailing list archive)
State Rejected, archived
Headers

Commit Message

De Lara Guarch, Pablo Nov. 27, 2015, 9:49 a.m. UTC
  Fix following error on icc 2015:

  CC main.o
/tmp/dpdk-tmp3/examples/distributor/main.c(338): error #167:
  argument of type "struct rte_mbuf *" is incompatible with
  parameter of type "const char *"
        _mm_prefetch(bufs[0], 0);

Fixes: 07db4a97 ("examples/distributor: new sample app")

Reported-by: Yongjie Gu <yongjiex.gu@intel.com>
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
---
 examples/distributor/main.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
  

Comments

Thomas Monjalon Nov. 27, 2015, 10:10 a.m. UTC | #1
2015-11-27 09:49, Pablo de Lara:
> Fix following error on icc 2015:
> 
>   CC main.o
> /tmp/dpdk-tmp3/examples/distributor/main.c(338): error #167:
>   argument of type "struct rte_mbuf *" is incompatible with
>   parameter of type "const char *"
>         _mm_prefetch(bufs[0], 0);
> 
> Fixes: 07db4a97 ("examples/distributor: new sample app")
> 
> Reported-by: Yongjie Gu <yongjiex.gu@intel.com>
> Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>

Hi Pablo,

It is the same patch as the first one of Michael which fails with clang:
	http://dpdk.org/ml/archives/dev/2015-November/028929.html
He has sent a second one without "const".
  
De Lara Guarch, Pablo Nov. 27, 2015, 10:39 a.m. UTC | #2
Hi Thomas,

> -----Original Message-----
> From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]
> Sent: Friday, November 27, 2015 10:10 AM
> To: De Lara Guarch, Pablo
> Cc: dev@dpdk.org; Qiu, Michael
> Subject: Re: [dpdk-dev] [PATCH] distributor: fix compilation on icc 2015
> 
> 2015-11-27 09:49, Pablo de Lara:
> > Fix following error on icc 2015:
> >
> >   CC main.o
> > /tmp/dpdk-tmp3/examples/distributor/main.c(338): error #167:
> >   argument of type "struct rte_mbuf *" is incompatible with
> >   parameter of type "const char *"
> >         _mm_prefetch(bufs[0], 0);
> >
> > Fixes: 07db4a97 ("examples/distributor: new sample app")
> >
> > Reported-by: Yongjie Gu <yongjiex.gu@intel.com>
> > Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
> 
> Hi Pablo,
> 
> It is the same patch as the first one of Michael which fails with clang:
> 	http://dpdk.org/ml/archives/dev/2015-November/028929.html
> He has sent a second one without "const".

Oh yes, didn't see it, sorry about that.
Actually, it is strange that clang complains with const,
but not in virtio_rxtx_simple.c, where we use (const void *) in _mm_prefetch.
So, NACK to this patch and I will ack the other one.
  

Patch

diff --git a/examples/distributor/main.c b/examples/distributor/main.c
index 972bddb..a4d8e34 100644
--- a/examples/distributor/main.c
+++ b/examples/distributor/main.c
@@ -335,13 +335,13 @@  lcore_tx(struct rte_ring *in_r)
 
 			/* for traffic we receive, queue it up for transmit */
 			uint16_t i;
-			_mm_prefetch(bufs[0], 0);
-			_mm_prefetch(bufs[1], 0);
-			_mm_prefetch(bufs[2], 0);
+			_mm_prefetch((const void *)bufs[0], 0);
+			_mm_prefetch((const void *)bufs[1], 0);
+			_mm_prefetch((const void *)bufs[2], 0);
 			for (i = 0; i < nb_rx; i++) {
 				struct output_buffer *outbuf;
 				uint8_t outp;
-				_mm_prefetch(bufs[i + 3], 0);
+				_mm_prefetch((const void *)bufs[i + 3], 0);
 				/*
 				 * workers should update in_port to hold the
 				 * output port value