50 lines
1.2 KiB
Diff
50 lines
1.2 KiB
Diff
From: Aurelien Jarno <aurelien@aurel32.net>
|
|
Date: Fri, 4 Sep 2015 16:32:17 +0200
|
|
Subject: [1/2] MIPS: BPF: Avoid unreachable code on little endian
|
|
Origin: https://git.kernel.org/linus/faa9724a674e5e52316bb0d173aed16bd17d536c
|
|
|
|
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.
|
|
|
|
Cc: Ralf Baechle <ralf@linux-mips.org>
|
|
Cc: Markos Chandras <markos.chandras@imgtec.com>
|
|
Cc: stable@vger.kernel.org # v4.2+
|
|
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
|
|
---
|
|
arch/mips/net/bpf_jit_asm.S | 8 +++++---
|
|
1 file changed, 5 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/arch/mips/net/bpf_jit_asm.S b/arch/mips/net/bpf_jit_asm.S
|
|
index e927260..4f54cb1 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)
|
|
wsbh t0, $r_s0
|
|
jr $r_ra
|
|
rotr $r_A, t0, 16
|
|
-#endif
|
|
+#else
|
|
jr $r_ra
|
|
- move $r_A, $r_s0
|
|
+ move $r_A, $r_s0
|
|
+#endif
|
|
|
|
END(bpf_slow_path_word)
|
|
|
|
@@ -162,9 +163,10 @@ NESTED(bpf_slow_path_half, (6 * SZREG), $r_sp)
|
|
#ifdef CONFIG_CPU_LITTLE_ENDIAN
|
|
jr $r_ra
|
|
wsbh $r_A, $r_s0
|
|
-#endif
|
|
+#else
|
|
jr $r_ra
|
|
move $r_A, $r_s0
|
|
+#endif
|
|
|
|
END(bpf_slow_path_half)
|
|
|
|
--
|
|
2.1.4
|
|
|