From: Ben Hutchings Date: Fri, 15 Oct 2010 03:36:53 +0000 (+0100) Subject: r6040: Fix multicast list iteration when hash filter is used X-Git-Tag: v2.6.33.8~441 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=b19dda10c483c0a4fa02310653a441e413b98397;p=karo-tx-linux.git 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 Reference: http://bugs.debian.org/600155 Signed-off-by: Ben Hutchings Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/net/r6040.c b/drivers/net/r6040.c index 009e2b17d46e..96a0767042f1 100644 --- a/drivers/net/r6040.c +++ b/drivers/net/r6040.c @@ -991,6 +991,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);