MIPS: Add default case for the FTLB enable/disable code
authorMarkos Chandras <markos.chandras@imgtec.com>
Thu, 9 Jul 2015 09:40:51 +0000 (10:40 +0100)
committerRalf Baechle <ralf@linux-mips.org>
Wed, 26 Aug 2015 13:23:18 +0000 (15:23 +0200)
Add a default case for the FTLB enable/disable code. This will be used
to detect that something went wrong in the set_ftlb_enable() function
either because that function knows nothing about the running core, or
simply because the core can't turn its FTLB on/off.

Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/10650/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/kernel/cpu-probe.c

index dc057f37305b673cac5c90ad53c8515a1cb91787..6da5f2db67926a1d01e5f26b11aac80e03a3b01c 100644 (file)
@@ -188,7 +188,7 @@ __setup("nohtw", htw_disable);
 static int mips_ftlb_disabled;
 static int mips_has_ftlb_configured;
 
-static void set_ftlb_enable(struct cpuinfo_mips *c, int enable);
+static int set_ftlb_enable(struct cpuinfo_mips *c, int enable);
 
 static int __init ftlb_disable(char *s)
 {
@@ -202,7 +202,10 @@ static int __init ftlb_disable(char *s)
                return 1;
 
        /* Disable it in the boot cpu */
-       set_ftlb_enable(&cpu_data[0], 0);
+       if (set_ftlb_enable(&cpu_data[0], 0)) {
+               pr_warn("Can't turn FTLB off\n");
+               return 1;
+       }
 
        back_to_back_c0_hazard();
 
@@ -364,7 +367,7 @@ static unsigned int calculate_ftlb_probability(struct cpuinfo_mips *c)
                return 3;
 }
 
-static void set_ftlb_enable(struct cpuinfo_mips *c, int enable)
+static int set_ftlb_enable(struct cpuinfo_mips *c, int enable)
 {
        unsigned int config6;
 
@@ -386,7 +389,11 @@ static void set_ftlb_enable(struct cpuinfo_mips *c, int enable)
                        /* Disable FTLB */
                        write_c0_config6(config6 &  ~MIPS_CONF6_FTLBEN);
                break;
+       default:
+               return 1;
        }
+
+       return 0;
 }
 
 static inline unsigned int decode_config0(struct cpuinfo_mips *c)