• A
    arm64/mm: ensure memstart_addr remains sufficiently aligned · 2958987f
    Ard Biesheuvel 提交于
    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: NArd Biesheuvel <ard.biesheuvel@linaro.org>
    Signed-off-by: NWill Deacon <will.deacon@arm.com>
    2958987f
init.c 12.5 KB