aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/dma/sprd-dma.c
diff options
context:
space:
mode:
authorWei Yongjun <weiyongjun1@huawei.com>2018-05-07 01:40:34 +0000
committerVinod Koul <vkoul@kernel.org>2018-05-07 13:31:32 +0530
commite891e41ee301a57fc74a4a0d4da60fdc9669e50c (patch)
treee783ee2f7cd1c5a4617e339c195813da3ecb1595 /drivers/dma/sprd-dma.c
parentdmaengine: sprd: Move DMA request mode and interrupt type into head file (diff)
downloadlinux-dev-e891e41ee301a57fc74a4a0d4da60fdc9669e50c.tar.xz
linux-dev-e891e41ee301a57fc74a4a0d4da60fdc9669e50c.zip
dmaengine: sprd: Fix potential NULL dereference in sprd_dma_probe()
platform_get_resource() may fail and return NULL, so we should better check it's return value to avoid a NULL pointer dereference a bit later in the code. This is detected by Coccinelle semantic patch. @@ expression pdev, res, n, t, e, e1, e2; @@ res = platform_get_resource(pdev, t, n); + if (!res) + return -EINVAL; ... when != res == NULL e = devm_ioremap_nocache(e1, res->start, e2); Fixes: 9b3b8171f7f4 ("dmaengine: sprd: Add Spreadtrum DMA driver") Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com> Reviewed-by: Baolin Wang <baolin.wang@linaro.org> Signed-off-by: Vinod Koul <vkoul@kernel.org>
Diffstat (limited to 'drivers/dma/sprd-dma.c')
-rw-r--r--drivers/dma/sprd-dma.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/dma/sprd-dma.c b/drivers/dma/sprd-dma.c
index ccdeb8f999e5..dba7a17dee15 100644
--- a/drivers/dma/sprd-dma.c
+++ b/drivers/dma/sprd-dma.c
@@ -807,6 +807,8 @@ static int sprd_dma_probe(struct platform_device *pdev)
}
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ if (!res)
+ return -EINVAL;
sdev->glb_base = devm_ioremap_nocache(&pdev->dev, res->start,
resource_size(res));
if (!sdev->glb_base)