From: sashiko-bot@kernel.org
To: "Kumar Kartikeya Dwivedi" <memxor@gmail.com>
Cc: bpf@vger.kernel.org
Subject: Re: [PATCH bpf-next v3 12/17] bpf: Report Execution Context Safety errors
Date: Mon, 13 Jul 2026 15:53:27 +0000 [thread overview]
Message-ID: <20260713155328.2D4831F000E9@smtp.kernel.org> (raw)
In-Reply-To: <20260713153910.2556007-13-memxor@gmail.com>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Incorrect diagnostic constraint explanation for global function calls under locks
--
--- Patch [12]: [PATCH bpf-next v3 12/17] bpf: Report Execution Context Safety errors ---
commit 4c2714bc706956dcdd83f54e5db8f96839c37f55
Author: Kumar Kartikeya Dwivedi <memxor@gmail.com>
bpf: Report Execution Context Safety errors
This commit augments selected sleepability and critical-section failures
with Execution Context Safety reports. It adds source context, path history,
and suggestions tied to the active context while keeping existing verifier
messages.
> diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c
> index 07e2c1ed8fbe6..e253fbc733a48 100644
> --- a/kernel/bpf/verifier.c
> +++ b/kernel/bpf/verifier.c
> @@ -10109,17 +10111,32 @@ static int check_func_call(struct bpf_verifier_env *env, struct bpf_insn *insn,
> if (err == -EFAULT)
> return err;
> if (bpf_subprog_is_global(env, subprog)) {
> + const char *context;
> const char *sub_name = bpf_verifier_subprog_name(env, subprog);
> + const char *operation;
>
> if (env->cur_state->active_locks) {
> verbose(env, "global function calls are not allowed while holding a lock,\n"
> "use static function instead\n");
> + operation =
> + bpf_diag_scratch_printf(env, 1, "global function %s()", sub_name);
> + bpf_diag_ctx(env, BPF_DIAG_CTX_FORBIDDEN, *insn_idx, operation,
> + BPF_DIAG_CONTEXT_LOCK, "lock region",
> + "Release the lock before calling the global function, or use "
> + "a static function instead.");
[Severity: Medium]
Will this result in an incorrect diagnostic reason being printed?
Since BPF_DIAG_CTX_FORBIDDEN triggers diag_ctx_forbidden(), which in turn
uses diag_context_constraint() for the constraint explanation:
kernel/bpf/diagnostics.c:diag_context_constraint() {
...
case BPF_DIAG_CONTEXT_LOCK:
return "code holding a BPF spin lock cannot call operations that may sleep";
...
}
Doesn't this incorrectly tell the developer that their global function call
was rejected because it "may sleep"? Global function calls are generally
disallowed under locks due to verifier state limitations rather than just
sleepability.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260713153910.2556007-1-memxor@gmail.com?part=12
next prev parent reply other threads:[~2026-07-13 15:53 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-13 15:38 [PATCH bpf-next v3 00/17] Redesign Verification Errors Kumar Kartikeya Dwivedi
2026-07-13 15:38 ` [PATCH bpf-next v3 01/17] bpf: Add verifier diagnostics report helpers Kumar Kartikeya Dwivedi
2026-07-13 15:50 ` sashiko-bot
2026-07-13 15:38 ` [PATCH bpf-next v3 02/17] bpf: Add source and instruction diagnostic context Kumar Kartikeya Dwivedi
2026-07-13 15:38 ` [PATCH bpf-next v3 03/17] bpf: Add verifier diagnostic event log Kumar Kartikeya Dwivedi
2026-07-13 15:54 ` sashiko-bot
2026-07-13 15:38 ` [PATCH bpf-next v3 04/17] bpf: Prune verifier diagnostics when switching paths Kumar Kartikeya Dwivedi
2026-07-13 16:02 ` sashiko-bot
2026-07-13 15:38 ` [PATCH bpf-next v3 05/17] bpf: Track verifier register diagnostic events Kumar Kartikeya Dwivedi
2026-07-13 16:06 ` sashiko-bot
2026-07-13 15:38 ` [PATCH bpf-next v3 06/17] bpf: Track verifier reference " Kumar Kartikeya Dwivedi
2026-07-13 15:38 ` [PATCH bpf-next v3 07/17] bpf: Track verifier context " Kumar Kartikeya Dwivedi
2026-07-13 15:38 ` [PATCH bpf-next v3 08/17] bpf: Report Register Type Safety errors Kumar Kartikeya Dwivedi
2026-07-13 15:38 ` [PATCH bpf-next v3 09/17] bpf: Report Memory Safety bounds errors Kumar Kartikeya Dwivedi
2026-07-13 15:38 ` [PATCH bpf-next v3 10/17] bpf: Report Resource Lifetime reference leaks Kumar Kartikeya Dwivedi
2026-07-13 16:04 ` sashiko-bot
2026-07-13 15:39 ` [PATCH bpf-next v3 11/17] bpf: Report Call Type Safety argument errors Kumar Kartikeya Dwivedi
2026-07-13 15:51 ` sashiko-bot
2026-07-13 15:39 ` [PATCH bpf-next v3 12/17] bpf: Report Execution Context Safety errors Kumar Kartikeya Dwivedi
2026-07-13 15:53 ` sashiko-bot [this message]
2026-07-13 15:39 ` [PATCH bpf-next v3 13/17] bpf: Report Program Structure CFG errors Kumar Kartikeya Dwivedi
2026-07-13 15:39 ` [PATCH bpf-next v3 14/17] bpf: Report Policy helper and kfunc errors Kumar Kartikeya Dwivedi
2026-07-13 16:09 ` sashiko-bot
2026-07-13 15:39 ` [PATCH bpf-next v3 15/17] bpf: Report Verifier Limit errors Kumar Kartikeya Dwivedi
2026-07-13 15:39 ` [PATCH bpf-next v3 16/17] bpf: Report Verifier Internal errors Kumar Kartikeya Dwivedi
2026-07-13 15:39 ` [PATCH bpf-next v3 17/17] bpf: Gate verifier diagnostics on log level Kumar Kartikeya Dwivedi
2026-07-14 3:36 ` kernel test robot
2026-07-14 6:10 ` [syzbot ci] Re: Redesign Verification Errors syzbot ci
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260713155328.2D4831F000E9@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=memxor@gmail.com \
--cc=sashiko-reviews@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.