}
static int __attribute__((warn_unused_result))
-allocate_cpu_set(cpu_set_t * set, size_t * size) {
- set = CPU_ALLOC(topology.max_cpu_id + 1);
- if (set == NULL) {
+allocate_cpu_set(cpu_set_t ** set, size_t * size) {
+ *set = CPU_ALLOC(topology.max_cpu_id + 1);
+ if (*set == NULL) {
ERROR("Unable to allocate CPU state");
return -ERR_CPU_ALLOC;
}
*size = CPU_ALLOC_SIZE(topology.max_cpu_id + 1);
- CPU_ZERO_S(*size, set);
+ CPU_ZERO_S(*size, *set);
return 0;
}
return -ERR_CALLOC;
}
- ret = allocate_cpu_set(cpu_present_set, &cpu_present_setsize);
+ ret = allocate_cpu_set(&cpu_present_set, &cpu_present_setsize);
if (ret != 0)
goto err;
- ret = allocate_cpu_set(cpu_affinity_set, &cpu_affinity_setsize);
+ ret = allocate_cpu_set(&cpu_affinity_set, &cpu_affinity_setsize);
if (ret != 0)
goto err;
- ret = allocate_cpu_set(cpu_saved_affinity_set, &cpu_saved_affinity_setsize);
+ ret = allocate_cpu_set(&cpu_saved_affinity_set, &cpu_saved_affinity_setsize);
if (ret != 0)
goto err;
ret = parse_int_file("/sys/devices/system/cpu/cpu%d/topology/core_siblings_list", i);
if (ret < 0)
goto err;
- else if (ret == cpu->core_id)
+ else if (ret == i)
cpu->first_core_in_package = 1;
ret = get_threads_on_core(i);
num_threads = ret;
if (num_threads > max_thread_id)
max_thread_id = num_threads;
- if (num_threads > 1) {
- ret = parse_int_file("/sys/devices/system/cpu/cpu%d/topology/thread_siblings_list", i);
- if (ret < 0)
- goto err;
- else if (ret == num_threads)
- cpu->first_thread_in_core = 1;
- }
+ ret = parse_int_file("/sys/devices/system/cpu/cpu%d/topology/thread_siblings_list", i);
+ if (ret < 0)
+ goto err;
+ else if (ret == i)
+ cpu->first_thread_in_core = 1;
+
DEBUG("cpu %d pkg %d core %d\n",
i, cpu->package_id, cpu->core_id);
}