Lines Matching refs:data_vec
112 struct ib_gid_table_entry *data_vec; member
129 write_lock_irqsave(&table->data_vec[ix].lock, flags); in write_gid()
132 table->data_vec[ix].props |= GID_TABLE_ENTRY_INVALID; in write_gid()
133 write_unlock_irqrestore(&table->data_vec[ix].lock, flags); in write_gid()
139 &table->data_vec[ix].context); in write_gid()
142 &table->data_vec[ix].context); in write_gid()
143 write_lock_irqsave(&table->data_vec[ix].lock, flags); in write_gid()
146 old_net_dev = table->data_vec[ix].attr.ndev; in write_gid()
153 table->data_vec[ix].context = NULL; in write_gid()
156 table->data_vec[ix].props |= GID_TABLE_ENTRY_DEFAULT; in write_gid()
157 memcpy(&table->data_vec[ix].gid, gid, sizeof(*gid)); in write_gid()
158 memcpy(&table->data_vec[ix].attr, attr, sizeof(*attr)); in write_gid()
159 if (table->data_vec[ix].attr.ndev && in write_gid()
160 table->data_vec[ix].attr.ndev != old_net_dev) in write_gid()
161 dev_hold(table->data_vec[ix].attr.ndev); in write_gid()
163 table->data_vec[ix].props &= ~GID_TABLE_ENTRY_INVALID; in write_gid()
165 write_unlock_irqrestore(&table->data_vec[ix].lock, flags); in write_gid()
212 struct ib_gid_attr *attr = &table->data_vec[i].attr; in find_gid()
214 read_lock_irqsave(&table->data_vec[i].lock, flags); in find_gid()
216 if (table->data_vec[i].props & GID_TABLE_ENTRY_INVALID) in find_gid()
220 memcmp(gid, &table->data_vec[i].gid, sizeof(*gid))) in find_gid()
228 !!(table->data_vec[i].props & GID_TABLE_ENTRY_DEFAULT) != in find_gid()
232 read_unlock_irqrestore(&table->data_vec[i].lock, flags); in find_gid()
235 read_unlock_irqrestore(&table->data_vec[i].lock, flags); in find_gid()
335 if (table->data_vec[ix].attr.ndev == ndev) in ib_cache_gid_del_all_netdev_gids()
354 read_lock_irqsave(&table->data_vec[index].lock, flags); in __ib_cache_gid_get()
355 if (table->data_vec[index].props & GID_TABLE_ENTRY_INVALID) { in __ib_cache_gid_get()
356 read_unlock_irqrestore(&table->data_vec[index].lock, flags); in __ib_cache_gid_get()
360 memcpy(gid, &table->data_vec[index].gid, sizeof(*gid)); in __ib_cache_gid_get()
362 memcpy(attr, &table->data_vec[index].attr, sizeof(*attr)); in __ib_cache_gid_get()
367 read_unlock_irqrestore(&table->data_vec[index].lock, flags); in __ib_cache_gid_get()
491 read_lock_irqsave(&table->data_vec[i].lock, flags); in ib_cache_gid_find_by_filter()
492 if (table->data_vec[i].props & GID_TABLE_ENTRY_INVALID) in ib_cache_gid_find_by_filter()
495 if (memcmp(gid, &table->data_vec[i].gid, sizeof(*gid))) in ib_cache_gid_find_by_filter()
498 memcpy(&attr, &table->data_vec[i].attr, sizeof(attr)); in ib_cache_gid_find_by_filter()
504 read_unlock_irqrestore(&table->data_vec[i].lock, flags); in ib_cache_gid_find_by_filter()
526 table->data_vec = kcalloc(sz, sizeof(*table->data_vec), GFP_KERNEL); in alloc_gid_table()
527 if (!table->data_vec) in alloc_gid_table()
535 rwlock_init(&table->data_vec[i].lock); in alloc_gid_table()
547 kfree(table->data_vec); in release_gid_table()
561 if (memcmp(&table->data_vec[i].gid, &zgid, in cleanup_gid_table_port()
562 sizeof(table->data_vec[i].gid))) in cleanup_gid_table_port()
564 table->data_vec[i].props & in cleanup_gid_table_port()
624 struct ib_gid_table_entry *entry = &table->data_vec[0]; in gid_table_reserve_default()