On Wed, Jan 20, 2010 at 05:44:41PM +1100, Stephen Rothwell wrote: > Hi Greg, > > On Wed, 20 Jan 2010 17:25:43 +1100 Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote: > > > > (lines 262-266) > > static struct sysdev_class_attribute *cpu_sysdev_class_attrs[] = { > > #ifdef CONFIG_ARCH_CPU_PROBE_RELEASE > > &class_attr_probe.attr, > > &class_attr_release.attr, > > #endif > > The reason you may not see this is because CONFIG_ARCH_CPU_PROBE_RELEASE > is not set for x86_64 allmodconfig builds (and probably many others). Ah, you are right, I was focusing on the lines after this. Here's a patch that I just applied to my tree to hopefully resolve this issue. thanks, greg k-h ---------- From: Greg Kroah-Hartman <gregkh@xxxxxxx> Subject: sysdev: fix up the probe/release attributes These should be sysdev attributes, not class attributes. This patch should resolve the problem. Thanks to Stephen Rothwell for pointing out the problem. Reported-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> Cc: Andi Kleen <andi@xxxxxxxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxx> --- drivers/base/cpu.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) --- a/drivers/base/cpu.c +++ b/drivers/base/cpu.c @@ -79,24 +79,24 @@ void unregister_cpu(struct cpu *cpu) } #ifdef CONFIG_ARCH_CPU_PROBE_RELEASE -static ssize_t cpu_probe_store(struct class *class, - struct class_attribute *attr, +static ssize_t cpu_probe_store(struct sys_device *dev, + struct sysdev_attribute *attr, const char *buf, size_t count) { return arch_cpu_probe(buf, count); } -static ssize_t cpu_release_store(struct class *class, - struct class_attribute *attr, +static ssize_t cpu_release_store(struct sys_device *dev, + struct sysdev_attribute *attr, const char *buf, size_t count) { return arch_cpu_release(buf, count); } -static CLASS_ATTR(probe, S_IWUSR, NULL, cpu_probe_store); -static CLASS_ATTR(release, S_IWUSR, NULL, cpu_release_store); +static SYSDEV_ATTR(probe, S_IWUSR, NULL, cpu_probe_store); +static SYSDEV_ATTR(release, S_IWUSR, NULL, cpu_release_store); #endif /* CONFIG_ARCH_CPU_PROBE_RELEASE */ #else /* ... !CONFIG_HOTPLUG_CPU */ @@ -261,8 +261,8 @@ int __init cpu_dev_init(void) static struct sysdev_class_attribute *cpu_sysdev_class_attrs[] = { #ifdef CONFIG_ARCH_CPU_PROBE_RELEASE - &class_attr_probe.attr, - &class_attr_release.attr, + &attr_probe.attr, + &attr_release.attr, #endif &cpu_attrs[0].attr, &cpu_attrs[1].attr, -- To unsubscribe from this list: send the line "unsubscribe linux-next" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html