summaryrefslogtreecommitdiff
path: root/arch/arm64/kvm/hyp.S
diff options
context:
space:
mode:
authorAndrew Scull <ascull@google.com>2020-09-15 13:46:42 +0300
committerMarc Zyngier <maz@kernel.org>2020-09-15 20:39:04 +0300
commit04e4caa8d355d19fd7d26734bd2b9e3b563bb22a (patch)
tree1d34c6b73889f17c590e6870dda984c3e0cf7e06 /arch/arm64/kvm/hyp.S
parent054698316d87a13e4c0dc8f5ecdd77b12e5eb676 (diff)
downloadlinux-04e4caa8d355d19fd7d26734bd2b9e3b563bb22a.tar.xz
KVM: arm64: nVHE: Migrate hyp-init to SMCCC
To complete the transition to SMCCC, the hyp initialization is given a function ID. This looks neater than comparing the hyp stub function IDs to the page table physical address. Some care is taken to only clobber x0-3 before the host context is saved as only those registers can be clobbered accoring to SMCCC. Fortunately, only a few acrobatics are needed. The possible new tpidr_el2 is moved to the argument in x2 so that it can be stashed in tpidr_el2 early to free up a scratch register. The page table configuration then makes use of x0-2. Signed-off-by: Andrew Scull <ascull@google.com> Signed-off-by: Marc Zyngier <maz@kernel.org> Link: https://lore.kernel.org/r/20200915104643.2543892-19-ascull@google.com
Diffstat (limited to 'arch/arm64/kvm/hyp.S')
-rw-r--r--arch/arm64/kvm/hyp.S22
1 files changed, 0 insertions, 22 deletions
diff --git a/arch/arm64/kvm/hyp.S b/arch/arm64/kvm/hyp.S
deleted file mode 100644
index 12aa426f7559..000000000000
--- a/arch/arm64/kvm/hyp.S
+++ /dev/null
@@ -1,22 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-/*
- * Copyright (C) 2012,2013 - ARM Ltd
- * Author: Marc Zyngier <marc.zyngier@arm.com>
- */
-
-#include <linux/linkage.h>
-
-#include <asm/alternative.h>
-#include <asm/assembler.h>
-#include <asm/cpufeature.h>
-
-/*
- * u64 __kvm_call_hyp_init(phys_addr_t pgd_ptr,
- * unsigned long hyp_stack_ptr,
- * unsigned long vector_ptr,
- * unsigned long tpidr_el2);
- */
-SYM_FUNC_START(__kvm_call_hyp_init)
- hvc #0
- ret
-SYM_FUNC_END(__kvm_call_hyp_init)