Blackfin: SMP: fix scheduling deadlock
authorSteven Miao <realmz6@gmail.com>
Tue, 2 Aug 2011 09:50:41 +0000 (17:50 +0800)
committerMike Frysinger <vapier@gentoo.org>
Tue, 25 Oct 2011 23:51:29 +0000 (19:51 -0400)
Make sure our smp_send_reschedule() implementation matches the
scheduler_ipi() callback so that it can kick the idle cpu.

Signed-off-by: Steven Miao <realmz6@gmail.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
arch/blackfin/mach-common/smp.c

index 107622aacf6b62ac59acd07d61551aff42bf1660..0784a52389c8e4ebe398d1740cd948fbe36e1391 100644 (file)
@@ -295,10 +295,15 @@ EXPORT_SYMBOL_GPL(smp_call_function_single);
 
 void smp_send_reschedule(int cpu)
 {
+       cpumask_t callmap;
        /* simply trigger an ipi */
        if (cpu_is_offline(cpu))
                return;
-       platform_send_ipi_cpu(cpu, IRQ_SUPPLE_0);
+
+       cpumask_clear(&callmap);
+       cpumask_set_cpu(cpu, &callmap);
+
+       smp_send_message(callmap, BFIN_IPI_RESCHEDULE, NULL, NULL, 0);
 
        return;
 }