spi: gpio: fix const issue in spi_to_spi_gpio()
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 22 May 2025 10:57:26 +0000 (12:57 +0200)
committerMark Brown <broonie@kernel.org>
Thu, 22 May 2025 11:03:34 +0000 (12:03 +0100)
While the struct spi_device * passed into spi_to_spi_gpio() is a const
one, the struct spi_bitbang * that is retrieved from the controller
field in the spi_device is NOT a const pointer, as it is coming from the
spi_controller_get_devdata() call, and then passed to container_of()
which would strip off the const attribute for no good reason (i.e. if a
const pointer is passed to container_of() it still is const coming out).

Fix this all up by properly declaring the struct spi_bitbang * as not
const.

Cc: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Link: https://patch.msgid.link/2025052225-scallion-ritzy-dbbd@gregkh
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-gpio.c

index 405deb6..ea5f1b1 100644 (file)
@@ -46,7 +46,7 @@ struct spi_gpio {
 static inline struct spi_gpio *__pure
 spi_to_spi_gpio(const struct spi_device *spi)
 {
-       const struct spi_bitbang        *bang;
+       struct spi_bitbang              *bang;
        struct spi_gpio                 *spi_gpio;
 
        bang = spi_controller_get_devdata(spi->controller);