2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2025-01-04 03:33:58 +08:00
linux-next/arch
Wang YanQing b9aa0b35d8 bpf, x32: Fix bug for BPF_ALU64 | BPF_NEG
The current implementation has two errors:

1: The second xor instruction will clear carry flag which
   is necessary for following sbb instruction.
2: The select coding for sbb instruction is wrong, the coding
   is "sbb dreg_hi,ecx", but what we need is "sbb ecx,dreg_hi".

This patch rewrites the implementation and fixes the errors.

This patch fixes below errors reported by bpf/test_verifier in x32
platform when the jit is enabled:

"
0: (b4) w1 = 4
1: (b4) w2 = 4
2: (1f) r2 -= r1
3: (4f) r2 |= r1
4: (87) r2 = -r2
5: (c7) r2 s>>= 63
6: (5f) r1 &= r2
7: (bf) r0 = r1
8: (95) exit
processed 9 insns (limit 131072), stack depth 0
0: (b4) w1 = 4
1: (b4) w2 = 4
2: (1f) r2 -= r1
3: (4f) r2 |= r1
4: (87) r2 = -r2
5: (c7) r2 s>>= 63
6: (5f) r1 &= r2
7: (bf) r0 = r1
8: (95) exit
processed 9 insns (limit 131072), stack depth 0
......
Summary: 1189 PASSED, 125 SKIPPED, 15 FAILED
"

Signed-off-by: Wang YanQing <udknight@gmail.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
2019-05-01 23:40:47 +02:00
..
alpha arch: add pidfd and io_uring syscalls everywhere 2019-04-23 13:34:17 -07:00
arc syscalls: Remove start and number from syscall_get_arguments() args 2019-04-05 09:26:43 -04:00
arm arch: add pidfd and io_uring syscalls everywhere 2019-04-23 13:34:17 -07:00
arm64 arch: add pidfd and io_uring syscalls everywhere 2019-04-23 13:34:17 -07:00
c6x syscalls: Remove start and number from syscall_set_arguments() args 2019-04-05 09:27:23 -04:00
csky syscalls: Remove start and number from syscall_set_arguments() args 2019-04-05 09:27:23 -04:00
h8300 syscalls: Remove start and number from syscall_get_arguments() args 2019-04-05 09:26:43 -04:00
hexagon syscalls: Remove start and number from syscall_get_arguments() args 2019-04-05 09:26:43 -04:00
ia64 arch: add pidfd and io_uring syscalls everywhere 2019-04-23 13:34:17 -07:00
m68k arch: add pidfd and io_uring syscalls everywhere 2019-04-23 13:34:17 -07:00
microblaze arch: add pidfd and io_uring syscalls everywhere 2019-04-23 13:34:17 -07:00
mips Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf 2019-04-26 01:54:42 -04:00
nds32 syscalls: Remove start and number from syscall_set_arguments() args 2019-04-05 09:27:23 -04:00
nios2 syscalls: Remove start and number from syscall_set_arguments() args 2019-04-05 09:27:23 -04:00
openrisc syscalls: Remove start and number from syscall_set_arguments() args 2019-04-05 09:27:23 -04:00
parisc arch: add pidfd and io_uring syscalls everywhere 2019-04-23 13:34:17 -07:00
powerpc arch: add pidfd and io_uring syscalls everywhere 2019-04-23 13:34:17 -07:00
riscv RISC-V: Fix Maximum Physical Memory 2GiB option for 64bit systems 2019-04-10 09:41:40 -07:00
s390 arch: add pidfd and io_uring syscalls everywhere 2019-04-23 13:34:17 -07:00
sh arch: add pidfd and io_uring syscalls everywhere 2019-04-23 13:34:17 -07:00
sparc arch: add pidfd and io_uring syscalls everywhere 2019-04-23 13:34:17 -07:00
um syscalls: Remove start and number from syscall_set_arguments() args 2019-04-05 09:27:23 -04:00
unicore32 KVM: export <linux/kvm_para.h> and <asm/kvm_para.h> iif KVM is supported 2019-03-28 17:27:42 +01:00
x86 bpf, x32: Fix bug for BPF_ALU64 | BPF_NEG 2019-05-01 23:40:47 +02:00
xtensa arch: add pidfd and io_uring syscalls everywhere 2019-04-23 13:34:17 -07:00
.gitignore
Kconfig Char/Misc driver patches for 5.1-rc1 2019-03-06 14:18:59 -08:00