]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
chcpu: Fix maximal number of CPUs
authorStanislav Brabec <sbrabec@suse.cz>
Wed, 9 May 2018 20:13:07 +0000 (22:13 +0200)
committerKarel Zak <kzak@redhat.com>
Wed, 11 Jul 2018 13:42:51 +0000 (15:42 +0200)
chcpu.c mixed maxcpus (number of cpus) and setsize (size of CPU bit
mask). It effectively limits number of CPUs to 1/8 of the supported
amount.

Signed-off-by: Stanislav Brabec <sbrabec@suse.cz>
Cc: Michael Matz <matz@suse.de>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
sys-utils/chcpu.c

index f32b7a6fc22649860b97ed4797e57c5812b0e32c..4b5c7579ae31d08b4b43fbc7d99033b2ab70bbd0 100644 (file)
@@ -75,12 +75,12 @@ enum {
  */
 static int cpu_enable(cpu_set_t *cpu_set, size_t setsize, int enable)
 {
-       unsigned int cpu;
+       int cpu;
        int online, rc;
        int configured = -1;
-       size_t fails = 0;
+       int fails = 0;
 
-       for (cpu = 0; cpu < setsize; cpu++) {
+       for (cpu = 0; cpu < maxcpus; cpu++) {
                if (!CPU_ISSET_S(cpu, setsize, cpu_set))
                        continue;
                if (!path_exist(_PATH_SYS_CPU "/cpu%d", cpu)) {
@@ -132,7 +132,7 @@ static int cpu_enable(cpu_set_t *cpu_set, size_t setsize, int enable)
                }
        }
 
-       return fails == 0 ? 0 : fails == setsize ? -1 : 1;
+       return fails == 0 ? 0 : fails == maxcpus ? -1 : 1;
 }
 
 static int cpu_rescan(void)
@@ -168,11 +168,11 @@ static int cpu_set_dispatch(int mode)
  */
 static int cpu_configure(cpu_set_t *cpu_set, size_t setsize, int configure)
 {
-       unsigned int cpu;
+       int cpu;
        int rc, current;
-       size_t fails = 0;
+       int fails = 0;
 
-       for (cpu = 0; cpu < setsize; cpu++) {
+       for (cpu = 0; cpu < maxcpus; cpu++) {
                if (!CPU_ISSET_S(cpu, setsize, cpu_set))
                        continue;
                if (!path_exist(_PATH_SYS_CPU "/cpu%d", cpu)) {
@@ -217,7 +217,7 @@ static int cpu_configure(cpu_set_t *cpu_set, size_t setsize, int configure)
                }
        }
 
-       return fails == 0 ? 0 : fails == setsize ? -1 : 1;
+       return fails == 0 ? 0 : fails == maxcpus ? -1 : 1;
 }
 
 static void cpu_parse(char *cpu_string, cpu_set_t *cpu_set, size_t setsize)