Lines Matching refs:dup_table

191 	struct mlx4_mac_table *dup_table = &mlx4_priv(dev)->port[dup_port].mac_table;  in __mlx4_register_mac()  local
202 mutex_lock_nested(&dup_table->mutex, SINGLE_DEPTH_NESTING); in __mlx4_register_mac()
204 mutex_lock(&dup_table->mutex); in __mlx4_register_mac()
218 if (((MLX4_MAC_MASK & mac) == (MLX4_MAC_MASK & be64_to_cpu(dup_table->entries[i])))) in __mlx4_register_mac()
232 dup_table->refs[index_at_port]) { in __mlx4_register_mac()
255 if (!dup_table->refs[i]) in __mlx4_register_mac()
267 u64 dup_mac = MLX4_MAC_MASK & be64_to_cpu(dup_table->entries[i]); in __mlx4_register_mac()
269 if (dup_mac != mac || !dup_table->is_dup[i]) { in __mlx4_register_mac()
312 dup_table->refs[free] = 0; in __mlx4_register_mac()
313 dup_table->is_dup[free] = true; in __mlx4_register_mac()
314 dup_table->entries[free] = cpu_to_be64(mac | MLX4_MAC_VALID); in __mlx4_register_mac()
316 err = mlx4_set_port_mac_table(dev, dup_port, dup_table->entries); in __mlx4_register_mac()
319 dup_table->is_dup[free] = false; in __mlx4_register_mac()
320 dup_table->entries[free] = 0; in __mlx4_register_mac()
323 ++dup_table->total; in __mlx4_register_mac()
330 mutex_unlock(&dup_table->mutex); in __mlx4_register_mac()
332 mutex_unlock(&dup_table->mutex); in __mlx4_register_mac()
386 struct mlx4_mac_table *dup_table = &mlx4_priv(dev)->port[dup_port].mac_table; in __mlx4_unregister_mac() local
398 mutex_lock_nested(&dup_table->mutex, SINGLE_DEPTH_NESTING); in __mlx4_unregister_mac()
400 mutex_lock(&dup_table->mutex); in __mlx4_unregister_mac()
416 dup_table->is_dup[index] = false; in __mlx4_unregister_mac()
426 dup_table->is_dup[index] = false; in __mlx4_unregister_mac()
427 if (dup_table->refs[index]) in __mlx4_unregister_mac()
429 dup_table->entries[index] = 0; in __mlx4_unregister_mac()
430 if (mlx4_set_port_mac_table(dev, dup_port, dup_table->entries)) in __mlx4_unregister_mac()
439 mutex_unlock(&dup_table->mutex); in __mlx4_unregister_mac()
441 mutex_unlock(&dup_table->mutex); in __mlx4_unregister_mac()
482 struct mlx4_mac_table *dup_table = &mlx4_priv(dev)->port[dup_port].mac_table; in __mlx4_replace_mac() local
488 mutex_lock_nested(&dup_table->mutex, SINGLE_DEPTH_NESTING); in __mlx4_replace_mac()
490 mutex_lock(&dup_table->mutex); in __mlx4_replace_mac()
510 dup_table->entries[index] = cpu_to_be64(new_mac | MLX4_MAC_VALID); in __mlx4_replace_mac()
512 err = mlx4_set_port_mac_table(dev, dup_port, dup_table->entries); in __mlx4_replace_mac()
516 dup_table->entries[index] = 0; in __mlx4_replace_mac()
524 mutex_unlock(&dup_table->mutex); in __mlx4_replace_mac()
526 mutex_unlock(&dup_table->mutex); in __mlx4_replace_mac()
586 struct mlx4_vlan_table *dup_table = &mlx4_priv(dev)->port[dup_port].vlan_table; in __mlx4_register_vlan() local
597 mutex_lock_nested(&dup_table->mutex, SINGLE_DEPTH_NESTING); in __mlx4_register_vlan()
599 mutex_lock(&dup_table->mutex); in __mlx4_register_vlan()
619 if (vlan == (MLX4_VLAN_MASK & be32_to_cpu(dup_table->entries[i]))) in __mlx4_register_vlan()
632 dup_table->refs[index_at_port]) { in __mlx4_register_vlan()
643 (vlan == (MLX4_VLAN_MASK & be32_to_cpu(dup_table->entries[index_at_dup_port])))) in __mlx4_register_vlan()
655 if (!dup_table->refs[i]) in __mlx4_register_vlan()
668 u16 dup_vlan = MLX4_VLAN_MASK & be32_to_cpu(dup_table->entries[i]); in __mlx4_register_vlan()
670 if (dup_vlan != vlan || !dup_table->is_dup[i]) { in __mlx4_register_vlan()
710 dup_table->refs[free] = 0; in __mlx4_register_vlan()
711 dup_table->is_dup[free] = true; in __mlx4_register_vlan()
712 dup_table->entries[free] = cpu_to_be32(vlan | MLX4_VLAN_VALID); in __mlx4_register_vlan()
714 err = mlx4_set_port_vlan_table(dev, dup_port, dup_table->entries); in __mlx4_register_vlan()
717 dup_table->is_dup[free] = false; in __mlx4_register_vlan()
718 dup_table->entries[free] = 0; in __mlx4_register_vlan()
721 ++dup_table->total; in __mlx4_register_vlan()
729 mutex_unlock(&dup_table->mutex); in __mlx4_register_vlan()
731 mutex_unlock(&dup_table->mutex); in __mlx4_register_vlan()
768 struct mlx4_vlan_table *dup_table = &mlx4_priv(dev)->port[dup_port].vlan_table; in __mlx4_unregister_vlan() local
773 mutex_lock_nested(&dup_table->mutex, SINGLE_DEPTH_NESTING); in __mlx4_unregister_vlan()
775 mutex_lock(&dup_table->mutex); in __mlx4_unregister_vlan()
796 dup_table->is_dup[index] = false; in __mlx4_unregister_vlan()
804 dup_table->is_dup[index] = false; in __mlx4_unregister_vlan()
805 if (dup_table->refs[index]) in __mlx4_unregister_vlan()
807 dup_table->entries[index] = 0; in __mlx4_unregister_vlan()
808 if (mlx4_set_port_vlan_table(dev, dup_port, dup_table->entries)) in __mlx4_unregister_vlan()
810 --dup_table->total; in __mlx4_unregister_vlan()
816 mutex_unlock(&dup_table->mutex); in __mlx4_unregister_vlan()
818 mutex_unlock(&dup_table->mutex); in __mlx4_unregister_vlan()