Re: linux-next: manual merge of the userns tree with the arc-current tree

From: Stephen Rothwell
Date: Mon Jul 08 2019 - 19:15:29 EST


Hi all,

On Thu, 30 May 2019 13:17:21 +1000 Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote:
>
> Today's linux-next merge of the userns tree got a conflict in:
>
> arch/arc/mm/fault.c
>
> between commits:
>
> a8c715b4dd73 ("ARC: mm: SIGSEGV userspace trying to access kernel virtual memory")
> ea3885229b0f ("ARC: mm: do_page_fault refactor #5: scoot no_context to end")
> acc639eca380 ("ARC: mm: do_page_fault refactor #6: error handlers to use same pattern")
> 0c85612550a4 ("ARC: mm: do_page_fault refactor #7: fold the various error handling")
> c5d7f7610d88 ("ARC: mm: do_page_fault refactor #8: release mmap_sem sooner")
>
> from the arc-current tree and commits:
>
> 351b6825b3a9 ("signal: Explicitly call force_sig_fault on current")
> 2e1661d26736 ("signal: Remove the task parameter from force_sig_fault")
>
> from the userns tree.
>
> I fixed it up (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.
>
> --
> Cheers,
> Stephen Rothwell
>
> diff --cc arch/arc/mm/fault.c
> index e93ea06c214c,5001f6418e92..000000000000
> --- a/arch/arc/mm/fault.c
> +++ b/arch/arc/mm/fault.c
> @@@ -187,21 -228,14 +187,21 @@@ bad_area
> return;
> }
>
> - goto no_context;
> + if (fault & VM_FAULT_SIGBUS) {
> + sig = SIGBUS;
> + si_code = BUS_ADRERR;
> + }
> + else {
> + sig = SIGSEGV;
> + }
>
> -do_sigbus:
> - up_read(&mm->mmap_sem);
> + tsk->thread.fault_address = address;
> - force_sig_fault(sig, si_code, (void __user *)address, tsk);
> ++ force_sig_fault(sig, si_code, (void __user *)address);
> + return;
>
> - if (!user_mode(regs))
> - goto no_context;
> +no_context:
> + if (fixup_exception(regs))
> + return;
>
> - tsk->thread.fault_address = address;
> - force_sig_fault(SIGBUS, BUS_ADRERR, (void __user *)address);
> + die("Oops", regs, address);
> }

I am still getting this conflict (the commit ids may have changed).
Just a reminder in case you think Linus may need to know.

--
Cheers,
Stephen Rothwell

Attachment: pgp8YvRR1fiQx.pgp
Description: OpenPGP digital signature