|
@@ -710,6 +710,10 @@ static int register_cpu_online(unsigned int cpu)
|
|
|
struct device_attribute *attrs, *pmc_attrs;
|
|
|
int i, nattrs;
|
|
|
|
|
|
+ /* For cpus present at boot a reference was already grabbed in register_cpu() */
|
|
|
+ if (!s->of_node)
|
|
|
+ s->of_node = of_get_cpu_node(cpu, NULL);
|
|
|
+
|
|
|
#ifdef CONFIG_PPC64
|
|
|
if (cpu_has_feature(CPU_FTR_SMT))
|
|
|
device_create_file(s, &dev_attr_smt_snooze_delay);
|
|
@@ -864,6 +868,8 @@ static int unregister_cpu_online(unsigned int cpu)
|
|
|
}
|
|
|
#endif
|
|
|
cacheinfo_cpu_offline(cpu);
|
|
|
+ of_node_put(s->of_node);
|
|
|
+ s->of_node = NULL;
|
|
|
#endif /* CONFIG_HOTPLUG_CPU */
|
|
|
return 0;
|
|
|
}
|