Commit 2885e25c authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman

driver core: cpu: remove kernel warning when removing a cpu

With the movement of the cpu sysdev code to be real stuct devices, now
when we remove a cpu from the system, the driver core rightfully
complains that there is not a release method for this device.

For now, paper over this issue by quieting the driver core, but comment
this in detail.  This will be resolved in future kernels to be solved
properly.
Reported-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Tested-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 62aa2b53
...@@ -208,6 +208,25 @@ static ssize_t print_cpus_offline(struct device *dev, ...@@ -208,6 +208,25 @@ static ssize_t print_cpus_offline(struct device *dev,
} }
static DEVICE_ATTR(offline, 0444, print_cpus_offline, NULL); static DEVICE_ATTR(offline, 0444, print_cpus_offline, NULL);
static void cpu_device_release(struct device *dev)
{
/*
* This is an empty function to prevent the driver core from spitting a
* warning at us. Yes, I know this is directly opposite of what the
* documentation for the driver core and kobjects say, and the author
* of this code has already been publically ridiculed for doing
* something as foolish as this. However, at this point in time, it is
* the only way to handle the issue of statically allocated cpu
* devices. The different architectures will have their cpu device
* code reworked to properly handle this in the near future, so this
* function will then be changed to correctly free up the memory held
* by the cpu device.
*
* Never copy this way of doing things, or you too will be made fun of
* on the linux-kerenl list, you have been warned.
*/
}
/* /*
* register_cpu - Setup a sysfs device for a CPU. * register_cpu - Setup a sysfs device for a CPU.
* @cpu - cpu->hotpluggable field set to 1 will generate a control file in * @cpu - cpu->hotpluggable field set to 1 will generate a control file in
...@@ -223,6 +242,7 @@ int __cpuinit register_cpu(struct cpu *cpu, int num) ...@@ -223,6 +242,7 @@ int __cpuinit register_cpu(struct cpu *cpu, int num)
cpu->node_id = cpu_to_node(num); cpu->node_id = cpu_to_node(num);
cpu->dev.id = num; cpu->dev.id = num;
cpu->dev.bus = &cpu_subsys; cpu->dev.bus = &cpu_subsys;
cpu->dev.release = cpu_device_release;
error = device_register(&cpu->dev); error = device_register(&cpu->dev);
if (!error && cpu->hotpluggable) if (!error && cpu->hotpluggable)
register_cpu_control(cpu); register_cpu_control(cpu);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment