|
@@ -107,8 +107,10 @@ static int mxs_dt_node_to_map(struct pinctrl_dev *pctldev,
|
|
|
|
|
|
/* Compose group name */
|
|
|
group = kzalloc(length, GFP_KERNEL);
|
|
|
- if (!group)
|
|
|
- return -ENOMEM;
|
|
|
+ if (!group) {
|
|
|
+ ret = -ENOMEM;
|
|
|
+ goto free;
|
|
|
+ }
|
|
|
snprintf(group, length, "%s.%d", np->name, reg);
|
|
|
new_map[i].data.mux.group = group;
|
|
|
i++;
|
|
@@ -118,7 +120,7 @@ static int mxs_dt_node_to_map(struct pinctrl_dev *pctldev,
|
|
|
pconfig = kmemdup(&config, sizeof(config), GFP_KERNEL);
|
|
|
if (!pconfig) {
|
|
|
ret = -ENOMEM;
|
|
|
- goto free;
|
|
|
+ goto free_group;
|
|
|
}
|
|
|
|
|
|
new_map[i].type = PIN_MAP_TYPE_CONFIGS_GROUP;
|
|
@@ -133,6 +135,9 @@ static int mxs_dt_node_to_map(struct pinctrl_dev *pctldev,
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
+free_group:
|
|
|
+ if (!purecfg)
|
|
|
+ free(group);
|
|
|
free:
|
|
|
kfree(new_map);
|
|
|
return ret;
|