[dpdk-dev] ixgbe: fix compilation when offload flags disabled

Message ID 1467042269-22703-1-git-send-email-olivier.matz@6wind.com (mailing list archive)
State Superseded, archived
Delegated to: Bruce Richardson
Headers

Commit Message

Olivier Matz June 27, 2016, 3:44 p.m. UTC
  The ixgbe driver does not compile if CONFIG_RTE_IXGBE_RX_OLFLAGS_ENABLE=n
because the macro has not the proper number of parameters.

Fixes: b37b528d957c ("mbuf: add new Rx flags for stripped VLAN")
Reported-by: Amin Tootoonchian <amint@icsi.berkeley.edu>
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
---
 drivers/net/ixgbe/ixgbe_rxtx_vec.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
  

Comments

Thomas Monjalon June 27, 2016, 5:05 p.m. UTC | #1
2016-06-27 17:44, Olivier Matz:
> The ixgbe driver does not compile if CONFIG_RTE_IXGBE_RX_OLFLAGS_ENABLE=n
> because the macro has not the proper number of parameters.

We really need to understand why this build option is needed.
Target: zero build option.
  
Bruce Richardson June 29, 2016, 10:15 a.m. UTC | #2
On Mon, Jun 27, 2016 at 07:05:45PM +0200, Thomas Monjalon wrote:
> 2016-06-27 17:44, Olivier Matz:
> > The ixgbe driver does not compile if CONFIG_RTE_IXGBE_RX_OLFLAGS_ENABLE=n
> > because the macro has not the proper number of parameters.
> 
> We really need to understand why this build option is needed.
> Target: zero build option.

Agreed. However, we are where we are right now, and this build option is there.

Olivier, can you do a V2 of this patch based on dpdk-next-net/rel_16_07, since
the code in question has actually moved on that branch.

Out of interest, can you perhaps also give a little more detail on how to
reproduce the issue, as turning off the setting fails to show up a build
problem for me with either gcc or clang, at -O3 or -O0.

/Bruce
  
Olivier Matz June 29, 2016, 11:35 a.m. UTC | #3
On 06/29/2016 12:15 PM, Bruce Richardson wrote:
> On Mon, Jun 27, 2016 at 07:05:45PM +0200, Thomas Monjalon wrote:
>> 2016-06-27 17:44, Olivier Matz:
>>> The ixgbe driver does not compile if CONFIG_RTE_IXGBE_RX_OLFLAGS_ENABLE=n
>>> because the macro has not the proper number of parameters.
>>
>> We really need to understand why this build option is needed.
>> Target: zero build option.
>
> Agreed. However, we are where we are right now, and this build option is there.
>
> Olivier, can you do a V2 of this patch based on dpdk-next-net/rel_16_07, since
> the code in question has actually moved on that branch.

Sure, will do.


> Out of interest, can you perhaps also give a little more detail on how to
> reproduce the issue, as turning off the setting fails to show up a build
> problem for me with either gcc or clang, at -O3 or -O0.

That's strange, I just set CONFIG_RTE_IXGBE_RX_OLFLAGS_ENABLE=n to
reproduce the issue. I'll check on dpdk-next-net/rel_16_07 and add more
details, like the output of the compiler.

Thanks,
Olivier
  
Bruce Richardson June 29, 2016, 12:30 p.m. UTC | #4
On Wed, Jun 29, 2016 at 01:35:15PM +0200, Olivier MATZ wrote:
> 
> 
> On 06/29/2016 12:15 PM, Bruce Richardson wrote:
> >On Mon, Jun 27, 2016 at 07:05:45PM +0200, Thomas Monjalon wrote:
> >>2016-06-27 17:44, Olivier Matz:
> >>>The ixgbe driver does not compile if CONFIG_RTE_IXGBE_RX_OLFLAGS_ENABLE=n
> >>>because the macro has not the proper number of parameters.
> >>
> >>We really need to understand why this build option is needed.
> >>Target: zero build option.
> >
> >Agreed. However, we are where we are right now, and this build option is there.
> >
> >Olivier, can you do a V2 of this patch based on dpdk-next-net/rel_16_07, since
> >the code in question has actually moved on that branch.
> 
> Sure, will do.
> 
Thanks.

> 
> >Out of interest, can you perhaps also give a little more detail on how to
> >reproduce the issue, as turning off the setting fails to show up a build
> >problem for me with either gcc or clang, at -O3 or -O0.
> 
> That's strange, I just set CONFIG_RTE_IXGBE_RX_OLFLAGS_ENABLE=n to
> reproduce the issue. I'll check on dpdk-next-net/rel_16_07 and add more
> details, like the output of the compiler.
> 
Ok, no problem either way since inspection of the code shows there is a bug
there anyway. I'm just curious as to why I couldn't reproduce it.

/Bruce
  

Patch

diff --git a/drivers/net/ixgbe/ixgbe_rxtx_vec.c b/drivers/net/ixgbe/ixgbe_rxtx_vec.c
index 12190d2..6989fc3 100644
--- a/drivers/net/ixgbe/ixgbe_rxtx_vec.c
+++ b/drivers/net/ixgbe/ixgbe_rxtx_vec.c
@@ -196,7 +196,9 @@  desc_to_olflags_v(__m128i descs[4], uint8_t vlan_flags,
 	rx_pkts[3]->ol_flags = vol.e[3];
 }
 #else
-#define desc_to_olflags_v(desc, rx_pkts) do {} while (0)
+#define desc_to_olflags_v(desc, vlan_flags, rx_pkts) do { \
+		RTE_SET_USED(vlan_flags); \
+	} while (0)
 #endif
 
 /*