Lines Matching refs:htbl
1245 static u32 ipoib_addr_hash(struct ipoib_neigh_hash *htbl, u8 *daddr) in ipoib_addr_hash() argument
1258 return hv & htbl->mask; in ipoib_addr_hash()
1265 struct ipoib_neigh_hash *htbl; in ipoib_neigh_get() local
1271 htbl = rcu_dereference_bh(ntbl->htbl); in ipoib_neigh_get()
1273 if (!htbl) in ipoib_neigh_get()
1276 hash_val = ipoib_addr_hash(htbl, daddr); in ipoib_neigh_get()
1277 for (neigh = rcu_dereference_bh(htbl->buckets[hash_val]); in ipoib_neigh_get()
1302 struct ipoib_neigh_hash *htbl; in __ipoib_reap_neigh() local
1311 htbl = rcu_dereference_protected(ntbl->htbl, in __ipoib_reap_neigh()
1314 if (!htbl) in __ipoib_reap_neigh()
1321 for (i = 0; i < htbl->size; i++) { in __ipoib_reap_neigh()
1323 struct ipoib_neigh __rcu **np = &htbl->buckets[i]; in __ipoib_reap_neigh()
1387 struct ipoib_neigh_hash *htbl; in ipoib_neigh_alloc() local
1391 htbl = rcu_dereference_protected(ntbl->htbl, in ipoib_neigh_alloc()
1393 if (!htbl) { in ipoib_neigh_alloc()
1401 hash_val = ipoib_addr_hash(htbl, daddr); in ipoib_neigh_alloc()
1402 for (neigh = rcu_dereference_protected(htbl->buckets[hash_val], in ipoib_neigh_alloc()
1428 rcu_dereference_protected(htbl->buckets[hash_val], in ipoib_neigh_alloc()
1430 rcu_assign_pointer(htbl->buckets[hash_val], neigh); in ipoib_neigh_alloc()
1476 struct ipoib_neigh_hash *htbl; in ipoib_neigh_free() local
1481 htbl = rcu_dereference_protected(ntbl->htbl, in ipoib_neigh_free()
1483 if (!htbl) in ipoib_neigh_free()
1486 hash_val = ipoib_addr_hash(htbl, neigh->daddr); in ipoib_neigh_free()
1487 np = &htbl->buckets[hash_val]; in ipoib_neigh_free()
1511 struct ipoib_neigh_hash *htbl; in ipoib_neigh_hash_init() local
1516 ntbl->htbl = NULL; in ipoib_neigh_hash_init()
1517 htbl = kzalloc(sizeof(*htbl), GFP_KERNEL); in ipoib_neigh_hash_init()
1518 if (!htbl) in ipoib_neigh_hash_init()
1523 kfree(htbl); in ipoib_neigh_hash_init()
1526 htbl->size = size; in ipoib_neigh_hash_init()
1527 htbl->mask = (size - 1); in ipoib_neigh_hash_init()
1528 htbl->buckets = buckets; in ipoib_neigh_hash_init()
1529 RCU_INIT_POINTER(ntbl->htbl, htbl); in ipoib_neigh_hash_init()
1530 htbl->ntbl = ntbl; in ipoib_neigh_hash_init()
1542 struct ipoib_neigh_hash *htbl = container_of(head, in neigh_hash_free_rcu() local
1545 struct ipoib_neigh __rcu **buckets = htbl->buckets; in neigh_hash_free_rcu()
1546 struct ipoib_neigh_table *ntbl = htbl->ntbl; in neigh_hash_free_rcu()
1549 kfree(htbl); in neigh_hash_free_rcu()
1557 struct ipoib_neigh_hash *htbl; in ipoib_del_neighs_by_gid() local
1564 htbl = rcu_dereference_protected(ntbl->htbl, in ipoib_del_neighs_by_gid()
1567 if (!htbl) in ipoib_del_neighs_by_gid()
1570 for (i = 0; i < htbl->size; i++) { in ipoib_del_neighs_by_gid()
1572 struct ipoib_neigh __rcu **np = &htbl->buckets[i]; in ipoib_del_neighs_by_gid()
1597 struct ipoib_neigh_hash *htbl; in ipoib_flush_neighs() local
1606 htbl = rcu_dereference_protected(ntbl->htbl, in ipoib_flush_neighs()
1608 if (!htbl) in ipoib_flush_neighs()
1615 for (i = 0; i < htbl->size; i++) { in ipoib_flush_neighs()
1617 struct ipoib_neigh __rcu **np = &htbl->buckets[i]; in ipoib_flush_neighs()
1631 rcu_assign_pointer(ntbl->htbl, NULL); in ipoib_flush_neighs()
1632 call_rcu(&htbl->rcu, neigh_hash_free_rcu); in ipoib_flush_neighs()