]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
r6040: Fix multicast list iteration when hash filter is used
authorBen Hutchings <ben@decadent.org.uk>
Fri, 15 Oct 2010 03:36:53 +0000 (04:36 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 29 Oct 2010 04:44:12 +0000 (21:44 -0700)
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>
drivers/net/r6040.c

index ac865e1d1a1b832baede9b73a324c76db3cec292..9ee9f01a929b99711c7c19e3dd9227aa525ff3fe 100644 (file)
@@ -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);