From 4087554882ac2e172c8a199281f723a7567abe5c Mon Sep 17 00:00:00 2001 From: Ian Campbell Date: Tue, 3 Feb 2015 09:20:15 +0000 Subject: [PATCH] [arm64] Only use the virtual counter (CNTVCT) on arm64. svn path=/dists/sid/linux/; revision=22337 --- debian/changelog | 1 + ..._timer-Only-use-the-virtual-counter-.patch | 40 +++++++++++++++++++ debian/patches/series | 1 + 3 files changed, 42 insertions(+) create mode 100644 debian/patches/bugfix/arm64/clocksource-arch_timer-Only-use-the-virtual-counter-.patch diff --git a/debian/changelog b/debian/changelog index d71a02854..690a59fca 100644 --- a/debian/changelog +++ b/debian/changelog @@ -7,6 +7,7 @@ linux (3.16.7-ckt4-3) UNRELEASED; urgency=medium [ Ian Campbell ] * [xen] cancel ballooning if adding new memory failed (Closes: #776448) + * [arm64] Only use the virtual counter (CNTVCT) on arm64. -- Ben Hutchings Wed, 28 Jan 2015 17:52:39 +0000 diff --git a/debian/patches/bugfix/arm64/clocksource-arch_timer-Only-use-the-virtual-counter-.patch b/debian/patches/bugfix/arm64/clocksource-arch_timer-Only-use-the-virtual-counter-.patch new file mode 100644 index 000000000..95c77de92 --- /dev/null +++ b/debian/patches/bugfix/arm64/clocksource-arch_timer-Only-use-the-virtual-counter-.patch @@ -0,0 +1,40 @@ +From 53a2dd7f567cebda868b0765e2659f7930ba958f Mon Sep 17 00:00:00 2001 +From: Catalin Marinas +Date: Wed, 10 Dec 2014 11:02:09 +0000 +Subject: [PATCH] clocksource: arch_timer: Only use the virtual counter + (CNTVCT) on arm64 +Origin: https://git.kernel.org/linus/d6ad36913083d683aad4e02e53580c995f1a6ede + +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 +Tested-by: Yingjoe Chen +Cc: Daniel Lezcano +Signed-off-by: Arnd Bergmann +--- + 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 506949d..499cb1d 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; +-- +1.7.10.4 + diff --git a/debian/patches/series b/debian/patches/series index 379eec64d..634ebf5d3 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -56,6 +56,7 @@ bugfix/x86/drm-i915-Add-some-L3-registers-to-the-parser-whiteli.patch bugfix/parisc/parisc-reduce-sigrtmin-from-37-to-32-to-behave-like-.patch bugfix/arm64/arm64-add-missing-dts-entry-for-X-Gene-platform.patch bugfix/arm64/arm64-removed-using-of-the-mask-attribute-in-the-dts.patch +bugfix/arm64/clocksource-arch_timer-Only-use-the-virtual-counter-.patch bugfix/x86/acpi-video-run-_bcl-before-deciding-registering-back.patch # Arch features