diff options
author | Arvind Yadav <arvind.yadav.cs@gmail.com> | 2018-03-11 11:25:48 +0530 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2018-03-15 14:37:03 +0100 |
commit | ef49ec1dc35112b17f7e928aa08fcab60240bf1d (patch) | |
tree | b735a02ac7d941b7bb4b1403a500c6d0f89e5dc1 /drivers/base/soc.c | |
parent | 9de9a449482677a75f1edd2049268a7efc40fc96 (diff) |
base: soc: use put_device() instead of kfree()
Never directly free @dev after calling device_register(), even
if it returned an error! Always use put_device() to give up the
reference initialized.
Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/base/soc.c')
-rw-r--r-- | drivers/base/soc.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/base/soc.c b/drivers/base/soc.c index 4e80f48ad5d6..10b280f30217 100644 --- a/drivers/base/soc.c +++ b/drivers/base/soc.c @@ -150,6 +150,8 @@ struct soc_device *soc_device_register(struct soc_device_attribute *soc_dev_attr out3: ida_simple_remove(&soc_ida, soc_dev->soc_dev_num); + put_device(&soc_dev->dev); + soc_dev = NULL; out2: kfree(soc_dev); out1: |