Lines Matching defs:gids

160 static int mlx4_ib_update_gids_v1(struct gid_entry *gids,
177 memcpy(&gid_tbl[i], &gids[i].gid, sizeof(union ib_gid));
193 static int mlx4_ib_update_gids_v1_v2(struct gid_entry *gids,
216 memcpy(&gid_tbl[i].gid, &gids[i].gid, sizeof(union ib_gid));
217 if (gids[i].gid_type == IB_GID_TYPE_ROCE_UDP_ENCAP) {
219 if (!ipv6_addr_v4mapped((struct in6_addr *)&gids[i].gid))
238 static int mlx4_ib_update_gids(struct gid_entry *gids,
243 return mlx4_ib_update_gids_v1_v2(gids, ibdev, port_num);
245 return mlx4_ib_update_gids_v1(gids, ibdev, port_num);
264 struct gid_entry *gids;
280 port_gid_table = &iboe->gids[attr->port_num - 1];
283 if (!memcmp(&port_gid_table->gids[i].gid,
285 port_gid_table->gids[i].gid_type == attr->gid_type &&
286 port_gid_table->gids[i].vlan_id == vlan_id) {
290 if (free < 0 && rdma_is_zero_gid(&port_gid_table->gids[i].gid))
298 port_gid_table->gids[free].ctx = kmalloc(sizeof(*port_gid_table->gids[free].ctx), GFP_ATOMIC);
299 if (!port_gid_table->gids[free].ctx) {
302 *context = port_gid_table->gids[free].ctx;
303 port_gid_table->gids[free].gid = attr->gid;
304 port_gid_table->gids[free].gid_type = attr->gid_type;
305 port_gid_table->gids[free].vlan_id = vlan_id;
306 port_gid_table->gids[free].ctx->real_index = free;
307 port_gid_table->gids[free].ctx->refcount = 1;
312 struct gid_cache_context *ctx = port_gid_table->gids[found].ctx;
317 gids = kmalloc_array(MLX4_MAX_PORT_GIDS, sizeof(*gids),
319 if (!gids) {
322 free_gid_entry(&port_gid_table->gids[free]);
325 memcpy(&gids[i].gid, &port_gid_table->gids[i].gid, sizeof(union ib_gid));
326 gids[i].gid_type = port_gid_table->gids[i].gid_type;
333 ret = mlx4_ib_update_gids(gids, ibdev, attr->port_num);
337 free_gid_entry(&port_gid_table->gids[free]);
340 kfree(gids);
354 struct gid_entry *gids;
362 port_gid_table = &iboe->gids[attr->port_num - 1];
369 free_gid_entry(&port_gid_table->gids[real_index]);
376 gids = kmalloc_array(MLX4_MAX_PORT_GIDS, sizeof(*gids),
378 if (!gids) {
382 memcpy(&gids[i].gid,
383 &port_gid_table->gids[i].gid,
385 gids[i].gid_type =
386 port_gid_table->gids[i].gid_type;
393 ret = mlx4_ib_update_gids(gids, ibdev, attr->port_num);
394 kfree(gids);
420 port_gid_table = &iboe->gids[port_num - 1];
423 if (!memcmp(&port_gid_table->gids[i].gid,
425 attr->gid_type == port_gid_table->gids[i].gid_type) {
426 ctx = port_gid_table->gids[i].ctx;