Lines Matching refs:htbl
1160 static u32 ipoib_addr_hash(struct ipoib_neigh_hash *htbl, u8 *daddr) in ipoib_addr_hash() argument
1173 return hv & htbl->mask; in ipoib_addr_hash()
1180 struct ipoib_neigh_hash *htbl; in ipoib_neigh_get() local
1186 htbl = rcu_dereference_bh(ntbl->htbl); in ipoib_neigh_get()
1188 if (!htbl) in ipoib_neigh_get()
1191 hash_val = ipoib_addr_hash(htbl, daddr); in ipoib_neigh_get()
1192 for (neigh = rcu_dereference_bh(htbl->buckets[hash_val]); in ipoib_neigh_get()
1217 struct ipoib_neigh_hash *htbl; in __ipoib_reap_neigh() local
1231 htbl = rcu_dereference_protected(ntbl->htbl, in __ipoib_reap_neigh()
1234 if (!htbl) in __ipoib_reap_neigh()
1244 for (i = 0; i < htbl->size; i++) { in __ipoib_reap_neigh()
1246 struct ipoib_neigh __rcu **np = &htbl->buckets[i]; in __ipoib_reap_neigh()
1324 struct ipoib_neigh_hash *htbl; in ipoib_neigh_alloc() local
1328 htbl = rcu_dereference_protected(ntbl->htbl, in ipoib_neigh_alloc()
1330 if (!htbl) { in ipoib_neigh_alloc()
1338 hash_val = ipoib_addr_hash(htbl, daddr); in ipoib_neigh_alloc()
1339 for (neigh = rcu_dereference_protected(htbl->buckets[hash_val], in ipoib_neigh_alloc()
1365 rcu_dereference_protected(htbl->buckets[hash_val], in ipoib_neigh_alloc()
1367 rcu_assign_pointer(htbl->buckets[hash_val], neigh); in ipoib_neigh_alloc()
1413 struct ipoib_neigh_hash *htbl; in ipoib_neigh_free() local
1418 htbl = rcu_dereference_protected(ntbl->htbl, in ipoib_neigh_free()
1420 if (!htbl) in ipoib_neigh_free()
1423 hash_val = ipoib_addr_hash(htbl, neigh->daddr); in ipoib_neigh_free()
1424 np = &htbl->buckets[hash_val]; in ipoib_neigh_free()
1448 struct ipoib_neigh_hash *htbl; in ipoib_neigh_hash_init() local
1453 ntbl->htbl = NULL; in ipoib_neigh_hash_init()
1454 htbl = kzalloc(sizeof(*htbl), GFP_KERNEL); in ipoib_neigh_hash_init()
1455 if (!htbl) in ipoib_neigh_hash_init()
1461 kfree(htbl); in ipoib_neigh_hash_init()
1464 htbl->size = size; in ipoib_neigh_hash_init()
1465 htbl->mask = (size - 1); in ipoib_neigh_hash_init()
1466 htbl->buckets = buckets; in ipoib_neigh_hash_init()
1467 RCU_INIT_POINTER(ntbl->htbl, htbl); in ipoib_neigh_hash_init()
1468 htbl->ntbl = ntbl; in ipoib_neigh_hash_init()
1481 struct ipoib_neigh_hash *htbl = container_of(head, in neigh_hash_free_rcu() local
1484 struct ipoib_neigh __rcu **buckets = htbl->buckets; in neigh_hash_free_rcu()
1485 struct ipoib_neigh_table *ntbl = htbl->ntbl; in neigh_hash_free_rcu()
1488 kfree(htbl); in neigh_hash_free_rcu()
1496 struct ipoib_neigh_hash *htbl; in ipoib_del_neighs_by_gid() local
1503 htbl = rcu_dereference_protected(ntbl->htbl, in ipoib_del_neighs_by_gid()
1506 if (!htbl) in ipoib_del_neighs_by_gid()
1509 for (i = 0; i < htbl->size; i++) { in ipoib_del_neighs_by_gid()
1511 struct ipoib_neigh __rcu **np = &htbl->buckets[i]; in ipoib_del_neighs_by_gid()
1536 struct ipoib_neigh_hash *htbl; in ipoib_flush_neighs() local
1544 htbl = rcu_dereference_protected(ntbl->htbl, in ipoib_flush_neighs()
1546 if (!htbl) in ipoib_flush_neighs()
1553 for (i = 0; i < htbl->size; i++) { in ipoib_flush_neighs()
1555 struct ipoib_neigh __rcu **np = &htbl->buckets[i]; in ipoib_flush_neighs()
1569 rcu_assign_pointer(ntbl->htbl, NULL); in ipoib_flush_neighs()
1570 call_rcu(&htbl->rcu, neigh_hash_free_rcu); in ipoib_flush_neighs()