KVM: arm64: Check sys_reg access context

Signed-off-by: Marc Zyngier <maz@kernel.org>
diff --git a/arch/arm64/kvm/sys_regs.c b/arch/arm64/kvm/sys_regs.c
index 856f705..807a3f8 100644
--- a/arch/arm64/kvm/sys_regs.c
+++ b/arch/arm64/kvm/sys_regs.c
@@ -204,12 +204,22 @@ static bool __vcpu_write_sys_reg_to_cpu(u64 val, int reg)
 	return true;
 }
 
+static void __vcpu_check(const struct kvm_vcpu *vcpu)
+{
+	if (has_vhe()) {
+		struct kvm_vcpu *self = kvm_get_running_vcpu();
+		WARN_ON(self && vcpu != self);
+	}
+}
+
 u64 vcpu_read_sys_reg(const struct kvm_vcpu *vcpu, int reg)
 {
 	u64 val = 0x8badf00d8badf00d;
 	u64 (*xlate)(u64) = NULL;
 	unsigned int el1r;
 
+	__vcpu_check(vcpu);
+
 	if (!vcpu->arch.sysregs_loaded_on_cpu)
 		goto memory_read;
 
@@ -264,6 +274,8 @@ void vcpu_write_sys_reg(struct kvm_vcpu *vcpu, u64 val, int reg)
 	u64 (*xlate)(u64) = NULL;
 	unsigned int el1r;
 
+	__vcpu_check(vcpu);
+
 	if (!vcpu->arch.sysregs_loaded_on_cpu)
 		goto memory_write;