• Mark Brown's avatar
    arm64: Use a variable to store non-global mappings decision · 09e3c22a
    Mark Brown authored
    Refactor the code which checks to see if we need to use non-global
    mappings to use a variable instead of checking with the CPU capabilities
    each time, doing the initial check for KPTI early in boot before we
    start allocating memory so we still avoid transitioning to non-global
    mappings in common cases.
    
    Since this variable always matches our decision about non-global
    mappings this means we can also combine arm64_kernel_use_ng_mappings()
    and arm64_unmap_kernel_at_el0() into a single function, the variable
    simply stores the result and the decision code is elsewhere. We could
    just have the users check the variable directly but having a function
    makes it clear that these uses are read-only.
    
    The result is that we simplify the code a bit and reduces the amount of
    code executed at runtime.
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    Reviewed-by: default avatarSuzuki K Poulose <suzuki.poulose@arm.com>
    Signed-off-by: default avatarWill Deacon <will@kernel.org>
    09e3c22a
setup.c 11 KB