arm64: hyp-stub: Stop pointlessly clobbering lr
authorMarc Zyngier <marc.zyngier@arm.com>
Mon, 3 Apr 2017 18:37:34 +0000 (19:37 +0100)
committerChristoffer Dall <cdall@linaro.org>
Sun, 9 Apr 2017 14:49:17 +0000 (07:49 -0700)
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>
arch/arm64/kernel/hyp-stub.S

index d3b5f75e652efce050f8c0c7d5cdef69e0351dfd..e4215ad06930addb74f1f5839a8ad183ea7b5dc3 100644 (file)
@@ -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