| From 064c3db9c564cc5be514ac21fb4aa26cc33db746 Mon Sep 17 00:00:00 2001 |
| From: Arvind Yadav <arvind.yadav.cs@gmail.com> |
| Date: Mon, 12 Dec 2016 23:13:27 +0530 |
| Subject: ata: sata_mv:- Handle return value of devm_ioremap. |
| |
| From: Arvind Yadav <arvind.yadav.cs@gmail.com> |
| |
| commit 064c3db9c564cc5be514ac21fb4aa26cc33db746 upstream. |
| |
| Here, If devm_ioremap will fail. It will return NULL. |
| Then hpriv->base = NULL - 0x20000; Kernel can run into |
| a NULL-pointer dereference. This error check will avoid |
| NULL pointer dereference. |
| |
| Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com> |
| Signed-off-by: Tejun Heo <tj@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/ata/sata_mv.c | 3 +++ |
| 1 file changed, 3 insertions(+) |
| |
| --- a/drivers/ata/sata_mv.c |
| +++ b/drivers/ata/sata_mv.c |
| @@ -4132,6 +4132,9 @@ static int mv_platform_probe(struct plat |
| host->iomap = NULL; |
| hpriv->base = devm_ioremap(&pdev->dev, res->start, |
| resource_size(res)); |
| + if (!hpriv->base) |
| + return -ENOMEM; |
| + |
| hpriv->base -= SATAHC0_REG_BASE; |
| |
| hpriv->clk = clk_get(&pdev->dev, NULL); |