summaryrefslogtreecommitdiffstats
path: root/arch/arm64/kernel/hyp-stub.S
diff options
context:
space:
mode:
authorMarc Zyngier <marc.zyngier@arm.com>2017-04-03 20:37:34 +0200
committerChristoffer Dall <cdall@linaro.org>2017-04-09 16:49:17 +0200
commit50d912cc3e5055c14e13a8e7de5c078b01a2e2b7 (patch)
treee785bf5ec65a7dc16019c67508f4e14ca030fe4d /arch/arm64/kernel/hyp-stub.S
parentarm: KVM: Treat CP15 accessors returning false as successful (diff)
downloadlinux-50d912cc3e5055c14e13a8e7de5c078b01a2e2b7.tar.xz
linux-50d912cc3e5055c14e13a8e7de5c078b01a2e2b7.zip
arm64: hyp-stub: Stop pointlessly clobbering lr
When entering the kernel hyp stub, we check whether or not we've made it here through an HVC instruction, clobbering lr (aka x30) in the process. This is completely pointless, as HVC is the only way to get here (all traps to EL2 are disabled, no interrupt override is applied). So let's remove this bit of code whose only point is to corrupt a valuable register. Acked-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Christoffer Dall <cdall@linaro.org>
Diffstat (limited to 'arch/arm64/kernel/hyp-stub.S')
-rw-r--r--arch/arm64/kernel/hyp-stub.S6
1 files changed, 0 insertions, 6 deletions
diff --git a/arch/arm64/kernel/hyp-stub.S b/arch/arm64/kernel/hyp-stub.S
index d3b5f75e652e..e4215ad06930 100644
--- a/arch/arm64/kernel/hyp-stub.S
+++ b/arch/arm64/kernel/hyp-stub.S
@@ -55,12 +55,6 @@ ENDPROC(__hyp_stub_vectors)
.align 11
el1_sync:
- mrs x30, esr_el2
- lsr x30, x30, #ESR_ELx_EC_SHIFT
-
- cmp x30, #ESR_ELx_EC_HVC64
- b.ne 9f // Not an HVC trap
-
cmp x0, #HVC_GET_VECTORS
b.ne 1f
mrs x0, vbar_el2