[PATCH 4.2.y-ckt 039/268] arm64: mdscr_el1: avoid exposing DCC to userspace

From: Kamal Mostafa
Date: Wed Jan 27 2016 - 16:56:12 EST


4.2.8-ckt3 -stable review patch. If anyone has any objections, please let me know.

---8<------------------------------------------------------------

From: Will Deacon <will.deacon@xxxxxxx>

commit d8d23fa0f27f3b2942a7bbc7378c7735324ed519 upstream.

We don't want to expose the DCC to userspace, particularly as there is
a kernel console driver for it.

This patch resets mdscr_el1 to disable userspace access to the DCC
registers on the cold boot path.

Signed-off-by: Will Deacon <will.deacon@xxxxxxx>
[ kamal: 4.2-stable prereq for
60792ad arm64: kernel: enforce pmuserenr_el0 initialization and restore ]
Signed-off-by: Kamal Mostafa <kamal@xxxxxxxxxxxxx>
---
arch/arm64/mm/proc.S | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/mm/proc.S b/arch/arm64/mm/proc.S
index 39139a3..f28a1fe 100644
--- a/arch/arm64/mm/proc.S
+++ b/arch/arm64/mm/proc.S
@@ -156,7 +156,8 @@ ENTRY(__cpu_setup)

mov x0, #3 << 20
msr cpacr_el1, x0 // Enable FP/ASIMD
- msr mdscr_el1, xzr // Reset mdscr_el1
+ mov x0, #1 << 12 // Reset mdscr_el1 and disable
+ msr mdscr_el1, x0 // access to the DCC from EL0
/*
* Memory region attributes for LPAE:
*
--
1.9.1