Skip to contentSkip to conversation

Patch "arm64: head.S: initialise mdcr_el2 in el2_setup" has been added to the 4.2-stable tree

PATCH [email protected] 1 participant 1 message Sep 23, 2015

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

arm64: head.S: initialise mdcr_el2 in el2_setup

to the 4.2-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:

     arm64-head.s-initialise-mdcr_el2-in-el2_setup.patch

and it can be found in the queue-4.2 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From d10bcd473301888f957ec4b6b12aa3621be78d59 Mon Sep 17 00:00:00 2001

From: Will Deacon <[email protected]>
Date: Wed, 2 Sep 2015 18:49:28 +0100
Subject: arm64: head.S: initialise mdcr_el2 in el2_setup

From: Will Deacon <[email protected]>

commit d10bcd473301888f957ec4b6b12aa3621be78d59 upstream.

When entering the kernel at EL2, we fail to initialise the MDCR_EL2 register which controls debug access and PMU capabilities at EL1.

This patch ensures that the register is initialised so that all traps are disabled and all the PMU counters are available to the host. When a guest is scheduled, KVM takes care to configure trapping appropriately.

---
 arch/arm64/kernel/head.S |    5 +++++
 1 file changed, 5 insertions(+)
arch/arm64/kernel/head.S +5 -0
@@ -528,6 +528,11 @@ CPU_LE(	movk	x0, #0x30d0, lsl #16	)	// C
 	msr	hstr_el2, xzr			// Disable CP15 traps to EL2
 #endif
 
+	/* EL2 debug */
+	mrs	x0, pmcr_el0			// Disable debug access traps
+	ubfx	x0, x0, #11, #5			// to EL2 and allow access to
+	msr	mdcr_el2, x0			// all PMU counters from EL1
+
 	/* Stage-2 translation */
 	msr	vttbr_el2, xzr
 

Patches currently in stable-queue which might be from [email protected] are

queue-4.2/arm64-head.s-initialise-mdcr_el2-in-el2_setup.patch queue-4.2/arm64-set-max_memblock_addr-according-to-linear-region-size.patch queue-4.2/arm64-kconfig-move-list_poison-to-a-safe-value.patch queue-4.2/arm64-flush-fp-simd-state-correctly-after-execve.patch queue-4.2/arm64-entry-always-restore-x0-from-the-stack-on-syscall-return.patch queue-4.2/kvm-arm64-add-workaround-for-cortex-a57-erratum-852523.patch queue-4.2/of-fdt-make-memblock-maximum-physical-address-arch-configurable.patch queue-4.2/arm64-errata-add-module-build-workaround-for-erratum-843419.patch queue-4.2/arm64-compat-fix-vfp-save-restore-across-signal-handlers-in-big-endian.patch