summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Hutchings <ben@decadent.org.uk>2010-10-15 04:36:53 +0100
committerGreg Kroah-Hartman <gregkh@suse.de>2010-10-28 21:44:12 -0700
commite25a2ee620d3cb1e98c697aaa0d802a77c8256fb (patch)
tree5868b388d0b684788f0516dbd7b44396035df489
parente3ddbfba3cd89d14e29f55a105e80217c0a81de1 (diff)
r6040: Fix multicast list iteration when hash filter is used
This was fixed in mainline by the interface change made in commit f9dcbcc9e338d08c0f7de7eba4eaafbbb7f81249. After walking the multicast list to set up the hash filter, this function will walk off the end of the list when filling the exact-match entries. This was fixed in mainline by the interface change made in commit f9dcbcc9e338d08c0f7de7eba4eaafbbb7f81249. Reported-by: spamalot@hispeed.ch Reference: https://bugzilla.kernel.org/show_bug.cgi?id=15355 Reported-by: Jason Heeris <jason.heeris@gmail.com> Reference: http://bugs.debian.org/600155 Signed-off-by: Ben Hutchings <ben@decadent.org.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/net/r6040.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/r6040.c b/drivers/net/r6040.c
index ac865e1d1a1b..9ee9f01a929b 100644
--- a/drivers/net/r6040.c
+++ b/drivers/net/r6040.c
@@ -992,6 +992,7 @@ static void r6040_multicast_list(struct net_device *dev)
iowrite16(hash_table[3], ioaddr + MAR3);
}
/* Multicast Address 1~4 case */
+ dmi = dev->mc_list;
for (i = 0, dmi; (i < dev->mc_count) && (i < MCAST_MAX); i++) {
adrp = (u16 *)dmi->dmi_addr;
iowrite16(adrp[0], ioaddr + MID_1L + 8*i);