Revert "x86: do not use cpufreq_quick_get() for /proc/cpuinfo "cpu MHz""
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 2 Nov 2017 21:06:32 +0000 (14:06 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 2 Nov 2017 21:06:32 +0000 (14:06 -0700)
This reverts commit 51204e0639c49ada02fd823782ad673b6326d748.

There wasn't really any good reason for it, and people are complaining
(rightly) that it broke existing practice.

Cc: Len Brown <len.brown@intel.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/x86/kernel/cpu/proc.c

index 5455f3b8b969ad7e55a3f6ca84c926857c2cbf18..6b7e17bf0b71dd63394b0ec5a83bea508c7ebfe9 100644 (file)
@@ -3,6 +3,7 @@
 #include <linux/timex.h>
 #include <linux/string.h>
 #include <linux/seq_file.h>
 #include <linux/timex.h>
 #include <linux/string.h>
 #include <linux/seq_file.h>
+#include <linux/cpufreq.h>
 
 /*
  *     Get CPU information for use by the procfs.
 
 /*
  *     Get CPU information for use by the procfs.
@@ -76,9 +77,14 @@ static int show_cpuinfo(struct seq_file *m, void *v)
        if (c->microcode)
                seq_printf(m, "microcode\t: 0x%x\n", c->microcode);
 
        if (c->microcode)
                seq_printf(m, "microcode\t: 0x%x\n", c->microcode);
 
-       if (cpu_has(c, X86_FEATURE_TSC))
+       if (cpu_has(c, X86_FEATURE_TSC)) {
+               unsigned int freq = cpufreq_quick_get(cpu);
+
+               if (!freq)
+                       freq = cpu_khz;
                seq_printf(m, "cpu MHz\t\t: %u.%03u\n",
                seq_printf(m, "cpu MHz\t\t: %u.%03u\n",
-                          cpu_khz / 1000, (cpu_khz % 1000));
+                          freq / 1000, (freq % 1000));
+       }
 
        /* Cache size */
        if (c->x86_cache_size >= 0)
 
        /* Cache size */
        if (c->x86_cache_size >= 0)