diff options
author | Daniel Borkmann <daniel@iogearbox.net> | 2019-11-24 03:39:42 +0300 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2019-11-25 04:12:11 +0300 |
commit | b553a6ec570044fc1ae300c6fb24f9ce204c5894 (patch) | |
tree | 6121de7c1e38050fd9d4d46480ae6fddf9d585b2 /crypto/blowfish_common.c | |
parent | f9a7cf6eb17cd0110c8c47d9e7969fc2716e5772 (diff) | |
download | linux-b553a6ec570044fc1ae300c6fb24f9ce204c5894.tar.xz |
bpf: Simplify __bpf_arch_text_poke poke type handling
Given that we have BPF_MOD_NOP_TO_{CALL,JUMP}, BPF_MOD_{CALL,JUMP}_TO_NOP
and BPF_MOD_{CALL,JUMP}_TO_{CALL,JUMP} poke types and that we also pass in
old_addr as well as new_addr, it's a bit redundant and unnecessarily
complicates __bpf_arch_text_poke() itself since we can derive the same from
the *_addr that were passed in. Hence simplify and use BPF_MOD_{CALL,JUMP}
as types which also allows to clean up call-sites.
In addition to that, __bpf_arch_text_poke() currently verifies that text
matches expected old_insn before we invoke text_poke_bp(). Also add a check
on new_insn and skip rewrite if it already matches. Reason why this is rather
useful is that it avoids making any special casing in prog_array_map_poke_run()
when old and new prog were NULL and has the benefit that also for this case
we perform a check on text whether it really matches our expectations.
Suggested-by: Andrii Nakryiko <andriin@fb.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/fcb00a2b0b288d6c73de4ef58116a821c8fe8f2f.1574555798.git.daniel@iogearbox.net
Diffstat (limited to 'crypto/blowfish_common.c')
0 files changed, 0 insertions, 0 deletions