Skip to contentSkip to conversation

pinctrl: pinctrl-imx: fix map setting problem if NO_PAD_CTL is set

PATCH Superseded Hui Wang 3 participants 5 messages Jun 20, 2012 – Jun 21, 2012

Subsystems (2)
lore
Share & tools
lore

Hui Wang

author
#0 lore raw

PATCH v2 1/1 pinctrl: pinctrl-imx: fix map setting problem if NO_PAD_CTL is set

new_map is allocated according to map_num instead of grp->npins, if a pin or some pins of a group has NO_PAD_CTL property, the map_num and the grp->npin are different definitely.

When we set mapping information to the new_map[], we should skip those pins with NO_PAD_CTL from index, otherwise it is possible the driver will aceesss to a unallocated region.

Cc Dong Aisheng <[email protected]>
Cc Linus Walleij <[email protected]>
Cc Shawn Guo <[email protected]>

---
In the v2, according to dong.aisheng's suggestion, change to use j as index.

 drivers/pinctrl/pinctrl-imx.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)
drivers/pinctrl/pinctrl-imx.c +7 -6
index dd6d93a..2bafb5d 100644
@@ -146,7 +146,7 @@ static int imx_dt_node_to_map(struct pinctrl_dev *pctldev,
 	struct pinctrl_map *new_map;
 	struct device_node *parent;
 	int map_num = 1;
-	int i;
+	int i, j;
 
 	/*
 	 * first find the group of this node and check if we need create
@@ -184,13 +184,14 @@ static int imx_dt_node_to_map(struct pinctrl_dev *pctldev,
 
 	/* create config map */
 	new_map++;
-	for (i = 0; i < grp->npins; i++) {
+	for (i = j = 0; i < grp->npins; i++) {
 		if (!(grp->configs[i] & IMX_NO_PAD_CTL)) {
-			new_map[i].type = PIN_MAP_TYPE_CONFIGS_PIN;
-			new_map[i].data.configs.group_or_pin =
+			new_map[j].type = PIN_MAP_TYPE_CONFIGS_PIN;
+			new_map[j].data.configs.group_or_pin =
 					pin_get_name(pctldev, grp->pins[i]);
-			new_map[i].data.configs.configs = &grp->configs[i];
-			new_map[i].data.configs.num_configs = 1;
+			new_map[j].data.configs.configs = &grp->configs[i];
+			new_map[j].data.configs.num_configs = 1;
+			j++;
 		}
 	}
 
Signature · 1 line
1.7.11
#1 lore raw

PATCH v2 1/1 pinctrl: pinctrl-imx: fix map setting problem if NO_PAD_CTL is set

Quoted 8 lines · Hui Wang

new_map is allocated according to map_num instead of grp->npins, if a pin or some pins of a group has NO_PAD_CTL property, the map_num and the grp->npin are different definitely.

When we set mapping information to the new_map[], we should skip those pins with NO_PAD_CTL from index, otherwise it is possible the driver will aceesss to a unallocated region.

Quoted 7 lines
Cc Dong Aisheng <[email protected]>
Cc Linus Walleij <[email protected]>
Cc Shawn Guo <[email protected]>

---
In the v2, according to dong.aisheng's suggestion, change to use j as index.

Thanks

Regards
Dong Aisheng

#2 lore raw

PATCH v2 1/1 pinctrl: pinctrl-imx: fix map setting problem if NO_PAD_CTL is set

In reply to Hui Wang
Quoted 8 lines · Hui Wang

new_map is allocated according to map_num instead of grp->npins, if a pin or some pins of a group has NO_PAD_CTL property, the map_num and the grp->npin are different definitely.

When we set mapping information to the new_map[], we should skip those pins with NO_PAD_CTL from index, otherwise it is possible the driver will aceesss to a unallocated region.

Quoted 6 lines
Cc Dong Aisheng <[email protected]>
Cc Linus Walleij <[email protected]>
Cc Shawn Guo <[email protected]>

---
In the v2, according to dong.aisheng's suggestion, change to use j as index.

OK applied this v2 version. Is this a serious bug fix that is causing regressions right now and needs to go into the -rc:s for v3.5 or can it wait for v3.6?

Thanks,
Linus Walleij

author
#3 lore raw

PATCH v2 1/1 pinctrl: pinctrl-imx: fix map setting problem if NO_PAD_CTL is set

Quoted 19 lines · Linus Walleij
Quoted 8 lines · Hui Wang

new_map is allocated according to map_num instead of grp->npins, if a pin or some pins of a group has NO_PAD_CTL property, the map_num and the grp->npin are different definitely.

When we set mapping information to the new_map[], we should skip those pins with NO_PAD_CTL from index, otherwise it is possible the driver will aceesss to a unallocated region.

Quoted 7 lines
Cc Dong Aisheng <[email protected]>
Cc Linus Walleij <[email protected]>
Cc Shawn Guo <[email protected]>

---
In the v2, according to dong.aisheng's suggestion, change to use j as index.

Quoted 4 lines

OK applied this v2 version. Is this a serious bug fix that is causing regressions right now and needs to go into the -rc:s for v3.5 or can it wait for v3.6?

It is a bug fix, but currently no {board}.dts can trigger this bug, so it can wait for v3.6.

Regards,
Hui.

Quoted 4 lines

Thanks,
Linus Walleij

#4 lore raw

PATCH v2 1/1 pinctrl: pinctrl-imx: fix map setting problem if NO_PAD_CTL is set

In reply to Linus Walleij
Quoted 17 lines · Linus Walleij
Quoted 8 lines · Hui Wang

new_map is allocated according to map_num instead of grp->npins, if a pin or some pins of a group has NO_PAD_CTL property, the map_num and the grp->npin are different definitely.

When we set mapping information to the new_map[], we should skip those pins with NO_PAD_CTL from index, otherwise it is possible the driver will aceesss to a unallocated region.

Quoted 6 lines
Cc Dong Aisheng <[email protected]>
Cc Linus Walleij <[email protected]>
Cc Shawn Guo <[email protected]>

---
In the v2, according to dong.aisheng's suggestion, change to use j as index.

Quoted 4 lines

OK applied this v2 version. Is this a serious bug fix that is causing regressions right now and needs to go into the -rc:s for v3.5 or can it wait for v3.6?

Yes, it's a serious bug fix.
Although still not triggered by current dts file but it did may block some legal using defined in binding doc.
So can it go into rc?

Regards
Dong Aisheng