pinctrl: pinctrl-imx: fix map setting problem if NO_PAD_CTL is set
Subsystems (2)
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.
---
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
@@ -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
PATCH v2 1/1 pinctrl: pinctrl-imx: fix map setting problem if NO_PAD_CTL is set
Quoted 8 lines · Hui Wang
new_mapis allocated according tomap_numinstead ofgrp->npins, if a pin or some pins of a group hasNO_PAD_CTLproperty, themap_numand thegrp->npinare different definitely.When we set mapping information to the new_map[], we should skip those pins with
NO_PAD_CTLfrom 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]>Signed-off-by Hui Wang <[email protected]>---
In the v2, according to dong.aisheng's suggestion, change to use j as index.
Thanks
Regards
Dong Aisheng
PATCH v2 1/1 pinctrl: pinctrl-imx: fix map setting problem if NO_PAD_CTL is set
In reply to Hui WangQuoted 8 lines · Hui Wang
new_mapis allocated according tomap_numinstead ofgrp->npins, if a pin or some pins of a group hasNO_PAD_CTLproperty, themap_numand thegrp->npinare different definitely.When we set mapping information to the new_map[], we should skip those pins with
NO_PAD_CTLfrom 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]>Signed-off-by Hui Wang <[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
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_mapis allocated according tomap_numinstead ofgrp->npins, if a pin or some pins of a group hasNO_PAD_CTLproperty, themap_numand thegrp->npinare different definitely.When we set mapping information to the new_map[], we should skip those pins with
NO_PAD_CTLfrom 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]>Signed-off-by Hui Wang <[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
PATCH v2 1/1 pinctrl: pinctrl-imx: fix map setting problem if NO_PAD_CTL is set
In reply to Linus WalleijQuoted 17 lines · Linus Walleij
Quoted 8 lines · Hui Wang
new_mapis allocated according tomap_numinstead ofgrp->npins, if a pin or some pins of a group hasNO_PAD_CTLproperty, themap_numand thegrp->npinare different definitely.When we set mapping information to the new_map[], we should skip those pins with
NO_PAD_CTLfrom 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]>Signed-off-by Hui Wang <[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