summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSachin Kamat <sachin.kamat@linaro.org>2014-06-10 10:00:34 (GMT)
committerLee Jones <lee.jones@linaro.org>2014-07-09 13:58:01 (GMT)
commit44b61a9f23dabf27303d32b4947f017f69ca90f6 (patch)
treec6de8469cebdbe9a57dca4f53bf238e9423e050b
parent967580598f46997ce5eeeea812686f5220bb49de (diff)
downloadlinux-44b61a9f23dabf27303d32b4947f017f69ca90f6.tar.xz
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>
-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 9f6294f..9fc4186 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,
ds1wm_resources[0].end >>= asic->bus_shift;
/* MMC */
- asic->tmio_cnf = ioremap((ASIC3_SD_CONFIG_BASE >> asic->bus_shift) +
+ if (mem_sdio) {
+ asic->tmio_cnf = ioremap((ASIC3_SD_CONFIG_BASE >> asic->bus_shift) +
mem_sdio->start,
ASIC3_SD_CONFIG_SIZE >> asic->bus_shift);
- if (!asic->tmio_cnf) {
- ret = -ENOMEM;
- dev_dbg(asic->dev, "Couldn't ioremap SD_CONFIG\n");
- goto out;
+ if (!asic->tmio_cnf) {
+ ret = -ENOMEM;
+ dev_dbg(asic->dev, "Couldn't ioremap SD_CONFIG\n");
+ goto out;
+ }
}
asic3_mmc_resources[0].start >>= asic->bus_shift;
asic3_mmc_resources[0].end >>= asic->bus_shift;