Lines Matching refs:mdata

53 mlx5e_lookup_rep_bond_slave_entry(struct mlx5e_rep_bond_metadata *mdata,  in mlx5e_lookup_rep_bond_slave_entry()  argument
59 list_for_each_entry(cur, &mdata->slaves_list, list) { in mlx5e_lookup_rep_bond_slave_entry()
69 static void mlx5e_rep_bond_metadata_release(struct mlx5e_rep_bond_metadata *mdata) in mlx5e_rep_bond_metadata_release() argument
71 netdev_dbg(mdata->lag_dev, "destroy rep_bond_metadata(%d)\n", in mlx5e_rep_bond_metadata_release()
72 mdata->metadata_reg_c_0); in mlx5e_rep_bond_metadata_release()
73 list_del(&mdata->list); in mlx5e_rep_bond_metadata_release()
74 mlx5_esw_match_metadata_free(mdata->esw, mdata->metadata_reg_c_0); in mlx5e_rep_bond_metadata_release()
75 WARN_ON(!list_empty(&mdata->slaves_list)); in mlx5e_rep_bond_metadata_release()
76 kfree(mdata); in mlx5e_rep_bond_metadata_release()
84 struct mlx5e_rep_bond_metadata *mdata; in mlx5e_rep_bond_enslave() local
92 mdata = mlx5e_lookup_rep_bond_metadata(&rpriv->uplink_priv, lag_dev); in mlx5e_rep_bond_enslave()
93 if (!mdata) { in mlx5e_rep_bond_enslave()
95 mdata = kzalloc(sizeof(*mdata), GFP_KERNEL); in mlx5e_rep_bond_enslave()
96 if (!mdata) in mlx5e_rep_bond_enslave()
99 mdata->lag_dev = lag_dev; in mlx5e_rep_bond_enslave()
100 mdata->esw = esw; in mlx5e_rep_bond_enslave()
101 INIT_LIST_HEAD(&mdata->slaves_list); in mlx5e_rep_bond_enslave()
102 mdata->metadata_reg_c_0 = mlx5_esw_match_metadata_alloc(esw); in mlx5e_rep_bond_enslave()
103 if (!mdata->metadata_reg_c_0) { in mlx5e_rep_bond_enslave()
104 kfree(mdata); in mlx5e_rep_bond_enslave()
107 list_add(&mdata->list, &rpriv->uplink_priv.bond->metadata_list); in mlx5e_rep_bond_enslave()
110 mdata->metadata_reg_c_0); in mlx5e_rep_bond_enslave()
124 mdata->metadata_reg_c_0); in mlx5e_rep_bond_enslave()
128 mdata->slaves++; in mlx5e_rep_bond_enslave()
129 list_add_tail(&s_entry->list, &mdata->slaves_list); in mlx5e_rep_bond_enslave()
131 rpriv->rep->vport, lag_dev->name, mdata->metadata_reg_c_0); in mlx5e_rep_bond_enslave()
138 if (!mdata->slaves) in mlx5e_rep_bond_enslave()
139 mlx5e_rep_bond_metadata_release(mdata); in mlx5e_rep_bond_enslave()
149 struct mlx5e_rep_bond_metadata *mdata; in mlx5e_rep_bond_unslave() local
156 mdata = mlx5e_lookup_rep_bond_metadata(&rpriv->uplink_priv, lag_dev); in mlx5e_rep_bond_unslave()
157 if (!mdata) in mlx5e_rep_bond_unslave()
160 s_entry = mlx5e_lookup_rep_bond_slave_entry(mdata, netdev); in mlx5e_rep_bond_unslave()
177 rpriv->rep->vport, lag_dev->name, mdata->metadata_reg_c_0); in mlx5e_rep_bond_unslave()
179 if (--mdata->slaves == 0) in mlx5e_rep_bond_unslave()
180 mlx5e_rep_bond_metadata_release(mdata); in mlx5e_rep_bond_unslave()