Re: [PATCH] trace/xdp: fix compile warning: âstruct bpf_mapâ declared inside parameter list

From: Jesper Dangaard Brouer
Date: Wed Nov 29 2017 - 09:05:34 EST


On Wed, 29 Nov 2017 13:49:01 +0000
David Laight <David.Laight@xxxxxxxxxx> wrote:

> From: Xie XiuQi
> > Sent: 29 November 2017 08:35
> >
> > We meet this compile warning, which caused by missing bpf.h in xdp.h.
> >
> > In file included from ./include/trace/events/xdp.h:10:0,
> > from ./include/linux/bpf_trace.h:6,
> > from drivers/net/ethernet/intel/i40e/i40e_txrx.c:29:
> > ./include/trace/events/xdp.h:93:17: warning: struct bpf_map declared inside parameter list will not be
> > visible outside of this definition or declaration
> > const struct bpf_map *map, u32 map_index),
> > ^
> ...
> > diff --git a/include/trace/events/xdp.h b/include/trace/events/xdp.h
> > index 4cd0f05..8989a92 100644
> > --- a/include/trace/events/xdp.h
> > +++ b/include/trace/events/xdp.h
> > @@ -8,6 +8,7 @@
> > #include <linux/netdevice.h>
> > #include <linux/filter.h>
> > #include <linux/tracepoint.h>
> > +#include <linux/bpf.h>
>
> Isn't it just enough to add:
> struct bpf_map;
> before the first prototype instead of pulling in the entire header?

Nope, because we deref map->id.

--
Best regards,
Jesper Dangaard Brouer
MSc.CS, Principal Kernel Engineer at Red Hat
LinkedIn: http://www.linkedin.com/in/brouer