KVM: arm64: Stop save/restoring host tpidr_el1 on VHE
authorJames Morse <james.morse@arm.com>
Mon, 8 Jan 2018 15:38:07 +0000 (15:38 +0000)
committerCatalin Marinas <catalin.marinas@arm.com>
Sat, 13 Jan 2018 10:44:40 +0000 (10:44 +0000)
commit1f742679c33bc083722cb0b442a95d458c491b56
tree1b74923a27d7239a010fd16aadf30ed3014f6f1a
parent6d99b68933fbcf51f84fcbba49246ce1209ec193
KVM: arm64: Stop save/restoring host tpidr_el1 on VHE

Now that a VHE host uses tpidr_el2 for the cpu offset we no longer
need KVM to save/restore tpidr_el1. Move this from the 'common' code
into the non-vhe code. While we're at it, on VHE we don't need to
save the ELR or SPSR as kernel_entry in entry.S will have pushed these
onto the kernel stack, and will restore them from there. Move these
to the non-vhe code as we need them to get back to the host.

Finally remove the always-copy-tpidr we hid in the stage2 setup
code, cpufeature's enable callback will do this for VHE, we only
need KVM to do it for non-vhe. Add the copy into kvm-init instead.

Signed-off-by: James Morse <james.morse@arm.com>
Reviewed-by: Christoffer Dall <cdall@linaro.org>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/kvm/hyp-init.S
arch/arm64/kvm/hyp/s2-setup.c
arch/arm64/kvm/hyp/sysreg-sr.c