Skip to content
  • Mark Rutland's avatar
    arm64: add runtime system sanity checks · 127161aa
    Mark Rutland authored
    
    
    Unexpected variation in certain system register values across CPUs is an
    indicator of potential problems with a system. The kernel expects CPUs
    to be mostly identical in terms of supported features, even in systems
    with heterogeneous CPUs, with uniform instruction set support being
    critical for the correct operation of userspace.
    
    To help detect issues early where hardware violates the expectations of
    the kernel, this patch adds simple runtime sanity checks on important ID
    registers in the bring up path of each CPU.
    
    Where CPUs are fundamentally mismatched, set TAINT_CPU_OUT_OF_SPEC.
    Given that the kernel assumes CPUs are identical feature wise, let's not
    pretend that we expect such configurations to work. Supporting such
    configurations would require massive rework, and hopefully they will
    never exist.
    
    Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
    Reviewed-by: default avatarWill Deacon <will.deacon@arm.com>
    Reviewed-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
    127161aa