diff options
Diffstat (limited to 'drivers/base/topology.c')
| -rw-r--r-- | drivers/base/topology.c | 16 | 
1 files changed, 9 insertions, 7 deletions
diff --git a/drivers/base/topology.c b/drivers/base/topology.c index 94ffee378f1..be7c1fb7c0c 100644 --- a/drivers/base/topology.c +++ b/drivers/base/topology.c @@ -23,7 +23,6 @@   * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.   *   */ -#include <linux/init.h>  #include <linux/mm.h>  #include <linux/cpu.h>  #include <linux/module.h> @@ -40,8 +39,7 @@  static ssize_t show_##name(struct device *dev,			\  		struct device_attribute *attr, char *buf)	\  {								\ -	unsigned int cpu = dev->id;				\ -	return sprintf(buf, "%d\n", topology_##name(cpu));	\ +	return sprintf(buf, "%d\n", topology_##name(dev->id));	\  }  #if defined(topology_thread_cpumask) || defined(topology_core_cpumask) || \ @@ -161,16 +159,20 @@ static int topology_cpu_callback(struct notifier_block *nfb,  static int topology_sysfs_init(void)  {  	int cpu; -	int rc; +	int rc = 0; + +	cpu_notifier_register_begin();  	for_each_online_cpu(cpu) {  		rc = topology_add_dev(cpu);  		if (rc) -			return rc; +			goto out;  	} -	hotcpu_notifier(topology_cpu_callback, 0); +	__hotcpu_notifier(topology_cpu_callback, 0); -	return 0; +out: +	cpu_notifier_register_done(); +	return rc;  }  device_initcall(topology_sysfs_init);  | 
