Commit 09be03c6 authored by Marc Zyngier's avatar Marc Zyngier
Browse files

KVM: arm64: Don't treat HCRX_EL2 as a FGT register



Treating HCRX_EL2 as yet another FGT register seems excessive, and
gets in a way of further improvements. It is actually simpler to
just be explicit about the masking, so just to that.

Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
parent 9308d0b1
Loading
Loading
Loading
Loading
+3 −6
Original line number Diff line number Diff line
@@ -261,12 +261,9 @@ static inline void __activate_traps_common(struct kvm_vcpu *vcpu)
	if (cpus_have_final_cap(ARM64_HAS_HCX)) {
		u64 hcrx = vcpu->arch.hcrx_el2;
		if (vcpu_has_nv(vcpu) && !is_hyp_ctxt(vcpu)) {
			u64 clr = 0, set = 0;

			compute_clr_set(vcpu, HCRX_EL2, clr, set);

			hcrx |= set;
			hcrx &= ~clr;
			u64 val = __vcpu_sys_reg(vcpu, HCRX_EL2);
			hcrx |= val & __HCRX_EL2_MASK;
			hcrx &= ~(~val & __HCRX_EL2_nMASK);
		}

		write_sysreg_s(hcrx, SYS_HCRX_EL2);