#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;                                                    \
        })
                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)