]> git.baikalelectronics.ru Git - kernel.git/commitdiff
MIPS: BMIPS: Fix thinko to release slave TP from reset
authorFlorian Fainelli <florian@openwrt.org>
Wed, 17 Jul 2013 17:56:31 +0000 (17:56 +0000)
committerRalf Baechle <ralf@linux-mips.org>
Fri, 19 Jul 2013 08:09:59 +0000 (10:09 +0200)
Commit 74fc63c7 ["MIPS: BMIPS: support booting from physical CPU other
than 0"] introduced a thinko which will prevents slave CPUs from being
released from reset on systems where we boot from TP0. The problem is
that we are checking whether the slave CPU logical CPU map is 0, which
is never true for systems booting from TP0, so we do not release the
slave TP from reset and we are just stuck. Fix this by properly checking
that the CPU we intend to boot really is the physical slave CPU (logical
and physical value being 1).

Signed-off-by: Florian Fainelli <florian@openwrt.org>
Cc: linux-mips@linux-mips.org
Cc: blogic@openwrt.org
Cc: jogo@openwrt.org
Cc: cernekee@gmail.com
Cc: Florian Fainelli <florian@openwrt.org>
Patchwork: https://patchwork.linux-mips.org/patch/5598/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/kernel/smp-bmips.c

index aea6c088583847d93092f4125cdfa1dca35fa495..67445374014f6cd4c0e93713c2eeb0f1874df0f4 100644 (file)
@@ -173,7 +173,7 @@ static void bmips_boot_secondary(int cpu, struct task_struct *idle)
        else {
 #if defined(CONFIG_CPU_BMIPS4350) || defined(CONFIG_CPU_BMIPS4380)
                /* Reset slave TP1 if booting from TP0 */
-               if (cpu_logical_map(cpu) == 0)
+               if (cpu_logical_map(cpu) == 1)
                        set_c0_brcm_cmt_ctrl(0x01);
 #elif defined(CONFIG_CPU_BMIPS5000)
                if (cpu & 0x01)