* [PATCH bpf] bpf: refresh seg6local SRH pointer after skb pull
@ 2026-09-07 19:21 Weiming Shi
2026-09-07 20:02 ` Alexei Starovoitov
2026-09-09 4:08 ` [PATCH bpf v2] bpf: disallow bpf_skb_pull_data() for LWT_SEG6LOCAL Weiming Shi
0 siblings, 2 replies; 6+ messages in thread
From: Weiming Shi @ 2026-09-07 19:21 UTC (permalink / raw)
To: Daniel Borkmann, John Fastabend, Stanislav Fomichev,
Martin KaFai Lau, Alexei Starovoitov, Andrii Nakryiko,
Eduard Zingerman, Kumar Kartikeya Dwivedi, Song Liu,
Yonghong Song, Jiri Olsa, Emil Tsalapatis, Ihor Solodrai,
David S . Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Simon Horman
Cc: bpf, netdev, linux-kernel, co+adfca3e91be95776, Xiang Mei,
Weiming Shi, stable
An LWT_SEG6LOCAL program can invalidate its cached SRH with
bpf_lwt_seg6_adjust_srh() and then call bpf_skb_pull_data(). The latter
may reallocate skb->head, leaving the per-CPU SRH pointer dangling.
Post-program SRH validation then writes through that pointer.
BUG: KASAN: slab-use-after-free in seg6_bpf_has_valid_srh (net/ipv6/seg6_local.c:1411)
Write of size 1
seg6_bpf_has_valid_srh (net/ipv6/seg6_local.c:1411)
input_action_end_bpf (net/ipv6/seg6_local.c:1463)
seg6_local_input_core (net/ipv6/seg6_local.c:1630)
seg6_local_input (net/ipv6/seg6_local.c:1639)
lwtunnel_input (net/core/lwtunnel.c:466)
ipv6_rcv (net/ipv6/ip6_input.c:351)
Give LWT_SEG6LOCAL its own bpf_skb_pull_data() implementation. Save
the cached SRH offset before the skb operation and rebuild the pointer
from the current skb->data afterwards. Since pulling data can replace
storage but does not change packet layout, this preserves the identity
of the cached SRH even when multiple Routing Headers are present.
Refresh the pointer even on error because __pskb_pull_tail() can replace
the head before a later step fails. Preserve the pending hdrlen and valid
state so SRH validation semantics remain unchanged.
Fixes: 004d4b274e2a ("ipv6: sr: Add seg6local action End.BPF")
Reported-by: co+adfca3e91be95776@bugs.sh
Closes: https://lore.kernel.org/all/GCy0KRM2IcQGoJQTjJEU9D0maBxXzEDHuQpq@bugs.sh/
Cc: stable@vger.kernel.org
Assisted-by: Claude:gpt-5
Signed-off-by: Weiming Shi <bestswngs@gmail.com>
---
net/core/filter.c | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/net/core/filter.c b/net/core/filter.c
index 61940e7535523..e61f9e9226b10 100644
--- a/net/core/filter.c
+++ b/net/core/filter.c
@@ -7162,6 +7162,32 @@ static const struct bpf_func_proto bpf_lwt_seg6_adjust_srh_proto = {
.arg2_type = ARG_ANYTHING,
.arg3_type = ARG_ANYTHING,
};
+
+BPF_CALL_2(bpf_lwt_seg6_pull_data, struct sk_buff *, skb, u32, len)
+{
+ struct seg6_bpf_srh_state *srh_state =
+ this_cpu_ptr(&seg6_bpf_srh_states);
+ unsigned int srhoff;
+ int ret;
+
+ lockdep_assert_held(&srh_state->bh_lock);
+ if (!srh_state->srh)
+ return ____bpf_skb_pull_data(skb, len);
+
+ srhoff = (unsigned char *)srh_state->srh - skb->data;
+ ret = ____bpf_skb_pull_data(skb, len);
+ srh_state->srh = (struct ipv6_sr_hdr *)(skb->data + srhoff);
+
+ return ret;
+}
+
+static const struct bpf_func_proto bpf_lwt_seg6_pull_data_proto = {
+ .func = bpf_lwt_seg6_pull_data,
+ .gpl_only = false,
+ .ret_type = RET_INTEGER,
+ .arg1_type = ARG_PTR_TO_CTX,
+ .arg2_type = ARG_ANYTHING,
+};
#endif /* CONFIG_IPV6_SEG6_BPF */
#ifdef CONFIG_INET
@@ -9052,6 +9078,8 @@ lwt_seg6local_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog)
return &bpf_lwt_seg6_action_proto;
case BPF_FUNC_lwt_seg6_adjust_srh:
return &bpf_lwt_seg6_adjust_srh_proto;
+ case BPF_FUNC_skb_pull_data:
+ return &bpf_lwt_seg6_pull_data_proto;
#endif
default:
return lwt_out_func_proto(func_id, prog);
--
2.55.0
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH bpf] bpf: refresh seg6local SRH pointer after skb pull
2026-09-07 19:21 [PATCH bpf] bpf: refresh seg6local SRH pointer after skb pull Weiming Shi
@ 2026-09-07 20:02 ` Alexei Starovoitov
2026-09-08 15:35 ` Weiming Shi
2026-09-09 4:08 ` [PATCH bpf v2] bpf: disallow bpf_skb_pull_data() for LWT_SEG6LOCAL Weiming Shi
1 sibling, 1 reply; 6+ messages in thread
From: Alexei Starovoitov @ 2026-09-07 20:02 UTC (permalink / raw)
To: Weiming Shi, Daniel Borkmann, John Fastabend, Stanislav Fomichev,
Martin KaFai Lau, Alexei Starovoitov, Andrii Nakryiko,
Eduard Zingerman, Kumar Kartikeya Dwivedi, Song Liu,
Yonghong Song, Jiri Olsa, Emil Tsalapatis, Ihor Solodrai,
David S . Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Simon Horman
Cc: bpf, netdev, linux-kernel, co+adfca3e91be95776, Xiang Mei, stable
On Mon Sep 7, 2026 at 12:21 PM PDT, Weiming Shi wrote:
> An LWT_SEG6LOCAL program can invalidate its cached SRH with
> bpf_lwt_seg6_adjust_srh() and then call bpf_skb_pull_data(). The latter
> may reallocate skb->head, leaving the per-CPU SRH pointer dangling.
> Post-program SRH validation then writes through that pointer.
>
> BUG: KASAN: slab-use-after-free in seg6_bpf_has_valid_srh (net/ipv6/seg6_local.c:1411)
> Write of size 1
> seg6_bpf_has_valid_srh (net/ipv6/seg6_local.c:1411)
> input_action_end_bpf (net/ipv6/seg6_local.c:1463)
> seg6_local_input_core (net/ipv6/seg6_local.c:1630)
> seg6_local_input (net/ipv6/seg6_local.c:1639)
> lwtunnel_input (net/core/lwtunnel.c:466)
> ipv6_rcv (net/ipv6/ip6_input.c:351)
>
> Give LWT_SEG6LOCAL its own bpf_skb_pull_data() implementation. Save
> the cached SRH offset before the skb operation and rebuild the pointer
> from the current skb->data afterwards. Since pulling data can replace
> storage but does not change packet layout, this preserves the identity
> of the cached SRH even when multiple Routing Headers are present.
>
> Refresh the pointer even on error because __pskb_pull_tail() can replace
> the head before a later step fails. Preserve the pending hdrlen and valid
> state so SRH validation semantics remain unchanged.
>
> Fixes: 004d4b274e2a ("ipv6: sr: Add seg6local action End.BPF")
> Reported-by: co+adfca3e91be95776@bugs.sh
> Closes: https://lore.kernel.org/all/GCy0KRM2IcQGoJQTjJEU9D0maBxXzEDHuQpq@bugs.sh/
> Cc: stable@vger.kernel.org
> Assisted-by: Claude:gpt-5
> Signed-off-by: Weiming Shi <bestswngs@gmail.com>
> ---
> net/core/filter.c | 28 ++++++++++++++++++++++++++++
> 1 file changed, 28 insertions(+)
>
> diff --git a/net/core/filter.c b/net/core/filter.c
> index 61940e7535523..e61f9e9226b10 100644
> --- a/net/core/filter.c
> +++ b/net/core/filter.c
> @@ -7162,6 +7162,32 @@ static const struct bpf_func_proto bpf_lwt_seg6_adjust_srh_proto = {
> .arg2_type = ARG_ANYTHING,
> .arg3_type = ARG_ANYTHING,
> };
> +
> +BPF_CALL_2(bpf_lwt_seg6_pull_data, struct sk_buff *, skb, u32, len)
> +{
> + struct seg6_bpf_srh_state *srh_state =
> + this_cpu_ptr(&seg6_bpf_srh_states);
> + unsigned int srhoff;
> + int ret;
> +
> + lockdep_assert_held(&srh_state->bh_lock);
> + if (!srh_state->srh)
> + return ____bpf_skb_pull_data(skb, len);
> +
> + srhoff = (unsigned char *)srh_state->srh - skb->data;
> + ret = ____bpf_skb_pull_data(skb, len);
> + srh_state->srh = (struct ipv6_sr_hdr *)(skb->data + srhoff);
> +
> + return ret;
> +}
> +
> +static const struct bpf_func_proto bpf_lwt_seg6_pull_data_proto = {
> + .func = bpf_lwt_seg6_pull_data,
> + .gpl_only = false,
> + .ret_type = RET_INTEGER,
> + .arg1_type = ARG_PTR_TO_CTX,
> + .arg2_type = ARG_ANYTHING,
> +};
> #endif /* CONFIG_IPV6_SEG6_BPF */
>
> #ifdef CONFIG_INET
> @@ -9052,6 +9078,8 @@ lwt_seg6local_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog)
> return &bpf_lwt_seg6_action_proto;
> case BPF_FUNC_lwt_seg6_adjust_srh:
> return &bpf_lwt_seg6_adjust_srh_proto;
> + case BPF_FUNC_skb_pull_data:
> + return &bpf_lwt_seg6_pull_data_proto;
Instead of adding new support that no one will use, just disallow this helper from lwt_seg6.
pw-bot: cr
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH bpf] bpf: refresh seg6local SRH pointer after skb pull
2026-09-07 20:02 ` Alexei Starovoitov
@ 2026-09-08 15:35 ` Weiming Shi
0 siblings, 0 replies; 6+ messages in thread
From: Weiming Shi @ 2026-09-08 15:35 UTC (permalink / raw)
To: Alexei Starovoitov
Cc: Daniel Borkmann, John Fastabend, Stanislav Fomichev,
Martin KaFai Lau, Alexei Starovoitov, Andrii Nakryiko,
Eduard Zingerman, Kumar Kartikeya Dwivedi, Song Liu,
Yonghong Song, Jiri Olsa, Emil Tsalapatis, Ihor Solodrai,
David S . Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Simon Horman, bpf, netdev, linux-kernel, co+adfca3e91be95776,
Xiang Mei, stable
Alexei Starovoitov <alexei.starovoitov@gmail.com> 于2026年9月8日周二 04:02写道:
>
> On Mon Sep 7, 2026 at 12:21 PM PDT, Weiming Shi wrote:
> > An LWT_SEG6LOCAL program can invalidate its cached SRH with
> > bpf_lwt_seg6_adjust_srh() and then call bpf_skb_pull_data(). The latter
> > may reallocate skb->head, leaving the per-CPU SRH pointer dangling.
> > Post-program SRH validation then writes through that pointer.
> >
> > BUG: KASAN: slab-use-after-free in seg6_bpf_has_valid_srh (net/ipv6/seg6_local.c:1411)
> > Write of size 1
> > seg6_bpf_has_valid_srh (net/ipv6/seg6_local.c:1411)
> > input_action_end_bpf (net/ipv6/seg6_local.c:1463)
> > seg6_local_input_core (net/ipv6/seg6_local.c:1630)
> > seg6_local_input (net/ipv6/seg6_local.c:1639)
> > lwtunnel_input (net/core/lwtunnel.c:466)
> > ipv6_rcv (net/ipv6/ip6_input.c:351)
> >
> > Give LWT_SEG6LOCAL its own bpf_skb_pull_data() implementation. Save
> > the cached SRH offset before the skb operation and rebuild the pointer
> > from the current skb->data afterwards. Since pulling data can replace
> > storage but does not change packet layout, this preserves the identity
> > of the cached SRH even when multiple Routing Headers are present.
> >
> > Refresh the pointer even on error because __pskb_pull_tail() can replace
> > the head before a later step fails. Preserve the pending hdrlen and valid
> > state so SRH validation semantics remain unchanged.
> >
> > Fixes: 004d4b274e2a ("ipv6: sr: Add seg6local action End.BPF")
> > Reported-by: co+adfca3e91be95776@bugs.sh
> > Closes: https://lore.kernel.org/all/GCy0KRM2IcQGoJQTjJEU9D0maBxXzEDHuQpq@bugs.sh/
> > Cc: stable@vger.kernel.org
> > Assisted-by: Claude:gpt-5
> > Signed-off-by: Weiming Shi <bestswngs@gmail.com>
> > ---
> > net/core/filter.c | 28 ++++++++++++++++++++++++++++
> > 1 file changed, 28 insertions(+)
> >
> > diff --git a/net/core/filter.c b/net/core/filter.c
> > index 61940e7535523..e61f9e9226b10 100644
> > --- a/net/core/filter.c
> > +++ b/net/core/filter.c
> > @@ -7162,6 +7162,32 @@ static const struct bpf_func_proto bpf_lwt_seg6_adjust_srh_proto = {
> > .arg2_type = ARG_ANYTHING,
> > .arg3_type = ARG_ANYTHING,
> > };
> > +
> > +BPF_CALL_2(bpf_lwt_seg6_pull_data, struct sk_buff *, skb, u32, len)
> > +{
> > + struct seg6_bpf_srh_state *srh_state =
> > + this_cpu_ptr(&seg6_bpf_srh_states);
> > + unsigned int srhoff;
> > + int ret;
> > +
> > + lockdep_assert_held(&srh_state->bh_lock);
> > + if (!srh_state->srh)
> > + return ____bpf_skb_pull_data(skb, len);
> > +
> > + srhoff = (unsigned char *)srh_state->srh - skb->data;
> > + ret = ____bpf_skb_pull_data(skb, len);
> > + srh_state->srh = (struct ipv6_sr_hdr *)(skb->data + srhoff);
> > +
> > + return ret;
> > +}
> > +
> > +static const struct bpf_func_proto bpf_lwt_seg6_pull_data_proto = {
> > + .func = bpf_lwt_seg6_pull_data,
> > + .gpl_only = false,
> > + .ret_type = RET_INTEGER,
> > + .arg1_type = ARG_PTR_TO_CTX,
> > + .arg2_type = ARG_ANYTHING,
> > +};
> > #endif /* CONFIG_IPV6_SEG6_BPF */
> >
> > #ifdef CONFIG_INET
> > @@ -9052,6 +9078,8 @@ lwt_seg6local_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog)
> > return &bpf_lwt_seg6_action_proto;
> > case BPF_FUNC_lwt_seg6_adjust_srh:
> > return &bpf_lwt_seg6_adjust_srh_proto;
> > + case BPF_FUNC_skb_pull_data:
> > + return &bpf_lwt_seg6_pull_data_proto;
>
> Instead of adding new support that no one will use, just disallow this helper from lwt_seg6.
>
> pw-bot: cr
Thanks for the review. I will incorporate your feedback and send v2.
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH bpf v2] bpf: disallow bpf_skb_pull_data() for LWT_SEG6LOCAL
2026-09-07 19:21 [PATCH bpf] bpf: refresh seg6local SRH pointer after skb pull Weiming Shi
2026-09-07 20:02 ` Alexei Starovoitov
@ 2026-09-09 4:08 ` Weiming Shi
2026-09-09 18:18 ` Emil Tsalapatis
2026-09-09 18:40 ` patchwork-bot+netdevbpf
1 sibling, 2 replies; 6+ messages in thread
From: Weiming Shi @ 2026-09-09 4:08 UTC (permalink / raw)
To: Daniel Borkmann, John Fastabend, Stanislav Fomichev,
Martin KaFai Lau, Alexei Starovoitov, Andrii Nakryiko,
Eduard Zingerman, Kumar Kartikeya Dwivedi, Song Liu,
Yonghong Song, Jiri Olsa, Emil Tsalapatis, Ihor Solodrai,
David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Simon Horman
Cc: bpf, netdev, linux-kernel, David Lebrun, Mathieu Xhonneux,
co+adfca3e91be95776, Xiang Mei, Weiming Shi, Alexei Starovoitov,
stable
An LWT_SEG6LOCAL program can invalidate its cached SRH with
bpf_lwt_seg6_adjust_srh() and then call bpf_skb_pull_data(). The latter
may reallocate skb->head, leaving the per-CPU SRH pointer dangling.
Post-program SRH validation then writes through that pointer.
Disallow bpf_skb_pull_data() for LWT_SEG6LOCAL programs so the verifier
rejects this unsafe helper combination. Other LWT program types continue
to expose the helper through lwt_out_func_proto().
Fixes: 004d4b274e2a ("ipv6: sr: Add seg6local action End.BPF")
Reported-by: co+adfca3e91be95776@bugs.sh
Closes: https://lore.kernel.org/all/GCy0KRM2IcQGoJQTjJEU9D0maBxXzEDHuQpq@bugs.sh/
Suggested-by: Alexei Starovoitov <alexei.starovoitov@gmail.com>
Link: https://lore.kernel.org/bpf/DL9COXZQXX4V.1FN45QO2Q77ZH@gmail.com/
Cc: stable@vger.kernel.org
Assisted-by: Claude:gpt-5
Signed-off-by: Weiming Shi <bestswngs@gmail.com>
---
Changes in v2:
- Disallow bpf_skb_pull_data() for LWT_SEG6LOCAL instead of adding a
wrapper to refresh the cached SRH pointer, as suggested by Alexei.
net/core/filter.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/net/core/filter.c b/net/core/filter.c
index 8513167a858a8..2a84f9d011314 100644
--- a/net/core/filter.c
+++ b/net/core/filter.c
@@ -9044,6 +9044,8 @@ static const struct bpf_func_proto *
lwt_seg6local_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog)
{
switch (func_id) {
+ case BPF_FUNC_skb_pull_data:
+ return NULL;
#if IS_ENABLED(CONFIG_IPV6_SEG6_BPF)
case BPF_FUNC_lwt_seg6_store_bytes:
return &bpf_lwt_seg6_store_bytes_proto;
--
2.55.0
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH bpf v2] bpf: disallow bpf_skb_pull_data() for LWT_SEG6LOCAL
2026-09-09 4:08 ` [PATCH bpf v2] bpf: disallow bpf_skb_pull_data() for LWT_SEG6LOCAL Weiming Shi
@ 2026-09-09 18:18 ` Emil Tsalapatis
2026-09-09 18:40 ` patchwork-bot+netdevbpf
1 sibling, 0 replies; 6+ messages in thread
From: Emil Tsalapatis @ 2026-09-09 18:18 UTC (permalink / raw)
To: Weiming Shi
Cc: Daniel Borkmann, John Fastabend, Stanislav Fomichev,
Martin KaFai Lau, Alexei Starovoitov, Andrii Nakryiko,
Eduard Zingerman, Kumar Kartikeya Dwivedi, Song Liu,
Yonghong Song, Jiri Olsa, Ihor Solodrai, David S. Miller,
Eric Dumazet, Jakub Kicinski, Paolo Abeni, Simon Horman, bpf,
netdev, linux-kernel, David Lebrun, Mathieu Xhonneux,
co+adfca3e91be95776, Xiang Mei, Alexei Starovoitov, stable
On Wed, Sep 9, 2026 at 12:08 AM Weiming Shi <bestswngs@gmail.com> wrote:
>
> An LWT_SEG6LOCAL program can invalidate its cached SRH with
> bpf_lwt_seg6_adjust_srh() and then call bpf_skb_pull_data(). The latter
> may reallocate skb->head, leaving the per-CPU SRH pointer dangling.
> Post-program SRH validation then writes through that pointer.
>
> Disallow bpf_skb_pull_data() for LWT_SEG6LOCAL programs so the verifier
> rejects this unsafe helper combination. Other LWT program types continue
> to expose the helper through lwt_out_func_proto().
>
> Fixes: 004d4b274e2a ("ipv6: sr: Add seg6local action End.BPF")
> Reported-by: co+adfca3e91be95776@bugs.sh
> Closes: https://lore.kernel.org/all/GCy0KRM2IcQGoJQTjJEU9D0maBxXzEDHuQpq@bugs.sh/
> Suggested-by: Alexei Starovoitov <alexei.starovoitov@gmail.com>
> Link: https://lore.kernel.org/bpf/DL9COXZQXX4V.1FN45QO2Q77ZH@gmail.com/
> Cc: stable@vger.kernel.org
> Assisted-by: Claude:gpt-5
> Signed-off-by: Weiming Shi <bestswngs@gmail.com>
> ---
Reviewed-by: Emil Tsalapatis <emil@etsalapatis.com>
> Changes in v2:
> - Disallow bpf_skb_pull_data() for LWT_SEG6LOCAL instead of adding a
> wrapper to refresh the cached SRH pointer, as suggested by Alexei.
>
> net/core/filter.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/net/core/filter.c b/net/core/filter.c
> index 8513167a858a8..2a84f9d011314 100644
> --- a/net/core/filter.c
> +++ b/net/core/filter.c
> @@ -9044,6 +9044,8 @@ static const struct bpf_func_proto *
> lwt_seg6local_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog)
> {
> switch (func_id) {
> + case BPF_FUNC_skb_pull_data:
> + return NULL;
> #if IS_ENABLED(CONFIG_IPV6_SEG6_BPF)
> case BPF_FUNC_lwt_seg6_store_bytes:
> return &bpf_lwt_seg6_store_bytes_proto;
> --
> 2.55.0
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH bpf v2] bpf: disallow bpf_skb_pull_data() for LWT_SEG6LOCAL
2026-09-09 4:08 ` [PATCH bpf v2] bpf: disallow bpf_skb_pull_data() for LWT_SEG6LOCAL Weiming Shi
2026-09-09 18:18 ` Emil Tsalapatis
@ 2026-09-09 18:40 ` patchwork-bot+netdevbpf
1 sibling, 0 replies; 6+ messages in thread
From: patchwork-bot+netdevbpf @ 2026-09-09 18:40 UTC (permalink / raw)
To: Weiming Shi
Cc: daniel, john.fastabend, sdf, martin.lau, ast, andrii, eddyz87,
memxor, song, yonghong.song, jolsa, emil, ihor.solodrai, davem,
edumazet, kuba, pabeni, horms, bpf, netdev, linux-kernel,
dlebrun, m.xhonneux, co+adfca3e91be95776, xmei5,
alexei.starovoitov, stable
Hello:
This patch was applied to bpf/bpf.git (master)
by Daniel Borkmann <daniel@iogearbox.net>:
On Wed, 9 Sep 2026 12:08:08 +0800 you wrote:
> An LWT_SEG6LOCAL program can invalidate its cached SRH with
> bpf_lwt_seg6_adjust_srh() and then call bpf_skb_pull_data(). The latter
> may reallocate skb->head, leaving the per-CPU SRH pointer dangling.
> Post-program SRH validation then writes through that pointer.
>
> Disallow bpf_skb_pull_data() for LWT_SEG6LOCAL programs so the verifier
> rejects this unsafe helper combination. Other LWT program types continue
> to expose the helper through lwt_out_func_proto().
>
> [...]
Here is the summary with links:
- [bpf,v2] bpf: disallow bpf_skb_pull_data() for LWT_SEG6LOCAL
https://git.kernel.org/bpf/bpf/c/e4a62833adff
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-09-09 18:41 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-07 19:21 [PATCH bpf] bpf: refresh seg6local SRH pointer after skb pull Weiming Shi
2026-09-07 20:02 ` Alexei Starovoitov
2026-09-08 15:35 ` Weiming Shi
2026-09-09 4:08 ` [PATCH bpf v2] bpf: disallow bpf_skb_pull_data() for LWT_SEG6LOCAL Weiming Shi
2026-09-09 18:18 ` Emil Tsalapatis
2026-09-09 18:40 ` patchwork-bot+netdevbpf
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®