/* Set or clear the multicast filter for this adapter.  */
static void set_multicast_list(struct net_device *dev)
/* Set or clear the multicast filter for this adapter.  */
static void set_multicast_list(struct net_device *dev)
{
	struct ewrk3_private *lp = netdev_priv(dev);
	u_long iobase = dev->base_addr;
	u_char csr;
	csr = inb(EWRK3_CSR);
	if (lp->shmem_length == IO_ONLY) {
		lp->mctbl = NULL;
	} else {
		lp->mctbl = lp->shmem + PAGE0_HTE;
	}
	csr &= ~(CSR_PME | CSR_MCE);
	if (dev->flags & IFF_PROMISC) {
		csr |= CSR_PME;
		outb(csr, EWRK3_CSR);
	} else {
		SetMulticastFilter(dev);
		csr |= CSR_MCE;
		outb(csr, EWRK3_CSR);
	}
}