• Ard Biesheuvel's avatar
    arm64: kaslr: ensure randomized quantities are clean also when kaslr is off · 8ea23593
    Ard Biesheuvel authored
    Commit 1598ecda ("arm64: kaslr: ensure randomized quantities are
    clean to the PoC") added cache maintenance to ensure that global
    variables set by the kaslr init routine are not wiped clean due to
    cache invalidation occurring during the second round of page table
    creation.
    
    However, if kaslr_early_init() exits early with no randomization
    being applied (either due to the lack of a seed, or because the user
    has disabled kaslr explicitly), no cache maintenance is performed,
    leading to the same issue we attempted to fix earlier, as far as the
    module_alloc_base variable is concerned.
    
    Note that module_alloc_base cannot be initialized statically, because
    that would cause it to be subject to a R_AARCH64_RELATIVE relocation,
    causing it to be overwritten by the second round of KASLR relocation
    processing.
    
    Fixes: f80fb3a3 ("arm64: add support for kernel ASLR")
    Cc: <stable@vger.kernel.org> # v4.6+
    Signed-off-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
    Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
    8ea23593
kaslr.c 5.2 KB