|
@@ -893,16 +893,18 @@ static void r6040_multicast_list(struct net_device *dev)
|
|
|
/* Multicast Address 1~4 case */
|
|
|
i = 0;
|
|
|
netdev_for_each_mc_addr(ha, dev) {
|
|
|
- if (i < MCAST_MAX) {
|
|
|
- adrp = (u16 *) ha->addr;
|
|
|
- iowrite16(adrp[0], ioaddr + MID_1L + 8 * i);
|
|
|
- iowrite16(adrp[1], ioaddr + MID_1M + 8 * i);
|
|
|
- iowrite16(adrp[2], ioaddr + MID_1H + 8 * i);
|
|
|
- } else {
|
|
|
- iowrite16(0xffff, ioaddr + MID_1L + 8 * i);
|
|
|
- iowrite16(0xffff, ioaddr + MID_1M + 8 * i);
|
|
|
- iowrite16(0xffff, ioaddr + MID_1H + 8 * i);
|
|
|
- }
|
|
|
+ if (i >= MCAST_MAX)
|
|
|
+ break;
|
|
|
+ adrp = (u16 *) ha->addr;
|
|
|
+ iowrite16(adrp[0], ioaddr + MID_1L + 8 * i);
|
|
|
+ iowrite16(adrp[1], ioaddr + MID_1M + 8 * i);
|
|
|
+ iowrite16(adrp[2], ioaddr + MID_1H + 8 * i);
|
|
|
+ i++;
|
|
|
+ }
|
|
|
+ while (i < MCAST_MAX) {
|
|
|
+ iowrite16(0xffff, ioaddr + MID_1L + 8 * i);
|
|
|
+ iowrite16(0xffff, ioaddr + MID_1M + 8 * i);
|
|
|
+ iowrite16(0xffff, ioaddr + MID_1H + 8 * i);
|
|
|
i++;
|
|
|
}
|
|
|
}
|