mirror of
https://github.com/edk2-porting/linux-next.git
synced 2025-01-01 18:24:23 +08:00
s390/bpf: Fix ALU_NEG (A = -A)
Currently the LOAD NEGATIVE (lnr) instruction is used for ALU_NEG. This instruction always loads the negative value. Therefore, if A is already negative, it remains unchanged. To fix this use LOAD COMPLEMENT (lcr) instead. Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
fbc89c952f
commit
df3eed3d28
@ -431,8 +431,8 @@ static int bpf_jit_insn(struct bpf_jit *jit, struct sock_filter *filter,
|
|||||||
EMIT4_DISP(0x88500000, K);
|
EMIT4_DISP(0x88500000, K);
|
||||||
break;
|
break;
|
||||||
case BPF_ALU | BPF_NEG: /* A = -A */
|
case BPF_ALU | BPF_NEG: /* A = -A */
|
||||||
/* lnr %r5,%r5 */
|
/* lcr %r5,%r5 */
|
||||||
EMIT2(0x1155);
|
EMIT2(0x1355);
|
||||||
break;
|
break;
|
||||||
case BPF_JMP | BPF_JA: /* ip += K */
|
case BPF_JMP | BPF_JA: /* ip += K */
|
||||||
offset = addrs[i + K] + jit->start - jit->prg;
|
offset = addrs[i + K] + jit->start - jit->prg;
|
||||||
|
Loading…
Reference in New Issue
Block a user