]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
gpio: gpio-xilinx: Add check if width exceeds 32
authorSrinivas Neeli <srinivas.neeli@xilinx.com>
Fri, 29 Jan 2021 14:26:50 +0000 (19:56 +0530)
committerBartosz Golaszewski <bgolaszewski@baylibre.com>
Mon, 15 Feb 2021 10:43:33 +0000 (11:43 +0100)
Add check to see if gpio-width property does not exceed 32.
If it exceeds then return -EINVAL.

Signed-off-by: Srinivas Neeli <srinivas.neeli@xilinx.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Acked-by: William Breathitt Gray <vilhelm.gray@gmail.com>
Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
drivers/gpio/gpio-xilinx.c

index acd574779ca6ad27d44e83bd2465895cec8cae8a..b411d3156e0b687c39244e82ee492d6dfa3d1c54 100644 (file)
@@ -589,6 +589,9 @@ static int xgpio_probe(struct platform_device *pdev)
        if (of_property_read_u32(np, "xlnx,gpio-width", &chip->gpio_width[0]))
                chip->gpio_width[0] = 32;
 
+       if (chip->gpio_width[0] > 32)
+               return -EINVAL;
+
        spin_lock_init(&chip->gpio_lock);
 
        if (of_property_read_u32(np, "xlnx,is-dual", &is_dual))
@@ -613,6 +616,8 @@ static int xgpio_probe(struct platform_device *pdev)
                                         &chip->gpio_width[1]))
                        chip->gpio_width[1] = 32;
 
+               if (chip->gpio_width[1] > 32)
+                       return -EINVAL;
        }
 
        chip->gc.base = -1;