net: ll_temac: Fix potential NULL dereference in temac_probe()
[ Upstream commit5.4-rM2-2.2.x-imx-squashedcc6596fc72
] platform_get_resource() may fail and in this case a NULL dereference will occur. Fix it to use devm_platform_ioremap_resource() instead of calling platform_get_resource() and devm_ioremap(). This is detected by Coccinelle semantic patch. @@ expression pdev, res, n, t, e, e1, e2; @@ res = \(platform_get_resource\|platform_get_resource_byname\)(pdev, t, n); + if (!res) + return -EINVAL; ... when != res == NULL e = devm_ioremap(e1, res->start, e2); Fixes:8425c41d1e
("net: ll_temac: Extend support to non-device-tree platforms") Signed-off-by: Zhang Changzhong <zhangchangzhong@huawei.com> Acked-by: Esben Haabendal <esben@geanix.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
parent
717a140a36
commit
5ae78c6926
|
@ -1425,9 +1425,7 @@ static int temac_probe(struct platform_device *pdev)
|
|||
of_node_put(dma_np);
|
||||
} else if (pdata) {
|
||||
/* 2nd memory resource specifies DMA registers */
|
||||
res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
|
||||
lp->sdma_regs = devm_ioremap_nocache(&pdev->dev, res->start,
|
||||
resource_size(res));
|
||||
lp->sdma_regs = devm_platform_ioremap_resource(pdev, 1);
|
||||
if (IS_ERR(lp->sdma_regs)) {
|
||||
dev_err(&pdev->dev,
|
||||
"could not map DMA registers\n");
|
||||
|
|
Loading…
Reference in New Issue