diff options
Diffstat (limited to 'drivers/base')
-rw-r--r-- | drivers/base/core.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/base/core.c b/drivers/base/core.c index 365f709715ef..41f3dca55cd0 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c | |||
@@ -809,8 +809,10 @@ int device_rename(struct device *dev, char *new_name) | |||
809 | 809 | ||
810 | if (dev->class) { | 810 | if (dev->class) { |
811 | old_symlink_name = kmalloc(BUS_ID_SIZE, GFP_KERNEL); | 811 | old_symlink_name = kmalloc(BUS_ID_SIZE, GFP_KERNEL); |
812 | if (!old_symlink_name) | 812 | if (!old_symlink_name) { |
813 | return -ENOMEM; | 813 | error = -ENOMEM; |
814 | goto out_free_old_class; | ||
815 | } | ||
814 | strlcpy(old_symlink_name, dev->bus_id, BUS_ID_SIZE); | 816 | strlcpy(old_symlink_name, dev->bus_id, BUS_ID_SIZE); |
815 | } | 817 | } |
816 | 818 | ||
@@ -834,9 +836,10 @@ int device_rename(struct device *dev, char *new_name) | |||
834 | } | 836 | } |
835 | put_device(dev); | 837 | put_device(dev); |
836 | 838 | ||
837 | kfree(old_class_name); | ||
838 | kfree(new_class_name); | 839 | kfree(new_class_name); |
839 | kfree(old_symlink_name); | 840 | kfree(old_symlink_name); |
841 | out_free_old_class: | ||
842 | kfree(old_class_name); | ||
840 | 843 | ||
841 | return error; | 844 | return error; |
842 | } | 845 | } |