Lines Matching refs:htbl
1092 static u32 ipoib_addr_hash(struct ipoib_neigh_hash *htbl, u8 *daddr) in ipoib_addr_hash() argument
1105 return hv & htbl->mask; in ipoib_addr_hash()
1112 struct ipoib_neigh_hash *htbl; in ipoib_neigh_get() local
1118 htbl = rcu_dereference_bh(ntbl->htbl); in ipoib_neigh_get()
1120 if (!htbl) in ipoib_neigh_get()
1123 hash_val = ipoib_addr_hash(htbl, daddr); in ipoib_neigh_get()
1124 for (neigh = rcu_dereference_bh(htbl->buckets[hash_val]); in ipoib_neigh_get()
1147 struct ipoib_neigh_hash *htbl; in __ipoib_reap_neigh() local
1161 htbl = rcu_dereference_protected(ntbl->htbl, in __ipoib_reap_neigh()
1164 if (!htbl) in __ipoib_reap_neigh()
1174 for (i = 0; i < htbl->size; i++) { in __ipoib_reap_neigh()
1176 struct ipoib_neigh __rcu **np = &htbl->buckets[i]; in __ipoib_reap_neigh()
1254 struct ipoib_neigh_hash *htbl; in ipoib_neigh_alloc() local
1258 htbl = rcu_dereference_protected(ntbl->htbl, in ipoib_neigh_alloc()
1260 if (!htbl) { in ipoib_neigh_alloc()
1268 hash_val = ipoib_addr_hash(htbl, daddr); in ipoib_neigh_alloc()
1269 for (neigh = rcu_dereference_protected(htbl->buckets[hash_val], in ipoib_neigh_alloc()
1295 rcu_dereference_protected(htbl->buckets[hash_val], in ipoib_neigh_alloc()
1297 rcu_assign_pointer(htbl->buckets[hash_val], neigh); in ipoib_neigh_alloc()
1343 struct ipoib_neigh_hash *htbl; in ipoib_neigh_free() local
1348 htbl = rcu_dereference_protected(ntbl->htbl, in ipoib_neigh_free()
1350 if (!htbl) in ipoib_neigh_free()
1353 hash_val = ipoib_addr_hash(htbl, neigh->daddr); in ipoib_neigh_free()
1354 np = &htbl->buckets[hash_val]; in ipoib_neigh_free()
1378 struct ipoib_neigh_hash *htbl; in ipoib_neigh_hash_init() local
1383 ntbl->htbl = NULL; in ipoib_neigh_hash_init()
1384 htbl = kzalloc(sizeof(*htbl), GFP_KERNEL); in ipoib_neigh_hash_init()
1385 if (!htbl) in ipoib_neigh_hash_init()
1391 kfree(htbl); in ipoib_neigh_hash_init()
1394 htbl->size = size; in ipoib_neigh_hash_init()
1395 htbl->mask = (size - 1); in ipoib_neigh_hash_init()
1396 htbl->buckets = buckets; in ipoib_neigh_hash_init()
1397 RCU_INIT_POINTER(ntbl->htbl, htbl); in ipoib_neigh_hash_init()
1398 htbl->ntbl = ntbl; in ipoib_neigh_hash_init()
1411 struct ipoib_neigh_hash *htbl = container_of(head, in neigh_hash_free_rcu() local
1414 struct ipoib_neigh __rcu **buckets = htbl->buckets; in neigh_hash_free_rcu()
1415 struct ipoib_neigh_table *ntbl = htbl->ntbl; in neigh_hash_free_rcu()
1418 kfree(htbl); in neigh_hash_free_rcu()
1426 struct ipoib_neigh_hash *htbl; in ipoib_del_neighs_by_gid() local
1433 htbl = rcu_dereference_protected(ntbl->htbl, in ipoib_del_neighs_by_gid()
1436 if (!htbl) in ipoib_del_neighs_by_gid()
1439 for (i = 0; i < htbl->size; i++) { in ipoib_del_neighs_by_gid()
1441 struct ipoib_neigh __rcu **np = &htbl->buckets[i]; in ipoib_del_neighs_by_gid()
1466 struct ipoib_neigh_hash *htbl; in ipoib_flush_neighs() local
1474 htbl = rcu_dereference_protected(ntbl->htbl, in ipoib_flush_neighs()
1476 if (!htbl) in ipoib_flush_neighs()
1483 for (i = 0; i < htbl->size; i++) { in ipoib_flush_neighs()
1485 struct ipoib_neigh __rcu **np = &htbl->buckets[i]; in ipoib_flush_neighs()
1499 rcu_assign_pointer(ntbl->htbl, NULL); in ipoib_flush_neighs()
1500 call_rcu(&htbl->rcu, neigh_hash_free_rcu); in ipoib_flush_neighs()