Patchwork 2.6.39 powerpc: Fix 32-bit SMP build

login
register
mail settings
Submitter Josh Boyer
Date May 30, 2011, 12:26 p.m.
Message ID <20110530122621.GD2557@zod.rchland.ibm.com>
Download mbox | patch
Permalink /patch/97909/
State Superseded
Headers show

Comments

Josh Boyer - May 30, 2011, 12:26 p.m.
Backport upstream commit 6de06f313a65d0ec
    
Commit fa3f82c8bb7acb ("powerpc/smp: soft-replugged CPUs must go back to
start_secondary") introduced start_secondary_resume to head_32.S, however
it uses a 64-bit instruction which is not valid on 32-bit platforms.  Use
'stw' instead.
    
CC: stable@kernel.org
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>

---
Benjamin Herrenschmidt - May 30, 2011, 9:18 p.m.
On Mon, 2011-05-30 at 08:26 -0400, Josh Boyer wrote:
> Backport upstream commit 6de06f313a65d0ec
>     
> Commit fa3f82c8bb7acb ("powerpc/smp: soft-replugged CPUs must go back to
> start_secondary") introduced start_secondary_resume to head_32.S, however
> it uses a 64-bit instruction which is not valid on 32-bit platforms.  Use
> 'stw' instead.
>     
> CC: stable@kernel.org
> Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>

Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>

> ---
> 
> diff --git a/arch/powerpc/kernel/head_32.S b/arch/powerpc/kernel/head_32.S
> index c5c24be..727f40a 100644
> --- a/arch/powerpc/kernel/head_32.S
> +++ b/arch/powerpc/kernel/head_32.S
> @@ -896,7 +896,7 @@ _GLOBAL(start_secondary_resume)
>  	rlwinm  r1,r1,0,0,(31-THREAD_SHIFT)     /* current_thread_info() */
>  	addi    r1,r1,THREAD_SIZE-STACK_FRAME_OVERHEAD
>  	li      r3,0
> -	std     r3,0(r1)                /* Zero the stack frame pointer */
> +	stw     r3,0(r1)                /* Zero the stack frame pointer */
>  	bl      start_secondary
>  	b       .
>  #endif /* CONFIG_SMP */
Greg KH - June 3, 2011, 5:56 a.m.
On Mon, May 30, 2011 at 08:26:21AM -0400, Josh Boyer wrote:
> Backport upstream commit 6de06f313a65d0ec
>     
> Commit fa3f82c8bb7acb ("powerpc/smp: soft-replugged CPUs must go back to
> start_secondary") introduced start_secondary_resume to head_32.S, however
> it uses a 64-bit instruction which is not valid on 32-bit platforms.  Use
> 'stw' instead.
>     
> CC: stable@kernel.org
> Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>

This doesn't apply either:

patching file arch/powerpc/kernel/head_32.S
Hunk #1 FAILED at 896.
1 out of 1 hunk FAILED -- saving rejects to file arch/powerpc/kernel/head_32.S.rej

Please send something that at least applies, and hopefully builds...

greg k-h
Josh Boyer - June 3, 2011, 10:30 a.m.
On Fri, Jun 03, 2011 at 02:56:50PM +0900, Greg KH wrote:
>On Mon, May 30, 2011 at 08:26:21AM -0400, Josh Boyer wrote:
>> Backport upstream commit 6de06f313a65d0ec
>>     
>> Commit fa3f82c8bb7acb ("powerpc/smp: soft-replugged CPUs must go back to
>> start_secondary") introduced start_secondary_resume to head_32.S, however
>> it uses a 64-bit instruction which is not valid on 32-bit platforms.  Use
>> 'stw' instead.
>>     
>> CC: stable@kernel.org
>> Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
>
>This doesn't apply either:
>
>patching file arch/powerpc/kernel/head_32.S
>Hunk #1 FAILED at 896.
>1 out of 1 hunk FAILED -- saving rejects to file arch/powerpc/kernel/head_32.S.rej
>
>Please send something that at least applies, and hopefully builds...

Odd.  It was generated with git from 2.6.39 and it builds here.  I'll
try and figure out what went wrong.

josh

Patch

diff --git a/arch/powerpc/kernel/head_32.S b/arch/powerpc/kernel/head_32.S
index c5c24be..727f40a 100644
--- a/arch/powerpc/kernel/head_32.S
+++ b/arch/powerpc/kernel/head_32.S
@@ -896,7 +896,7 @@  _GLOBAL(start_secondary_resume)
 	rlwinm  r1,r1,0,0,(31-THREAD_SHIFT)     /* current_thread_info() */
 	addi    r1,r1,THREAD_SIZE-STACK_FRAME_OVERHEAD
 	li      r3,0
-	std     r3,0(r1)                /* Zero the stack frame pointer */
+	stw     r3,0(r1)                /* Zero the stack frame pointer */
 	bl      start_secondary
 	b       .
 #endif /* CONFIG_SMP */