x86/mm: Flush lazy MMU when DEBUG_PAGEALLOC is set

When CONFIG_DEBUG_PAGEALLOC is set page table updates made by
kernel_map_pages() are not made visible (via TLB flush)
immediately if lazy MMU is on. In environments that support lazy
MMU (e.g. Xen) this may lead to fatal page faults, for example,
when zap_pte_range() needs to allocate pages in
__tlb_remove_page() -> tlb_next_batch().

Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: konrad.wilk@oracle.com
Link: http://lkml.kernel.org/r/1365703192-2089-1-git-send-email-boris.ostrovsky@oracle.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>

authored by Boris Ostrovsky and committed by Ingo Molnar 26564600 18699739

Changed files
+2
arch
x86
+2
arch/x86/mm/pageattr.c
··· 1413 1413 * but that can deadlock->flush only current cpu: 1414 1414 */ 1415 1415 __flush_tlb_all(); 1416 + 1417 + arch_flush_lazy_mmu_mode(); 1416 1418 } 1417 1419 1418 1420 #ifdef CONFIG_HIBERNATION