> diff --git a/include/linux/bpf.h b/include/linux/bpf.h
> index 8fb8c9bbd..975930e10 100644
> --- a/include/linux/bpf.h
> +++ b/include/linux/bpf.h
> @@ -3712,6 +3712,10 @@ enum bpf_text_poke_type {
> BPF_MOD_JUMP,
> };
>
> +int bpf_arch_text_poke_type(void *ip, enum bpf_text_poke_type old_t,
> + enum bpf_text_poke_type new_t, void *addr1,
> + void *addr2);
^^^^^^^^^^^^
The header declaration uses parameter names addr1 and addr2, but the
implementation in kernel/bpf/core.c uses old_addr and new_addr. Should
these match? When developers implement arch-specific versions, they'll
see addr1/addr2 in the header but old_addr/new_addr in the weak default
implementation. The existing bpf_arch_text_poke() uses addr1/addr2, but
the x86 implementation of that function semantically treats them as
old_addr and new_addr. Would it be clearer to use old_addr/new_addr
consistently, or addr1/addr2 to match the existing function?
> +
> int bpf_arch_text_poke(void *ip, enum bpf_text_poke_type t,
> void *addr1, void *addr2);
>
> diff --git a/kernel/bpf/core.c b/kernel/bpf/core.c
> index ef4448f18..400eb70fd 100644
> --- a/kernel/bpf/core.c
> +++ b/kernel/bpf/core.c
> @@ -3156,6 +3156,16 @@ int __weak bpf_arch_text_poke(void *ip, enum
> bpf_text_poke_type t,
> return -ENOTSUPP;
> }
>
> +int __weak bpf_arch_text_poke_type(void *ip, enum bpf_text_poke_type old_t,
> + enum bpf_text_poke_type new_t, void
> *old_addr,
> + void *new_addr)
^^^^^^^^^^^^^^^^^^^^^^
> +{
> + if (old_t == new_t)
> + return bpf_arch_text_poke(ip, old_t, old_addr, new_addr);
> +
> + return -EOPNOTSUPP;
> +}
> +
> void * __weak bpf_arch_text_copy(void *dst, void *src, size_t len)
> {
> return ERR_PTR(-ENOTSUPP);
---
AI reviewed your patch. Please fix the bug or email reply why it's not a bug.
See: https://github.com/kernel-patches/vmtest/blob/master/ci/claude/README.md
CI run summary: https://github.com/kernel-patches/bpf/actions/runs/19360353328