aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.9.21/0099-bpf-arsh-is-not-supported-in-32-bit-alu-thus-reject-.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.9.21/0099-bpf-arsh-is-not-supported-in-32-bit-alu-thus-reject-.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.9.21/0099-bpf-arsh-is-not-supported-in-32-bit-alu-thus-reject-.patch50
1 files changed, 0 insertions, 50 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.9.21/0099-bpf-arsh-is-not-supported-in-32-bit-alu-thus-reject-.patch b/common/recipes-kernel/linux/linux-yocto-4.9.21/0099-bpf-arsh-is-not-supported-in-32-bit-alu-thus-reject-.patch
deleted file mode 100644
index acbc5668..00000000
--- a/common/recipes-kernel/linux/linux-yocto-4.9.21/0099-bpf-arsh-is-not-supported-in-32-bit-alu-thus-reject-.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From d4d31ba0cca574288cdaef8002d11cf27b300d0f Mon Sep 17 00:00:00 2001
-From: Daniel Borkmann <daniel@iogearbox.net>
-Date: Mon, 29 Jan 2018 02:48:57 +0100
-Subject: [PATCH 099/103] bpf: arsh is not supported in 32 bit alu thus reject
- it
-
-[ upstream commit 7891a87efc7116590eaba57acc3c422487802c6f ]
-
-The following snippet was throwing an 'unknown opcode cc' warning
-in BPF interpreter:
-
- 0: (18) r0 = 0x0
- 2: (7b) *(u64 *)(r10 -16) = r0
- 3: (cc) (u32) r0 s>>= (u32) r0
- 4: (95) exit
-
-Although a number of JITs do support BPF_ALU | BPF_ARSH | BPF_{K,X}
-generation, not all of them do and interpreter does neither. We can
-leave existing ones and implement it later in bpf-next for the
-remaining ones, but reject this properly in verifier for the time
-being.
-
-Fixes: 17a5267067f3 ("bpf: verifier (add verifier core)")
-Reported-by: syzbot+93c4904c5c70348a6890@syzkaller.appspotmail.com
-Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
-Signed-off-by: Alexei Starovoitov <ast@kernel.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- kernel/bpf/verifier.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c
-index 6767670..6caf0ff1 100644
---- a/kernel/bpf/verifier.c
-+++ b/kernel/bpf/verifier.c
-@@ -1753,6 +1753,11 @@ static int check_alu_op(struct bpf_verifier_env *env, struct bpf_insn *insn)
- return -EINVAL;
- }
-
-+ if (opcode == BPF_ARSH && BPF_CLASS(insn->code) != BPF_ALU64) {
-+ verbose("BPF_ARSH not supported for 32 bit ALU\n");
-+ return -EINVAL;
-+ }
-+
- if ((opcode == BPF_LSH || opcode == BPF_RSH ||
- opcode == BPF_ARSH) && BPF_SRC(insn->code) == BPF_K) {
- int size = BPF_CLASS(insn->code) == BPF_ALU64 ? 64 : 32;
---
-2.7.4
-