KVM: arm64: Key use of VHE instructions in nVHE code off ARM64_KVM_HVHE
[sfrench/cifs-2.6.git] / arch / arm64 / include / asm / kvm_hyp.h
index fea04eb25cb4be0f2981f5cdbee0074603fff018..b7238c72a04cfaee4cdd4510e408e5f0a6c4df6f 100644 (file)
@@ -33,12 +33,18 @@ DECLARE_PER_CPU(struct kvm_nvhe_init_params, kvm_init_params);
 
 #else // !__KVM_VHE_HYPERVISOR__
 
+#if defined(__KVM_NVHE_HYPERVISOR__)
+#define VHE_ALT_KEY    ARM64_KVM_HVHE
+#else
+#define VHE_ALT_KEY    ARM64_HAS_VIRT_HOST_EXTN
+#endif
+
 #define read_sysreg_elx(r,nvh,vh)                                      \
        ({                                                              \
                u64 reg;                                                \
-               asm volatile(ALTERNATIVE(__mrs_s("%0", r##nvh), \
+               asm volatile(ALTERNATIVE(__mrs_s("%0", r##nvh),         \
                                         __mrs_s("%0", r##vh),          \
-                                        ARM64_HAS_VIRT_HOST_EXTN)      \
+                                        VHE_ALT_KEY)                   \
                             : "=r" (reg));                             \
                reg;                                                    \
        })
@@ -48,7 +54,7 @@ DECLARE_PER_CPU(struct kvm_nvhe_init_params, kvm_init_params);
                u64 __val = (u64)(v);                                   \
                asm volatile(ALTERNATIVE(__msr_s(r##nvh, "%x0"),        \
                                         __msr_s(r##vh, "%x0"),         \
-                                        ARM64_HAS_VIRT_HOST_EXTN)      \
+                                        VHE_ALT_KEY)                   \
                                         : : "rZ" (__val));             \
        } while (0)