spi: imx: Gracefully handle NULL master->cs_gpios
authorMarek Vasut <marex@denx.de>
Mon, 26 Sep 2016 12:14:53 +0000 (14:14 +0200)
committerMark Brown <broonie@kernel.org>
Mon, 26 Sep 2016 16:08:46 +0000 (09:08 -0700)
It is possible that master->cs_gpios is NULL after spi_bitbang_start(),
this happens if the master has no CS GPIOs specified in DT. Check for
this case after spi_bitbang_start() to prevent NULL pointer dereference
in the subsequent for loop, which accesses the master->cs_gpios field.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Martin Kaiser <martin@kaiser.cx>
Cc: Mark Brown <broonie@kernel.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-imx.c

index 53e7a326c213e51aad8ce459ae71462c8f830375..1ef5429afcb64dc3aab75b15f49a680e96fea981 100644 (file)
@@ -1268,6 +1268,11 @@ static int spi_imx_probe(struct platform_device *pdev)
                goto out_clk_put;
        }
 
+       if (!master->cs_gpios) {
+               dev_err(&pdev->dev, "No CS GPIOs available\n");
+               goto out_clk_put;
+       }
+
        for (i = 0; i < master->num_chipselect; i++) {
                if (!gpio_is_valid(master->cs_gpios[i]))
                        continue;