linux/arch/arm64/mm
Will Deacon 851e2ea823 arm64: proc: Set PTE_NG for table entries to avoid traversing them twice
commit 2ce77f6d8a upstream.

When KASAN is enabled, the swapper page table contains many identical
mappings of the zero page, which can lead to a stall during boot whilst
the G -> nG code continually walks the same page table entries looking
for global mappings.

This patch sets the nG bit (bit 11, which is IGNORED) in table entries
after processing the subtree so we can easily skip them if we see them
a second time.

Tested-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2018-02-22 15:42:28 +01:00
..
cache.S arm64: kpti: Fix the interaction between ASID switching and software PAN 2018-02-16 20:22:49 +01:00
context.c arm64: Move BP hardening to check_and_switch_context 2018-02-16 20:22:53 +01:00
copypage.c arm64: Defer dcache flush in __cpu_copy_user_page 2015-12-17 11:07:13 +00:00
dma-mapping.c arm64: dma-mapping: Mark atomic_pool as __ro_after_init 2017-08-21 16:24:53 +01:00
dump.c arm64: fix CONFIG_DEBUG_WX address reporting 2017-12-20 10:10:20 +01:00
extable.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
fault.c arm64: entry: Apply BP hardening for suspicious interrupts from EL0 2018-02-16 20:22:53 +01:00
flush.c arm64: fix pmem interface definition 2017-08-10 18:13:59 +01:00
hugetlbpage.c arm64: hugetlb: Cleanup setup_hugepagesz 2017-08-22 17:47:12 +01:00
init.c arm64: Initialise high_memory global variable earlier 2017-12-20 10:10:20 +01:00
ioremap.c arm64: use is_vmalloc_addr 2017-02-09 13:47:56 +00:00
kasan_init.c arm64/kasan: don't allocate extra shadow memory 2017-07-10 16:32:33 -07:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mmap.c arm64/mmap: properly account for stack randomization in mmap_base 2017-07-12 16:26:03 -07:00
mmu.c arm64: mm: Permit transitioning from Global to Non-Global without BBM 2018-02-16 20:22:50 +01:00
numa.c arm64/numa: Drop duplicate message 2017-07-20 17:03:53 +01:00
pageattr.c arm64: use set_memory.h header 2017-05-08 17:15:13 -07:00
pgd.c arm64: mm: drop fixup_init() and mm.h 2016-09-06 19:09:38 +01:00
physaddr.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
proc.S arm64: proc: Set PTE_NG for table entries to avoid traversing them twice 2018-02-22 15:42:28 +01:00
ptdump_debugfs.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00