|
|
@@ -133,9 +133,16 @@ static int try_to_bring_up_master(struct master *master,
|
|
|
goto out;
|
|
|
}
|
|
|
|
|
|
+ if (!devres_open_group(master->dev, NULL, GFP_KERNEL)) {
|
|
|
+ ret = -ENOMEM;
|
|
|
+ goto out;
|
|
|
+ }
|
|
|
+
|
|
|
/* Found all components */
|
|
|
ret = master->ops->bind(master->dev);
|
|
|
if (ret < 0) {
|
|
|
+ devres_release_group(master->dev, NULL);
|
|
|
+ dev_info(master->dev, "master bind failed: %d\n", ret);
|
|
|
master_remove_components(master);
|
|
|
goto out;
|
|
|
}
|
|
|
@@ -166,6 +173,7 @@ static void take_down_master(struct master *master)
|
|
|
{
|
|
|
if (master->bound) {
|
|
|
master->ops->unbind(master->dev);
|
|
|
+ devres_release_group(master->dev, NULL);
|
|
|
master->bound = false;
|
|
|
}
|
|
|
|