[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen stable-4.8] xen/arm: Flush TLBs before turning on the MMU to avoid stale entries
commit f9adc122b65c96ab69cf5fbae24b74ebed4ee51b Author: Julien Grall <julien.grall@xxxxxxx> AuthorDate: Tue Feb 27 11:15:57 2018 +0000 Commit: Stefano Stabellini <sstabellini@xxxxxxxxxx> CommitDate: Fri Mar 2 15:49:03 2018 -0800 xen/arm: Flush TLBs before turning on the MMU to avoid stale entries We don't know what is the state of the TLBs when booting Xen. To avoid stale entries, it is necessary to flush the TLBs before turning on the MMU. Reported-by: Iain Hunter <iain@xxxxxxxxxxxxxxxxxxxx> Signed-off-by: Julien Grall <julien.gralL@xxxxxxx> Acked-by: Stefano Stabellini <sstabellini@xxxxxxxxxx> (cherry picked from commit 1c473c42199a8f4d70533c202e1c57ecd1dad35b) --- xen/arch/arm/arm32/head.S | 7 +++++++ xen/arch/arm/arm64/head.S | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/xen/arch/arm/arm32/head.S b/xen/arch/arm/arm32/head.S index 2df9a982aa..e7ec004266 100644 --- a/xen/arch/arm/arm32/head.S +++ b/xen/arch/arm/arm32/head.S @@ -349,6 +349,13 @@ virtphys_clash: 1: PRINT("- Turning on paging -\r\n") + /* + * The state of the TLBs is unknown before turning on the MMU. + * Flush them to avoid stale one. + */ + mcr CP32(r0, TLBIALLH) /* Flush hypervisor TLBs */ + dsb nsh + ldr r1, =paging /* Explicit vaddr, not RIP-relative */ mrc CP32(r0, HSCTLR) orr r0, r0, #(SCTLR_M|SCTLR_C) /* Enable MMU and D-cache */ diff --git a/xen/arch/arm/arm64/head.S b/xen/arch/arm/arm64/head.S index c1a5098e50..6426fe7274 100644 --- a/xen/arch/arm/arm64/head.S +++ b/xen/arch/arm/arm64/head.S @@ -504,6 +504,13 @@ virtphys_clash: 1: PRINT("- Turning on paging -\r\n") + /* + * The state of the TLBs is unknown before turning on the MMU. + * Flush them to avoid stale one. + */ + tlbi alle2 /* Flush hypervisor TLBs */ + dsb nsh + ldr x1, =paging /* Explicit vaddr, not RIP-relative */ mrs x0, SCTLR_EL2 orr x0, x0, #SCTLR_M /* Enable MMU */ -- generated by git-patchbot for /home/xen/git/xen.git#stable-4.8 _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |