diff options
author | Jeff Garzik <jeff@garzik.org> | 2006-03-04 12:06:51 -0500 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-03-04 12:06:51 -0500 |
commit | a7a80d5ad3735554338199b9d976dfda5c10d3c7 (patch) | |
tree | fb637b295a1614b919a205896612d88673c066c6 /drivers/net | |
parent | c499ec24c31edf270e777a868ffd0daddcfe7ebd (diff) |
s2io: set_multicast_list bug
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 <akepner@sgi.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/s2io.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/s2io.c b/drivers/net/s2io.c index 49b597cbc19a..b7f00d6eb6a6 100644 --- a/drivers/net/s2io.c +++ b/drivers/net/s2io.c | |||
@@ -4092,6 +4092,7 @@ static void s2io_set_multicast(struct net_device *dev) | |||
4092 | i++, mclist = mclist->next) { | 4092 | i++, mclist = mclist->next) { |
4093 | memcpy(sp->usr_addrs[i].addr, mclist->dmi_addr, | 4093 | memcpy(sp->usr_addrs[i].addr, mclist->dmi_addr, |
4094 | ETH_ALEN); | 4094 | ETH_ALEN); |
4095 | mac_addr = 0; | ||
4095 | for (j = 0; j < ETH_ALEN; j++) { | 4096 | for (j = 0; j < ETH_ALEN; j++) { |
4096 | mac_addr |= mclist->dmi_addr[j]; | 4097 | mac_addr |= mclist->dmi_addr[j]; |
4097 | mac_addr <<= 8; | 4098 | mac_addr <<= 8; |