spi: dw: fix crash on setup stage
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Wed, 25 Mar 2015 18:26:26 +0000 (20:26 +0200)
committerMark Brown <broonie@kernel.org>
Wed, 25 Mar 2015 18:54:40 +0000 (11:54 -0700)
The commit 1a7b7ee72c21 (spi: Ensure that CS line is in non-active state after
spi_setup()) introduces an unconditional call of spi_set_cs() before ->setup().
The dw_spi_set_cs() relies on that fact that ->setup() is already called, but
it doesn't now. This patch fixes the crash by adding an additional check to
dw_spi_set_cs().

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-dw.c

index cafac221fbf6aea2a51d0eefeffdc5caccea1471..8d67d03c71ebcdec375023f8db910d3d0d8469ec 100644 (file)
@@ -144,7 +144,7 @@ static void dw_spi_set_cs(struct spi_device *spi, bool enable)
        struct chip_data *chip = spi_get_ctldata(spi);
 
        /* Chip select logic is inverted from spi_set_cs() */
-       if (chip->cs_control)
+       if (chip && chip->cs_control)
                chip->cs_control(!enable);
 
        if (!enable)