Set the size of the reg_cals arrays to PINCTRL_PIN_REG_MAX to in all affected mediatek pinctrl drivers. This is needed to avoid potential out-of-bounds accesses when they is used in mtk_hw_pin_field_get(). All array members need to be initialized since the code loops from 0 to PINCTRL_PIN_REG_MAX - 1. mt7622_reg_cals was already defined this way, but the others were not.
Signed-off-by: David Lechner <[email protected]> --- drivers/pinctrl/mediatek/pinctrl-mt7623.c | 2 +- drivers/pinctrl/mediatek/pinctrl-mt7629.c | 2 +- drivers/pinctrl/mediatek/pinctrl-mt7981.c | 2 +- drivers/pinctrl/mediatek/pinctrl-mt7986.c | 2 +- drivers/pinctrl/mediatek/pinctrl-mt7987.c | 2 +- drivers/pinctrl/mediatek/pinctrl-mt7988.c | 2 +- drivers/pinctrl/mediatek/pinctrl-mt8365.c | 2 +- drivers/pinctrl/mediatek/pinctrl-mt8512.c | 2 +- drivers/pinctrl/mediatek/pinctrl-mt8516.c | 2 +- drivers/pinctrl/mediatek/pinctrl-mt8518.c | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/pinctrl/mediatek/pinctrl-mt7623.c b/drivers/pinctrl/mediatek/pinctrl-mt7623.c index 55e49a790e4..e9678cebd3c 100644 --- a/drivers/pinctrl/mediatek/pinctrl-mt7623.c +++ b/drivers/pinctrl/mediatek/pinctrl-mt7623.c @@ -388,7 +388,7 @@ static const struct mtk_pin_field_calc mt7623_pin_r0_range[] = { PIN_FIELD16(261, 261, 0x140, 0x10, 10, 1), }; -static const struct mtk_pin_reg_calc mt7623_reg_cals[] = { +static const struct mtk_pin_reg_calc mt7623_reg_cals[PINCTRL_PIN_REG_MAX] = { [PINCTRL_PIN_REG_MODE] = MTK_RANGE(mt7623_pin_mode_range), [PINCTRL_PIN_REG_DIR] = MTK_RANGE(mt7623_pin_dir_range), [PINCTRL_PIN_REG_DI] = MTK_RANGE(mt7623_pin_di_range), diff --git a/drivers/pinctrl/mediatek/pinctrl-mt7629.c b/drivers/pinctrl/mediatek/pinctrl-mt7629.c index 3b82423c145..d67220dc2f7 100644 --- a/drivers/pinctrl/mediatek/pinctrl-mt7629.c +++ b/drivers/pinctrl/mediatek/pinctrl-mt7629.c @@ -80,7 +80,7 @@ static const struct mtk_pin_field_calc mt7629_pin_drv_range[] = { PIN_FIELD(70, 78, 0x7600, 0x10, 0, 4), }; -static const struct mtk_pin_reg_calc mt7629_reg_cals[] = { +static const struct mtk_pin_reg_calc mt7629_reg_cals[PINCTRL_PIN_REG_MAX] = { [PINCTRL_PIN_REG_MODE] = MTK_RANGE(mt7629_pin_mode_range), [PINCTRL_PIN_REG_DIR] = MTK_RANGE(mt7629_pin_dir_range), [PINCTRL_PIN_REG_DI] = MTK_RANGE(mt7629_pin_di_range), diff --git a/drivers/pinctrl/mediatek/pinctrl-mt7981.c b/drivers/pinctrl/mediatek/pinctrl-mt7981.c index 13c3dc143cb..0d48994bd89 100644 --- a/drivers/pinctrl/mediatek/pinctrl-mt7981.c +++ b/drivers/pinctrl/mediatek/pinctrl-mt7981.c @@ -494,7 +494,7 @@ static const struct mtk_pin_field_calc mt7981_pin_r1_range[] = { PIN_FIELD_BASE(39, 39, 3, 0x40, 0x10, 1, 1), }; -static const struct mtk_pin_reg_calc mt7981_reg_cals[] = { +static const struct mtk_pin_reg_calc mt7981_reg_cals[PINCTRL_PIN_REG_MAX] = { [PINCTRL_PIN_REG_MODE] = MTK_RANGE(mt7981_pin_mode_range), [PINCTRL_PIN_REG_DIR] = MTK_RANGE(mt7981_pin_dir_range), [PINCTRL_PIN_REG_DI] = MTK_RANGE(mt7981_pin_di_range), diff --git a/drivers/pinctrl/mediatek/pinctrl-mt7986.c b/drivers/pinctrl/mediatek/pinctrl-mt7986.c index bf8cd037535..61ce2ec8ac1 100644 --- a/drivers/pinctrl/mediatek/pinctrl-mt7986.c +++ b/drivers/pinctrl/mediatek/pinctrl-mt7986.c @@ -415,7 +415,7 @@ static const struct mtk_pin_field_calc mt7986_pin_r1_range[] = { PIN_FIELD_BASE(66, 68, IOCFG_LB_BASE, 0x60, 0x10, 2, 1), }; -static const struct mtk_pin_reg_calc mt7986_reg_cals[] = { +static const struct mtk_pin_reg_calc mt7986_reg_cals[PINCTRL_PIN_REG_MAX] = { [PINCTRL_PIN_REG_MODE] = MTK_RANGE(mt7986_pin_mode_range), [PINCTRL_PIN_REG_DIR] = MTK_RANGE(mt7986_pin_dir_range), [PINCTRL_PIN_REG_DI] = MTK_RANGE(mt7986_pin_di_range), diff --git a/drivers/pinctrl/mediatek/pinctrl-mt7987.c b/drivers/pinctrl/mediatek/pinctrl-mt7987.c index db672d26798..92b43cf3b55 100644 --- a/drivers/pinctrl/mediatek/pinctrl-mt7987.c +++ b/drivers/pinctrl/mediatek/pinctrl-mt7987.c @@ -386,7 +386,7 @@ static const struct mtk_pin_field_calc mt7987_pin_r1_range[] = { PIN_FIELD_BASE(49, 49, IOCFG_TL_BASE, 0x50, 0x10, 8, 1), }; -static const struct mtk_pin_reg_calc mt7987_reg_cals[] = { +static const struct mtk_pin_reg_calc mt7987_reg_cals[PINCTRL_PIN_REG_MAX] = { [PINCTRL_PIN_REG_MODE] = MTK_RANGE(mt7987_pin_mode_range), [PINCTRL_PIN_REG_DIR] = MTK_RANGE(mt7987_pin_dir_range), [PINCTRL_PIN_REG_DI] = MTK_RANGE(mt7987_pin_di_range), diff --git a/drivers/pinctrl/mediatek/pinctrl-mt7988.c b/drivers/pinctrl/mediatek/pinctrl-mt7988.c index 639e2415c63..74655493414 100644 --- a/drivers/pinctrl/mediatek/pinctrl-mt7988.c +++ b/drivers/pinctrl/mediatek/pinctrl-mt7988.c @@ -606,7 +606,7 @@ static const struct mtk_pin_field_calc mt7988_pin_r1_range[] = { PIN_FIELD_BASE(83, 83, IOCFG_TR_BASE, 0x90, 0x10, 15, 1), }; -static const struct mtk_pin_reg_calc mt7988_reg_cals[] = { +static const struct mtk_pin_reg_calc mt7988_reg_cals[PINCTRL_PIN_REG_MAX] = { [PINCTRL_PIN_REG_MODE] = MTK_RANGE(mt7988_pin_mode_range), [PINCTRL_PIN_REG_DIR] = MTK_RANGE(mt7988_pin_dir_range), [PINCTRL_PIN_REG_DI] = MTK_RANGE(mt7988_pin_di_range), diff --git a/drivers/pinctrl/mediatek/pinctrl-mt8365.c b/drivers/pinctrl/mediatek/pinctrl-mt8365.c index 0eae85b0078..2e291501584 100644 --- a/drivers/pinctrl/mediatek/pinctrl-mt8365.c +++ b/drivers/pinctrl/mediatek/pinctrl-mt8365.c @@ -223,7 +223,7 @@ static const struct mtk_pin_field_calc mt8365_pin_drv_range[] = { PIN_FIELD_DRV(136, 144, 0x770, 24), }; -static const struct mtk_pin_reg_calc mt8365_reg_cals[] = { +static const struct mtk_pin_reg_calc mt8365_reg_cals[PINCTRL_PIN_REG_MAX] = { [PINCTRL_PIN_REG_MODE] = MTK_RANGE(mt8365_pin_mode_range), [PINCTRL_PIN_REG_DIR] = MTK_RANGE(mt8365_pin_dir_range), [PINCTRL_PIN_REG_DI] = MTK_RANGE(mt8365_pin_di_range), diff --git a/drivers/pinctrl/mediatek/pinctrl-mt8512.c b/drivers/pinctrl/mediatek/pinctrl-mt8512.c index 5a8dd4ddd40..4fb15815d86 100644 --- a/drivers/pinctrl/mediatek/pinctrl-mt8512.c +++ b/drivers/pinctrl/mediatek/pinctrl-mt8512.c @@ -178,7 +178,7 @@ static const struct mtk_pin_field_calc mt8512_pin_drv_range[] = { PIN_FIELDS(112, 115, 0x760, 0x10, 16, 4), }; -static const struct mtk_pin_reg_calc mt8512_reg_cals[] = { +static const struct mtk_pin_reg_calc mt8512_reg_cals[PINCTRL_PIN_REG_MAX] = { [PINCTRL_PIN_REG_MODE] = MTK_RANGE(mt8512_pin_mode_range), [PINCTRL_PIN_REG_DIR] = MTK_RANGE(mt8512_pin_dir_range), [PINCTRL_PIN_REG_DI] = MTK_RANGE(mt8512_pin_di_range), diff --git a/drivers/pinctrl/mediatek/pinctrl-mt8516.c b/drivers/pinctrl/mediatek/pinctrl-mt8516.c index 9c25066fc2d..09d71d45c89 100644 --- a/drivers/pinctrl/mediatek/pinctrl-mt8516.c +++ b/drivers/pinctrl/mediatek/pinctrl-mt8516.c @@ -184,7 +184,7 @@ static const struct mtk_pin_field_calc mt8516_pin_drv_range[] = { PIN_FIELD(117, 120, 0xd70, 0x10, 0, 4), }; -static const struct mtk_pin_reg_calc mt8516_reg_cals[] = { +static const struct mtk_pin_reg_calc mt8516_reg_cals[PINCTRL_PIN_REG_MAX] = { [PINCTRL_PIN_REG_MODE] = MTK_RANGE(mt8516_pin_mode_range), [PINCTRL_PIN_REG_DIR] = MTK_RANGE(mt8516_pin_dir_range), [PINCTRL_PIN_REG_DI] = MTK_RANGE(mt8516_pin_di_range), diff --git a/drivers/pinctrl/mediatek/pinctrl-mt8518.c b/drivers/pinctrl/mediatek/pinctrl-mt8518.c index 333184a6bb2..0367e739e8e 100644 --- a/drivers/pinctrl/mediatek/pinctrl-mt8518.c +++ b/drivers/pinctrl/mediatek/pinctrl-mt8518.c @@ -205,7 +205,7 @@ static const struct mtk_pin_field_calc mt8518_pin_drv_range[] = { PIN_FIELD(116, 119, 0xd60, 0x10, 4, 4), }; -static const struct mtk_pin_reg_calc mt8518_reg_cals[] = { +static const struct mtk_pin_reg_calc mt8518_reg_cals[PINCTRL_PIN_REG_MAX] = { [PINCTRL_PIN_REG_MODE] = MTK_RANGE(mt8518_pin_mode_range), [PINCTRL_PIN_REG_DIR] = MTK_RANGE(mt8518_pin_dir_range), [PINCTRL_PIN_REG_DI] = MTK_RANGE(mt8518_pin_di_range), --- base-commit: d503633a36767d756c7de28305cf0de79440cbc0 change-id: 20260113-pinctrl-mtk-fix-reg-calc-size-0fab751b7464 Best regards, -- David Lechner <[email protected]>

