Re: [PATCH] gpio: mvebu: validate ngpios before use

From: Bartosz Golaszewski

Date: Wed Jul 08 2026 - 08:09:56 EST


On Wed, 8 Jul 2026 01:27:42 +0200, Rosen Penev <rosenp@xxxxxxxxx> said:
> If ngpios is read as 0 from device tree, it is passed via
> irq_alloc_domain_generic_chips() as irqs_per_chip, which leads to a
> division by zero in DIV_ROUND_UP(d->revmap_size, irqs_per_chip).
> Reject ngpios == 0 early.
>
> Fixes: fefe7b0923459 ("gpio: introduce gpio-mvebu driver for Marvell SoCs")
> Assisted-by: opencode:big-pickle
> Signed-off-by: Rosen Penev <rosenp@xxxxxxxxx>
> ---
> drivers/gpio/gpio-mvebu.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/drivers/gpio/gpio-mvebu.c b/drivers/gpio/gpio-mvebu.c
> index 39c1a13e1b65..c7cbfbfb4800 100644
> --- a/drivers/gpio/gpio-mvebu.c
> +++ b/drivers/gpio/gpio-mvebu.c
> @@ -1175,6 +1175,11 @@ static int mvebu_gpio_probe(struct platform_device *pdev)
> return -ENODEV;
> }
>
> + if (!ngpios) {
> + dev_err(&pdev->dev, "ngpios must be greater than 0\n");

return dev_err_probe()?

> + return -EINVAL;
> + }
> +
> id = of_alias_get_id(pdev->dev.of_node, "gpio");
> if (id < 0) {
> dev_err(&pdev->dev, "Couldn't get OF id\n");
> --
> 2.55.0
>
>