lkml.org 
[lkml]   [2019]   [Apr]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 13/69] arm64: kaslr: Reserve size of ARM64_MEMSTART_ALIGN in linear region
    Date
    [ Upstream commit c8a43c18a97845e7f94ed7d181c11f41964976a2 ]

    When KASLR is enabled (CONFIG_RANDOMIZE_BASE=y), the top 4K of kernel
    virtual address space may be mapped to physical addresses despite being
    reserved for ERR_PTR values.

    Fix the randomization of the linear region so that we avoid mapping the
    last page of the virtual address space.

    Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Signed-off-by: liyueyi <liyueyi@live.com>
    [will: rewrote commit message; merged in suggestion from Ard]
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Sasha Levin (Microsoft) <sashal@kernel.org>
    ---
    arch/arm64/mm/init.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c
    index caa295cd5d09..9e6c822d458d 100644
    --- a/arch/arm64/mm/init.c
    +++ b/arch/arm64/mm/init.c
    @@ -447,7 +447,7 @@ void __init arm64_memblock_init(void)
    * memory spans, randomize the linear region as well.
    */
    if (memstart_offset_seed > 0 && range >= ARM64_MEMSTART_ALIGN) {
    - range = range / ARM64_MEMSTART_ALIGN + 1;
    + range /= ARM64_MEMSTART_ALIGN;
    memstart_addr -= ARM64_MEMSTART_ALIGN *
    ((range * memstart_offset_seed) >> 16);
    }
    --
    2.19.1


    \
     
     \ /
      Last update: 2019-04-15 21:02    [W:4.037 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site