On Thu, Mar 12, 2015 at 8:52 AM, Jiri Slaby <[email protected]> wrote:
>
> diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
> index 5b90bbcad9f6..d9d8d91a64ff 100644
> --- a/arch/x86/mm/fault.c
> +++ b/arch/x86/mm/fault.c
> @@ -873,6 +873,8 @@ mm_fault_error(struct pt_regs *regs, unsigned long 
> error_code,
>                 if (fault & (VM_FAULT_SIGBUS|VM_FAULT_HWPOISON|
>                              VM_FAULT_HWPOISON_LARGE))
>                         do_sigbus(regs, error_code, address, fault);
> +               else if (fault & VM_FAULT_SIGSEGV)
> +                       bad_area_nosemaphore(regs, error_code, address);
>                 else
>                         BUG();
>         }

Just double-checking that you are aware that this semantically depends
on commit 7fb08eca4527 ("x86: mm: move mmap_sem unlock from
mm_fault_error() to caller"). We had that back-porting bug at least
twice, because it was so subtle.

So either you need to backport 7fb08eca4527 too before (so that we
really have dropped the semaphore at this point), or that
"bad_area_nosemaphore()" needs to be just a "bad_area()" instead,
because we still hold the semaphore.

I didn't look at the rest of the series, so this *may* be ok as-is, I
just wanted to make sure we didn't introduce this problem *again* in a
backport.

                                 Linus
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to