Lines Matching defs:gids

161 static int mlx4_ib_update_gids_v1(struct gid_entry *gids,
178 memcpy(&gid_tbl[i], &gids[i].gid, sizeof(union ib_gid));
194 static int mlx4_ib_update_gids_v1_v2(struct gid_entry *gids,
217 memcpy(&gid_tbl[i].gid, &gids[i].gid, sizeof(union ib_gid));
218 if (gids[i].gid_type == IB_GID_TYPE_ROCE_UDP_ENCAP) {
220 if (!ipv6_addr_v4mapped((struct in6_addr *)&gids[i].gid))
239 static int mlx4_ib_update_gids(struct gid_entry *gids,
244 return mlx4_ib_update_gids_v1_v2(gids, ibdev, port_num);
246 return mlx4_ib_update_gids_v1(gids, ibdev, port_num);
265 struct gid_entry *gids = NULL;
281 port_gid_table = &iboe->gids[attr->port_num - 1];
284 if (!memcmp(&port_gid_table->gids[i].gid,
286 port_gid_table->gids[i].gid_type == attr->gid_type &&
287 port_gid_table->gids[i].vlan_id == vlan_id) {
291 if (free < 0 && rdma_is_zero_gid(&port_gid_table->gids[i].gid))
299 port_gid_table->gids[free].ctx = kmalloc(sizeof(*port_gid_table->gids[free].ctx), GFP_ATOMIC);
300 if (!port_gid_table->gids[free].ctx) {
303 *context = port_gid_table->gids[free].ctx;
304 memcpy(&port_gid_table->gids[free].gid,
306 port_gid_table->gids[free].gid_type = attr->gid_type;
307 port_gid_table->gids[free].vlan_id = vlan_id;
308 port_gid_table->gids[free].ctx->real_index = free;
309 port_gid_table->gids[free].ctx->refcount = 1;
314 struct gid_cache_context *ctx = port_gid_table->gids[found].ctx;
319 gids = kmalloc_array(MLX4_MAX_PORT_GIDS, sizeof(*gids),
321 if (!gids) {
324 free_gid_entry(&port_gid_table->gids[free]);
327 memcpy(&gids[i].gid, &port_gid_table->gids[i].gid, sizeof(union ib_gid));
328 gids[i].gid_type = port_gid_table->gids[i].gid_type;
335 ret = mlx4_ib_update_gids(gids, ibdev, attr->port_num);
339 free_gid_entry(&port_gid_table->gids[free]);
342 kfree(gids);
356 struct gid_entry *gids = NULL;
364 port_gid_table = &iboe->gids[attr->port_num - 1];
371 free_gid_entry(&port_gid_table->gids[real_index]);
378 gids = kmalloc_array(MLX4_MAX_PORT_GIDS, sizeof(*gids),
380 if (!gids) {
384 memcpy(&gids[i].gid,
385 &port_gid_table->gids[i].gid,
387 gids[i].gid_type =
388 port_gid_table->gids[i].gid_type;
395 ret = mlx4_ib_update_gids(gids, ibdev, attr->port_num);
396 kfree(gids);
422 port_gid_table = &iboe->gids[port_num - 1];
425 if (!memcmp(&port_gid_table->gids[i].gid,
427 attr->gid_type == port_gid_table->gids[i].gid_type) {
428 ctx = port_gid_table->gids[i].ctx;