On Wed, Oct 16, 2019 at 02:02:31PM +0100, Ben Dooks wrote: > On 16/10/2019 13:26, Daniel Borkmann wrote: > > On Wed, Oct 16, 2019 at 12:04:46PM +0100, Ben Dooks (Codethink) wrote: > > > There are a number of structs in net/core/filter.c > > > that are not exported or declared outside of the > > > file. Fix the following warnings by making these > > > all static: > > > > > > net/core/filter.c:8465:31: warning: symbol 'sk_filter_verifier_ops' was not declared. Should it be static? > > > net/core/filter.c:8472:27: warning: symbol 'sk_filter_prog_ops' was not declared. Should it be static? > > [...] > > > net/core/filter.c:8935:27: warning: symbol 'sk_reuseport_prog_ops' was not declared. Should it be static? > > > > > > Signed-off-by: Ben Dooks <ben.dooks@xxxxxxxxxxxxxxx> > > > --- > > > Cc: Alexei Starovoitov <ast@xxxxxxxxxx> > > > Cc: Daniel Borkmann <daniel@xxxxxxxxxxxxx> > > > Cc: Martin KaFai Lau <kafai@xxxxxx> > > > Cc: Song Liu <songliubraving@xxxxxx> > > > Cc: Yonghong Song <yhs@xxxxxx> > > > Cc: "David S. Miller" <davem@xxxxxxxxxxxxx> > > > Cc: Jakub Kicinski <jakub.kicinski@xxxxxxxxxxxxx> > > > Cc: Jesper Dangaard Brouer <hawk@xxxxxxxxxx> > > > Cc: John Fastabend <john.fastabend@xxxxxxxxx> > > > Cc: netdev@xxxxxxxxxxxxxxx > > > Cc: bpf@xxxxxxxxxxxxxxx > > > Cc: linux-kernel@xxxxxxxxxxxxxxx > > > --- > > > net/core/filter.c | 60 +++++++++++++++++++++++------------------------ > > > 1 file changed, 30 insertions(+), 30 deletions(-) > > > > > > diff --git a/net/core/filter.c b/net/core/filter.c > > > index ed6563622ce3..f7338fee41f8 100644 > > > --- a/net/core/filter.c > > > +++ b/net/core/filter.c > > > @@ -8462,18 +8462,18 @@ static u32 sk_msg_convert_ctx_access(enum bpf_access_type type, > > > return insn - insn_buf; > > > } > > > -const struct bpf_verifier_ops sk_filter_verifier_ops = { > > > +static const struct bpf_verifier_ops sk_filter_verifier_ops = { > > > .get_func_proto = sk_filter_func_proto, > > > .is_valid_access = sk_filter_is_valid_access, > > > .convert_ctx_access = bpf_convert_ctx_access, > > > .gen_ld_abs = bpf_gen_ld_abs, > > > }; > > > > Big obvious NAK. I'm puzzled that you try to fix a compile warning, but without > > even bothering to compile the result after your patch ... > > builds fine. maybe some effort to stop this happening again should be made. It doesn't build, because they are used/needed outside: [...] CC net/core/dev_ioctl.o CC net/core/tso.o net/core/filter.c:8467:38: error: static declaration of ‘sk_filter_verifier_ops’ follows non-static declaration 8467 | static const struct bpf_verifier_ops sk_filter_verifier_ops = { | ^~~~~~~~~~~~~~~~~~~~~~ In file included from ./include/linux/bpf-cgroup.h:5, from ./include/linux/cgroup-defs.h:22, from ./include/linux/cgroup.h:28, from ./include/net/netprio_cgroup.h:11, from ./include/linux/netdevice.h:42, from ./include/net/sock.h:46, from ./include/linux/sock_diag.h:8, from net/core/filter.c:25: ./include/linux/bpf_types.h:5:44: note: previous declaration of ‘sk_filter_verifier_ops’ was here 5 | BPF_PROG_TYPE(BPF_PROG_TYPE_SOCKET_FILTER, sk_filter) | ^~~~~~~~~ ./include/linux/bpf.h:625:39: note: in definition of macro ‘BPF_PROG_TYPE’ 625 | extern const struct bpf_verifier_ops _name ## _verifier_ops; | ^~~~~ [...] ( and more of the same errors ... )