diff options
-rw-r--r-- | src/cpu/cpu.cpp | 13 |
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; + } } } |