Netdev List
 help / color / mirror / Atom feed
* [PATCH net 1/1] bpf: sockmap: fix tail fragment offset in bpf_msg_push_data
       [not found] <cover.1779636774.git.xuyq21@lenovo.com>
@ 2026-05-27  3:48 ` Ren Wei
  2026-05-27 14:47   ` John Fastabend
  2026-05-29 19:50   ` patchwork-bot+netdevbpf
  0 siblings, 2 replies; 3+ messages in thread
From: Ren Wei @ 2026-05-27  3:48 UTC (permalink / raw)
  To: bpf, netdev
  Cc: martin.lau, daniel, john.fastabend, sdf, ast, andrii, eddyz87,
	memxor, song, yonghong.song, jolsa, yuantan098, zcliangcn, bird,
	xuyq21, n05ec

From: Yuqi Xu <xuyq21@lenovo.com>

When bpf_msg_push_data() inserts data in the middle of a scatterlist
entry, it splits the original entry into a left fragment and a right
fragment.

The right fragment offset is page-local, but the code advances it with
`start`, which is the message-global insertion point. For inserts into a
non-first SG entry, this over-advances the offset and leaves the split
layout inconsistent.

Advance the right fragment offset by the fragment-local delta,
`start - offset`, which matches the length removed from the front of the
original entry.

Fixes: 6fff607e2f14 ("bpf: sk_msg program helper bpf_msg_push_data")
Cc: stable@kernel.org
Reported-by: Yuan Tan <yuantan098@gmail.com>
Reported-by: Zhengchuan Liang <zcliangcn@gmail.com>
Reported-by: Xin Liu <bird@lzu.edu.cn>
Assisted-by: Codex:GPT-5.4
Signed-off-by: Yuqi Xu <xuyq21@lenovo.com>
Signed-off-by: Ren Wei <n05ec@lzu.edu.cn>
---
 net/core/filter.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/core/filter.c b/net/core/filter.c
index 80a3b702a2d4..d8e637f35f68 100644
--- a/net/core/filter.c
+++ b/net/core/filter.c
@@ -2860,7 +2860,7 @@ BPF_CALL_4(bpf_msg_push_data, struct sk_msg *, msg, u32, start,
 
 		psge->length = start - offset;
 		rsge.length -= psge->length;
-		rsge.offset += start;
+		rsge.offset += start - offset;
 
 		sk_msg_iter_var_next(i);
 		sg_unmark_end(psge);
-- 
2.54.0


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

* Re: [PATCH net 1/1] bpf: sockmap: fix tail fragment offset in bpf_msg_push_data
  2026-05-27  3:48 ` [PATCH net 1/1] bpf: sockmap: fix tail fragment offset in bpf_msg_push_data Ren Wei
@ 2026-05-27 14:47   ` John Fastabend
  2026-05-29 19:50   ` patchwork-bot+netdevbpf
  1 sibling, 0 replies; 3+ messages in thread
From: John Fastabend @ 2026-05-27 14:47 UTC (permalink / raw)
  To: Ren Wei
  Cc: bpf, netdev, martin.lau, daniel, sdf, ast, andrii, eddyz87,
	memxor, song, yonghong.song, jolsa, yuantan098, zcliangcn, bird,
	xuyq21

On Wed, May 27, 2026 at 11:48:15AM +0800, Ren Wei wrote:
>From: Yuqi Xu <xuyq21@lenovo.com>
>
>When bpf_msg_push_data() inserts data in the middle of a scatterlist
>entry, it splits the original entry into a left fragment and a right
>fragment.
>
>The right fragment offset is page-local, but the code advances it with
>`start`, which is the message-global insertion point. For inserts into a
>non-first SG entry, this over-advances the offset and leaves the split
>layout inconsistent.
>
>Advance the right fragment offset by the fragment-local delta,
>`start - offset`, which matches the length removed from the front of the
>original entry.
>
>Fixes: 6fff607e2f14 ("bpf: sk_msg program helper bpf_msg_push_data")
>Cc: stable@kernel.org
>Reported-by: Yuan Tan <yuantan098@gmail.com>
>Reported-by: Zhengchuan Liang <zcliangcn@gmail.com>
>Reported-by: Xin Liu <bird@lzu.edu.cn>
>Assisted-by: Codex:GPT-5.4
>Signed-off-by: Yuqi Xu <xuyq21@lenovo.com>
>Signed-off-by: Ren Wei <n05ec@lzu.edu.cn>
>---
> net/core/filter.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)

Thanks.

eviewed-by: John Fastabend <john.fastabend@gmail.com>

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

* Re: [PATCH net 1/1] bpf: sockmap: fix tail fragment offset in bpf_msg_push_data
  2026-05-27  3:48 ` [PATCH net 1/1] bpf: sockmap: fix tail fragment offset in bpf_msg_push_data Ren Wei
  2026-05-27 14:47   ` John Fastabend
@ 2026-05-29 19:50   ` patchwork-bot+netdevbpf
  1 sibling, 0 replies; 3+ messages in thread
From: patchwork-bot+netdevbpf @ 2026-05-29 19:50 UTC (permalink / raw)
  To: Ren Wei
  Cc: bpf, netdev, martin.lau, daniel, john.fastabend, sdf, ast, andrii,
	eddyz87, memxor, song, yonghong.song, jolsa, yuantan098,
	zcliangcn, bird, xuyq21

Hello:

This patch was applied to netdev/net.git (main)
by Jakub Kicinski <kuba@kernel.org>:

On Wed, 27 May 2026 11:48:15 +0800 you wrote:
> From: Yuqi Xu <xuyq21@lenovo.com>
> 
> When bpf_msg_push_data() inserts data in the middle of a scatterlist
> entry, it splits the original entry into a left fragment and a right
> fragment.
> 
> The right fragment offset is page-local, but the code advances it with
> `start`, which is the message-global insertion point. For inserts into a
> non-first SG entry, this over-advances the offset and leaves the split
> layout inconsistent.
> 
> [...]

Here is the summary with links:
  - [net,1/1] bpf: sockmap: fix tail fragment offset in bpf_msg_push_data
    https://git.kernel.org/netdev/net/c/f72eed9b84fb

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] 3+ messages in thread

end of thread, other threads:[~2026-05-29 19:50 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <cover.1779636774.git.xuyq21@lenovo.com>
2026-05-27  3:48 ` [PATCH net 1/1] bpf: sockmap: fix tail fragment offset in bpf_msg_push_data Ren Wei
2026-05-27 14:47   ` John Fastabend
2026-05-29 19:50   ` 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