 outb(saved_config_0, ioaddr + CONFIG_0);  
static void set_rx_mode(struct net_device *dev){    kio_addr_t ioaddr = dev->base_addr;    struct local_info_t *lp = netdev_priv(dev);    u_char mc_filter[8];		 /* Multicast hash filter */    u_long flags;    int i;        if (dev->flags & IFF_PROMISC) {	/* Unconditionally log net taps. */	printk("%s: Promiscuous mode enabled.\n", dev->name);	memset(mc_filter, 0xff, sizeof(mc_filter));	outb(3, ioaddr + RX_MODE);	/* Enable promiscuous mode */    } else if (dev->mc_count > MC_FILTERBREAK	       ||  (dev->flags & IFF_ALLMULTI)) {	/* Too many to filter perfectly -- accept all multicasts. */	memset(mc_filter, 0xff, sizeof(mc_filter));	outb(2, ioaddr + RX_MODE);	/* Use normal mode. */    } else if (dev->mc_count == 0) {	memset(mc_filter, 0x00, sizeof(mc_filter));	outb(1, ioaddr + RX_MODE);	/* Ignore almost all multicasts. */    } 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) {	    unsigned int bit =	    	ether_crc_le(ETH_ALEN, mclist->dmi_addr) & 0x3f;	    mc_filter[bit >> 3] |= (1 << bit);	}    }    local_irq_save(flags);     if (memcmp(mc_filter, lp->mc_filter, sizeof(mc_filter))) {	int saved_bank = inb(ioaddr + CONFIG_1);	/* Switch to bank 1 and set the multicast table. */	outb(0xe4, ioaddr + CONFIG_1);	for (i = 0; i < 8; i++)	    outb(mc_filter[i], ioaddr + 8 + i);	memcpy(lp->mc_filter, mc_filter, sizeof(mc_filter));	outb(saved_bank, ioaddr + CONFIG_1);    }    local_irq_restore(flags);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/d9a8a0a3574525bf422fd2f05eec739c0d25814f/fmvj18x_cs.c/clean/drivers/net/pcmcia/fmvj18x_cs.c