]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Driver core: Fix cleanup in device_create_vargs().
authorCornelia Huck <cornelia.huck@de.ibm.com>
Thu, 16 Oct 2008 22:05:05 +0000 (22:05 +0000)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 22 Oct 2008 21:21:01 +0000 (14:21 -0700)
commit 286661b3777897220ecfcd774bccc68a34667f39 upstream

If device_register() in device_create_vargs() fails, the device
must be cleaned up with put_device() (which is also fine on NULL)
instead of kfree().

Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/base/core.c

index d021c98605b3a1fe7e7dcd5f61e9e456b2a16aae..94aee9d68a03b06d1216dbc43d6c269156160d11 100644 (file)
@@ -1243,7 +1243,7 @@ struct device *device_create_vargs(struct class *class, struct device *parent,
        return dev;
 
 error:
-       kfree(dev);
+       put_device(dev);
        return ERR_PTR(retval);
 }
 EXPORT_SYMBOL_GPL(device_create_vargs);