/* Allocate a mcast_address structure to hold the multicast address. Link it in.  */
static int slic_mcast_add_list(struct adapter *adapter, char *address)
/* Allocate a mcast_address structure to hold the multicast address. Link it in.  */
static int slic_mcast_add_list(struct adapter *adapter, char *address)
{
	struct mcast_address *mcaddr, *mlist;
	bool equaladdr;
	mlist = adapter->mcastaddrs;
	while (mlist) {
		ETHER_EQ_ADDR(mlist->address, address, equaladdr);
		if (equaladdr)
			return STATUS_SUCCESS;
		mlist = mlist->next;
	}
	mcaddr = kmalloc(sizeof(struct mcast_address), GFP_ATOMIC);
	if (mcaddr == NULL)
		return 1;
	memcpy(mcaddr->address, address, 6);
	mcaddr->next = adapter->mcastaddrs;
	adapter->mcastaddrs = mcaddr;
	return STATUS_SUCCESS;
}