diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/of/overlay.c | 15 |
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 | |||
762 | err_overlay_unlock: | ||
763 | of_overlay_mutex_unlock(); | ||
764 | 757 | ||
765 | err_free_overlay_changeset: | 758 | err_free_overlay_changeset: |
766 | free_overlay_changeset(ovcs); | 759 | free_overlay_changeset(ovcs); |
767 | 760 | ||
761 | out_unlock: | ||
768 | mutex_unlock(&of_mutex); | 762 | mutex_unlock(&of_mutex); |
763 | of_overlay_mutex_unlock(); | ||
769 | 764 | ||
770 | out: | 765 | out: |
771 | pr_debug("%s() err=%d\n", __func__, ret); | 766 | pr_debug("%s() err=%d\n", __func__, ret); |