summaryrefslogtreecommitdiffstats
path: root/debian/patches-rt/bpf-Remove-tst_run-from-lwt_seg6local_prog_ops.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches-rt/bpf-Remove-tst_run-from-lwt_seg6local_prog_ops.patch')
-rw-r--r--debian/patches-rt/bpf-Remove-tst_run-from-lwt_seg6local_prog_ops.patch40
1 files changed, 40 insertions, 0 deletions
diff --git a/debian/patches-rt/bpf-Remove-tst_run-from-lwt_seg6local_prog_ops.patch b/debian/patches-rt/bpf-Remove-tst_run-from-lwt_seg6local_prog_ops.patch
new file mode 100644
index 0000000000..37d4e85805
--- /dev/null
+++ b/debian/patches-rt/bpf-Remove-tst_run-from-lwt_seg6local_prog_ops.patch
@@ -0,0 +1,40 @@
+From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date: Wed, 10 Jul 2024 16:16:31 +0200
+Subject: [PATCH] bpf: Remove tst_run from lwt_seg6local_prog_ops.
+Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.10/older/patches-6.10.2-rt14.tar.xz
+
+The syzbot reported that the lwt_seg6 related BPF ops can be invoked
+via bpf_test_run() without without entering input_action_end_bpf()
+first.
+
+Martin KaFai Lau said that self test for BPF_PROG_TYPE_LWT_SEG6LOCAL
+probably didn't work since it was introduced in commit 04d4b274e2a
+("ipv6: sr: Add seg6local action End.BPF"). The reason is that the
+per-CPU variable seg6_bpf_srh_states::srh is never assigned in the self
+test case but each BPF function expects it.
+
+Remove test_run for BPF_PROG_TYPE_LWT_SEG6LOCAL.
+
+Suggested-by: Martin KaFai Lau <martin.lau@linux.dev>
+Reported-by: syzbot+608a2acde8c5a101d07d@syzkaller.appspotmail.com
+Fixes: d1542d4ae4df ("seg6: Use nested-BH locking for seg6_bpf_srh_states.")
+Fixes: 004d4b274e2a ("ipv6: sr: Add seg6local action End.BPF")
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Acked-by: Daniel Borkmann <daniel@iogearbox.net>
+Link: https://lore.kernel.org/r/20240710141631.FbmHcQaX@linutronix.de
+Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
+Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+---
+ net/core/filter.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+--- a/net/core/filter.c
++++ b/net/core/filter.c
+@@ -11047,7 +11047,6 @@ const struct bpf_verifier_ops lwt_seg6lo
+ };
+
+ const struct bpf_prog_ops lwt_seg6local_prog_ops = {
+- .test_run = bpf_prog_test_run_skb,
+ };
+
+ const struct bpf_verifier_ops cg_sock_verifier_ops = {