test_bpf: assign type to native eBPF test cases
authorDaniel Borkmann <daniel@iogearbox.net>
Thu, 30 Jul 2015 10:42:46 +0000 (12:42 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 30 Jul 2015 18:13:20 +0000 (11:13 -0700)
As JITs start to perform optimizations whether to clear A and X on eBPF
programs in the prologue, we should actually assign a program type to the
native eBPF test cases. It doesn't really matter which program type, as
these instructions don't go through the verifier, but it needs to be a
type != BPF_PROG_TYPE_UNSPEC. This reflects eBPF programs loaded via bpf(2)
system call (!= type unspec) vs. classic BPF to eBPF migrations (== type
unspec).

Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Cc: Michael Holzheu <holzheu@linux.vnet.ibm.com>
Acked-by: Alexei Starovoitov <ast@plumgrid.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
lib/test_bpf.c

index 8b5e66f008b0d6e2b5a872d21ab35bbbbb9cead3..3afddf2026c983d279fe822a0c42b7f1a65f193a 100644 (file)
@@ -4613,6 +4613,8 @@ static struct bpf_prog *generate_filter(int which, int *err)
                }
 
                fp->len = flen;
+               /* Type doesn't really matter here as long as it's not unspec. */
+               fp->type = BPF_PROG_TYPE_SOCKET_FILTER;
                memcpy(fp->insnsi, fptr, fp->len * sizeof(struct bpf_insn));
 
                bpf_prog_select_runtime(fp);