aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/cpu/cpu.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/cpu/cpu.cpp b/src/cpu/cpu.cpp
index 92512a6..941bcff 100644
--- a/src/cpu/cpu.cpp
+++ b/src/cpu/cpu.cpp
@@ -232,6 +232,8 @@ void enumerate_cpus(void)
if (!file)
return;
+ /* Not all /proc/cpuinfo include "vendor_id\t". */
+ vendor[0] = '\0';
while (file) {
@@ -271,8 +273,15 @@ void enumerate_cpus(void)
}
}
if (strncasecmp(line, "bogomips\t", 9) == 0) {
- handle_one_cpu(number, vendor, family, model);
- set_max_cpu(number);
+ if (number == -1) {
+ /* Not all /proc/cpuinfo include "processor\t". */
+ number = 0;
+ }
+ if (number >= 0) {
+ handle_one_cpu(number, vendor, family, model);
+ set_max_cpu(number);
+ number = -2;
+ }
}
}