]> err.no Git - linux-2.6/blobdiff - drivers/base/cpu.c
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
[linux-2.6] / drivers / base / cpu.c
index bdd7e9f55c81fac3e19d76ddb376972211d48779..b79badd0f1588dea649df9033652f0f5d2afbacf 100644 (file)
@@ -16,9 +16,10 @@ struct sysdev_class cpu_sysdev_class = {
 EXPORT_SYMBOL(cpu_sysdev_class);
 
 #ifdef CONFIG_HOTPLUG_CPU
-#ifndef __HAVE_ARCH_SMP_PREPARE_CPU
-#define smp_prepare_cpu(cpu) (0)
-#endif
+int __attribute__((weak)) smp_prepare_cpu (int cpu)
+{
+       return 0;
+}
 
 static ssize_t show_online(struct sys_device *dev, char *buf)
 {
@@ -41,8 +42,10 @@ static ssize_t store_online(struct sys_device *dev, const char *buf,
                break;
        case '1':
                ret = smp_prepare_cpu(cpu->sysdev.id);
-               if (ret == 0)
+               if (!ret)
                        ret = cpu_up(cpu->sysdev.id);
+               if (!ret)
+                       kobject_hotplug(&dev->kobj, KOBJ_ONLINE);
                break;
        default:
                ret = -EINVAL;