summaryrefslogtreecommitdiffstats
path: root/arch/x86/net
diff options
context:
space:
mode:
authorAlexei Starovoitov <ast@kernel.org>2024-04-17 23:44:06 +0200
committerAndrii Nakryiko <andrii@kernel.org>2024-04-18 18:03:21 +0200
commit462e5e2a5938d0241ad146d21dd0da1be8e7eaf0 (patch)
tree1c446c24e177d405d9aa60cb2c16c7ff271593e1 /arch/x86/net
parentlibbpf: Fix dump of subsequent char arrays (diff)
downloadlinux-462e5e2a5938d0241ad146d21dd0da1be8e7eaf0.tar.xz
linux-462e5e2a5938d0241ad146d21dd0da1be8e7eaf0.zip
bpf: Fix JIT of is_mov_percpu_addr instruction.
The codegen for is_mov_percpu_addr instruction works for rax/r8 registers only. Fix it to generate proper x86 byte code for other registers. Fixes: 7bdbf7446305 ("bpf: add special internal-only MOV instruction to resolve per-CPU addrs") Signed-off-by: Alexei Starovoitov <ast@kernel.org> Signed-off-by: Andrii Nakryiko <andrii@kernel.org> Link: https://lore.kernel.org/bpf/20240417214406.15788-1-alexei.starovoitov@gmail.com
Diffstat (limited to 'arch/x86/net')
-rw-r--r--arch/x86/net/bpf_jit_comp.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/net/bpf_jit_comp.c b/arch/x86/net/bpf_jit_comp.c
index 2b5a475c4dd0..673fdbd765d7 100644
--- a/arch/x86/net/bpf_jit_comp.c
+++ b/arch/x86/net/bpf_jit_comp.c
@@ -1439,7 +1439,7 @@ static int do_jit(struct bpf_prog *bpf_prog, int *addrs, u8 *image, u8 *rw_image
#ifdef CONFIG_SMP
/* add <dst>, gs:[<off>] */
EMIT2(0x65, add_1mod(0x48, dst_reg));
- EMIT3(0x03, add_1reg(0x04, dst_reg), 0x25);
+ EMIT3(0x03, add_2reg(0x04, 0, dst_reg), 0x25);
EMIT((u32)(unsigned long)&this_cpu_off, 4);
#endif
break;