Commit ccbc60d3e19a1b6ae66ca0d89b3da02dde62088b ('topology: Provide CPU topology in sysfs in !SMP configurations') causes a crash at boot on a several architectures. The topology sysfs code assumes that there is a CPU device for each online CPU whereas some architectures that do not support SMP or cpufreq do not register any CPU devices. Check for this before trying to use a device. Signed-off-by: Ben Hutchings <ben@xxxxxxxxxxxxxxx> --- drivers/base/topology.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/drivers/base/topology.c b/drivers/base/topology.c index ae989c5..4467c85 100644 --- a/drivers/base/topology.c +++ b/drivers/base/topology.c @@ -147,6 +147,8 @@ static int __cpuinit topology_add_dev(unsigned int cpu) { struct device *dev = get_cpu_device(cpu); + if (!dev) + return -ENODEV; return sysfs_create_group(&dev->kobj, &topology_attr_group); } @@ -154,7 +156,8 @@ static void __cpuinit topology_remove_dev(unsigned int cpu) { struct device *dev = get_cpu_device(cpu); - sysfs_remove_group(&dev->kobj, &topology_attr_group); + if (dev) + sysfs_remove_group(&dev->kobj, &topology_attr_group); } static int __cpuinit topology_cpu_callback(struct notifier_block *nfb, -- 1.7.8.2 -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html