From 935a3cd608e654e86f6508df04a78298f3b4513f Mon Sep 17 00:00:00 2001 From: Paul Mackerras Date: Tue, 10 Oct 2006 13:51:00 +1000 Subject: [PATCH] --- yaml --- r: 39270 b: refs/heads/master c: d6a29252ad120457cd544d44b2fbea46a00734a7 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/powerpc/platforms/powermac/smp.c | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 50036339d171..0bed0e0fd92e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 39e3eb7265b8698e5f607a317af13c9478274736 +refs/heads/master: d6a29252ad120457cd544d44b2fbea46a00734a7 diff --git a/trunk/arch/powerpc/platforms/powermac/smp.c b/trunk/arch/powerpc/platforms/powermac/smp.c index 574cd205b302..eeb2ae5ffc58 100644 --- a/trunk/arch/powerpc/platforms/powermac/smp.c +++ b/trunk/arch/powerpc/platforms/powermac/smp.c @@ -328,6 +328,7 @@ static void __init smp_psurge_kick_cpu(int nr) { unsigned long start = __pa(__secondary_start_pmac_0) + nr * 8; unsigned long a; + int i; /* may need to flush here if secondary bats aren't setup */ for (a = KERNELBASE; a < KERNELBASE + 0x800000; a += 32) @@ -340,7 +341,11 @@ static void __init smp_psurge_kick_cpu(int nr) mb(); psurge_set_ipi(nr); - udelay(10); + /* + * We can't use udelay here because the timebase is now frozen. + */ + for (i = 0; i < 2000; ++i) + barrier(); psurge_clr_ipi(nr); if (ppc_md.progress) ppc_md.progress("smp_psurge_kick_cpu - done", 0x354);