aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAurelien Jarno <aurelien@aurel32.net>2015-09-05 12:46:56 -0400
committerRalf Baechle <ralf@linux-mips.org>2015-09-22 13:05:17 -0400
commitfaa9724a674e5e52316bb0d173aed16bd17d536c (patch)
treee66aad22044dddbb69820e79cced9db018ac0a6d
parent88d3426942d748b90b051b7ef2d5d765f5f3054c (diff)
MIPS: BPF: Avoid unreachable code on little endian
On little endian, avoid generating the big endian version of the code by using #else in addition to #ifdef #endif. Also fix one alignment issue wrt delay slot. Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> Reviewed-by: Markos Chandras <markos.chandras@imgtec.com> Cc: stable@vger.kernel.org # v4.2+ Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/11097/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
-rw-r--r--arch/mips/net/bpf_jit_asm.S8
1 files changed, 5 insertions, 3 deletions
diff --git a/arch/mips/net/bpf_jit_asm.S b/arch/mips/net/bpf_jit_asm.S
index e92726099be0..4f54cb18f104 100644
--- a/arch/mips/net/bpf_jit_asm.S
+++ b/arch/mips/net/bpf_jit_asm.S
@@ -151,9 +151,10 @@ NESTED(bpf_slow_path_word, (6 * SZREG), $r_sp)
151 wsbh t0, $r_s0 151 wsbh t0, $r_s0
152 jr $r_ra 152 jr $r_ra
153 rotr $r_A, t0, 16 153 rotr $r_A, t0, 16
154#endif 154#else
155 jr $r_ra 155 jr $r_ra
156 move $r_A, $r_s0 156 move $r_A, $r_s0
157#endif
157 158
158 END(bpf_slow_path_word) 159 END(bpf_slow_path_word)
159 160
@@ -162,9 +163,10 @@ NESTED(bpf_slow_path_half, (6 * SZREG), $r_sp)
162#ifdef CONFIG_CPU_LITTLE_ENDIAN 163#ifdef CONFIG_CPU_LITTLE_ENDIAN
163 jr $r_ra 164 jr $r_ra
164 wsbh $r_A, $r_s0 165 wsbh $r_A, $r_s0
165#endif 166#else
166 jr $r_ra 167 jr $r_ra
167 move $r_A, $r_s0 168 move $r_A, $r_s0
169#endif
168 170
169 END(bpf_slow_path_half) 171 END(bpf_slow_path_half)
170 172