]> git.baikalelectronics.ru Git - kernel.git/commit
arm64/mm: ensure memstart_addr remains sufficiently aligned
authorArd Biesheuvel <ard.biesheuvel@linaro.org>
Wed, 30 Mar 2016 12:25:46 +0000 (14:25 +0200)
committerWill Deacon <will.deacon@arm.com>
Thu, 14 Apr 2016 15:15:08 +0000 (16:15 +0100)
commitb4e9123691a88aabb55a4cd4a14ec2a667886a59
tree154c984116e3edd22cc3f0415720d7690a202829
parentc3bbcb9b9b8c16710ec2af5bedbbc2ed0aabab54
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>
arch/arm64/mm/init.c