* [PATCH v1 0/1] Mediatek pinctrl patch
@ 2021-11-04 11:23 Zhiyong Tao
2021-11-04 11:23 ` [PATCH v1] pinctrl: mediatek: fix global-out-of-bounds issue Zhiyong Tao
0 siblings, 1 reply; 3+ messages in thread
From: Zhiyong Tao @ 2021-11-04 11:23 UTC (permalink / raw)
To: robh+dt, linus.walleij, mark.rutland, matthias.bgg, sean.wang
Cc: srv_heupstream, zhiyong.tao, hui.liu, light.hsieh, sean.wang,
seiya.wang, rex-bc.chen, devicetree, linux-kernel,
linux-arm-kernel, linux-mediatek, linux-gpio
This series includes 1 patches:
1. fix global-out-of-bounds issue.
Changes in patch v1:
1. change check eint number boundary condition.
Zhiyong Tao (1):
pinctrl: mediatek: fix global-out-of-bounds issue
drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
--
2.18.0
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH v1] pinctrl: mediatek: fix global-out-of-bounds issue
2021-11-04 11:23 [PATCH v1 0/1] Mediatek pinctrl patch Zhiyong Tao
@ 2021-11-04 11:23 ` Zhiyong Tao
2021-11-08 8:32 ` Chen-Yu Tsai
0 siblings, 1 reply; 3+ messages in thread
From: Zhiyong Tao @ 2021-11-04 11:23 UTC (permalink / raw)
To: robh+dt, linus.walleij, mark.rutland, matthias.bgg, sean.wang
Cc: srv_heupstream, zhiyong.tao, hui.liu, light.hsieh, sean.wang,
seiya.wang, rex-bc.chen, devicetree, linux-kernel,
linux-arm-kernel, linux-mediatek, linux-gpio, Guodong Liu
When eint virtual eint number is greater than gpio number,
it maybe produce 'desc[eint_n]' size globle-out-of-bounds issue.
Signed-off-by: Zhiyong Tao <zhiyong.tao@mediatek.com>
Signed-off-by: Guodong Liu <guodong.liu@mediatek.corp-partner.google.com>
---
drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c b/drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c
index 45ebdeba985a..12163d3c4bcb 100644
--- a/drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c
+++ b/drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c
@@ -285,8 +285,12 @@ static int mtk_xt_get_gpio_n(void *data, unsigned long eint_n,
desc = (const struct mtk_pin_desc *)hw->soc->pins;
*gpio_chip = &hw->chip;
- /* Be greedy to guess first gpio_n is equal to eint_n */
- if (desc[eint_n].eint.eint_n == eint_n)
+ /*
+ * Be greedy to guess first gpio_n is equal to eint_n.
+ * Only eint virtual eint number is greater than gpio number.
+ */
+ if (hw->soc->npins > eint_n &&
+ desc[eint_n].eint.eint_n == eint_n)
*gpio_n = eint_n;
else
*gpio_n = mtk_xt_find_eint_num(hw, eint_n);
--
2.25.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH v1] pinctrl: mediatek: fix global-out-of-bounds issue
2021-11-04 11:23 ` [PATCH v1] pinctrl: mediatek: fix global-out-of-bounds issue Zhiyong Tao
@ 2021-11-08 8:32 ` Chen-Yu Tsai
0 siblings, 0 replies; 3+ messages in thread
From: Chen-Yu Tsai @ 2021-11-08 8:32 UTC (permalink / raw)
To: Zhiyong Tao
Cc: robh+dt, linus.walleij, mark.rutland, matthias.bgg, sean.wang,
srv_heupstream, hui.liu, light.hsieh, sean.wang, seiya.wang,
rex-bc.chen, devicetree, linux-kernel, linux-arm-kernel,
linux-mediatek, linux-gpio, Guodong Liu
On Thu, Nov 4, 2021 at 7:24 PM Zhiyong Tao <zhiyong.tao@mediatek.com> wrote:
This should be tagged as v2. Your first submission, not tagged with any
version or RFC/RFT, is v1.
> When eint virtual eint number is greater than gpio number,
> it maybe produce 'desc[eint_n]' size globle-out-of-bounds issue.
>
> Signed-off-by: Zhiyong Tao <zhiyong.tao@mediatek.com>
> Signed-off-by: Guodong Liu <guodong.liu@mediatek.corp-partner.google.com>
Guodong's Signed-off-by here is confusing, as they are not the author nor
the submitter, and as far as the mailing list is concerned they have not
handled this patch either.
Looks like the original patch is from https://crrev.com/c/3233623 ?
It's customary to preserve the authorship and append your Signed-off-by
when submitting patches written by others.
> ---
> drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c b/drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c
> index 45ebdeba985a..12163d3c4bcb 100644
> --- a/drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c
> +++ b/drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c
> @@ -285,8 +285,12 @@ static int mtk_xt_get_gpio_n(void *data, unsigned long eint_n,
> desc = (const struct mtk_pin_desc *)hw->soc->pins;
> *gpio_chip = &hw->chip;
>
> - /* Be greedy to guess first gpio_n is equal to eint_n */
> - if (desc[eint_n].eint.eint_n == eint_n)
> + /*
> + * Be greedy to guess first gpio_n is equal to eint_n.
> + * Only eint virtual eint number is greater than gpio number.
> + */
> + if (hw->soc->npins > eint_n &&
Nit: I believe it's more common to have the variable on the left, and the
invariable on the right, but maybe it's just me:
if (eint_n < hw->soc->npins && ...
Either way is OK I guess.
ChenYu
> + desc[eint_n].eint.eint_n == eint_n)
> *gpio_n = eint_n;
> else
> *gpio_n = mtk_xt_find_eint_num(hw, eint_n);
> --
> 2.25.1
>
>
> _______________________________________________
> Linux-mediatek mailing list
> Linux-mediatek@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-mediatek
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2021-11-08 8:33 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-04 11:23 [PATCH v1 0/1] Mediatek pinctrl patch Zhiyong Tao
2021-11-04 11:23 ` [PATCH v1] pinctrl: mediatek: fix global-out-of-bounds issue Zhiyong Tao
2021-11-08 8:32 ` Chen-Yu Tsai
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).