[PATCH] Fw: [Bugme-new] [Bug 4482] New: natsemi: incorrect initialization of IPv6 Neighbor-discovery multicast

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>
diff --git a/drivers/net/natsemi.c b/drivers/net/natsemi.c
index 223bdad..babb59e 100644
--- a/drivers/net/natsemi.c
+++ b/drivers/net/natsemi.c
@@ -2433,9 +2433,9 @@
 		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);