On 08/16/2017 12:17 PM, Eric Dumazet wrote: > On Wed, 2017-08-16 at 12:13 -0700, David Miller wrote: >> From: John Fastabend <john.fastab...@gmail.com> >> Date: Wed, 16 Aug 2017 12:06:36 -0700 >> >>> On 08/16/2017 11:35 AM, David Miller wrote: >>>> From: David Miller <da...@davemloft.net> >>>> Date: Wed, 16 Aug 2017 11:28:19 -0700 (PDT) >>>> >>>>> From: John Fastabend <john.fastab...@gmail.com> >>>>> Date: Tue, 15 Aug 2017 22:30:15 -0700 >>>>> >>>>>> This series implements a sockmap and socket redirect helper for BPF >>>>>> using a model similar to XDP netdev redirect. >>>>> >>>>> Series applied, thanks John. >>>>> >>>> >>>> We get a legit warning from gcc due to these changes: >>>> >>>> kernel/bpf/sockmap.c: In function ‘smap_state_change’: >>>> kernel/bpf/sockmap.c:156:21: warning: ‘psock’ may be used uninitialized in >>>> this function [-Wmaybe-uninitialized] >>>> struct smap_psock *psock; >>>> >>>> It's the default switch case in this function, psock is not initialized >>>> for sure at this point. >>>> >>> >>> I missed this with older gcc4 it seems. Fixed now and compiling without >>> errors >>> now with gcc4/5. Below is the diff and all verifier/sockmap tests pass. >>> Want a >>> v2 I presume? >> >> I already pushed out v1, so you'll need to send me a fixup patch. > > I also have a build error. > > $ git grep -n __sock_map_lookup_elem > include/linux/bpf.h:316:struct sock *__sock_map_lookup_elem(struct bpf_map > *map, u32 key); > kernel/bpf/sockmap.c:558:struct sock *__sock_map_lookup_elem(struct bpf_map > *map, u32 key) > net/core/filter.c:1881: sk = __sock_map_lookup_elem(ri->map, > ri->ifindex); > > > > $ make ... > ... > net/core/filter.c: In function ‘do_sk_redirect_map’: > net/core/filter.c:1881:3: error: implicit declaration of function > ‘__sock_map_lookup_elem’ [-Werror=implicit-function-declaration] > sk = __sock_map_lookup_elem(ri->map, ri->ifindex); > ^ > net/core/filter.c:1881:6: warning: assignment makes pointer from integer > without a cast [enabled by default] > sk = __sock_map_lookup_elem(ri->map, ri->ifindex); > ^ > cc1: some warnings being treated as errors > make[2]: *** [net/core/filter.o] Error 1 > make[2]: *** Waiting for unfinished jobs.... > >
Thanks Eric, I'll have a fix shortly.