[ovs-dev] [PATCH] dpif-netdev: Fix a compilation warning

Andy Zhou azhou at nicira.com
Tue Mar 25 05:51:11 UTC 2014


Thanks Pravin, I will push it soon so that other people won't run into
build issues.

I agree with you that do / while will also work for void function
types. It is shorter than inline although inline provides argument
type checking.
Would do{} while (0) work for none void functions?  What happens if
the function appears at the right hand side of an assignment?

On the other hand, if both method can be made to work.  I will not
insist on inline. It is your call.


On Mon, Mar 24, 2014 at 10:17 PM, Pravin Shelar <pshelar at nicira.com> wrote:
> On Mon, Mar 24, 2014 at 9:23 PM, Andy Zhou <azhou at nicira.com> wrote:
>> Building OVS tree without DPDK produced the following warning message.
>>     lib/dpif-netdev.c:1868:5: error: statement with no effect
>>
>> This error message is complaining the return value of the following
>> macro, (0),  is not being used.
>>         #define pmd_thread_setaffinity_cpu(c) (0)
>>
>> The patch fixed this warnning by redefins the stub functions
>> as inline funtions.
>>
>> Signed-off-by: Andy Zhou <azhou at nicira.com>
>
> I prefer "do {} while(0)", but this is also fine.
>
> Acked-by: Pravin B Shelar <pshelar at nicira.com>
>
>> ---
>>  lib/netdev-dpdk.h |   33 ++++++++++++++++++++++++++-------
>>  1 file changed, 26 insertions(+), 7 deletions(-)
>>
>> diff --git a/lib/netdev-dpdk.h b/lib/netdev-dpdk.h
>> index 55984e8..2807310 100644
>> --- a/lib/netdev-dpdk.h
>> +++ b/lib/netdev-dpdk.h
>> @@ -1,8 +1,10 @@
>>  #ifndef NETDEV_DPDK_H
>>  #define NETDEV_DPDK_H
>>
>> -#ifdef DPDK_NETDEV
>>  #include <config.h>
>> +#include "ofpbuf.h"
>> +
>> +#ifdef DPDK_NETDEV
>>
>>  #include <rte_config.h>
>>  #include <rte_eal.h>
>> @@ -16,8 +18,6 @@
>>  #include <rte_launch.h>
>>  #include <rte_malloc.h>
>>
>> -#include "ofpbuf.h"
>> -
>>  int dpdk_init(int argc, char **argv);
>>  void netdev_dpdk_register(void);
>>  void free_dpdk_buf(struct ofpbuf *);
>> @@ -25,10 +25,29 @@ int pmd_thread_setaffinity_cpu(int cpu);
>>
>>  #else
>>
>> -#define dpdk_init(arg1, arg2) (0)
>> -#define netdev_dpdk_register()
>> -#define free_dpdk_buf(arg)
>> -#define pmd_thread_setaffinity_cpu(c) (0)
>> +static inline int
>> +dpdk_init(int arg1 OVS_UNUSED, char **arg2 OVS_UNUSED)
>> +{
>> +    return 0;
>> +}
>> +
>> +static inline void
>> +netdev_dpdk_register(void)
>> +{
>> +    /* Nothing */
>> +}
>> +
>> +static inline void
>> +free_dpdk_buf(struct ofpbuf *buf OVS_UNUSED)
>> +{
>> +    /* Nothing */
>> +}
>> +
>> +static inline int
>> +pmd_thread_setaffinity_cpu(int cpu OVS_UNUSED)
>> +{
>> +    return 0;
>> +}
>>
>>  #endif /* DPDK_NETDEV */
>>  #endif
>> --
>> 1.7.9.5
>>
>> _______________________________________________
>> dev mailing list
>> dev at openvswitch.org
>> http://openvswitch.org/mailman/listinfo/dev



More information about the dev mailing list