Commit 2c3db77c authored by Marc Zyngier's avatar Marc Zyngier
Browse files

KVM: arm64: pauth: Use ctxt_sys_reg() instead of raw sys_regs access



Now that we have a wrapper for the sysreg accesses, let's use that
consistently.

Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
parent 308472c6
Loading
Loading
Loading
Loading
+13 −10
Original line number Diff line number Diff line
@@ -364,11 +364,14 @@ static inline bool esr_is_ptrauth_trap(u32 esr)
	return false;
}

#define __ptrauth_save_key(regs, key)						\
({										\
	regs[key ## KEYLO_EL1] = read_sysreg_s(SYS_ ## key ## KEYLO_EL1);	\
	regs[key ## KEYHI_EL1] = read_sysreg_s(SYS_ ## key ## KEYHI_EL1);	\
})
#define __ptrauth_save_key(ctxt, key)					\
	do {								\
	u64 __val;                                                      \
	__val = read_sysreg_s(SYS_ ## key ## KEYLO_EL1);                \
	ctxt_sys_reg(ctxt, key ## KEYLO_EL1) = __val;                   \
	__val = read_sysreg_s(SYS_ ## key ## KEYHI_EL1);                \
	ctxt_sys_reg(ctxt, key ## KEYHI_EL1) = __val;                   \
} while(0)

static inline bool __hyp_handle_ptrauth(struct kvm_vcpu *vcpu)
{
@@ -380,11 +383,11 @@ static inline bool __hyp_handle_ptrauth(struct kvm_vcpu *vcpu)
		return false;

	ctxt = &__hyp_this_cpu_ptr(kvm_host_data)->host_ctxt;
	__ptrauth_save_key(ctxt->sys_regs, APIA);
	__ptrauth_save_key(ctxt->sys_regs, APIB);
	__ptrauth_save_key(ctxt->sys_regs, APDA);
	__ptrauth_save_key(ctxt->sys_regs, APDB);
	__ptrauth_save_key(ctxt->sys_regs, APGA);
	__ptrauth_save_key(ctxt, APIA);
	__ptrauth_save_key(ctxt, APIB);
	__ptrauth_save_key(ctxt, APDA);
	__ptrauth_save_key(ctxt, APDB);
	__ptrauth_save_key(ctxt, APGA);

	vcpu_ptrauth_enable(vcpu);