Ok, both of the patches look sane to me, but it would really be nice to hear from somebody with the actual affected architectures, and get a tested-by. Testing it on hacked-up x86 sounds fine, but doesn't quite have the same kind of "yes, this fixes the actual problem" feel to it. Also, can you clarify: does the second patch make the first patch just an "irrelevant safety net", or are there possible callers of topology_add_dev() that could cause problems? I'm just wondering whether maybe the safety net ends up then possibly hiding some future bug where we (once more) don't register a cpu and then never really notice? Or am I just being difficult? Linus On Sun, Jan 8, 2012 at 12:48 PM, Ben Hutchings <ben@xxxxxxxxxxxxxxx> wrote: > 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