arm64: mm: don't write garbage into TTBR1_EL1 register
authorArd Biesheuvel <ard.biesheuvel@linaro.org>
Fri, 23 Feb 2018 18:29:02 +0000 (18:29 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 28 Feb 2018 09:19:38 +0000 (10:19 +0100)
Stable backport commit 173358a49173 ("arm64: kpti: Add ->enable callback
to remap swapper using nG mappings") of upstream commit f992b4dfd58b did
not survive the backporting process unscathed, and ends up writing garbage
into the TTBR1_EL1 register, rather than pointing it to the zero page to
disable translations. Fix that.

Cc: <stable@vger.kernel.org> #v4.14
Reported-by: Nicolas Dechesne <nicolas.dechesne@linaro.org>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/arm64/mm/proc.S

index 329a1c4..139320a 100644 (file)
@@ -155,7 +155,7 @@ ENDPROC(cpu_do_switch_mm)
 
 .macro __idmap_cpu_set_reserved_ttbr1, tmp1, tmp2
        adrp    \tmp1, empty_zero_page
-       msr     ttbr1_el1, \tmp2
+       msr     ttbr1_el1, \tmp1
        isb
        tlbi    vmalle1
        dsb     nsh