Subject: Re: linux-next: manual merge of the signal tree with the cortex tree

From: Uwe Kleine-König<[email-masked]>
Date: Mon, 5 Nov 2012 09:37:26 +0100

Hello Stephen,

On Mon, Nov 05, 2012 at 03:03:07PM +1100, Stephen Rothwell wrote:
> Today's linux-next merge of the signal tree got a conflict in
> arch/arm/kernel/process.c between commit 77a3018e38b9 ("Cortex-M3: Add
> support for exception handling") from the cortex tree and commit
> 9e6479930021 ("arm: switch to generic fork/vfork/clone") from the signal
> tree.
> 
> I fixed it up (I think - see below) and can carry the fix as necessary
> (no action is required).
> 
> -- 
> Cheers,
> Stephen Rothwell                    [email-masked]
> 
> diff --cc arch/arm/kernel/process.c
> index 585b9ab,4ab80bb..0000000
> --- a/arch/arm/kernel/process.c
> +++ b/arch/arm/kernel/process.c
> @@@ -384,14 -383,11 +384,15 @@@ copy_thread(unsigned long clone_flags, 
>   
>   	memset(&thread->cpu_context, 0, sizeof(struct cpu_context_save));
>   
> - 	if (likely(regs)) {
> - 		*childregs = *regs;
> + 	if (likely(!(p->flags & PF_KTHREAD))) {
> + 		*childregs = *current_pt_regs();
>   		childregs->ARM_r0 = 0;
> - 		childregs->ARM_sp = stack_start;
> + 		if (stack_start)
> + 			childregs->ARM_sp = stack_start;
>  +#if defined CONFIG_CPU_V7M
>  +		/* Return to Thread mode with Process stack */
>  +		childregs->ARM_EXC_RET = 0xfffffffdUL;
>  +#endif
>   	} else {
>   		memset(childregs, 0, sizeof(struct pt_regs));
>   		thread->cpu_context.r4 = stk_sz;
looks good and works for me

Thanks
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |