aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/of/overlay.c15
1 files changed, 5 insertions, 10 deletions
diff --git a/drivers/of/overlay.c b/drivers/of/overlay.c
index bb3f123ed259..fcce5cdbe229 100644
--- a/drivers/of/overlay.c
+++ b/drivers/of/overlay.c
@@ -706,12 +706,11 @@ int of_overlay_apply(struct device_node *tree, int *ovcs_id)
706 } 706 }
707 707
708 of_overlay_mutex_lock(); 708 of_overlay_mutex_lock();
709 mutex_lock(&of_mutex);
709 710
710 ret = of_resolve_phandles(tree); 711 ret = of_resolve_phandles(tree);
711 if (ret) 712 if (ret)
712 goto err_overlay_unlock; 713 goto err_free_overlay_changeset;
713
714 mutex_lock(&of_mutex);
715 714
716 ret = init_overlay_changeset(ovcs, tree); 715 ret = init_overlay_changeset(ovcs, tree);
717 if (ret) 716 if (ret)
@@ -754,18 +753,14 @@ int of_overlay_apply(struct device_node *tree, int *ovcs_id)
754 ret = ret_tmp; 753 ret = ret_tmp;
755 } 754 }
756 755
757 mutex_unlock(&of_mutex); 756 goto out_unlock;
758 of_overlay_mutex_unlock();
759
760 goto out;
761
762err_overlay_unlock:
763 of_overlay_mutex_unlock();
764 757
765err_free_overlay_changeset: 758err_free_overlay_changeset:
766 free_overlay_changeset(ovcs); 759 free_overlay_changeset(ovcs);
767 760
761out_unlock:
768 mutex_unlock(&of_mutex); 762 mutex_unlock(&of_mutex);
763 of_overlay_mutex_unlock();
769 764
770out: 765out:
771 pr_debug("%s() err=%d\n", __func__, ret); 766 pr_debug("%s() err=%d\n", __func__, ret);