diff options
author | Julien Grall <julien.grall@arm.com> | 2019-05-21 18:21:38 +0100 |
---|---|---|
committer | Catalin Marinas <catalin.marinas@arm.com> | 2019-06-04 13:17:30 +0100 |
commit | 54b8c7cbc57c1ce21f4e35101f2609092c4af49a (patch) | |
tree | 5ba2f0513a106313eb6881669a7694480090585d /arch/arm64/kvm/fpsimd.c | |
parent | 6fa9b41f6f15d79666e1fbcb7a8c122bea58d9cb (diff) | |
download | linux-stable-54b8c7cbc57c1ce21f4e35101f2609092c4af49a.tar.gz linux-stable-54b8c7cbc57c1ce21f4e35101f2609092c4af49a.tar.bz2 linux-stable-54b8c7cbc57c1ce21f4e35101f2609092c4af49a.zip |
arm64/fpsimd: Introduce fpsimd_save_and_flush_cpu_state() and use it
The only external user of fpsimd_save() and fpsimd_flush_cpu_state() is
the KVM FPSIMD code.
A following patch will introduce a mechanism to acquire owernship of the
FPSIMD/SVE context for performing context management operations. Rather
than having to export the new helpers to get/put the context, we can just
introduce a new function to combine fpsimd_save() and
fpsimd_flush_cpu_state().
This has also the advantage to remove any external call of fpsimd_save()
and fpsimd_flush_cpu_state(), so they can be turned static.
Lastly, the new function can also be used in the PM notifier.
Reviewed-by: Dave Martin <Dave.Martin@arm.com>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Julien Grall <julien.grall@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'arch/arm64/kvm/fpsimd.c')
-rw-r--r-- | arch/arm64/kvm/fpsimd.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/arch/arm64/kvm/fpsimd.c b/arch/arm64/kvm/fpsimd.c index 6e3c9c8b2df9..525010504f9d 100644 --- a/arch/arm64/kvm/fpsimd.c +++ b/arch/arm64/kvm/fpsimd.c @@ -112,9 +112,7 @@ void kvm_arch_vcpu_put_fp(struct kvm_vcpu *vcpu) if (vcpu->arch.flags & KVM_ARM64_FP_ENABLED) { u64 *guest_zcr = &vcpu->arch.ctxt.sys_regs[ZCR_EL1]; - /* Clean guest FP state to memory and invalidate cpu view */ - fpsimd_save(); - fpsimd_flush_cpu_state(); + fpsimd_save_and_flush_cpu_state(); if (guest_has_sve) *guest_zcr = read_sysreg_s(SYS_ZCR_EL12); |