The mac_addr variable doesn't get reset between
(re)additions of multicast addresses. One byte
of all multicast addresses (except the first)
can be incorrect.

Signed-off-by: Arthur Kepner <[EMAIL PROTECTED]>

-- 
Arthur
--- linux-2.6.orig/drivers/net/s2io.c   2006-01-24 04:26:09.425074105 -0800
+++ linux-2.6/drivers/net/s2io.c        2006-01-24 04:47:06.692567004 -0800
@@ -4092,6 +4092,7 @@ static void s2io_set_multicast(struct ne
                     i++, mclist = mclist->next) {
                        memcpy(sp->usr_addrs[i].addr, mclist->dmi_addr,
                               ETH_ALEN);
+                       mac_addr = 0;
                        for (j = 0; j < ETH_ALEN; j++) {
                                mac_addr |= mclist->dmi_addr[j];
                                mac_addr <<= 8;

Reply via email to