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;