On 31.07.19 22:46:34, Jeremy Linton wrote: > @@ -358,6 +356,10 @@ static int __init parse_acpi_topology(void) > if (topology_id < 0) > return topology_id; > > + is_threaded = acpi_pptt_cpu_is_thread(cpu); > + if (is_threaded < 0) > + is_threaded = read_cpuid_mpidr() & MPIDR_MT_BITMASK; > + I think the return code handling is error-prone, as in the kernel such functions are typically used like: if (something_is_thread) { ... } I see this is due to acpi and arch code separation so we cannot simply move the fallback to pptt code. So maybe we have a static function cpu_is_thread() in this file that handles all the logic and directly use check_acpi_cpu_flag() from there. However, code may change here in case of a rework as I suggested in patch #1. In both cases the acpi api is more straight then. -Robert > if (is_threaded) { > cpu_topology[cpu].thread_id = topology_id; > topology_id = find_acpi_cpu_topology(cpu, 1);