|
@@ -276,7 +276,7 @@ static int bcma_get_next_core(struct bcma_bus *bus, u32 __iomem **eromptr,
|
|
|
struct bcma_device *core)
|
|
|
{
|
|
|
u32 tmp;
|
|
|
- u8 i, j;
|
|
|
+ u8 i, j, k;
|
|
|
s32 cia, cib;
|
|
|
u8 ports[2], wrappers[2];
|
|
|
|
|
@@ -367,6 +367,7 @@ static int bcma_get_next_core(struct bcma_bus *bus, u32 __iomem **eromptr,
|
|
|
core->addr = tmp;
|
|
|
|
|
|
/* get & parse slave ports */
|
|
|
+ k = 0;
|
|
|
for (i = 0; i < ports[1]; i++) {
|
|
|
for (j = 0; ; j++) {
|
|
|
tmp = bcma_erom_get_addr_desc(bus, eromptr,
|
|
@@ -376,9 +377,9 @@ static int bcma_get_next_core(struct bcma_bus *bus, u32 __iomem **eromptr,
|
|
|
/* pr_debug("erom: slave port %d "
|
|
|
* "has %d descriptors\n", i, j); */
|
|
|
break;
|
|
|
- } else {
|
|
|
- if (i == 0 && j == 0)
|
|
|
- core->addr1 = tmp;
|
|
|
+ } else if (k < ARRAY_SIZE(core->addr_s)) {
|
|
|
+ core->addr_s[k] = tmp;
|
|
|
+ k++;
|
|
|
}
|
|
|
}
|
|
|
}
|