arm64: alternatives: use tpidr_el2 on VHE hosts
When upstream 6d99b68933fb was back-ported to upstream v4.9.x stable as eea59020, the edits to arch/arm64/mm/proc.S were dropped because proc.S didn't save/restore tpidr_el1 at all. Separately, in android-4.9, 0ec37136 ("UPSTREAM: arm64: move sp_el0 and tpidr_el1 into cpu_suspend_ctx") modified proc.S to save/restore tpidir_el1. These two paths were later merged together in android-4.9. The missing edits to proc.S should have been added in during the merge, but were not. This change restores those edits. The original upstream change description of 6d99b68933fb follows; this is where the missing code appeared originally. Commit 6d99b68933fbcf51f84fcbba49246ce1209ec193 upstream. Now that KVM uses tpidr_el2 in the same way as Linux's cpu_offset in tpidr_el1, merge the two. This saves KVM from save/restoring tpidr_el1 on VHE hosts, and allows future code to blindly access per-cpu variables without triggering world-switch. Signed-off-by:James Morse <james.morse@arm.com> Reviewed-by:
Christoffer Dall <cdall@linaro.org> Reviewed-by:
Catalin Marinas <catalin.marinas@arm.com> Signed-off-by:
Catalin Marinas <catalin.marinas@arm.com> Signed-off-by:
Marc Zyngier <marc.zyngier@arm.com> Fixes: eea59020 ("arm64: alternatives: use tpidr_el2 on VHE hosts") Fixes: 0ec37136 ("UPSTREAM: arm64: move sp_el0 and tpidr_el1 into cpu_suspend_ctx") Fixes: 4a5211fa1474 ("Merge 4.9.114 into android-4.9-p") Signed-off-by:
Stephen Warren <swarren@nvidia.com> Signed-off-by:
Greg Kroah-Hartman <gregkh@google.com> Change-Id: Ieddfef9a2875478d537f96e5fab516034a06ad94
Loading
Please register or sign in to comment