linux/arch/arm64/kvm/hyp
Marc Zyngier 9bc03f1df3 arm64: KVM: Cleanup tpidr_el2 init on non-VHE
When running on a non-VHE system, we initialize tpidr_el2 to
contain the per-CPU offset required to reach per-cpu variables.

Actually, we initialize it twice: the first time as part of the
EL2 initialization, by copying tpidr_el1 into its el2 counterpart,
and another time by calling into __kvm_set_tpidr_el2.

It turns out that the first part is wrong, as it includes the
distance between the kernel mapping and the linear mapping, while
EL2 only cares about the linear mapping. This was the last vestige
of the first per-cpu use of tpidr_el2 that came in with SDEI.
The only caller then was hyp_panic(), and its now using the
pc-relative get_host_ctxt() stuff, instead of kimage addresses
from the literal pool.

It is not a big deal, as we override it straight away, but it is
slightly confusing. In order to clear said confusion, let's
set this directly as part of the hyp-init code, and drop the
ad-hoc HYP helper.

Reviewed-by: James Morse <james.morse@arm.com>
Acked-by: Christoffer Dall <christoffer.dall@arm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2018-07-21 16:02:17 +01:00
..
Makefile KVM: arm/arm64: Move arm64-only vgic-v2-sr.c file to arm64 2018-03-19 10:53:20 +00:00
debug-sr.c KVM: arm64: Repurpose vcpu_arch.debug_flags for general-purpose flags 2018-05-25 12:28:13 +01:00
entry.S KVM: arm64: Invoke FPSIMD context switch trap from C 2018-05-25 12:28:31 +01:00
fpsimd.S arm64: KVM: Implement fpsimd save/restore 2015-12-14 11:30:41 +00:00
hyp-entry.S Small update for KVM. 2018-06-12 11:34:04 -07:00
s2-setup.c KVM: arm64: Stop save/restoring host tpidr_el1 on VHE 2018-01-13 10:44:40 +00:00
switch.c Small update for KVM. 2018-06-12 11:34:04 -07:00
sysreg-sr.c arm64: KVM: Cleanup tpidr_el2 init on non-VHE 2018-07-21 16:02:17 +01:00
tlb.c KVM: arm/arm64: Detangle kvm_mmu.h from kvm_hyp.h 2018-01-08 15:20:43 +01:00
vgic-v2-cpuif-proxy.c arm64: vgic-v2: Fix proxying of cpuif access 2018-05-04 16:45:55 +01:00