• Will Deacon's avatar
    arm64: cpufeature: Don't treat granule sizes as strict · 5717fe5a
    Will Deacon authored
    If a CPU doesn't support the page size for which the kernel is
    configured, then we will complain and refuse to bring it online. For
    secondary CPUs (and the boot CPU on a system booting with EFI), we will
    also print an error identifying the mismatch.
    
    Consequently, the only time that the cpufeature code can detect a
    granule size mismatch is for a granule other than the one that is
    currently being used. Although we would rather such systems didn't
    exist, we've unfortunately lost that battle and Kevin reports that
    on his amlogic S922X (odroid-n2 board) we end up warning and taining
    with defconfig because 16k pages are not supported by all of the CPUs.
    
    In such a situation, we don't actually care about the feature mismatch,
    particularly now that KVM only exposes the sanitised view of the CPU
    registers (commit 93390c0a - "arm64: KVM: Hide unsupported AArch64
    CPU features from guests"). Treat the granule fields as non-strict and
    let Kevin run without a tainted kernel.
    
    Cc: Marc Zyngier <maz@kernel.org>
    Reported-by: default avatarKevin Hilman <khilman@baylibre.com>
    Tested-by: default avatarKevin Hilman <khilman@baylibre.com>
    Acked-by: default avatarMark Rutland <mark.rutland@arm.com>
    Acked-by: default avatarSuzuki K Poulose <suzuki.poulose@arm.com>
    Signed-off-by: default avatarWill Deacon <will@kernel.org>
    [catalin.marinas@arm.com: changelog updated with KVM sanitised regs commit]
    Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
    5717fe5a
cpufeature.c 69.3 KB