diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2008-02-21 16:21:52 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2008-02-21 16:21:52 -0800 |
commit | e6364cd3a1a3e7c3e9a80bad15698afe6cc7ee75 (patch) | |
tree | ce8d5b1ba0e246c32b232a09a713cf49d999971d /drivers/base | |
parent | b8967d8883aadf36351b568c1f1301ad3f46fc3d (diff) | |
parent | 120fc3d77acfd91f3521737a440d42839c475982 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-2.6:
modules: do not try to add sysfs attributes if !CONFIG_SYSFS
POWERPC: fix typo in pseries/power.c
PM: Remove unbalanced mutex_unlock() from dpm_resume()
UIO: fix Greg's stupid changes
stable_kernel_rules: fix must already be in mainline
ide: mark "ide=reverse" option as obsolete
Driver core: Fix error handling in bus_add_driver().
driver-core: fix kernel-doc function parameters
cpufreq: fix kobject reference count handling
slabinfo: fall back from /sys/kernel/slab to /sys/slab
Fix broken utf-8 encodings in ja_JP translation of stable_kernel_rules.txt
Diffstat (limited to 'drivers/base')
-rw-r--r-- | drivers/base/bus.c | 9 | ||||
-rw-r--r-- | drivers/base/driver.c | 3 | ||||
-rw-r--r-- | drivers/base/power/main.c | 2 |
3 files changed, 9 insertions, 5 deletions
diff --git a/drivers/base/bus.c b/drivers/base/bus.c index 055989e9479..2d207ad3033 100644 --- a/drivers/base/bus.c +++ b/drivers/base/bus.c @@ -658,9 +658,10 @@ int bus_add_driver(struct device_driver *drv) pr_debug("bus: '%s': add driver %s\n", bus->name, drv->name); priv = kzalloc(sizeof(*priv), GFP_KERNEL); - if (!priv) - return -ENOMEM; - + if (!priv) { + error = -ENOMEM; + goto out_put_bus; + } klist_init(&priv->klist_devices, NULL, NULL); priv->driver = drv; drv->p = priv; @@ -668,7 +669,7 @@ int bus_add_driver(struct device_driver *drv) error = kobject_init_and_add(&priv->kobj, &driver_ktype, NULL, "%s", drv->name); if (error) - goto out_put_bus; + goto out_unregister; if (drv->bus->p->drivers_autoprobe) { error = driver_attach(drv); diff --git a/drivers/base/driver.c b/drivers/base/driver.c index ba75184c653..bf31a0170a4 100644 --- a/drivers/base/driver.c +++ b/drivers/base/driver.c @@ -120,6 +120,9 @@ EXPORT_SYMBOL_GPL(driver_remove_file); /** * driver_add_kobj - add a kobject below the specified driver + * @drv: requesting device driver + * @kobj: kobject to add below this driver + * @fmt: format string that names the kobject * * You really don't want to do this, this is only here due to one looney * iseries driver, go poke those developers if you are annoyed about diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c index bdc03f7e842..cea5ed3919c 100644 --- a/drivers/base/power/main.c +++ b/drivers/base/power/main.c @@ -479,7 +479,6 @@ static int dpm_suspend(pm_message_t state) mutex_lock(&dpm_list_mtx); if (list_empty(&dev->power.entry)) list_add(&dev->power.entry, &dpm_locked); - mutex_unlock(&dpm_list_mtx); break; } mutex_lock(&dpm_list_mtx); @@ -523,6 +522,7 @@ static void lock_all_devices(void) /** * device_suspend - Save state and stop all devices in system. + * @state: new power management state * * Prevent new devices from being registered, then lock all devices * and suspend them. |