From: Arvind Yadav arvind.yadav.cs@gmail.com
[ Upstream commit a9011726c4bb37e5d6a7279bf47fcc19cd9d3e1a ]
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 Signed-off-by: Lee Jones lee.jones@linaro.org --- drivers/rpmsg/qcom_glink_smem.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/rpmsg/qcom_glink_smem.c b/drivers/rpmsg/qcom_glink_smem.c index 53b3a43160f47..b1c15c64cdec3 100644 --- a/drivers/rpmsg/qcom_glink_smem.c +++ b/drivers/rpmsg/qcom_glink_smem.c @@ -216,6 +216,7 @@ struct qcom_glink *qcom_glink_smem_register(struct device *parent, ret = device_register(dev); if (ret) { pr_err("failed to register glink edge\n"); + put_device(dev); return ERR_PTR(ret); }
@@ -298,7 +299,7 @@ struct qcom_glink *qcom_glink_smem_register(struct device *parent, return glink;
err_put_dev: - put_device(dev); + device_unregister(dev);
return ERR_PTR(ret); }