diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-05-29 19:49:52 +0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-05-29 19:49:52 +0400 |
| commit | deeb103412efcf9313e2d1dfe892fed4e372b9e7 (patch) | |
| tree | 02beda159182e2fc8be3bdb2f73cca79e24fe168 /drivers/base/core.c | |
| parent | c8bce3d3bdedc7d187fa222a3b36d149bd940d0e (diff) | |
| parent | 5c8563d773c0e9f0ac2a552e84806decd98ce732 (diff) | |
| download | linux-deeb103412efcf9313e2d1dfe892fed4e372b9e7.tar.xz | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6:
Driver Core: do not oops when driver_unregister() is called for unregistered drivers
sysfs: file.c: use create_singlethread_workqueue()
Diffstat (limited to 'drivers/base/core.c')
| -rw-r--r-- | drivers/base/core.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/base/core.c b/drivers/base/core.c index 4aa527b8a913..1977d4beb89e 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -879,7 +879,7 @@ int device_add(struct device *dev) } if (!dev_name(dev)) - goto done; + goto name_error; pr_debug("device: '%s': %s\n", dev_name(dev), __func__); @@ -978,6 +978,9 @@ done: cleanup_device_parent(dev); if (parent) put_device(parent); +name_error: + kfree(dev->p); + dev->p = NULL; goto done; } |
