Title: [7909] trunk/arch/blackfin: fix bug [#5735] - Disable local irq on core B until core B bit is set in cpu_online_mask.
- Revision
- 7909
- Author
- adamliyi
- Date
- 2009-12-02 05:20:59 -0500 (Wed, 02 Dec 2009)
Log Message
fix bug [#5735] - Disable local irq on core B until core B bit is set in cpu_online_mask.
Modified Paths
Diff
Modified: trunk/arch/blackfin/mach-bf561/smp.c (7908 => 7909)
--- trunk/arch/blackfin/mach-bf561/smp.c 2009-12-02 10:01:51 UTC (rev 7908)
+++ trunk/arch/blackfin/mach-bf561/smp.c 2009-12-02 10:20:59 UTC (rev 7909)
@@ -52,8 +52,6 @@
void __cpuinit platform_secondary_init(unsigned int cpu)
{
- local_irq_disable();
-
/* Clone setup for peripheral interrupt sources from CoreA. */
bfin_write_SICB_IMASK0(bfin_read_SICA_IMASK0());
bfin_write_SICB_IMASK1(bfin_read_SICA_IMASK1());
@@ -70,11 +68,6 @@
bfin_write_SICB_IAR7(bfin_read_SICA_IAR7());
SSYNC();
- local_irq_enable();
-
- /* Calibrate loops per jiffy value. */
- calibrate_delay();
-
/* Store CPU-private information to the cpu_data array. */
bfin_setup_cpudata(cpu);
Modified: trunk/arch/blackfin/mach-common/smp.c (7908 => 7909)
--- trunk/arch/blackfin/mach-common/smp.c 2009-12-02 10:01:51 UTC (rev 7908)
+++ trunk/arch/blackfin/mach-common/smp.c 2009-12-02 10:20:59 UTC (rev 7909)
@@ -408,9 +408,14 @@
setup_secondary(cpu);
+ platform_secondary_init(cpu);
+
local_irq_enable();
- platform_secondary_init(cpu);
+ /* Calibrate loops per jiffy value.
+ * IRQs need to be enabled here - D-cache can be invalidated
+ * in timer irq handler, so core B can read correct jiffies. */
+ calibrate_delay();
cpu_idle();
}
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits