diff options
author | Daniel Borkmann | 2015-03-01 12:31:47 +0100 |
---|---|---|
committer | David S. Miller | 2015-03-01 20:05:19 +0100 |
commit | 24701ecea76b0b93bd9667486934ec310825f558 (patch) | |
tree | 7f658077fea363e89643d95fc808236d748b8431 /include/linux/filter.h | |
parent | ebpf: add sched_cls_type and map it to sk_filter's verifier ops (diff) | |
download | kernel-qcow2-linux-24701ecea76b0b93bd9667486934ec310825f558.tar.gz kernel-qcow2-linux-24701ecea76b0b93bd9667486934ec310825f558.tar.xz kernel-qcow2-linux-24701ecea76b0b93bd9667486934ec310825f558.zip |
ebpf: move read-only fields to bpf_prog and shrink bpf_prog_aux
is_gpl_compatible and prog_type should be moved directly into bpf_prog
as they stay immutable during bpf_prog's lifetime, are core attributes
and they can be locked as read-only later on via bpf_prog_select_runtime().
With a bit of rearranging, this also allows us to shrink bpf_prog_aux
to exactly 1 cacheline.
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Alexei Starovoitov <ast@plumgrid.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/filter.h')
-rw-r--r-- | include/linux/filter.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/include/linux/filter.h b/include/linux/filter.h index 5e3863d5f666..9ee8c67ea249 100644 --- a/include/linux/filter.h +++ b/include/linux/filter.h @@ -308,9 +308,11 @@ struct bpf_binary_header { struct bpf_prog { u16 pages; /* Number of allocated pages */ bool jited; /* Is our filter JIT'ed? */ + bool gpl_compatible; /* Is our filter GPL compatible? */ u32 len; /* Number of filter blocks */ - struct sock_fprog_kern *orig_prog; /* Original BPF program */ + enum bpf_prog_type type; /* Type of BPF program */ struct bpf_prog_aux *aux; /* Auxiliary fields */ + struct sock_fprog_kern *orig_prog; /* Original BPF program */ unsigned int (*bpf_func)(const struct sk_buff *skb, const struct bpf_insn *filter); /* Instructions for interpreter */ |