]> www.infradead.org Git - nvme.git/commitdiff
KVM: arm64: nv: Drop VCPU_HYP_CONTEXT flag
authorMarc Zyngier <maz@kernel.org>
Fri, 19 Apr 2024 10:29:24 +0000 (11:29 +0100)
committerMarc Zyngier <maz@kernel.org>
Sat, 20 Apr 2024 11:42:50 +0000 (12:42 +0100)
It has become obvious that HCR_EL2.NV serves the exact same use
as VCPU_HYP_CONTEXT, only in an architectural way. So just drop
the flag for good.

Reviewed-by: Joey Gouly <joey.gouly@arm.com>
Reviewed-by: Oliver Upton <oliver.upton@linux.dev>
Link: https://lore.kernel.org/r/20240419102935.1935571-5-maz@kernel.org
Signed-off-by: Marc Zyngier <maz@kernel.org>
arch/arm64/include/asm/kvm_host.h
arch/arm64/kvm/hyp/vhe/switch.c

index 8eb04c9eb259e83916f5b474c5f89d76eb21ae66..465cfd49cf7e518e60bb98bd54e5eb8b8290f8b9 100644 (file)
@@ -817,8 +817,6 @@ struct kvm_vcpu_arch {
 #define DEBUG_STATE_SAVE_SPE   __vcpu_single_flag(iflags, BIT(5))
 /* Save TRBE context if active  */
 #define DEBUG_STATE_SAVE_TRBE  __vcpu_single_flag(iflags, BIT(6))
-/* vcpu running in HYP context */
-#define VCPU_HYP_CONTEXT       __vcpu_single_flag(iflags, BIT(7))
 
 /* SVE enabled for host EL0 */
 #define HOST_SVE_ENABLED       __vcpu_single_flag(sflags, BIT(0))
index 1581df6aec874510926022807e1db468ca9e6c8f..07fd9f70f8703b8999cffb3ee52b79c9ea0fbc72 100644 (file)
@@ -197,7 +197,7 @@ static void early_exit_filter(struct kvm_vcpu *vcpu, u64 *exit_code)
         * If we were in HYP context on entry, adjust the PSTATE view
         * so that the usual helpers work correctly.
         */
-       if (unlikely(vcpu_get_flag(vcpu, VCPU_HYP_CONTEXT))) {
+       if (vcpu_has_nv(vcpu) && (read_sysreg(hcr_el2) & HCR_NV)) {
                u64 mode = *vcpu_cpsr(vcpu) & (PSR_MODE_MASK | PSR_MODE32_BIT);
 
                switch (mode) {
@@ -240,11 +240,6 @@ static int __kvm_vcpu_run_vhe(struct kvm_vcpu *vcpu)
        sysreg_restore_guest_state_vhe(guest_ctxt);
        __debug_switch_to_guest(vcpu);
 
-       if (is_hyp_ctxt(vcpu))
-               vcpu_set_flag(vcpu, VCPU_HYP_CONTEXT);
-       else
-               vcpu_clear_flag(vcpu, VCPU_HYP_CONTEXT);
-
        do {
                /* Jump in the fire! */
                exit_code = __guest_enter(vcpu);