2013/04/19 1:32, KOSAKI Motohiro wrote:
#ifdef CONFIG_HOTPLUG_CPU +static void change_cpu_under_node(struct cpu *cpu, + unsigned int from_nid, unsigned int to_nid) +{ + int cpuid = cpu->dev.id; + unregister_cpu_under_node(cpuid, from_nid); + register_cpu_under_node(cpuid, to_nid); + cpu->node_id = to_nid; +} +
Where is stub for !CONFIG_HOTPLUG_CPU?
This function is called by only store_online(). And the store_online() is defined only when CONFIG_HOTPLUG_CPU enables. Thus change_cpu_under_node() is not necessary for !CONFIG_HOTPLUG_CPU.
static ssize_t show_online(struct device *dev, struct device_attribute *attr, char *buf) @@ -39,17 +48,23 @@ static ssize_t __ref store_online(struct device *dev, const char *buf, size_t count) { struct cpu *cpu = container_of(dev, struct cpu, dev); + int num = cpu->dev.id;
"num" is wrong name. cpuid may be better.
I'll update it.
+ int from_nid, to_nid; ssize_t ret; cpu_hotplug_driver_lock(); switch (buf[0]) { case '0': - ret = cpu_down(cpu->dev.id); + ret = cpu_down(num); if (!ret) kobject_uevent(&dev->kobj, KOBJ_OFFLINE); break; case '1': - ret = cpu_up(cpu->dev.id); + from_nid = cpu_to_node(num); + ret = cpu_up(num); + to_nid = cpu_to_node(num); + if (from_nid != to_nid) + change_cpu_under_node(cpu, from_nid, to_nid);You need to add several comments. this code is not straightforward.
O.K. I'll update it. Thanks, Yasuaki Ishimatsu -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

