spi: bcm2835: add a sentinel at the end of the lookup array
authorBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Wed, 4 Oct 2023 18:39:06 +0000 (20:39 +0200)
committerMark Brown <broonie@kernel.org>
Tue, 10 Oct 2023 12:12:11 +0000 (13:12 +0100)
GPIOLIB expects the array of lookup entries to be terminated with an
empty member. We need to increase the size of the variable length array
in the lookup table by 1.

Fixes: 21f252cd29f0 ("spi: bcm2835: reduce the abuse of the GPIO API")
Reported-by: Hans de Goede <hdegoede@redhat.com>
Closes: https://lore.kernel.org/lkml/29764d46-8d3d-9794-bbde-d7928a91cbb5@redhat.com/
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20231004183906.97845-1-brgl@bgdev.pl
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-bcm2835.c

index c9078fe..e709887 100644 (file)
@@ -1299,7 +1299,7 @@ static int bcm2835_spi_setup(struct spi_device *spi)
         * More on the problem that it addresses:
         *   https://www.spinics.net/lists/linux-gpio/msg36218.html
         */
-       lookup = kzalloc(struct_size(lookup, table, 1), GFP_KERNEL);
+       lookup = kzalloc(struct_size(lookup, table, 2), GFP_KERNEL);
        if (!lookup) {
                ret = -ENOMEM;
                goto err_cleanup;