From: Herbert Xu <herbert@gondor.apana.org.au>

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.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Cc: Jeff Garzik <jgarzik@pobox.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 drivers/net/natsemi.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff -puN drivers/net/natsemi.c~natsemi-multicast-initialisation-fix drivers/net/natsemi.c
--- 25/drivers/net/natsemi.c~natsemi-multicast-initialisation-fix	2005-04-27 00:10:26.657321848 -0700
+++ 25-akpm/drivers/net/natsemi.c	2005-04-27 00:10:26.663320936 -0700
@@ -2444,9 +2444,9 @@ static void __set_rx_mode(struct net_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);
_