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

Ben Pfaff blp at nicira.com
Tue Mar 25 05:53:33 UTC 2014


I'd rather go with inline here because it will not warn about unused
variables, whereas I expect that "do {} while (0)" will in at least some
cases.

On Mon, Mar 24, 2014 at 10:51:11PM -0700, Andy Zhou wrote:
> 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
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev



More information about the dev mailing list