|
@@ -469,9 +469,17 @@ void __init smp_setup_cpu_maps(void)
|
|
|
}
|
|
|
|
|
|
for (j = 0; j < nthreads && cpu < nr_cpu_ids; j++) {
|
|
|
+ bool avail;
|
|
|
+
|
|
|
DBG(" thread %d -> cpu %d (hard id %d)\n",
|
|
|
j, cpu, be32_to_cpu(intserv[j]));
|
|
|
- set_cpu_present(cpu, of_device_is_available(dn));
|
|
|
+
|
|
|
+ avail = of_device_is_available(dn);
|
|
|
+ if (!avail)
|
|
|
+ avail = !of_property_match_string(dn,
|
|
|
+ "enable-method", "spin-table");
|
|
|
+
|
|
|
+ set_cpu_present(cpu, avail);
|
|
|
set_hard_smp_processor_id(cpu, be32_to_cpu(intserv[j]));
|
|
|
set_cpu_possible(cpu, true);
|
|
|
cpu++;
|