Hi all,

On Thu, 30 May 2019 13:17:21 +1000 Stephen Rothwell <s...@canb.auug.org.au> 
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: pgpOVnvuhDTJF.pgp
Description: OpenPGP digital signature

Reply via email to