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 c9078fee36626a2a135f15dfc6260f3e5157999b..e709887eb2a967ae3e65533b120ff15fa2976c8e 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;