Lines Matching refs:gids
157 static int mlx4_ib_update_gids(struct gid_entry *gids, in mlx4_ib_update_gids() argument
174 memcpy(&gid_tbl[i], &gids[i].gid, sizeof(union ib_gid)); in mlx4_ib_update_gids()
204 struct gid_entry *gids = NULL; in mlx4_ib_add_gid() local
215 port_gid_table = &iboe->gids[port_num - 1]; in mlx4_ib_add_gid()
218 if (!memcmp(&port_gid_table->gids[i].gid, gid, sizeof(*gid))) { in mlx4_ib_add_gid()
222 if (free < 0 && !memcmp(&port_gid_table->gids[i].gid, &zgid, sizeof(*gid))) in mlx4_ib_add_gid()
230 port_gid_table->gids[free].ctx = kmalloc(sizeof(*port_gid_table->gids[free].ctx), GFP_ATOMIC); in mlx4_ib_add_gid()
231 if (!port_gid_table->gids[free].ctx) { in mlx4_ib_add_gid()
234 *context = port_gid_table->gids[free].ctx; in mlx4_ib_add_gid()
235 memcpy(&port_gid_table->gids[free].gid, gid, sizeof(*gid)); in mlx4_ib_add_gid()
236 port_gid_table->gids[free].ctx->real_index = free; in mlx4_ib_add_gid()
237 port_gid_table->gids[free].ctx->refcount = 1; in mlx4_ib_add_gid()
242 struct gid_cache_context *ctx = port_gid_table->gids[found].ctx; in mlx4_ib_add_gid()
247 gids = kmalloc(sizeof(*gids) * MLX4_MAX_PORT_GIDS, GFP_ATOMIC); in mlx4_ib_add_gid()
248 if (!gids) { in mlx4_ib_add_gid()
252 memcpy(&gids[i].gid, &port_gid_table->gids[i].gid, sizeof(union ib_gid)); in mlx4_ib_add_gid()
258 ret = mlx4_ib_update_gids(gids, ibdev, port_num); in mlx4_ib_add_gid()
259 kfree(gids); in mlx4_ib_add_gid()
276 struct gid_entry *gids = NULL; in mlx4_ib_del_gid() local
284 port_gid_table = &iboe->gids[port_num - 1]; in mlx4_ib_del_gid()
291 memcpy(&port_gid_table->gids[real_index].gid, &zgid, sizeof(zgid)); in mlx4_ib_del_gid()
292 kfree(port_gid_table->gids[real_index].ctx); in mlx4_ib_del_gid()
293 port_gid_table->gids[real_index].ctx = NULL; in mlx4_ib_del_gid()
300 gids = kmalloc(sizeof(*gids) * MLX4_MAX_PORT_GIDS, GFP_ATOMIC); in mlx4_ib_del_gid()
301 if (!gids) { in mlx4_ib_del_gid()
305 memcpy(&gids[i].gid, &port_gid_table->gids[i].gid, sizeof(union ib_gid)); in mlx4_ib_del_gid()
311 ret = mlx4_ib_update_gids(gids, ibdev, port_num); in mlx4_ib_del_gid()
312 kfree(gids); in mlx4_ib_del_gid()
346 port_gid_table = &iboe->gids[port_num - 1]; in mlx4_ib_gid_index_to_real_index()
349 if (!memcmp(&port_gid_table->gids[i].gid, &gid, sizeof(gid))) { in mlx4_ib_gid_index_to_real_index()
350 ctx = port_gid_table->gids[i].ctx; in mlx4_ib_gid_index_to_real_index()