Commit 6c2f1fef82dd0803cf51ac23d15f97ddce662c13
Committed by
Greg Kroah-Hartman
1 parent
3e496d49f3
mips: bpf: Fix broken BPF_MOD
[ Upstream commit 2e46477a12f6fd273e31a220b155d66e8352198c ] Remove optimize_div() from BPF_MOD | BPF_K case since we don't know the dividend and fix the emit_mod() by reading the mod operation result from HI register Signed-off-by: Denis Kirjanov <kda@linux-powerpc.org> Reviewed-by: Markos Chandras <markos.chandras@imgtec.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Showing 1 changed file with 2 additions and 2 deletions Side-by-side Diff
arch/mips/net/bpf_jit.c
... | ... | @@ -426,7 +426,7 @@ |
426 | 426 | u32 *p = &ctx->target[ctx->idx]; |
427 | 427 | uasm_i_divu(&p, dst, src); |
428 | 428 | p = &ctx->target[ctx->idx + 1]; |
429 | - uasm_i_mflo(&p, dst); | |
429 | + uasm_i_mfhi(&p, dst); | |
430 | 430 | } |
431 | 431 | ctx->idx += 2; /* 2 insts */ |
432 | 432 | } |
... | ... | @@ -971,7 +971,7 @@ |
971 | 971 | break; |
972 | 972 | case BPF_ALU | BPF_MOD | BPF_K: |
973 | 973 | /* A %= k */ |
974 | - if (k == 1 || optimize_div(&k)) { | |
974 | + if (k == 1) { | |
975 | 975 | ctx->flags |= SEEN_A; |
976 | 976 | emit_jit_reg_move(r_A, r_zero, ctx); |
977 | 977 | } else { |