coresight: 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: Mathieu Poirier <mathieu.poirier@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
a93e7b3315
commit
a7082daac8
|
@ -1026,8 +1026,10 @@ struct coresight_device *coresight_register(struct coresight_desc *desc)
|
||||||
dev_set_name(&csdev->dev, "%s", desc->pdata->name);
|
dev_set_name(&csdev->dev, "%s", desc->pdata->name);
|
||||||
|
|
||||||
ret = device_register(&csdev->dev);
|
ret = device_register(&csdev->dev);
|
||||||
if (ret)
|
if (ret) {
|
||||||
goto err_device_register;
|
put_device(&csdev->dev);
|
||||||
|
goto err_kzalloc_csdev;
|
||||||
|
}
|
||||||
|
|
||||||
mutex_lock(&coresight_mutex);
|
mutex_lock(&coresight_mutex);
|
||||||
|
|
||||||
|
@ -1038,8 +1040,6 @@ struct coresight_device *coresight_register(struct coresight_desc *desc)
|
||||||
|
|
||||||
return csdev;
|
return csdev;
|
||||||
|
|
||||||
err_device_register:
|
|
||||||
kfree(conns);
|
|
||||||
err_kzalloc_conns:
|
err_kzalloc_conns:
|
||||||
kfree(refcnts);
|
kfree(refcnts);
|
||||||
err_kzalloc_refcnts:
|
err_kzalloc_refcnts:
|
||||||
|
|
Loading…
Reference in New Issue