]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - drivers/net/r6040.c
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
[net-next-2.6.git] / drivers / net / r6040.c
index 68a84198eb055dad75f8160c1d396a4b711409e7..0b014c894686b06921d4fa4fa31321fdb0d1412e 100644 (file)
@@ -908,16 +908,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++;
        }
 }