mirror of https://gitee.com/openkylin/linux.git
KVM: arm64: Rewrite sysreg alternatives to static keys
As we are about to move calls around in the sysreg save/restore logic, let's first rewrite the alternative function callers, because it is going to make the next patches much easier to read. Acked-by: Marc Zyngier <marc.zyngier@arm.com> Reviewed-by: Andrew Jones <drjones@redhat.com> Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
This commit is contained in:
parent
060701f04a
commit
2b88104467
|
@ -22,9 +22,6 @@
|
|||
#include <asm/kvm_emulate.h>
|
||||
#include <asm/kvm_hyp.h>
|
||||
|
||||
/* Yes, this does nothing, on purpose */
|
||||
static void __hyp_text __sysreg_do_nothing(struct kvm_cpu_context *ctxt) { }
|
||||
|
||||
/*
|
||||
* Non-VHE: Both host and guest must save everything.
|
||||
*
|
||||
|
@ -81,13 +78,10 @@ static void __hyp_text __sysreg_save_el1_state(struct kvm_cpu_context *ctxt)
|
|||
ctxt->sys_regs[DISR_EL1] = read_sysreg_s(SYS_VDISR_EL2);
|
||||
}
|
||||
|
||||
static hyp_alternate_select(__sysreg_call_save_host_state,
|
||||
__sysreg_save_el1_state, __sysreg_do_nothing,
|
||||
ARM64_HAS_VIRT_HOST_EXTN);
|
||||
|
||||
void __hyp_text __sysreg_save_host_state(struct kvm_cpu_context *ctxt)
|
||||
{
|
||||
__sysreg_call_save_host_state()(ctxt);
|
||||
if (!has_vhe())
|
||||
__sysreg_save_el1_state(ctxt);
|
||||
__sysreg_save_common_state(ctxt);
|
||||
__sysreg_save_user_state(ctxt);
|
||||
}
|
||||
|
@ -148,13 +142,10 @@ static void __hyp_text __sysreg_restore_el1_state(struct kvm_cpu_context *ctxt)
|
|||
write_sysreg_s(ctxt->sys_regs[DISR_EL1], SYS_VDISR_EL2);
|
||||
}
|
||||
|
||||
static hyp_alternate_select(__sysreg_call_restore_host_state,
|
||||
__sysreg_restore_el1_state, __sysreg_do_nothing,
|
||||
ARM64_HAS_VIRT_HOST_EXTN);
|
||||
|
||||
void __hyp_text __sysreg_restore_host_state(struct kvm_cpu_context *ctxt)
|
||||
{
|
||||
__sysreg_call_restore_host_state()(ctxt);
|
||||
if (!has_vhe())
|
||||
__sysreg_restore_el1_state(ctxt);
|
||||
__sysreg_restore_common_state(ctxt);
|
||||
__sysreg_restore_user_state(ctxt);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue