|
@@ -43,11 +43,14 @@ static int __ref cpu_subsys_online(struct device *dev)
|
|
|
struct cpu *cpu = container_of(dev, struct cpu, dev);
|
|
|
int cpuid = dev->id;
|
|
|
int from_nid, to_nid;
|
|
|
- int ret;
|
|
|
+ int ret = -ENODEV;
|
|
|
|
|
|
cpu_hotplug_driver_lock();
|
|
|
|
|
|
from_nid = cpu_to_node(cpuid);
|
|
|
+ if (from_nid == NUMA_NO_NODE)
|
|
|
+ goto out;
|
|
|
+
|
|
|
ret = cpu_up(cpuid);
|
|
|
/*
|
|
|
* When hot adding memory to memoryless node and enabling a cpu
|
|
@@ -57,6 +60,7 @@ static int __ref cpu_subsys_online(struct device *dev)
|
|
|
if (from_nid != to_nid)
|
|
|
change_cpu_under_node(cpu, from_nid, to_nid);
|
|
|
|
|
|
+ out:
|
|
|
cpu_hotplug_driver_unlock();
|
|
|
return ret;
|
|
|
}
|