/* This function is intended to be called from the dev->set_multicast_list or dev->set_rx_mode function of layered software devices.  */
int dev_mc_sync(struct net_device *to, struct net_device *from)
/* This function is intended to be called from the dev->set_multicast_list or dev->set_rx_mode function of layered software devices.  */
int dev_mc_sync(struct net_device *to, struct net_device *from)
{
	int err = 0;
	netif_addr_lock_bh(to);
	err = __dev_addr_sync(&to->mc_list, &to->mc_count,
			      &from->mc_list, &from->mc_count);
	if (!err)
		__dev_set_rx_mode(to);
	netif_addr_unlock_bh(to);
	return err;
}