diff --git a/kernel/cpu.c b/kernel/cpu.c index f49bacc3982d..cf3381771974 100644 --- a/kernel/cpu.c +++ b/kernel/cpu.c @@ -547,6 +547,7 @@ void __weak arch_enable_nonboot_cpus_end(void) void __ref enable_nonboot_cpus(void) { int cpu, error; + struct device *cpu_device; /* Allow everyone to use the CPU hotplug again */ cpu_maps_update_begin(); @@ -562,6 +563,12 @@ void __ref enable_nonboot_cpus(void) error = _cpu_up(cpu, 1); if (!error) { printk(KERN_INFO "CPU%d is up\n", cpu); + cpu_device = get_cpu_device(cpu); + if (!cpu_device) + pr_err("%s: failed to get cpu%d device\n", + __func__, cpu); + else + kobject_uevent(&cpu_device->kobj, KOBJ_ONLINE); continue; } printk(KERN_WARNING "Error taking CPU%d up: %d\n", cpu, error);