diff options
author | Quentin Perret <qperret@google.com> | 2021-12-15 16:12:23 +0000 |
---|---|---|
committer | Marc Zyngier <maz@kernel.org> | 2021-12-16 12:58:56 +0000 |
commit | 3f868e142c0bb052a1c15fd3ceca1391604e2e69 (patch) | |
tree | f5c9f58a4dc620cf323b417845fbadf99edd400c /arch/arm64/kvm/fpsimd.c | |
parent | 82bb02445de57bb3072052705f6f5dea9465592e (diff) | |
download | linux-stable-3f868e142c0bb052a1c15fd3ceca1391604e2e69.tar.gz linux-stable-3f868e142c0bb052a1c15fd3ceca1391604e2e69.tar.bz2 linux-stable-3f868e142c0bb052a1c15fd3ceca1391604e2e69.zip |
KVM: arm64: Introduce kvm_share_hyp()
The create_hyp_mappings() function can currently be called at any point
in time. However, its behaviour in protected mode changes widely
depending on when it is being called. Prior to KVM init, it is used to
create the temporary page-table used to bring-up the hypervisor, and
later on it is transparently turned into a 'share' hypercall when the
kernel has lost control over the hypervisor stage-1. In order to prepare
the ground for also unsharing pages with the hypervisor during guest
teardown, introduce a kvm_share_hyp() function to make it clear in which
places a share hypercall should be expected, as we will soon need a
matching unshare hypercall in all those places.
Signed-off-by: Quentin Perret <qperret@google.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20211215161232.1480836-7-qperret@google.com
Diffstat (limited to 'arch/arm64/kvm/fpsimd.c')
-rw-r--r-- | arch/arm64/kvm/fpsimd.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm64/kvm/fpsimd.c b/arch/arm64/kvm/fpsimd.c index 5526d79c7b47..86899d3aa9a9 100644 --- a/arch/arm64/kvm/fpsimd.c +++ b/arch/arm64/kvm/fpsimd.c @@ -30,7 +30,7 @@ int kvm_arch_vcpu_run_map_fp(struct kvm_vcpu *vcpu) struct user_fpsimd_state *fpsimd = ¤t->thread.uw.fpsimd_state; /* Make sure the host task fpsimd state is visible to hyp: */ - ret = create_hyp_mappings(fpsimd, fpsimd + 1, PAGE_HYP); + ret = kvm_share_hyp(fpsimd, fpsimd + 1); if (!ret) vcpu->arch.host_fpsimd_state = kern_hyp_va(fpsimd); |