| From e9e28ebb2dbe7298a40d52a59b47479992a16bce Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Fri, 4 Apr 2025 14:14:38 +0800 |
| Subject: ata: pata_pxa: Fix potential NULL pointer dereference in |
| pxa_ata_probe() |
| |
| From: Henry Martin <bsdhenrymartin@gmail.com> |
| |
| [ Upstream commit ad320e408a8c95a282ab9c05cdf0c9b95e317985 ] |
| |
| devm_ioremap() returns NULL on error. Currently, pxa_ata_probe() does |
| not check for this case, which can result in a NULL pointer dereference. |
| |
| Add NULL check after devm_ioremap() to prevent this issue. |
| |
| Fixes: 2dc6c6f15da9 ("[ARM] pata_pxa: DMA-capable PATA driver") |
| Signed-off-by: Henry Martin <bsdhenrymartin@gmail.com> |
| Signed-off-by: Damien Le Moal <dlemoal@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/ata/pata_pxa.c | 6 ++++++ |
| 1 file changed, 6 insertions(+) |
| |
| diff --git a/drivers/ata/pata_pxa.c b/drivers/ata/pata_pxa.c |
| index 538bd3423d859..1bdcd6ee741d3 100644 |
| --- a/drivers/ata/pata_pxa.c |
| +++ b/drivers/ata/pata_pxa.c |
| @@ -223,10 +223,16 @@ static int pxa_ata_probe(struct platform_device *pdev) |
| |
| ap->ioaddr.cmd_addr = devm_ioremap(&pdev->dev, cmd_res->start, |
| resource_size(cmd_res)); |
| + if (!ap->ioaddr.cmd_addr) |
| + return -ENOMEM; |
| ap->ioaddr.ctl_addr = devm_ioremap(&pdev->dev, ctl_res->start, |
| resource_size(ctl_res)); |
| + if (!ap->ioaddr.ctl_addr) |
| + return -ENOMEM; |
| ap->ioaddr.bmdma_addr = devm_ioremap(&pdev->dev, dma_res->start, |
| resource_size(dma_res)); |
| + if (!ap->ioaddr.bmdma_addr) |
| + return -ENOMEM; |
| |
| /* |
| * Adjust register offsets |
| -- |
| 2.39.5 |
| |