From cb718c0beaefb1a1e7a0c3dcf7adf03077d8ceaf Mon Sep 17 00:00:00 2001 From: Avi Kivity Date: Fri, 20 Jul 2007 01:33:48 +1000 Subject: [PATCH] --- yaml --- r: 62594 b: refs/heads/master c: adff093d6c545c882f1503607f6af14ddd90bb89 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/powerpc/kernel/smp.c | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 6d9a09542a6b..fb721efd5567 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 08ae6cc15db201fa20cc4893d9500c1f6b20e560 +refs/heads/master: adff093d6c545c882f1503607f6af14ddd90bb89 diff --git a/trunk/arch/powerpc/kernel/smp.c b/trunk/arch/powerpc/kernel/smp.c index d577b71db375..087c92f2a3eb 100644 --- a/trunk/arch/powerpc/kernel/smp.c +++ b/trunk/arch/powerpc/kernel/smp.c @@ -284,7 +284,7 @@ int smp_call_function_single(int cpu, void (*func) (void *info), void *info, int int wait) { cpumask_t map = CPU_MASK_NONE; - int ret = -EBUSY; + int ret = 0; if (!cpu_online(cpu)) return -EINVAL; @@ -292,6 +292,11 @@ int smp_call_function_single(int cpu, void (*func) (void *info), void *info, int cpu_set(cpu, map); if (cpu != get_cpu()) ret = smp_call_function_map(func,info,nonatomic,wait,map); + else { + local_irq_disable(); + func(info); + local_irq_enable(); + } put_cpu(); return ret; }