diff options
| -rw-r--r-- | drivers/pinctrl/freescale/pinctrl-imx1-core.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/pinctrl/freescale/pinctrl-imx1-core.c b/drivers/pinctrl/freescale/pinctrl-imx1-core.c index 88a7fac11bd4..acaf84cadca3 100644 --- a/drivers/pinctrl/freescale/pinctrl-imx1-core.c +++ b/drivers/pinctrl/freescale/pinctrl-imx1-core.c | |||
| @@ -538,8 +538,10 @@ static int imx1_pinctrl_parse_functions(struct device_node *np, | |||
| 538 | func->groups[i] = child->name; | 538 | func->groups[i] = child->name; |
| 539 | grp = &info->groups[grp_index++]; | 539 | grp = &info->groups[grp_index++]; |
| 540 | ret = imx1_pinctrl_parse_groups(child, grp, info, i++); | 540 | ret = imx1_pinctrl_parse_groups(child, grp, info, i++); |
| 541 | if (ret == -ENOMEM) | 541 | if (ret == -ENOMEM) { |
| 542 | of_node_put(child); | ||
| 542 | return ret; | 543 | return ret; |
| 544 | } | ||
| 543 | } | 545 | } |
| 544 | 546 | ||
| 545 | return 0; | 547 | return 0; |
| @@ -582,8 +584,10 @@ static int imx1_pinctrl_parse_dt(struct platform_device *pdev, | |||
| 582 | 584 | ||
| 583 | for_each_child_of_node(np, child) { | 585 | for_each_child_of_node(np, child) { |
| 584 | ret = imx1_pinctrl_parse_functions(child, info, ifunc++); | 586 | ret = imx1_pinctrl_parse_functions(child, info, ifunc++); |
| 585 | if (ret == -ENOMEM) | 587 | if (ret == -ENOMEM) { |
| 588 | of_node_put(child); | ||
| 586 | return -ENOMEM; | 589 | return -ENOMEM; |
| 590 | } | ||
| 587 | } | 591 | } |
| 588 | 592 | ||
| 589 | return 0; | 593 | return 0; |
