x86/mm: Fix pgd_lock deadlock
authorAndrea Arcangeli <aarcange@redhat.com>
Wed, 16 Feb 2011 23:45:22 +0000 (15:45 -0800)
committerIngo Molnar <mingo@elte.hu>
Thu, 10 Mar 2011 08:41:57 +0000 (09:41 +0100)
commita79e53d85683c6dd9f99c90511028adc2043031f
tree191f423331b608a5f7f134f484ce62a9ee7fb4a6
parentf86268549f424f83b9eb0963989270e14fbfc3de
x86/mm: Fix pgd_lock deadlock

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>
Cc: <stable@kernel.org>
LKML-Reference: <201102162345.p1GNjMjm021738@imap1.linux-foundation.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
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