diff options
author | Daniel Borkmann <daniel@iogearbox.net> | 2018-06-02 23:06:31 +0200 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2018-06-03 07:42:06 -0700 |
commit | 06be0864c77ae6861632a678a6378511a4828d6e (patch) | |
tree | 1dcb6db94fcedbfe8c04352b3ad4e379a69b1fd5 /include/linux/filter.h | |
parent | 25c1013e0464340aeb090a11c6d0b154bc52afd7 (diff) | |
download | lwn-06be0864c77ae6861632a678a6378511a4828d6e.tar.gz lwn-06be0864c77ae6861632a678a6378511a4828d6e.zip |
bpf: test case for map pointer poison with calls/branches
Add several test cases where the same or different map pointers
originate from different paths in the program and execute a map
lookup or tail call at a common location.
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Song Liu <songliubraving@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'include/linux/filter.h')
-rw-r--r-- | include/linux/filter.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/include/linux/filter.h b/include/linux/filter.h index d90abdaea94b..6fd375fe7079 100644 --- a/include/linux/filter.h +++ b/include/linux/filter.h @@ -289,6 +289,16 @@ struct xdp_buff; .off = OFF, \ .imm = 0 }) +/* Relative call */ + +#define BPF_CALL_REL(TGT) \ + ((struct bpf_insn) { \ + .code = BPF_JMP | BPF_CALL, \ + .dst_reg = 0, \ + .src_reg = BPF_PSEUDO_CALL, \ + .off = 0, \ + .imm = TGT }) + /* Function call */ #define BPF_EMIT_CALL(FUNC) \ |