arm64: kernel: avoid x18 in __cpu_soft_restart
authorArd Biesheuvel <ard.biesheuvel@linaro.org>
Fri, 6 Dec 2019 22:13:40 +0000 (14:13 -0800)
committerWill Deacon <will@kernel.org>
Thu, 16 Jan 2020 17:32:56 +0000 (17:32 +0000)
The code in __cpu_soft_restart() uses x18 as an arbitrary temp register,
which will shortly be disallowed. So use x8 instead.

Link: https://patchwork.kernel.org/patch/9836877/
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
[Sami: updated commit message]
Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
Reviewed-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Will Deacon <will@kernel.org>
arch/arm64/kernel/cpu-reset.S

index 6ea337d..32c7bf8 100644 (file)
@@ -42,11 +42,11 @@ ENTRY(__cpu_soft_restart)
        mov     x0, #HVC_SOFT_RESTART
        hvc     #0                              // no return
 
-1:     mov     x18, x1                         // entry
+1:     mov     x8, x1                          // entry
        mov     x0, x2                          // arg0
        mov     x1, x3                          // arg1
        mov     x2, x4                          // arg2
-       br      x18
+       br      x8
 ENDPROC(__cpu_soft_restart)
 
 .popsection