KVM: arm64: nv: Allow userspace to set PSR_MODE_EL2x
[linux-2.6-microblaze.git] / arch / arm64 / kvm / guest.c
index 5626ddb..63643c9 100644 (file)
@@ -24,6 +24,7 @@
 #include <asm/fpsimd.h>
 #include <asm/kvm.h>
 #include <asm/kvm_emulate.h>
+#include <asm/kvm_nested.h>
 #include <asm/sigcontext.h>
 
 #include "trace.h"
@@ -253,6 +254,11 @@ static int set_core_reg(struct kvm_vcpu *vcpu, const struct kvm_one_reg *reg)
                        if (!vcpu_el1_is_32bit(vcpu))
                                return -EINVAL;
                        break;
+               case PSR_MODE_EL2h:
+               case PSR_MODE_EL2t:
+                       if (!vcpu_has_nv(vcpu))
+                               return -EINVAL;
+                       fallthrough;
                case PSR_MODE_EL0t:
                case PSR_MODE_EL1t:
                case PSR_MODE_EL1h: