[PATCH bpf-next 0/2] bpf: Fix WARNING in bpf_tracing_link_release

Leon Hwang posted 2 patches 3 days, 10 hours ago
There is a newer version of this series
include/linux/bpf.h                           |  2 +
kernel/bpf/trampoline.c                       |  7 +++
kernel/bpf/verifier.c                         |  2 +-
.../selftests/bpf/prog_tests/tailcalls.c      | 51 +++++++++++++++++++
4 files changed, 61 insertions(+), 1 deletion(-)
[PATCH bpf-next 0/2] bpf: Fix WARNING in bpf_tracing_link_release
Posted by Leon Hwang 3 days, 10 hours ago
The trampoline could be corrupted by the blindly
'tr->flags = BPF_TRAMP_F_TAIL_CALL_CTX' in verifier.

1. A fexit attached to a tail_call_reachable prog.
2. Another fexit loaded with the same tail_call_reachable prog target.
3. Close the first fexit link.

[    3.410719] WARNING: kernel/bpf/syscall.c:3551 at bpf_tracing_link_release+0x53/0x60, CPU#1: test_progs/98
...
[    3.428793]  bpf_link_free+0x58/0x130
[    3.429293]  bpf_link_release+0x23/0x30

Fix the warning by updating 'tr->flags' with '|=' and lock.

Leon Hwang (2):
  bpf: Fix WARNING in bpf_tracing_link_release
  selftests/bpf: Verify no warning when close fexit link

 include/linux/bpf.h                           |  2 +
 kernel/bpf/trampoline.c                       |  7 +++
 kernel/bpf/verifier.c                         |  2 +-
 .../selftests/bpf/prog_tests/tailcalls.c      | 51 +++++++++++++++++++
 4 files changed, 61 insertions(+), 1 deletion(-)

--
2.55.0