Commit 9dbf5f55 authored by Hauke Mehrtens's avatar Hauke Mehrtens Committed by John W. Linville

bcma: add missing iounmap on error path

This should fix the problem reported by Fengguang:

The coccinelle static checker emits these warnings:

drivers/bcma/scan.c:466:3-9: ERROR: missing iounmap; ioremap on line 451 and execution via conditional on line 465
drivers/bcma/scan.c:540:3-9: ERROR: missing iounmap; ioremap on line 515 and execution via conditional on line 539
Reported-by: default avatarFengguang Wu <fengguang.wu@intel.com>
Signed-off-by: default avatarHauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent d8f1bd2f
...@@ -462,8 +462,10 @@ int bcma_bus_scan(struct bcma_bus *bus) ...@@ -462,8 +462,10 @@ int bcma_bus_scan(struct bcma_bus *bus)
while (eromptr < eromend) { while (eromptr < eromend) {
struct bcma_device *other_core; struct bcma_device *other_core;
struct bcma_device *core = kzalloc(sizeof(*core), GFP_KERNEL); struct bcma_device *core = kzalloc(sizeof(*core), GFP_KERNEL);
if (!core) if (!core) {
return -ENOMEM; err = -ENOMEM;
goto out;
}
INIT_LIST_HEAD(&core->list); INIT_LIST_HEAD(&core->list);
core->bus = bus; core->bus = bus;
...@@ -478,7 +480,7 @@ int bcma_bus_scan(struct bcma_bus *bus) ...@@ -478,7 +480,7 @@ int bcma_bus_scan(struct bcma_bus *bus)
} else if (err == -ESPIPE) { } else if (err == -ESPIPE) {
break; break;
} }
return err; goto out;
} }
core->core_index = core_num++; core->core_index = core_num++;
...@@ -494,10 +496,12 @@ int bcma_bus_scan(struct bcma_bus *bus) ...@@ -494,10 +496,12 @@ int bcma_bus_scan(struct bcma_bus *bus)
list_add_tail(&core->list, &bus->cores); list_add_tail(&core->list, &bus->cores);
} }
err = 0;
out:
if (bus->hosttype == BCMA_HOSTTYPE_SOC) if (bus->hosttype == BCMA_HOSTTYPE_SOC)
iounmap(eromptr); iounmap(eromptr);
return 0; return err;
} }
int __init bcma_bus_scan_early(struct bcma_bus *bus, int __init bcma_bus_scan_early(struct bcma_bus *bus,
...@@ -537,7 +541,7 @@ int __init bcma_bus_scan_early(struct bcma_bus *bus, ...@@ -537,7 +541,7 @@ int __init bcma_bus_scan_early(struct bcma_bus *bus,
else if (err == -ESPIPE) else if (err == -ESPIPE)
break; break;
else if (err < 0) else if (err < 0)
return err; goto out;
core->core_index = core_num++; core->core_index = core_num++;
bus->nr_cores++; bus->nr_cores++;
...@@ -551,6 +555,7 @@ int __init bcma_bus_scan_early(struct bcma_bus *bus, ...@@ -551,6 +555,7 @@ int __init bcma_bus_scan_early(struct bcma_bus *bus,
break; break;
} }
out:
if (bus->hosttype == BCMA_HOSTTYPE_SOC) if (bus->hosttype == BCMA_HOSTTYPE_SOC)
iounmap(eromptr); iounmap(eromptr);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment