} else if ( (dev->flags & IFF_ALLMULTI) || (dev->mc_count > VETH_MAX_MCAST) ) { port->all_mcast = 1; 
static void veth_set_multicast_list(struct net_device *dev){	struct veth_port *port = (struct veth_port *) dev->priv;	unsigned long flags;	write_lock_irqsave(&port->mcast_gate, flags);	if (dev->flags & IFF_PROMISC) {	/* set promiscuous mode */		printk(KERN_INFO "%s: Promiscuous mode enabled.\n",		       dev->name);		port->promiscuous = 1;	} else if ( (dev->flags & IFF_ALLMULTI)		    || (dev->mc_count > VETH_MAX_MCAST) ) {		port->all_mcast = 1;	} else {		struct dev_mc_list *dmi = dev->mc_list;		int i;		/* Update table */		port->num_mcast = 0;		for (i = 0; i < dev->mc_count; i++) {			u8 *addr = dmi->dmi_addr;			u64 xaddr = 0;			if (addr[0] & 0x01) {/* multicast address? */				memcpy(&xaddr, addr, ETH_ALEN);				port->mcast_addr[port->num_mcast] = xaddr;				port->num_mcast++;			}			dmi = dmi->next;		}	}	write_unlock_irqrestore(&port->mcast_gate, flags);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/2a5391a12297d1759b1c736634acb95793d43fb3/iseries_veth.c/buggy/drivers/net/iseries_veth.c