[PATCH] ppc64: Fix cpu_up race

From: Srivatsa Vaddagiri (vatsa_at_in.ibm.com)
Date: 07/30/04

  • Next message: Con Kolivas: "Re: 2.6.7-ck6"
    Date:	Fri, 30 Jul 2004 10:54:13 +0530
    To: Andrew Morton <akpm@osdl.org>
    
    

    On Thu, Jul 29, 2004 at 03:30:11PM +1000, Anton Blanchard wrote:
    >
    > > I think Anton pushed this to ameslab. I presume there should be some mechanism
    > > for ameslab stuff to be included mainline. If there is such mechanism, then
    > > I dont want to push the patch myself.
    >
    > It looks good, could you send it directly to akpm, ccing me?

    Andrew,
            Patch below fixes a cpu_up race in PPC64. Please apply.

    Signed-off-by : Srivatsa Vaddagiri <vatsa@in.ibm.com>
    Signed-off-by : Anton Blanchard <anton@samba.org>

    ---
     linux-2.6.8-rc2-vatsa/arch/ppc64/kernel/smp.c |   10 +++++++++-
     1 files changed, 9 insertions(+), 1 deletion(-)
    diff -puN arch/ppc64/kernel/smp.c~ppc64_cpu_up_fix arch/ppc64/kernel/smp.c
    --- linux-2.6.8-rc2/arch/ppc64/kernel/smp.c~ppc64_cpu_up_fix	2004-07-30 10:33:55.000000000 +0530
    +++ linux-2.6.8-rc2-vatsa/arch/ppc64/kernel/smp.c	2004-07-30 10:34:02.000000000 +0530
    @@ -927,7 +927,11 @@ int __devinit __cpu_up(unsigned int cpu)
     
     	if (smp_ops->give_timebase)
     		smp_ops->give_timebase();
    -	cpu_set(cpu, cpu_online_map);
    +
    +	/* Wait until cpu puts itself in the online map */
    +	while (!cpu_online(cpu))
    +		cpu_relax();
    +
     	return 0;
     }
     
    @@ -963,6 +967,10 @@ int __devinit start_secondary(void *unus
     #endif
     #endif
     
    +	spin_lock(&call_lock);
    +	cpu_set(cpu, cpu_online_map);
    +	spin_unlock(&call_lock);
    +
     	local_irq_enable();
     
     	return cpu_idle(NULL);
    _
    -- 
    Thanks and Regards,
    Srivatsa Vaddagiri,
    Linux Technology Center,
    IBM Software Labs,
    Bangalore, INDIA - 560017
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at  http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at  http://www.tux.org/lkml/
    

  • Next message: Con Kolivas: "Re: 2.6.7-ck6"