]> git.neil.brown.name Git - history.git/commitdiff
[PATCH] S2io: Multicast fix
authorRavinandan Arakali <ravinandan.arakali@neterion.com>
Sun, 20 Feb 2005 15:46:04 +0000 (10:46 -0500)
committerJeff Garzik <jgarzik@pobox.com>
Sun, 20 Feb 2005 15:46:04 +0000 (10:46 -0500)
Attached is the patch to address the incorrect programming of
individual multicast address into the NIC.

Signed-off-by: Ravinandan Arakali <ravinandan.arakali@neterion.com>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
drivers/net/s2io.c

index f8ef1606c30fbb3297454eb20e59f1125008511d..001a56254efc1c70ef6ac20597fa198ae2171777 100644 (file)
@@ -3025,6 +3025,8 @@ static void s2io_set_multicast(struct net_device *dev)
                for (i = 0; i < prev_cnt; i++) {
                        writeq(RMAC_ADDR_DATA0_MEM_ADDR(dis_addr),
                               &bar0->rmac_addr_data0_mem);
+                       writeq(RMAC_ADDR_DATA1_MEM_MASK(0ULL),
+                               &bar0->rmac_addr_data1_mem);
                        val64 = RMAC_ADDR_CMD_MEM_WE |
                            RMAC_ADDR_CMD_MEM_STROBE_NEW_CMD |
                            RMAC_ADDR_CMD_MEM_OFFSET
@@ -3049,8 +3051,11 @@ static void s2io_set_multicast(struct net_device *dev)
                                mac_addr |= mclist->dmi_addr[j];
                                mac_addr <<= 8;
                        }
+                       mac_addr >>= 8;
                        writeq(RMAC_ADDR_DATA0_MEM_ADDR(mac_addr),
                               &bar0->rmac_addr_data0_mem);
+                       writeq(RMAC_ADDR_DATA1_MEM_MASK(0ULL),
+                               &bar0->rmac_addr_data1_mem);
 
                        val64 = RMAC_ADDR_CMD_MEM_WE |
                            RMAC_ADDR_CMD_MEM_STROBE_NEW_CMD |