diff options
author | Arvind Yadav <arvind.yadav.cs@gmail.com> | 2018-03-08 04:36:07 -0500 |
---|---|---|
committer | Bjorn Andersson <bjorn.andersson@linaro.org> | 2018-03-18 00:45:57 -0400 |
commit | a9011726c4bb37e5d6a7279bf47fcc19cd9d3e1a (patch) | |
tree | f85ce090085c45c50f2c6f895a2f2c3861d98794 | |
parent | 7928b2cbe55b2a410a0f5c1f154610059c57b1b2 (diff) |
rpmsg: glink: use put_device() if device_register fail
if device_register() returned an error! Always use put_device()
to give up the reference initialized. And unregister device for
other return error.
Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
-rw-r--r-- | drivers/rpmsg/qcom_glink_smem.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/rpmsg/qcom_glink_smem.c b/drivers/rpmsg/qcom_glink_smem.c index 892f2b92a4d8..3fa9d43e2c87 100644 --- a/drivers/rpmsg/qcom_glink_smem.c +++ b/drivers/rpmsg/qcom_glink_smem.c | |||
@@ -217,6 +217,7 @@ struct qcom_glink *qcom_glink_smem_register(struct device *parent, | |||
217 | ret = device_register(dev); | 217 | ret = device_register(dev); |
218 | if (ret) { | 218 | if (ret) { |
219 | pr_err("failed to register glink edge\n"); | 219 | pr_err("failed to register glink edge\n"); |
220 | put_device(dev); | ||
220 | return ERR_PTR(ret); | 221 | return ERR_PTR(ret); |
221 | } | 222 | } |
222 | 223 | ||
@@ -299,7 +300,7 @@ struct qcom_glink *qcom_glink_smem_register(struct device *parent, | |||
299 | return glink; | 300 | return glink; |
300 | 301 | ||
301 | err_put_dev: | 302 | err_put_dev: |
302 | put_device(dev); | 303 | device_unregister(dev); |
303 | 304 | ||
304 | return ERR_PTR(ret); | 305 | return ERR_PTR(ret); |
305 | } | 306 | } |