Commit fdfaf64e authored by Alexei Starovoitov's avatar Alexei Starovoitov Committed by David S. Miller

x86: bpf_jit: support negative offsets

Commit a998d434 claimed to introduce negative offset support to x86 jit,
but it couldn't be working, since at the time of the execution
of LD+ABS or LD+IND instructions via call into
bpf_internal_load_pointer_neg_helper() the %edx (3rd argument of this func)
had junk value instead of access size in bytes (1 or 2 or 4).

Store size into %edx instead of %ecx (what original commit intended to do)

Fixes: a998d434 ("bpf jit: Let the x86 jit handle negative offsets")
Signed-off-by: default avatarAlexei Starovoitov <ast@plumgrid.com>
Cc: Jan Seiffert <kaffeemonster@googlemail.com>
Cc: Eric Dumazet <edumazet@google.com>
Acked-by: default avatarEric Dumazet <edumazet@google.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 20a599be
...@@ -140,7 +140,7 @@ bpf_slow_path_byte_msh: ...@@ -140,7 +140,7 @@ bpf_slow_path_byte_msh:
push %r9; \ push %r9; \
push SKBDATA; \ push SKBDATA; \
/* rsi already has offset */ \ /* rsi already has offset */ \
mov $SIZE,%ecx; /* size */ \ mov $SIZE,%edx; /* size */ \
call bpf_internal_load_pointer_neg_helper; \ call bpf_internal_load_pointer_neg_helper; \
test %rax,%rax; \ test %rax,%rax; \
pop SKBDATA; \ pop SKBDATA; \
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment