Lines Matching refs:htbl

864 static u32 ipoib_addr_hash(struct ipoib_neigh_hash *htbl, u8 *daddr)  in ipoib_addr_hash()  argument
877 return hv & htbl->mask; in ipoib_addr_hash()
884 struct ipoib_neigh_hash *htbl; in ipoib_neigh_get() local
890 htbl = rcu_dereference_bh(ntbl->htbl); in ipoib_neigh_get()
892 if (!htbl) in ipoib_neigh_get()
895 hash_val = ipoib_addr_hash(htbl, daddr); in ipoib_neigh_get()
896 for (neigh = rcu_dereference_bh(htbl->buckets[hash_val]); in ipoib_neigh_get()
919 struct ipoib_neigh_hash *htbl; in __ipoib_reap_neigh() local
930 htbl = rcu_dereference_protected(ntbl->htbl, in __ipoib_reap_neigh()
933 if (!htbl) in __ipoib_reap_neigh()
943 for (i = 0; i < htbl->size; i++) { in __ipoib_reap_neigh()
945 struct ipoib_neigh __rcu **np = &htbl->buckets[i]; in __ipoib_reap_neigh()
1006 struct ipoib_neigh_hash *htbl; in ipoib_neigh_alloc() local
1010 htbl = rcu_dereference_protected(ntbl->htbl, in ipoib_neigh_alloc()
1012 if (!htbl) { in ipoib_neigh_alloc()
1020 hash_val = ipoib_addr_hash(htbl, daddr); in ipoib_neigh_alloc()
1021 for (neigh = rcu_dereference_protected(htbl->buckets[hash_val], in ipoib_neigh_alloc()
1047 rcu_dereference_protected(htbl->buckets[hash_val], in ipoib_neigh_alloc()
1049 rcu_assign_pointer(htbl->buckets[hash_val], neigh); in ipoib_neigh_alloc()
1095 struct ipoib_neigh_hash *htbl; in ipoib_neigh_free() local
1100 htbl = rcu_dereference_protected(ntbl->htbl, in ipoib_neigh_free()
1102 if (!htbl) in ipoib_neigh_free()
1105 hash_val = ipoib_addr_hash(htbl, neigh->daddr); in ipoib_neigh_free()
1106 np = &htbl->buckets[hash_val]; in ipoib_neigh_free()
1130 struct ipoib_neigh_hash *htbl; in ipoib_neigh_hash_init() local
1135 ntbl->htbl = NULL; in ipoib_neigh_hash_init()
1136 htbl = kzalloc(sizeof(*htbl), GFP_KERNEL); in ipoib_neigh_hash_init()
1137 if (!htbl) in ipoib_neigh_hash_init()
1143 kfree(htbl); in ipoib_neigh_hash_init()
1146 htbl->size = size; in ipoib_neigh_hash_init()
1147 htbl->mask = (size - 1); in ipoib_neigh_hash_init()
1148 htbl->buckets = buckets; in ipoib_neigh_hash_init()
1149 ntbl->htbl = htbl; in ipoib_neigh_hash_init()
1150 htbl->ntbl = ntbl; in ipoib_neigh_hash_init()
1163 struct ipoib_neigh_hash *htbl = container_of(head, in neigh_hash_free_rcu() local
1166 struct ipoib_neigh __rcu **buckets = htbl->buckets; in neigh_hash_free_rcu()
1167 struct ipoib_neigh_table *ntbl = htbl->ntbl; in neigh_hash_free_rcu()
1170 kfree(htbl); in neigh_hash_free_rcu()
1178 struct ipoib_neigh_hash *htbl; in ipoib_del_neighs_by_gid() local
1185 htbl = rcu_dereference_protected(ntbl->htbl, in ipoib_del_neighs_by_gid()
1188 if (!htbl) in ipoib_del_neighs_by_gid()
1191 for (i = 0; i < htbl->size; i++) { in ipoib_del_neighs_by_gid()
1193 struct ipoib_neigh __rcu **np = &htbl->buckets[i]; in ipoib_del_neighs_by_gid()
1218 struct ipoib_neigh_hash *htbl; in ipoib_flush_neighs() local
1226 htbl = rcu_dereference_protected(ntbl->htbl, in ipoib_flush_neighs()
1228 if (!htbl) in ipoib_flush_neighs()
1235 for (i = 0; i < htbl->size; i++) { in ipoib_flush_neighs()
1237 struct ipoib_neigh __rcu **np = &htbl->buckets[i]; in ipoib_flush_neighs()
1251 rcu_assign_pointer(ntbl->htbl, NULL); in ipoib_flush_neighs()
1252 call_rcu(&htbl->rcu, neigh_hash_free_rcu); in ipoib_flush_neighs()