[PATCH 4.13 14/85] parisc: Fix detection of nonsynchronous cr16 cycle counters
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date: 2017-10-24 13:08:27
Also in:
lkml
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date: 2017-10-24 13:08:27
Also in:
lkml
4.13-stable review patch. If anyone has any objections, please let me know.
------------------
From: Helge Deller <deller@gmx.de>
commit 8642b31ba9eef8a01845146a26682d4869e62513 upstream.
For CPUs which have an unknown or invalid CPU location (physical location)
assume that their cycle counters aren't syncronized across CPUs.
Signed-off-by: Helge Deller <deller@gmx.de>
Fixes: c8c3735997a3 ("parisc: Enhance detection of synchronous cr16 clocksources")
Signed-off-by: Helge Deller <deller@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/parisc/kernel/time.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
--- a/arch/parisc/kernel/time.c
+++ b/arch/parisc/kernel/time.c@@ -253,7 +253,10 @@ static int __init init_cr16_clocksource( cpu0_loc = per_cpu(cpu_data, 0).cpu_loc; for_each_online_cpu(cpu) { - if (cpu0_loc == per_cpu(cpu_data, cpu).cpu_loc) + if (cpu == 0) + continue; + if ((cpu0_loc != 0) && + (cpu0_loc == per_cpu(cpu_data, cpu).cpu_loc)) continue; clocksource_cr16.name = "cr16_unstable";