|
@@ -1122,8 +1122,10 @@ static int at91_pinctrl_parse_functions(struct device_node *np,
|
|
func->groups[i] = child->name;
|
|
func->groups[i] = child->name;
|
|
grp = &info->groups[grp_index++];
|
|
grp = &info->groups[grp_index++];
|
|
ret = at91_pinctrl_parse_groups(child, grp, info, i++);
|
|
ret = at91_pinctrl_parse_groups(child, grp, info, i++);
|
|
- if (ret)
|
|
|
|
|
|
+ if (ret) {
|
|
|
|
+ of_node_put(child);
|
|
return ret;
|
|
return ret;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
return 0;
|
|
return 0;
|
|
@@ -1196,6 +1198,7 @@ static int at91_pinctrl_probe_dt(struct platform_device *pdev,
|
|
ret = at91_pinctrl_parse_functions(child, info, i++);
|
|
ret = at91_pinctrl_parse_functions(child, info, i++);
|
|
if (ret) {
|
|
if (ret) {
|
|
dev_err(&pdev->dev, "failed to parse function\n");
|
|
dev_err(&pdev->dev, "failed to parse function\n");
|
|
|
|
+ of_node_put(child);
|
|
return ret;
|
|
return ret;
|
|
}
|
|
}
|
|
}
|
|
}
|