[3.16.y-ckt stable] Patch "clocksource: arch_timer: Only use the virtual counter (CNTVCT) on arm64" has been added to staging queue

Luis Henriques luis.henriques at canonical.com
Wed Feb 4 11:32:47 UTC 2015


This is a note to let you know that I have just added a patch titled

    clocksource: arch_timer: Only use the virtual counter (CNTVCT) on arm64

to the linux-3.16.y-queue branch of the 3.16.y-ckt extended stable tree 
which can be found at:

 http://kernel.ubuntu.com/git?p=ubuntu/linux.git;a=shortlog;h=refs/heads/linux-3.16.y-queue

This patch is scheduled to be released in version 3.16.7-ckt6.

If you, or anyone else, feels it should not be added to this tree, please 
reply to this email.

For more information about the 3.16.y-ckt tree, see
https://wiki.ubuntu.com/Kernel/Dev/ExtendedStable

Thanks.
-Luis

------

>From 552b7a455c1c1a9a5b73bf195a51edccd3a53c86 Mon Sep 17 00:00:00 2001
From: Catalin Marinas <catalin.marinas at arm.com>
Date: Wed, 10 Dec 2014 11:02:09 +0000
Subject: clocksource: arch_timer: Only use the virtual counter (CNTVCT) on
 arm64

commit d6ad36913083d683aad4e02e53580c995f1a6ede upstream.

Commit 0b46b8a718c6 (clocksource: arch_timer: Fix code to use physical
timers when requested) introduces the use of physical counters in the
ARM architected timer driver. However, he arm64 kernel uses CNTVCT in
VDSO. When booting in EL2, the kernel switches to the physical timers to
make things easier for KVM but it continues to use the virtual counter
both in user and kernel. While in such scenario CNTVCT == CNTPCT (since
CNTVOFF is initialised by the kernel to 0), we want to spot firmware
bugs corrupting CNTVOFF early (which would affect CNTVCT).

Signed-off-by: Catalin Marinas <catalin.marinas at arm.com>
Tested-by: Yingjoe Chen <yingjoe.chen at mediatek.com>
Cc: Daniel Lezcano <daniel.lezcano at linaro.org>
Signed-off-by: Arnd Bergmann <arnd at arndb.de>
Cc: Mark Rutland <mark.rutland at arm.com>
Signed-off-by: Luis Henriques <luis.henriques at canonical.com>
---
 drivers/clocksource/arm_arch_timer.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/clocksource/arm_arch_timer.c b/drivers/clocksource/arm_arch_timer.c
index 506949d2e922..499cb1de5e99 100644
--- a/drivers/clocksource/arm_arch_timer.c
+++ b/drivers/clocksource/arm_arch_timer.c
@@ -430,7 +430,7 @@ static void __init arch_counter_register(unsigned type)

 	/* Register the CP15 based counter if we have one */
 	if (type & ARCH_CP15_TIMER) {
-		if (arch_timer_use_virtual)
+		if (IS_ENABLED(CONFIG_ARM64) || arch_timer_use_virtual)
 			arch_timer_read_counter = arch_counter_get_cntvct;
 		else
 			arch_timer_read_counter = arch_counter_get_cntpct;
--
2.1.4





More information about the kernel-team mailing list