|
@@ -594,17 +594,19 @@ struct devfreq *devfreq_add_device(struct device *dev,
|
|
if (devfreq->governor)
|
|
if (devfreq->governor)
|
|
err = devfreq->governor->event_handler(devfreq,
|
|
err = devfreq->governor->event_handler(devfreq,
|
|
DEVFREQ_GOV_START, NULL);
|
|
DEVFREQ_GOV_START, NULL);
|
|
- mutex_unlock(&devfreq_list_lock);
|
|
|
|
if (err) {
|
|
if (err) {
|
|
dev_err(dev, "%s: Unable to start governor for the device\n",
|
|
dev_err(dev, "%s: Unable to start governor for the device\n",
|
|
__func__);
|
|
__func__);
|
|
goto err_init;
|
|
goto err_init;
|
|
}
|
|
}
|
|
|
|
+ mutex_unlock(&devfreq_list_lock);
|
|
|
|
|
|
return devfreq;
|
|
return devfreq;
|
|
|
|
|
|
err_init:
|
|
err_init:
|
|
list_del(&devfreq->node);
|
|
list_del(&devfreq->node);
|
|
|
|
+ mutex_unlock(&devfreq_list_lock);
|
|
|
|
+
|
|
device_unregister(&devfreq->dev);
|
|
device_unregister(&devfreq->dev);
|
|
err_out:
|
|
err_out:
|
|
return ERR_PTR(err);
|
|
return ERR_PTR(err);
|