aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mfd/asic3.c
diff options
context:
space:
mode:
authorSachin Kamat <sachin.kamat@linaro.org>2014-06-10 06:00:34 -0400
committerLee Jones <lee.jones@linaro.org>2014-07-09 09:58:01 -0400
commit44b61a9f23dabf27303d32b4947f017f69ca90f6 (patch)
treec6de8469cebdbe9a57dca4f53bf238e9423e050b /drivers/mfd/asic3.c
parent967580598f46997ce5eeeea812686f5220bb49de (diff)
mfd: asic3: Fix potential null pointer dereference
We previously assumed 'mem_sdio' could be null but it is dereferenced in ioremap(). Add a check to avoid a potential null pointer dereference error. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Signed-off-by: Lee Jones <lee.jones@linaro.org>
Diffstat (limited to 'drivers/mfd/asic3.c')
-rw-r--r--drivers/mfd/asic3.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/mfd/asic3.c b/drivers/mfd/asic3.c
index 9f6294f2a070..9fc4186d4132 100644
--- a/drivers/mfd/asic3.c
+++ b/drivers/mfd/asic3.c
@@ -899,13 +899,15 @@ static int __init asic3_mfd_probe(struct platform_device *pdev,
899 ds1wm_resources[0].end >>= asic->bus_shift; 899 ds1wm_resources[0].end >>= asic->bus_shift;
900 900
901 /* MMC */ 901 /* MMC */
902 asic->tmio_cnf = ioremap((ASIC3_SD_CONFIG_BASE >> asic->bus_shift) + 902 if (mem_sdio) {
903 asic->tmio_cnf = ioremap((ASIC3_SD_CONFIG_BASE >> asic->bus_shift) +
903 mem_sdio->start, 904 mem_sdio->start,
904 ASIC3_SD_CONFIG_SIZE >> asic->bus_shift); 905 ASIC3_SD_CONFIG_SIZE >> asic->bus_shift);
905 if (!asic->tmio_cnf) { 906 if (!asic->tmio_cnf) {
906 ret = -ENOMEM; 907 ret = -ENOMEM;
907 dev_dbg(asic->dev, "Couldn't ioremap SD_CONFIG\n"); 908 dev_dbg(asic->dev, "Couldn't ioremap SD_CONFIG\n");
908 goto out; 909 goto out;
910 }
909 } 911 }
910 asic3_mmc_resources[0].start >>= asic->bus_shift; 912 asic3_mmc_resources[0].start >>= asic->bus_shift;
911 asic3_mmc_resources[0].end >>= asic->bus_shift; 913 asic3_mmc_resources[0].end >>= asic->bus_shift;