x86/mm: Fix pgd_lock deadlock
authorAndrea Arcangeli <[email protected]>
Wed, 16 Feb 2011 23:45:22 +0000 (15:45 -0800)
committerIngo Molnar <[email protected]>
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 <[email protected]>
Acked-by: Rik van Riel <[email protected]>
Tested-by: Konrad Rzeszutek Wilk <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Linus Torvalds <[email protected]>
Cc: <[email protected]>
LKML-Reference: <201102162345[email protected]>
Signed-off-by: Ingo Molnar <[email protected]>
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