|
@@ -325,9 +325,14 @@ static void __init smp_init_package_map(void)
|
|
|
* By not including this we'll sometimes over-estimate the number of
|
|
|
* logical packages by the amount of !present siblings, but this is
|
|
|
* still better than MAX_LOCAL_APIC.
|
|
|
+ *
|
|
|
+ * We use total_cpus not nr_cpu_ids because nr_cpu_ids can be limited
|
|
|
+ * on the command line leading to a similar issue as the HT disable
|
|
|
+ * problem because the hyperthreads are usually enumerated after the
|
|
|
+ * primary cores.
|
|
|
*/
|
|
|
ncpus = boot_cpu_data.x86_max_cores;
|
|
|
- __max_logical_packages = DIV_ROUND_UP(nr_cpu_ids, ncpus);
|
|
|
+ __max_logical_packages = DIV_ROUND_UP(total_cpus, ncpus);
|
|
|
|
|
|
/*
|
|
|
* Possibly larger than what we need as the number of apic ids per
|