MIPS: Don't build fast TLB refill handler with 32-bit kernels
authorDavid Daney <david.daney@cavium.com>
Wed, 28 May 2014 21:52:08 +0000 (23:52 +0200)
committerRalf Baechle <ralf@linux-mips.org>
Fri, 30 May 2014 19:01:10 +0000 (21:01 +0200)
The fast handler only supports 64-bit kernels.

Signed-off-by: David Daney <david.daney@cavium.com>
Signed-off-by: Andreas Herrmann <andreas.herrmann@caviumnetworks.com>
Cc: linux-mips@linux-mips.org
Cc: James Hogan <james.hogan@imgtec.com>
Cc: kvm@vger.kernel.org
Patchwork: https://patchwork.linux-mips.org/patch/7010/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/mm/tlbex.c

index f99ec587b151919bd90437687f08614c24aea32e..af91f3ed1a82033c970ffeda02d51d2afbb584c5 100644 (file)
@@ -1250,13 +1250,17 @@ static void build_r4000_tlb_refill_handler(void)
        unsigned int final_len;
        struct mips_huge_tlb_info htlb_info __maybe_unused;
        enum vmalloc64_mode vmalloc_mode __maybe_unused;
-
+#ifdef CONFIG_64BIT
+       bool is64bit = true;
+#else
+       bool is64bit = false;
+#endif
        memset(tlb_handler, 0, sizeof(tlb_handler));
        memset(labels, 0, sizeof(labels));
        memset(relocs, 0, sizeof(relocs));
        memset(final_handler, 0, sizeof(final_handler));
 
-       if ((scratch_reg >= 0 || scratchpad_available()) && use_bbit_insns()) {
+       if (is64bit && (scratch_reg >= 0 || scratchpad_available()) && use_bbit_insns()) {
                htlb_info = build_fast_tlb_refill_handler(&p, &l, &r, K0, K1,
                                                          scratch_reg);
                vmalloc_mode = refill_scratch;