linux/arch/arm64/mm
Ard Biesheuvel 2958987f5d arm64/mm: ensure memstart_addr remains sufficiently aligned
After choosing memstart_addr to be the highest multiple of
ARM64_MEMSTART_ALIGN less than or equal to the first usable physical memory
address, we clip the memblocks to the maximum size of the linear region.
Since the kernel may be high up in memory, we take care not to clip the
kernel itself, which means we have to clip some memory from the bottom if
this occurs, to ensure that the distance between the first and the last
usable physical memory address can be covered by the linear region.

However, we fail to update memstart_addr if this clipping from the bottom
occurs, which means that we may still end up with virtual addresses that
wrap into the userland range. So increment memstart_addr as appropriate to
prevent this from happening.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2016-04-14 16:15:08 +01:00
..
cache.S arm64: Use PoU cache instr for I/D coherency 2015-12-17 11:07:13 +00:00
context.c arm64: make mrs_s prefixing implicit in read_cpuid 2016-03-04 14:12:46 +00: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: fix handling of devices registered before arch_initcall 2016-02-17 11:48:01 +00:00
dump.c arm64: mm: dump: Use VA_START directly instead of private LOWEST_ADDR 2016-02-26 18:31:41 +00:00
extable.c arm64: switch to relative exception tables 2016-02-24 14:57:26 +00:00
fault.c Merge branch 'akpm' (patches from Andrew) 2016-03-18 19:26:54 -07:00
flush.c arm64: mm: allow preemption in copy_to_user_page 2016-03-24 16:32:54 +00:00
hugetlbpage.c mm: cleanup *pte_alloc* interfaces 2016-03-17 15:09:34 -07:00
init.c arm64/mm: ensure memstart_addr remains sufficiently aligned 2016-04-14 16:15:08 +01:00
ioremap.c arm64: add ioremap physical address information 2015-01-23 15:29:06 +00:00
kasan_init.c arm64: kasan: Fix zero shadow mapping overriding kernel image shadow 2016-03-11 11:03:35 +00:00
Makefile arm64: add KASAN support 2015-10-12 17:46:36 +01:00
mm.h arm64: add better page protections to arm64 2015-01-22 14:54:29 +00:00
mmap.c mm: ASLR: use get_random_long() 2016-02-27 10:28:52 -08:00
mmu.c arm64: consistently use p?d_set_huge 2016-03-24 16:32:29 +00:00
pageattr.c arm64: Add support for ARCH_SUPPORTS_DEBUG_PAGEALLOC 2016-02-16 15:40:30 +00:00
pgd.c arm64: mm: move pgd_cache initialisation to pgtable_cache_init 2016-01-05 15:43:10 +00:00
proc-macros.S arm64: kernel: fix architected PMU registers unconditional access 2016-01-25 11:09:06 +00:00
proc.S arm64: Add workaround for Cavium erratum 27456 2016-02-26 15:14:27 +00:00