Skip to content

Commit 6820e81

Browse files
ambarusbroonie
authored andcommitted
spi: Fix the clamping of spi->max_speed_hz
If spi->controller->max_speed_hz is zero, a non-zero spi->max_speed_hz will be overwritten by zero. Make sure spi->controller->max_speed_hz is not zero when clamping spi->max_speed_hz. Put the spi->controller->max_speed_hz non-zero check higher in the if, so that we avoid a superfluous init to zero when both spi->max_speed_hz and spi->controller->max_speed_hz are zero. Fixes: 9326e4f ("spi: Limit the spi device max speed to controller's max speed") Reported-by: Geert Uytterhoeven <geert@linux-m68k.org> Suggested-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com> Tested-by: Geert Uytterhoeven <geert+renesas@glider.be> Link: https://lore.kernel.org/r/20201216092321.413262-1-tudor.ambarus@microchip.com Signed-off-by: Mark Brown <broonie@kernel.org>
1 parent ede090f commit 6820e81

1 file changed

Lines changed: 3 additions & 2 deletions

File tree

drivers/spi/spi.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3378,8 +3378,9 @@ int spi_setup(struct spi_device *spi)
33783378
if (status)
33793379
return status;
33803380

3381-
if (!spi->max_speed_hz ||
3382-
spi->max_speed_hz > spi->controller->max_speed_hz)
3381+
if (spi->controller->max_speed_hz &&
3382+
(!spi->max_speed_hz ||
3383+
spi->max_speed_hz > spi->controller->max_speed_hz))
33833384
spi->max_speed_hz = spi->controller->max_speed_hz;
33843385

33853386
mutex_lock(&spi->controller->io_mutex);

0 commit comments

Comments
 (0)