]> git.kernelconcepts.de Git - karo-tx-linux.git/commit
x86/mm: Fix pgd_lock deadlock
authorAndrea Arcangeli <aarcange@redhat.com>
Wed, 16 Feb 2011 23:45:22 +0000 (15:45 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 23 Mar 2011 19:50:01 +0000 (12:50 -0700)
commitf80e8b97a1fa31519c256a65587bcb1b5920985a
tree56ae6d81f8ed7d9537987b068bae97c198ff354e
parent0bd4cf63832c3a4a02c16a8d2e50b39545eee6fb
x86/mm: Fix pgd_lock deadlock

commit a79e53d85683c6dd9f99c90511028adc2043031f upstream.

It's forbidden to take the page_table_lock with the irq disabled
or if there's contention the IPIs (for tlb flushes) sent with
the page_table_lock held will never run leading to a deadlock.

Nobody takes the pgd_lock from irq context so the _irqsave can be
removed.

Signed-off-by: Andrea Arcangeli <aarcange@redhat.com>
Acked-by: Rik van Riel <riel@redhat.com>
Tested-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
LKML-Reference: <201102162345.p1GNjMjm021738@imap1.linux-foundation.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
arch/x86/mm/fault.c
arch/x86/mm/init_64.c
arch/x86/mm/pageattr.c
arch/x86/mm/pgtable.c
arch/x86/xen/mmu.c