diff options
author | Ahmed S. Darwish <darwish.07@gmail.com> | 2007-01-05 05:44:54 +0200 |
---|---|---|
committer | Dave Jones <davej@redhat.com> | 2007-01-29 00:06:27 -0500 |
commit | 0142f9dce8425da031d72dc3b70ee7161fcaaea2 (patch) | |
tree | e311911a8eda0b3608f567090714bd742bda07bf /drivers/cpufreq | |
parent | 5263bf65d6342e12ab716db8e529501670979321 (diff) | |
download | lwn-0142f9dce8425da031d72dc3b70ee7161fcaaea2.tar.gz lwn-0142f9dce8425da031d72dc3b70ee7161fcaaea2.zip |
[CPUFREQ] check sysfs_create_link return value
Trivial patch to check sysfs_create_link return values.
Fail gracefully if needed.
Signed-off-by: Ahmed Darwish <darwish.07@gmail.com>
Signed-off-by: Dave Jones <davej@redhat.com>
Diffstat (limited to 'drivers/cpufreq')
-rw-r--r-- | drivers/cpufreq/cpufreq.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c index d91330432ba2..a45cc89e387a 100644 --- a/drivers/cpufreq/cpufreq.c +++ b/drivers/cpufreq/cpufreq.c @@ -722,8 +722,13 @@ static int cpufreq_add_dev (struct sys_device * sys_dev) spin_unlock_irqrestore(&cpufreq_driver_lock, flags); dprintk("CPU already managed, adding link\n"); - sysfs_create_link(&sys_dev->kobj, - &managed_policy->kobj, "cpufreq"); + ret = sysfs_create_link(&sys_dev->kobj, + &managed_policy->kobj, + "cpufreq"); + if (ret) { + mutex_unlock(&policy->lock); + goto err_out_driver_exit; + } cpufreq_debug_enable_ratelimit(); mutex_unlock(&policy->lock); @@ -770,8 +775,12 @@ static int cpufreq_add_dev (struct sys_device * sys_dev) dprintk("CPU %u already managed, adding link\n", j); cpufreq_cpu_get(cpu); cpu_sys_dev = get_cpu_sysdev(j); - sysfs_create_link(&cpu_sys_dev->kobj, &policy->kobj, - "cpufreq"); + ret = sysfs_create_link(&cpu_sys_dev->kobj, &policy->kobj, + "cpufreq"); + if (ret) { + mutex_unlock(&policy->lock); + goto err_out_unregister; + } } policy->governor = NULL; /* to assure that the starting sequence is |