Subject: Re: linux-next: manual merge of the tip tree with the loongarch tree

From: Stephen Rothwell <[email-masked]>
Date: Wed, 28 May 2025 11:23:19 +1000

Hi all,

On Mon, 5 May 2025 13:56:58 +1000 Stephen Rothwell <[email-masked]> wrote:
>
> Today's linux-next merge of the tip tree got a conflict in:
> 
>   arch/loongarch/kernel/entry.S
> 
> between commit:
> 
>   d62879a8b16c ("LoongArch: Enable HAVE_ARCH_STACKLEAK")
> 
> from the loongarch tree and commit:
> 
>   7ace1602abf2 ("LoongArch: entry: Migrate ret_from_fork() to C")
> 
> from the tip tree.
> 
> I fixed it up (I think - see below) and can carry the fix as
> necessary. This is now fixed as far as linux-next is concerned, but any
> non trivial conflicts should be mentioned to your upstream maintainer
> when your tree is submitted for merging.  You may also want to consider
> cooperating with the maintainer of the conflicting tree to minimise any
> particularly complex conflicts.
> 
> 
> diff --cc arch/loongarch/kernel/entry.S
> index 77f6fb9146a2,2abc29e57381..000000000000
> --- a/arch/loongarch/kernel/entry.S
> +++ b/arch/loongarch/kernel/entry.S
> @@@ -78,25 -77,21 +78,23 @@@ SYM_CODE_START(handle_syscall
>   SYM_CODE_END(handle_syscall)
>   _ASM_NOKPROBE(handle_syscall)
>   
> - SYM_CODE_START(ret_from_fork)
> + SYM_CODE_START(ret_from_fork_asm)
>   	UNWIND_HINT_REGS
> - 	bl		schedule_tail		# a0 = struct task_struct *prev
> - 	move		a0, sp
> - 	bl 		syscall_exit_to_user_mode
> + 	move		a1, sp
> + 	bl 		ret_from_fork
>  +	STACKLEAK_ERASE
>   	RESTORE_STATIC
>   	RESTORE_SOME
>   	RESTORE_SP_AND_RET
> - SYM_CODE_END(ret_from_fork)
> + SYM_CODE_END(ret_from_fork_asm)
>   
> - SYM_CODE_START(ret_from_kernel_thread)
> + SYM_CODE_START(ret_from_kernel_thread_asm)
>   	UNWIND_HINT_REGS
> - 	bl		schedule_tail		# a0 = struct task_struct *prev
> - 	move		a0, s1
> - 	jirl		ra, s0, 0
> - 	move		a0, sp
> - 	bl		syscall_exit_to_user_mode
> + 	move		a1, sp
> + 	move		a2, s0
> + 	move		a3, s1
> + 	bl		ret_from_kernel_thread
>  +	STACKLEAK_ERASE
>   	RESTORE_STATIC
>   	RESTORE_SOME
>   	RESTORE_SP_AND_RET

This is now a conflict between the loongarch tree and Linus' tree.

-- 
Cheers,
Stephen Rothwell