• David Brazdil's avatar
    KVM: arm64: Fix EL2 mode availability checks · f19f6644
    David Brazdil authored
    With protected nVHE hyp code interception host's PSCI SMCs, the host
    starts seeing new CPUs boot in EL1 instead of EL2. The kernel logic
    that keeps track of the boot mode needs to be adjusted.
    
    Add a static key enabled if KVM protected mode initialization is
    successful.
    
    When the key is enabled, is_hyp_mode_available continues to report
    `true` because its users either treat it as a check whether KVM will be
    / was initialized, or whether stub HVCs can be made (eg. hibernate).
    
    is_hyp_mode_mismatched is changed to report `false` when the key is
    enabled. That's because all cores' modes matched at the point of KVM
    init and KVM will not allow cores not present at init to boot. That
    said, the function is never used after KVM is initialized.
    Signed-off-by: default avatarDavid Brazdil <dbrazdil@google.com>
    Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
    Link: https://lore.kernel.org/r/20201202184122.26046-27-dbrazdil@google.com
    f19f6644
virt.h 3.39 KB