MIPS: CMP: Fix physical core number calculation logic
authorjerin jacob <jerinjacobk@gmail.com>
Thu, 11 Oct 2012 16:48:51 +0000 (22:18 +0530)
committerRalf Baechle <ralf@linux-mips.org>
Thu, 18 Oct 2012 09:45:41 +0000 (11:45 +0200)
The CPUNum Field in EBase register is 10bit wide, so after 1 bit right
shift, the mask value should be 0x1ff.

Signed-off-by: jerin jacob <jerinjacobk@gmail.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/4420/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/kernel/smp-cmp.c

index afc379ca375301f7e916a4fd46447239ad478a38..06cd0c610f4475a3cfc03f6907e00542117fe2ba 100644 (file)
@@ -97,7 +97,7 @@ static void cmp_init_secondary(void)
 
        /* Enable per-cpu interrupts: platform specific */
 
-       c->core = (read_c0_ebase() >> 1) & 0xff;
+       c->core = (read_c0_ebase() >> 1) & 0x1ff;
 #if defined(CONFIG_MIPS_MT_SMP) || defined(CONFIG_MIPS_MT_SMTC)
        c->vpe_id = (read_c0_tcbind() >> TCBIND_CURVPE_SHIFT) & TCBIND_CURVPE;
 #endif