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....