From bf3d50e9cd9f038e5fa79e58d139001d776e48d7 Mon Sep 17 00:00:00 2001 From: Chris Metcalf Date: Thu, 29 Mar 2012 15:57:18 -0400 Subject: [PATCH] --- yaml --- r: 298848 b: refs/heads/master c: 8c92ba6c327ee5089dec1e92eaa82927bee63d6d h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/tile/kernel/entry.S | 2 ++ trunk/arch/tile/kernel/smp.c | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index ee86a616f05f..568252f3d51a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: bfffe79bc29a9c4c817d5f51590961220e26db1a +refs/heads/master: 8c92ba6c327ee5089dec1e92eaa82927bee63d6d diff --git a/trunk/arch/tile/kernel/entry.S b/trunk/arch/tile/kernel/entry.S index 431e9ae60488..ec91568df880 100644 --- a/trunk/arch/tile/kernel/entry.S +++ b/trunk/arch/tile/kernel/entry.S @@ -85,6 +85,7 @@ STD_ENTRY(cpu_idle_on_new_stack) /* Loop forever on a nap during SMP boot. */ STD_ENTRY(smp_nap) nap + nop /* avoid provoking the icache prefetch with a jump */ j smp_nap /* we are not architecturally guaranteed not to exit nap */ jrp lr /* clue in the backtracer */ STD_ENDPROC(smp_nap) @@ -105,5 +106,6 @@ STD_ENTRY(_cpu_idle) .global _cpu_idle_nap _cpu_idle_nap: nap + nop /* avoid provoking the icache prefetch with a jump */ jrp lr STD_ENDPROC(_cpu_idle) diff --git a/trunk/arch/tile/kernel/smp.c b/trunk/arch/tile/kernel/smp.c index a44e103c5a63..7b6df8c27709 100644 --- a/trunk/arch/tile/kernel/smp.c +++ b/trunk/arch/tile/kernel/smp.c @@ -103,7 +103,7 @@ static void smp_stop_cpu_interrupt(void) set_cpu_online(smp_processor_id(), 0); arch_local_irq_disable_all(); for (;;) - asm("nap"); + asm("nap; nop"); } /* This function calls the 'stop' function on all other CPUs in the system. */