[PATCH] Fw: [Bugme-new] [Bug 4482] New: natsemi: incorrect initialization of IPv6...
authorHerbert Xu <herbert@gondor.apana.org.au>
Sat, 16 Apr 2005 06:24:16 +0000 (16:24 +1000)
committerJeff Garzik <jgarzik@pobox.com>
Sun, 15 May 2005 22:18:56 +0000 (18:18 -0400)
On Wed, Apr 13, 2005 at 05:36:42PM +0000, Andrew Morton wrote:
>            Summary: natsemi: incorrect initialization of IPv6 Neighbor-
>                     discovery multicast

I've got a pair of FA312 cards and this problem has bothered me
for ages.  This has finally prompted me to do something about it :)

Turns out that somebody wasn't following the documentation.  We were
doing 16-bit writes to 32-bit registers which led to some addresses
working and others not so lucky.

This patch should fix the problem.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/net/natsemi.c

index 223bdadd4c0d56ccca398fbbbb7d3c7a639b32b6..babb59e146ea62524fc00c50ee1d284502e69c56 100644 (file)
@@ -2433,9 +2433,9 @@ static void __set_rx_mode(struct net_device *dev)
                rx_mode = RxFilterEnable | AcceptBroadcast
                        | AcceptMulticast | AcceptMyPhys;
                for (i = 0; i < 64; i += 2) {
-                       writew(HASH_TABLE + i, ioaddr + RxFilterAddr);
-                       writew((mc_filter[i+1]<<8) + mc_filter[i],
-                               ioaddr + RxFilterData);
+                       writel(HASH_TABLE + i, ioaddr + RxFilterAddr);
+                       writel((mc_filter[i + 1] << 8) + mc_filter[i],
+                              ioaddr + RxFilterData);
                }
        }
        writel(rx_mode, ioaddr + RxFilterAddr);