spi: spi-fsl-dspi: fix a possible NULL dereference
authorLABBE Corentin <clabbe.montjoie@gmail.com>
Tue, 16 Aug 2016 09:50:21 +0000 (11:50 +0200)
committerMark Brown <broonie@kernel.org>
Tue, 16 Aug 2016 11:26:59 +0000 (12:26 +0100)
of_match_device could return NULL, and so cause a NULL pointer
dereference later.

For fixing this problem, we use of_device_get_match_data(), this will
simplify the code a little by using a standard function for
getting the match data.

Reported-by: coverity (CID 1324129)
Signed-off-by: LABBE Corentin <clabbe.montjoie@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-fsl-dspi.c

index ab6b9e1f79a3a9a62b5ec198b01887717bdec2b1..d57baf6c2d1ef8545c017eafb5560e439c22ba43 100644 (file)
@@ -651,8 +651,6 @@ static int dspi_probe(struct platform_device *pdev)
        struct resource *res;
        void __iomem *base;
        int ret = 0, cs_num, bus_num;
-       const struct of_device_id *of_id =
-                       of_match_device(fsl_dspi_dt_ids, &pdev->dev);
 
        master = spi_alloc_master(&pdev->dev, sizeof(struct fsl_dspi));
        if (!master)
@@ -686,7 +684,7 @@ static int dspi_probe(struct platform_device *pdev)
        }
        master->bus_num = bus_num;
 
-       dspi->devtype_data = of_id->data;
+       dspi->devtype_data = of_device_get_match_data(&pdev->dev);
        if (!dspi->devtype_data) {
                dev_err(&pdev->dev, "can't get devtype_data\n");
                ret = -EFAULT;