Lines Matching refs:mpfs
36 #include <linux/mlx5/mpfs.h>
39 #include "lib/mpfs.h"
100 struct mlx5_mpfs *mpfs;
105 mpfs = kzalloc(sizeof(*mpfs), GFP_KERNEL);
106 if (!mpfs)
109 mutex_init(&mpfs->lock);
110 mpfs->size = l2table_size;
111 mpfs->bitmap = bitmap_zalloc(l2table_size, GFP_KERNEL);
112 if (!mpfs->bitmap) {
113 kfree(mpfs);
117 dev->priv.mpfs = mpfs;
123 struct mlx5_mpfs *mpfs = dev->priv.mpfs;
125 if (!mpfs)
128 WARN_ON(!hlist_empty(mpfs->hash));
129 bitmap_free(mpfs->bitmap);
130 kfree(mpfs);
135 struct mlx5_mpfs *mpfs = dev->priv.mpfs;
140 if (!mpfs)
143 mutex_lock(&mpfs->lock);
145 l2addr = l2addr_hash_find(mpfs->hash, mac, struct l2table_node);
151 err = alloc_l2table_index(mpfs, &index);
155 l2addr = l2addr_hash_add(mpfs->hash, mac, struct l2table_node, GFP_KERNEL);
174 free_l2table_index(mpfs, index);
176 mutex_unlock(&mpfs->lock);
183 struct mlx5_mpfs *mpfs = dev->priv.mpfs;
188 if (!mpfs)
191 mutex_lock(&mpfs->lock);
193 l2addr = l2addr_hash_find(mpfs->hash, mac, struct l2table_node);
205 free_l2table_index(mpfs, index);
208 mutex_unlock(&mpfs->lock);