ACK/cmt: [SRU][Precise] x86: mm/fault: Fix semaphore imbalance

Brad Figg brad.figg at canonical.com
Thu Mar 12 12:21:43 UTC 2015


On Thu, Mar 12, 2015 at 11:34:36AM +0000, Luis Henriques wrote:
> From: Ben Hutchings <ben at decadent.org.uk>
> 
> When backporting commit 33692f27597f ('vm: add VM_FAULT_SIGSEGV
> handling support') I didn't notice that it depended on a recent change
> to the locking context of mm_fault_error() (commit 7fb08eca4527,
> 'x86: mm: move mmap_sem unlock from mm_fault_error() to caller').
> That isn't easily applicable to 3.2, so instead make sure we drop
> mm->mmap_sem on the new branch of mm_fault_error().
> 
> Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
> (cherry picked from commit 6749fd110bf44164782df9bba86c0327474446b9 linux-3.2.y)
> BugLink: http://bugs.launchpad.net/bugs/1431280
> Signed-off-by: Luis Henriques <luis.henriques at canonical.com>
> ---
>  arch/x86/mm/fault.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
> index 8cac08822a0f..351590ec87b8 100644
> --- a/arch/x86/mm/fault.c
> +++ b/arch/x86/mm/fault.c
> @@ -878,7 +878,7 @@ mm_fault_error(struct pt_regs *regs, unsigned long error_code,
>  			     VM_FAULT_HWPOISON_LARGE))
>  			do_sigbus(regs, error_code, address, fault);
>  		else if (fault & VM_FAULT_SIGSEGV)
> -			bad_area_nosemaphore(regs, error_code, address);
> +			bad_area(regs, error_code, address);
>  		else
>  			BUG();
>  	}
> 
> -- 
> kernel-team mailing list
> kernel-team at lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team

I ran a number of tests on a kernel with this applied. This resolved a hang
that I was getting while running the QRT tests.

Brad
-- 
Brad Figg brad.figg at canonical.com http://www.canonical.com




More information about the kernel-team mailing list