summaryrefslogtreecommitdiffstats
path: root/drivers/bcma/scan.c
diff options
context:
space:
mode:
authorTony Lindgren <tony@atomide.com>2012-02-24 16:48:27 -0800
committerTony Lindgren <tony@atomide.com>2012-02-24 16:48:27 -0800
commitffd76d8be36da09f8456c55569c008f5aa93095e (patch)
tree4a5e537edcdd3be9197c5fb7af1b4f7e4780ef77 /drivers/bcma/scan.c
parentbfe9c8ae114009491f51452ec727667d516ee79f (diff)
parentf0e15e2b0c6b3e89daade25a1e9a2d80136c14c3 (diff)
downloadlinux-ffd76d8be36da09f8456c55569c008f5aa93095e.tar.bz2
Merge branch 'for_3.4/dts_updates' of git://git.kernel.org/pub/scm/linux/kernel/git/bcousson/linux-omap-dt into dt
Diffstat (limited to 'drivers/bcma/scan.c')
-rw-r--r--drivers/bcma/scan.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/drivers/bcma/scan.c b/drivers/bcma/scan.c
index cad994857683..3a2f672db9ad 100644
--- a/drivers/bcma/scan.c
+++ b/drivers/bcma/scan.c
@@ -399,15 +399,18 @@ int bcma_bus_scan(struct bcma_bus *bus)
core->bus = bus;
err = bcma_get_next_core(bus, &eromptr, NULL, core_num, core);
- if (err == -ENODEV) {
- core_num++;
- continue;
- } else if (err == -ENXIO)
- continue;
- else if (err == -ESPIPE)
- break;
- else if (err < 0)
+ if (err < 0) {
+ kfree(core);
+ if (err == -ENODEV) {
+ core_num++;
+ continue;
+ } else if (err == -ENXIO) {
+ continue;
+ } else if (err == -ESPIPE) {
+ break;
+ }
return err;
+ }
core->core_index = core_num++;
bus->nr_cores++;