[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <1326055714.13595.309.camel@deadeye>
Date: Sun, 08 Jan 2012 20:48:34 +0000
From: Ben Hutchings <ben@...adent.org.uk>
To: Greg Kroah-Hartman <gregkh@...e.de>
Cc: Linus Torvalds <torvalds@...ux-foundation.org>,
Geert Uytterhoeven <geert@...ux-m68k.org>,
Andrew Morton <akpm@...ux-foundation.org>,
linux-kernel@...r.kernel.org,
Linux-Arch <linux-arch@...r.kernel.org>,
Thorsten Glaser <tg@...bsd.de>,
Debian kernel team <debian-kernel@...ts.debian.org>,
linux-m68k@...r.kernel.org, debian-68k@...ts.debian.org
Subject: [PATCH 1/2] topology: Check for missing CPU devices
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@...adent.org.uk>
---
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-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists