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); 
static void __set_rx_mode(struct net_device *dev){	void __iomem * ioaddr = ns_ioaddr(dev);	struct netdev_private *np = netdev_priv(dev);	u8 mc_filter[64]; /* Multicast hash filter */	u32 rx_mode;	if (dev->flags & IFF_PROMISC) { /* Set promiscuous. */		/* Unconditionally log net taps. */		printk(KERN_NOTICE "%s: Promiscuous mode enabled.\n",			dev->name);		rx_mode = RxFilterEnable | AcceptBroadcast			| AcceptAllMulticast | AcceptAllPhys | AcceptMyPhys;	} else if ((dev->mc_count > multicast_filter_limit)	  || (dev->flags & IFF_ALLMULTI)) {		rx_mode = RxFilterEnable | AcceptBroadcast			| AcceptAllMulticast | AcceptMyPhys;	} else {		struct dev_mc_list *mclist;		int i;		memset(mc_filter, 0, sizeof(mc_filter));		for (i = 0, mclist = dev->mc_list; mclist && i < dev->mc_count;			 i++, mclist = mclist->next) {			int i = (ether_crc(ETH_ALEN, mclist->dmi_addr) >> 23) & 0x1ff;			mc_filter[i/8] |= (1 << (i & 0x07));		}		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(rx_mode, ioaddr + RxFilterAddr);	np->cur_rx_mode = rx_mode;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/760f86d78d92f39e2ceb55b40f0885eb755c8c2f/natsemi.c/clean/drivers/net/natsemi.c