/* Removes mac address from the internal hash table  */
static int hash_del(struct emac_priv *priv, u8 *mac_addr)
/* Removes mac address from the internal hash table  */
static int hash_del(struct emac_priv *priv, u8 *mac_addr)
{
	u32 hash_value;
	u32 hash_bit;
	hash_value = hash_get(mac_addr);
	if (priv->multicast_hash_cnt[hash_value] > 0) {
		--priv->multicast_hash_cnt[hash_value];
	}
	if (priv->multicast_hash_cnt[hash_value] > 0)
		return 0;
	if (hash_value < 32) {
		hash_bit = BIT(hash_value);
		priv->mac_hash1 &= ~hash_bit;
	} else {
		hash_bit = BIT((hash_value - 32));
		priv->mac_hash2 &= ~hash_bit;
	}
	return 1;
}