aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/bcma
diff options
context:
space:
mode:
authorJohn W. Linville <linville@tuxdriver.com>2012-07-27 11:15:03 -0400
committerJohn W. Linville <linville@tuxdriver.com>2012-07-27 11:15:03 -0400
commit28ea499ac5b90f6266a24b826c6d469fc503758c (patch)
tree62dc50b7ce3fb735f125762c8134dd778024812b /drivers/bcma
parent6ee127b7dd63afe4d6d0a58293786bf4bf336850 (diff)
parent9dbf5f55f8d35ff9aedc75267f4e4042aaf89755 (diff)
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless into for-davem
Diffstat (limited to 'drivers/bcma')
-rw-r--r--drivers/bcma/driver_mips.c6
-rw-r--r--drivers/bcma/scan.c15
2 files changed, 13 insertions, 8 deletions
diff --git a/drivers/bcma/driver_mips.c b/drivers/bcma/driver_mips.c
index b013b049476d..cc65b45b4368 100644
--- a/drivers/bcma/driver_mips.c
+++ b/drivers/bcma/driver_mips.c
@@ -131,7 +131,7 @@ static void bcma_core_mips_set_irq(struct bcma_device *dev, unsigned int irq)
131 /* backplane irq line is in use, find out who uses 131 /* backplane irq line is in use, find out who uses
132 * it and set user to irq 0 132 * it and set user to irq 0
133 */ 133 */
134 list_for_each_entry_reverse(core, &bus->cores, list) { 134 list_for_each_entry(core, &bus->cores, list) {
135 if ((1 << bcma_core_mips_irqflag(core)) == 135 if ((1 << bcma_core_mips_irqflag(core)) ==
136 oldirqflag) { 136 oldirqflag) {
137 bcma_core_mips_set_irq(core, 0); 137 bcma_core_mips_set_irq(core, 0);
@@ -161,7 +161,7 @@ static void bcma_core_mips_dump_irq(struct bcma_bus *bus)
161{ 161{
162 struct bcma_device *core; 162 struct bcma_device *core;
163 163
164 list_for_each_entry_reverse(core, &bus->cores, list) { 164 list_for_each_entry(core, &bus->cores, list) {
165 bcma_core_mips_print_irq(core, bcma_core_mips_irq(core)); 165 bcma_core_mips_print_irq(core, bcma_core_mips_irq(core));
166 } 166 }
167} 167}
@@ -224,7 +224,7 @@ void bcma_core_mips_init(struct bcma_drv_mips *mcore)
224 mcore->assigned_irqs = 1; 224 mcore->assigned_irqs = 1;
225 225
226 /* Assign IRQs to all cores on the bus */ 226 /* Assign IRQs to all cores on the bus */
227 list_for_each_entry_reverse(core, &bus->cores, list) { 227 list_for_each_entry(core, &bus->cores, list) {
228 int mips_irq; 228 int mips_irq;
229 if (core->irq) 229 if (core->irq)
230 continue; 230 continue;
diff --git a/drivers/bcma/scan.c b/drivers/bcma/scan.c
index 5672b13d0951..8d0b57164018 100644
--- a/drivers/bcma/scan.c
+++ b/drivers/bcma/scan.c
@@ -462,8 +462,10 @@ int bcma_bus_scan(struct bcma_bus *bus)
462 while (eromptr < eromend) { 462 while (eromptr < eromend) {
463 struct bcma_device *other_core; 463 struct bcma_device *other_core;
464 struct bcma_device *core = kzalloc(sizeof(*core), GFP_KERNEL); 464 struct bcma_device *core = kzalloc(sizeof(*core), GFP_KERNEL);
465 if (!core) 465 if (!core) {
466 return -ENOMEM; 466 err = -ENOMEM;
467 goto out;
468 }
467 INIT_LIST_HEAD(&core->list); 469 INIT_LIST_HEAD(&core->list);
468 core->bus = bus; 470 core->bus = bus;
469 471
@@ -478,7 +480,7 @@ int bcma_bus_scan(struct bcma_bus *bus)
478 } else if (err == -ESPIPE) { 480 } else if (err == -ESPIPE) {
479 break; 481 break;
480 } 482 }
481 return err; 483 goto out;
482 } 484 }
483 485
484 core->core_index = core_num++; 486 core->core_index = core_num++;
@@ -494,10 +496,12 @@ int bcma_bus_scan(struct bcma_bus *bus)
494 list_add_tail(&core->list, &bus->cores); 496 list_add_tail(&core->list, &bus->cores);
495 } 497 }
496 498
499 err = 0;
500out:
497 if (bus->hosttype == BCMA_HOSTTYPE_SOC) 501 if (bus->hosttype == BCMA_HOSTTYPE_SOC)
498 iounmap(eromptr); 502 iounmap(eromptr);
499 503
500 return 0; 504 return err;
501} 505}
502 506
503int __init bcma_bus_scan_early(struct bcma_bus *bus, 507int __init bcma_bus_scan_early(struct bcma_bus *bus,
@@ -537,7 +541,7 @@ int __init bcma_bus_scan_early(struct bcma_bus *bus,
537 else if (err == -ESPIPE) 541 else if (err == -ESPIPE)
538 break; 542 break;
539 else if (err < 0) 543 else if (err < 0)
540 return err; 544 goto out;
541 545
542 core->core_index = core_num++; 546 core->core_index = core_num++;
543 bus->nr_cores++; 547 bus->nr_cores++;
@@ -551,6 +555,7 @@ int __init bcma_bus_scan_early(struct bcma_bus *bus,
551 break; 555 break;
552 } 556 }
553 557
558out:
554 if (bus->hosttype == BCMA_HOSTTYPE_SOC) 559 if (bus->hosttype == BCMA_HOSTTYPE_SOC)
555 iounmap(eromptr); 560 iounmap(eromptr);
556 561