* [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).