/* Set or clear the multicast filter for this adaptor.  */
static void set_multicast_list(struct net_device *dev)
/* Set or clear the multicast filter for this adaptor.  */
static void set_multicast_list(struct net_device *dev)
{
    struct de4x5_private *lp = netdev_priv(dev);
    u_long iobase = dev->base_addr;
    if (lp->state == OPEN) {
	if (dev->flags & IFF_PROMISC) {
	    u32 omr;
	    omr = inl(DE4X5_OMR);
	    omr |= OMR_PR;
	    outl(omr, DE4X5_OMR);
	} else {
	    SetMulticastFilter(dev);
	    load_packet(dev, lp->setup_frame, TD_IC | PERFECT_F | TD_SET |
			                                SETUP_FRAME_LEN, (struct sk_buff *)1);
	    lp->tx_new = (++lp->tx_new) % lp->txRingSize;
	    outl(POLL_DEMAND, DE4X5_TPD);
	    dev->trans_start = jiffies;
	}
    }
}