]> git.baikalelectronics.ru Git - kernel.git/commit
KVM: arm64: Fix EL2 mode availability checks
authorDavid Brazdil <dbrazdil@google.com>
Wed, 2 Dec 2020 18:41:22 +0000 (18:41 +0000)
committerMarc Zyngier <maz@kernel.org>
Fri, 4 Dec 2020 10:08:36 +0000 (10:08 +0000)
commite34e2af9b9276500ce535d197db43b413116d75e
tree6d7965c776626227b71923417ad65d44dd3f4e92
parent42d09b949e62db69972450900983b82b90b1b71b
KVM: arm64: Fix EL2 mode availability checks

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: David Brazdil <dbrazdil@google.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20201202184122.26046-27-dbrazdil@google.com
arch/arm64/include/asm/virt.h
arch/arm64/kvm/arm.c