On Tue, Feb 24, 2026 at 7:41 AM Leon Hwang <[email protected]> wrote:
>
> uprobe programs that can modify pt_regs require different runtime
> assumptions than pt_regs-read-only uprobe programs. Mixing both in
> one prog_array can make owner expectations diverge from callee behavior.
>
> Reject the combination of !kprobe_write_ctx progs with kprobe_write_ctx
> progs in __bpf_prog_map_compatible() to address the issue.
>
> Fixes: 7384893d970e ("bpf: Allow uprobe program to change context registers")
> Signed-off-by: Leon Hwang <[email protected]>
> ---
>  include/linux/bpf.h | 7 ++++---
>  kernel/bpf/core.c   | 3 +++
>  2 files changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/include/linux/bpf.h b/include/linux/bpf.h
> index b78b53198a2e..2a2f6448a5fb 100644
> --- a/include/linux/bpf.h
> +++ b/include/linux/bpf.h
> @@ -285,9 +285,10 @@ struct bpf_list_node_kern {
>   */
>  struct bpf_map_owner {
>         enum bpf_prog_type type;
> -       bool jited;
> -       bool xdp_has_frags;
> -       bool sleepable;
> +       u32 jited:1,
> +           xdp_has_frags:1,
> +           sleepable:1,
> +           kprobe_write_ctx:1;

Don't you see how much churn you're adding this way?
Every patch has to touch two lines instead of one.
Use
u32 jited:1;
u32 xdp_has_frags:1;

also the bot is correct on patch 2 and 3.
Don't be fancy. Require strict conformance both ways in *all* patches.

And your codex selftests are garbage. I don't have other words
to describe it. They are not testing the actual bug that
your patches are fixing. Think of what you're doing.
Asking LLM to write a test for your other patch is not what you
should be asking it to do. The selftest should be such that
it proves the unsafety/crash before the fix.

pw-bot: cr

Reply via email to