BPF List
 help / color / mirror / Atom feed
* [PATCH v2 bpf-next 0/3] bpf: Reject attaching fexit to __noreturn functions
@ 2025-02-23  6:27 Yafang Shao
  2025-02-23  6:27 ` [PATCH v2 bpf-next 1/3] objtool: Copy noreturns.h to include/linux Yafang Shao
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Yafang Shao @ 2025-02-23  6:27 UTC (permalink / raw)
  To: ast, daniel, andrii, martin.lau, eddyz87, song, yonghong.song,
	john.fastabend, kpsingh, sdf, haoluo, jolsa, jpoimboe, peterz
  Cc: bpf, linux-kernel, Yafang Shao

Attaching fexit probes to functions marked with __noreturn may lead to
unpredictable behavior. To avoid this, we will reject attaching probes to
such functions. Currently, there is no ideal solution, so we will hardcode
a check for all __noreturn functions. Since objtool already handles
this, we will leverage its implementation.

Once a more robust solution is found, this workaround can be removed.

v1->v2:
- keep tools/objtool/noreturns.h as is (Josh)
- Add noreturns.h to objtool/sync-check.sh (Josh)
- Add verbose for the reject and simplify the test case (Song)

v1: https://lore.kernel.org/bpf/20250211023359.1570-1-laoar.shao@gmail.com/

Yafang Shao (3):
  objtool: Copy noreturns.h to include/linux
  bpf: Reject attaching fexit to functions annotated with __noreturn
  selftests/bpf: Add selftest for attaching fexit to __noreturn
    functions

 include/linux/noreturns.h                     | 52 +++++++++++++++++++
 kernel/bpf/verifier.c                         | 11 ++++
 tools/objtool/Documentation/objtool.txt       |  3 +-
 tools/objtool/sync-check.sh                   |  2 +
 .../bpf/prog_tests/fexit_noreturns.c          |  9 ++++
 .../selftests/bpf/progs/fexit_noreturns.c     | 15 ++++++
 6 files changed, 91 insertions(+), 1 deletion(-)
 create mode 100644 include/linux/noreturns.h
 create mode 100644 tools/testing/selftests/bpf/prog_tests/fexit_noreturns.c
 create mode 100644 tools/testing/selftests/bpf/progs/fexit_noreturns.c

-- 
2.43.5


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2025-02-24  2:00 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-23  6:27 [PATCH v2 bpf-next 0/3] bpf: Reject attaching fexit to __noreturn functions Yafang Shao
2025-02-23  6:27 ` [PATCH v2 bpf-next 1/3] objtool: Copy noreturns.h to include/linux Yafang Shao
2025-02-23  8:21   ` kernel test robot
2025-02-23 20:12   ` Alexei Starovoitov
2025-02-24  2:00     ` Yafang Shao
2025-02-23  6:27 ` [PATCH v2 bpf-next 2/3] bpf: Reject attaching fexit to functions annotated with __noreturn Yafang Shao
2025-02-23  6:27 ` [PATCH v2 bpf-next 3/3] selftests/bpf: Add selftest for attaching fexit to __noreturn functions Yafang Shao

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox