Lines Matching refs:htbl

1244 static u32 ipoib_addr_hash(struct ipoib_neigh_hash *htbl, u8 *daddr)  in ipoib_addr_hash()  argument
1257 return hv & htbl->mask; in ipoib_addr_hash()
1264 struct ipoib_neigh_hash *htbl; in ipoib_neigh_get() local
1270 htbl = rcu_dereference_bh(ntbl->htbl); in ipoib_neigh_get()
1272 if (!htbl) in ipoib_neigh_get()
1275 hash_val = ipoib_addr_hash(htbl, daddr); in ipoib_neigh_get()
1276 for (neigh = rcu_dereference_bh(htbl->buckets[hash_val]); in ipoib_neigh_get()
1301 struct ipoib_neigh_hash *htbl; in __ipoib_reap_neigh() local
1310 htbl = rcu_dereference_protected(ntbl->htbl, in __ipoib_reap_neigh()
1313 if (!htbl) in __ipoib_reap_neigh()
1320 for (i = 0; i < htbl->size; i++) { in __ipoib_reap_neigh()
1322 struct ipoib_neigh __rcu **np = &htbl->buckets[i]; in __ipoib_reap_neigh()
1386 struct ipoib_neigh_hash *htbl; in ipoib_neigh_alloc() local
1390 htbl = rcu_dereference_protected(ntbl->htbl, in ipoib_neigh_alloc()
1392 if (!htbl) { in ipoib_neigh_alloc()
1400 hash_val = ipoib_addr_hash(htbl, daddr); in ipoib_neigh_alloc()
1401 for (neigh = rcu_dereference_protected(htbl->buckets[hash_val], in ipoib_neigh_alloc()
1427 rcu_dereference_protected(htbl->buckets[hash_val], in ipoib_neigh_alloc()
1429 rcu_assign_pointer(htbl->buckets[hash_val], neigh); in ipoib_neigh_alloc()
1475 struct ipoib_neigh_hash *htbl; in ipoib_neigh_free() local
1480 htbl = rcu_dereference_protected(ntbl->htbl, in ipoib_neigh_free()
1482 if (!htbl) in ipoib_neigh_free()
1485 hash_val = ipoib_addr_hash(htbl, neigh->daddr); in ipoib_neigh_free()
1486 np = &htbl->buckets[hash_val]; in ipoib_neigh_free()
1510 struct ipoib_neigh_hash *htbl; in ipoib_neigh_hash_init() local
1515 ntbl->htbl = NULL; in ipoib_neigh_hash_init()
1516 htbl = kzalloc(sizeof(*htbl), GFP_KERNEL); in ipoib_neigh_hash_init()
1517 if (!htbl) in ipoib_neigh_hash_init()
1522 kfree(htbl); in ipoib_neigh_hash_init()
1525 htbl->size = size; in ipoib_neigh_hash_init()
1526 htbl->mask = (size - 1); in ipoib_neigh_hash_init()
1527 htbl->buckets = buckets; in ipoib_neigh_hash_init()
1528 RCU_INIT_POINTER(ntbl->htbl, htbl); in ipoib_neigh_hash_init()
1529 htbl->ntbl = ntbl; in ipoib_neigh_hash_init()
1541 struct ipoib_neigh_hash *htbl = container_of(head, in neigh_hash_free_rcu() local
1544 struct ipoib_neigh __rcu **buckets = htbl->buckets; in neigh_hash_free_rcu()
1545 struct ipoib_neigh_table *ntbl = htbl->ntbl; in neigh_hash_free_rcu()
1548 kfree(htbl); in neigh_hash_free_rcu()
1556 struct ipoib_neigh_hash *htbl; in ipoib_del_neighs_by_gid() local
1563 htbl = rcu_dereference_protected(ntbl->htbl, in ipoib_del_neighs_by_gid()
1566 if (!htbl) in ipoib_del_neighs_by_gid()
1569 for (i = 0; i < htbl->size; i++) { in ipoib_del_neighs_by_gid()
1571 struct ipoib_neigh __rcu **np = &htbl->buckets[i]; in ipoib_del_neighs_by_gid()
1596 struct ipoib_neigh_hash *htbl; in ipoib_flush_neighs() local
1605 htbl = rcu_dereference_protected(ntbl->htbl, in ipoib_flush_neighs()
1607 if (!htbl) in ipoib_flush_neighs()
1614 for (i = 0; i < htbl->size; i++) { in ipoib_flush_neighs()
1616 struct ipoib_neigh __rcu **np = &htbl->buckets[i]; in ipoib_flush_neighs()
1630 rcu_assign_pointer(ntbl->htbl, NULL); in ipoib_flush_neighs()
1631 call_rcu(&htbl->rcu, neigh_hash_free_rcu); in ipoib_flush_neighs()