|
@@ -625,7 +625,8 @@ struct devfreq *devfreq_add_device(struct device *dev,
|
|
err = device_register(&devfreq->dev);
|
|
err = device_register(&devfreq->dev);
|
|
if (err) {
|
|
if (err) {
|
|
mutex_unlock(&devfreq->lock);
|
|
mutex_unlock(&devfreq->lock);
|
|
- goto err_dev;
|
|
|
|
|
|
+ put_device(&devfreq->dev);
|
|
|
|
+ goto err_out;
|
|
}
|
|
}
|
|
|
|
|
|
devfreq->trans_table =
|
|
devfreq->trans_table =
|
|
@@ -672,6 +673,7 @@ err_init:
|
|
mutex_unlock(&devfreq_list_lock);
|
|
mutex_unlock(&devfreq_list_lock);
|
|
|
|
|
|
device_unregister(&devfreq->dev);
|
|
device_unregister(&devfreq->dev);
|
|
|
|
+ devfreq = NULL;
|
|
err_dev:
|
|
err_dev:
|
|
if (devfreq)
|
|
if (devfreq)
|
|
kfree(devfreq);
|
|
kfree(devfreq);
|