spi: bcm2835: Do not call gpiod_put() on invalid descriptor
[ Upstream commitd669101052] If we are unable to lookup the chip-select GPIO, the error path will call bcm2835_spi_cleanup() which unconditionally calls gpiod_put() on the cs->gpio variable which we just determined was invalid. Fixes:21f252cd29("spi: bcm2835: reduce the abuse of the GPIO API") Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com> Link: https://patch.msgid.link/20250401224238.2854256-1-florian.fainelli@broadcom.com Signed-off-by: Mark Brown <broonie@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
4d8458e48f
commit
48b175aa46
@@ -1162,7 +1162,8 @@ static void bcm2835_spi_cleanup(struct spi_device *spi)
|
||||
sizeof(u32),
|
||||
DMA_TO_DEVICE);
|
||||
|
||||
gpiod_put(bs->cs_gpio);
|
||||
if (!IS_ERR(bs->cs_gpio))
|
||||
gpiod_put(bs->cs_gpio);
|
||||
spi_set_csgpiod(spi, 0, NULL);
|
||||
|
||||
kfree(target);
|
||||
|
||||
Reference in New Issue
Block a user