summaryrefslogtreecommitdiff
path: root/extra/irqbalance/Fix-detection-of-CPUs-in-sysfs.patch
diff options
context:
space:
mode:
Diffstat (limited to 'extra/irqbalance/Fix-detection-of-CPUs-in-sysfs.patch')
-rw-r--r--extra/irqbalance/Fix-detection-of-CPUs-in-sysfs.patch35
1 files changed, 35 insertions, 0 deletions
diff --git a/extra/irqbalance/Fix-detection-of-CPUs-in-sysfs.patch b/extra/irqbalance/Fix-detection-of-CPUs-in-sysfs.patch
new file mode 100644
index 000000000..56bd529c2
--- /dev/null
+++ b/extra/irqbalance/Fix-detection-of-CPUs-in-sysfs.patch
@@ -0,0 +1,35 @@
+From: Shawn Bohrer <sbohrer@rgmadvisors.com>
+
+Only count directories that match /sys/devices/system/cpu/cpu[0-9]+ as
+CPUs. Previously any directory that started with cpu was counted which
+caused cpufreq and cpuidle to be counted as CPUs.
+
+Signed-off-by: Shawn Bohrer <sbohrer@rgmadvisors.com>
+---
+ cputree.c | 3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+diff --git a/cputree.c b/cputree.c
+index 3b0c982..b879785 100644
+--- a/cputree.c
++++ b/cputree.c
+@@ -25,6 +25,7 @@
+ */
+
+ #include "config.h"
++#include <ctype.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <unistd.h>
+@@ -321,7 +322,7 @@ void parse_cpu_tree(void)
+ return;
+ do {
+ entry = readdir(dir);
+- if (entry && strlen(entry->d_name)>3 && strstr(entry->d_name,"cpu")) {
++ if (entry && !strncmp(entry->d_name,"cpu", 3) && isdigit(entry->d_name[3])) {
+ char new_path[PATH_MAX];
+ sprintf(new_path, "/sys/devices/system/cpu/%s", entry->d_name);
+ do_one_cpu(new_path);
+--
+1.6.5.2
+