Lines Matching refs:tbl
57 static int pneigh_ifdown(struct neigh_table *tbl, struct net_device *dev);
119 static int neigh_forced_gc(struct neigh_table *tbl) in neigh_forced_gc() argument
125 NEIGH_CACHE_STAT_INC(tbl, forced_gc_runs); in neigh_forced_gc()
127 write_lock_bh(&tbl->lock); in neigh_forced_gc()
128 nht = rcu_dereference_protected(tbl->nht, in neigh_forced_gc()
129 lockdep_is_held(&tbl->lock)); in neigh_forced_gc()
136 lockdep_is_held(&tbl->lock))) != NULL) { in neigh_forced_gc()
146 lockdep_is_held(&tbl->lock))); in neigh_forced_gc()
158 tbl->last_flush = jiffies; in neigh_forced_gc()
160 write_unlock_bh(&tbl->lock); in neigh_forced_gc()
195 static void neigh_flush_dev(struct neigh_table *tbl, struct net_device *dev) in neigh_flush_dev() argument
200 nht = rcu_dereference_protected(tbl->nht, in neigh_flush_dev()
201 lockdep_is_held(&tbl->lock)); in neigh_flush_dev()
208 lockdep_is_held(&tbl->lock))) != NULL) { in neigh_flush_dev()
215 lockdep_is_held(&tbl->lock))); in neigh_flush_dev()
245 void neigh_changeaddr(struct neigh_table *tbl, struct net_device *dev) in neigh_changeaddr() argument
247 write_lock_bh(&tbl->lock); in neigh_changeaddr()
248 neigh_flush_dev(tbl, dev); in neigh_changeaddr()
249 write_unlock_bh(&tbl->lock); in neigh_changeaddr()
253 int neigh_ifdown(struct neigh_table *tbl, struct net_device *dev) in neigh_ifdown() argument
255 write_lock_bh(&tbl->lock); in neigh_ifdown()
256 neigh_flush_dev(tbl, dev); in neigh_ifdown()
257 pneigh_ifdown(tbl, dev); in neigh_ifdown()
258 write_unlock_bh(&tbl->lock); in neigh_ifdown()
260 del_timer_sync(&tbl->proxy_timer); in neigh_ifdown()
261 pneigh_queue_purge(&tbl->proxy_queue); in neigh_ifdown()
266 static struct neighbour *neigh_alloc(struct neigh_table *tbl, struct net_device *dev) in neigh_alloc() argument
272 entries = atomic_inc_return(&tbl->entries) - 1; in neigh_alloc()
273 if (entries >= tbl->gc_thresh3 || in neigh_alloc()
274 (entries >= tbl->gc_thresh2 && in neigh_alloc()
275 time_after(now, tbl->last_flush + 5 * HZ))) { in neigh_alloc()
276 if (!neigh_forced_gc(tbl) && in neigh_alloc()
277 entries >= tbl->gc_thresh3) { in neigh_alloc()
279 tbl->id); in neigh_alloc()
280 NEIGH_CACHE_STAT_INC(tbl, table_fulls); in neigh_alloc()
285 n = kzalloc(tbl->entry_size + dev->neigh_priv_len, GFP_ATOMIC); in neigh_alloc()
296 n->parms = neigh_parms_clone(&tbl->parms); in neigh_alloc()
299 NEIGH_CACHE_STAT_INC(tbl, allocs); in neigh_alloc()
300 n->tbl = tbl; in neigh_alloc()
307 atomic_dec(&tbl->entries); in neigh_alloc()
359 static struct neigh_hash_table *neigh_hash_grow(struct neigh_table *tbl, in neigh_hash_grow() argument
365 NEIGH_CACHE_STAT_INC(tbl, hash_grows); in neigh_hash_grow()
367 old_nht = rcu_dereference_protected(tbl->nht, in neigh_hash_grow()
368 lockdep_is_held(&tbl->lock)); in neigh_hash_grow()
377 lockdep_is_held(&tbl->lock)); in neigh_hash_grow()
380 hash = tbl->hash(n->primary_key, n->dev, in neigh_hash_grow()
385 lockdep_is_held(&tbl->lock)); in neigh_hash_grow()
390 lockdep_is_held(&tbl->lock))); in neigh_hash_grow()
395 rcu_assign_pointer(tbl->nht, new_nht); in neigh_hash_grow()
400 struct neighbour *neigh_lookup(struct neigh_table *tbl, const void *pkey, in neigh_lookup() argument
405 NEIGH_CACHE_STAT_INC(tbl, lookups); in neigh_lookup()
408 n = __neigh_lookup_noref(tbl, pkey, dev); in neigh_lookup()
412 NEIGH_CACHE_STAT_INC(tbl, hits); in neigh_lookup()
420 struct neighbour *neigh_lookup_nodev(struct neigh_table *tbl, struct net *net, in neigh_lookup_nodev() argument
424 int key_len = tbl->key_len; in neigh_lookup_nodev()
428 NEIGH_CACHE_STAT_INC(tbl, lookups); in neigh_lookup_nodev()
431 nht = rcu_dereference_bh(tbl->nht); in neigh_lookup_nodev()
432 hash_val = tbl->hash(pkey, NULL, nht->hash_rnd) >> (32 - nht->hash_shift); in neigh_lookup_nodev()
441 NEIGH_CACHE_STAT_INC(tbl, hits); in neigh_lookup_nodev()
451 struct neighbour *__neigh_create(struct neigh_table *tbl, const void *pkey, in __neigh_create() argument
455 int key_len = tbl->key_len; in __neigh_create()
457 struct neighbour *n1, *rc, *n = neigh_alloc(tbl, dev); in __neigh_create()
470 if (tbl->constructor && (error = tbl->constructor(n)) < 0) { in __neigh_create()
492 write_lock_bh(&tbl->lock); in __neigh_create()
493 nht = rcu_dereference_protected(tbl->nht, in __neigh_create()
494 lockdep_is_held(&tbl->lock)); in __neigh_create()
496 if (atomic_read(&tbl->entries) > (1 << nht->hash_shift)) in __neigh_create()
497 nht = neigh_hash_grow(tbl, nht->hash_shift + 1); in __neigh_create()
499 hash_val = tbl->hash(pkey, dev, nht->hash_rnd) >> (32 - nht->hash_shift); in __neigh_create()
507 lockdep_is_held(&tbl->lock)); in __neigh_create()
510 lockdep_is_held(&tbl->lock))) { in __neigh_create()
524 lockdep_is_held(&tbl->lock))); in __neigh_create()
526 write_unlock_bh(&tbl->lock); in __neigh_create()
532 write_unlock_bh(&tbl->lock); in __neigh_create()
565 struct pneigh_entry *__pneigh_lookup(struct neigh_table *tbl, in __pneigh_lookup() argument
568 int key_len = tbl->key_len; in __pneigh_lookup()
571 return __pneigh_lookup_1(tbl->phash_buckets[hash_val], in __pneigh_lookup()
576 struct pneigh_entry * pneigh_lookup(struct neigh_table *tbl, in pneigh_lookup() argument
581 int key_len = tbl->key_len; in pneigh_lookup()
584 read_lock_bh(&tbl->lock); in pneigh_lookup()
585 n = __pneigh_lookup_1(tbl->phash_buckets[hash_val], in pneigh_lookup()
587 read_unlock_bh(&tbl->lock); in pneigh_lookup()
604 if (tbl->pconstructor && tbl->pconstructor(n)) { in pneigh_lookup()
612 write_lock_bh(&tbl->lock); in pneigh_lookup()
613 n->next = tbl->phash_buckets[hash_val]; in pneigh_lookup()
614 tbl->phash_buckets[hash_val] = n; in pneigh_lookup()
615 write_unlock_bh(&tbl->lock); in pneigh_lookup()
622 int pneigh_delete(struct neigh_table *tbl, struct net *net, const void *pkey, in pneigh_delete() argument
626 int key_len = tbl->key_len; in pneigh_delete()
629 write_lock_bh(&tbl->lock); in pneigh_delete()
630 for (np = &tbl->phash_buckets[hash_val]; (n = *np) != NULL; in pneigh_delete()
635 write_unlock_bh(&tbl->lock); in pneigh_delete()
636 if (tbl->pdestructor) in pneigh_delete()
637 tbl->pdestructor(n); in pneigh_delete()
644 write_unlock_bh(&tbl->lock); in pneigh_delete()
648 static int pneigh_ifdown(struct neigh_table *tbl, struct net_device *dev) in pneigh_ifdown() argument
654 np = &tbl->phash_buckets[h]; in pneigh_ifdown()
658 if (tbl->pdestructor) in pneigh_ifdown()
659 tbl->pdestructor(n); in pneigh_ifdown()
687 NEIGH_CACHE_STAT_INC(neigh->tbl, destroys); in neigh_destroy()
711 atomic_dec(&neigh->tbl->entries); in neigh_destroy()
742 struct neigh_table *tbl = container_of(work, struct neigh_table, gc_work.work); in neigh_periodic_work() local
748 NEIGH_CACHE_STAT_INC(tbl, periodic_gc_runs); in neigh_periodic_work()
750 write_lock_bh(&tbl->lock); in neigh_periodic_work()
751 nht = rcu_dereference_protected(tbl->nht, in neigh_periodic_work()
752 lockdep_is_held(&tbl->lock)); in neigh_periodic_work()
758 if (time_after(jiffies, tbl->last_rand + 300 * HZ)) { in neigh_periodic_work()
760 tbl->last_rand = jiffies; in neigh_periodic_work()
761 list_for_each_entry(p, &tbl->parms_list, list) in neigh_periodic_work()
766 if (atomic_read(&tbl->entries) < tbl->gc_thresh1) in neigh_periodic_work()
773 lockdep_is_held(&tbl->lock))) != NULL) { in neigh_periodic_work()
805 write_unlock_bh(&tbl->lock); in neigh_periodic_work()
807 write_lock_bh(&tbl->lock); in neigh_periodic_work()
808 nht = rcu_dereference_protected(tbl->nht, in neigh_periodic_work()
809 lockdep_is_held(&tbl->lock)); in neigh_periodic_work()
816 queue_delayed_work(system_power_efficient_wq, &tbl->gc_work, in neigh_periodic_work()
817 NEIGH_VAR(&tbl->parms, BASE_REACHABLE_TIME) >> 1); in neigh_periodic_work()
818 write_unlock_bh(&tbl->lock); in neigh_periodic_work()
835 NEIGH_CACHE_STAT_INC(neigh->tbl, res_failed); in neigh_invalidate()
1008 NEIGH_CACHE_STAT_INC(neigh->tbl, unres_discards); in __neigh_event_send()
1258 struct neighbour *neigh_event_ns(struct neigh_table *tbl, in neigh_event_ns() argument
1262 struct neighbour *neigh = __neigh_lookup(tbl, saddr, dev, in neigh_event_ns()
1275 __be16 prot = n->tbl->protocol; in neigh_hh_init()
1357 struct neigh_table *tbl = (struct neigh_table *)arg; in neigh_proxy_process() local
1362 spin_lock(&tbl->proxy_queue.lock); in neigh_proxy_process()
1364 skb_queue_walk_safe(&tbl->proxy_queue, skb, n) { in neigh_proxy_process()
1370 __skb_unlink(skb, &tbl->proxy_queue); in neigh_proxy_process()
1371 if (tbl->proxy_redo && netif_running(dev)) { in neigh_proxy_process()
1373 tbl->proxy_redo(skb); in neigh_proxy_process()
1383 del_timer(&tbl->proxy_timer); in neigh_proxy_process()
1385 mod_timer(&tbl->proxy_timer, jiffies + sched_next); in neigh_proxy_process()
1386 spin_unlock(&tbl->proxy_queue.lock); in neigh_proxy_process()
1389 void pneigh_enqueue(struct neigh_table *tbl, struct neigh_parms *p, in pneigh_enqueue() argument
1397 if (tbl->proxy_queue.qlen > NEIGH_VAR(p, PROXY_QLEN)) { in pneigh_enqueue()
1405 spin_lock(&tbl->proxy_queue.lock); in pneigh_enqueue()
1406 if (del_timer(&tbl->proxy_timer)) { in pneigh_enqueue()
1407 if (time_before(tbl->proxy_timer.expires, sched_next)) in pneigh_enqueue()
1408 sched_next = tbl->proxy_timer.expires; in pneigh_enqueue()
1412 __skb_queue_tail(&tbl->proxy_queue, skb); in pneigh_enqueue()
1413 mod_timer(&tbl->proxy_timer, sched_next); in pneigh_enqueue()
1414 spin_unlock(&tbl->proxy_queue.lock); in pneigh_enqueue()
1418 static inline struct neigh_parms *lookup_neigh_parms(struct neigh_table *tbl, in lookup_neigh_parms() argument
1423 list_for_each_entry(p, &tbl->parms_list, list) { in lookup_neigh_parms()
1433 struct neigh_table *tbl) in neigh_parms_alloc() argument
1439 p = kmemdup(&tbl->parms, sizeof(*p), GFP_KERNEL); in neigh_parms_alloc()
1441 p->tbl = tbl; in neigh_parms_alloc()
1456 write_lock_bh(&tbl->lock); in neigh_parms_alloc()
1457 list_add(&p->list, &tbl->parms.list); in neigh_parms_alloc()
1458 write_unlock_bh(&tbl->lock); in neigh_parms_alloc()
1474 void neigh_parms_release(struct neigh_table *tbl, struct neigh_parms *parms) in neigh_parms_release() argument
1476 if (!parms || parms == &tbl->parms) in neigh_parms_release()
1478 write_lock_bh(&tbl->lock); in neigh_parms_release()
1481 write_unlock_bh(&tbl->lock); in neigh_parms_release()
1497 void neigh_table_init(int index, struct neigh_table *tbl) in neigh_table_init() argument
1502 INIT_LIST_HEAD(&tbl->parms_list); in neigh_table_init()
1503 list_add(&tbl->parms.list, &tbl->parms_list); in neigh_table_init()
1504 write_pnet(&tbl->parms.net, &init_net); in neigh_table_init()
1505 atomic_set(&tbl->parms.refcnt, 1); in neigh_table_init()
1506 tbl->parms.reachable_time = in neigh_table_init()
1507 neigh_rand_reach_time(NEIGH_VAR(&tbl->parms, BASE_REACHABLE_TIME)); in neigh_table_init()
1509 tbl->stats = alloc_percpu(struct neigh_statistics); in neigh_table_init()
1510 if (!tbl->stats) in neigh_table_init()
1514 if (!proc_create_data(tbl->id, 0, init_net.proc_net_stat, in neigh_table_init()
1515 &neigh_stat_seq_fops, tbl)) in neigh_table_init()
1519 RCU_INIT_POINTER(tbl->nht, neigh_hash_alloc(3)); in neigh_table_init()
1522 tbl->phash_buckets = kzalloc(phsize, GFP_KERNEL); in neigh_table_init()
1524 if (!tbl->nht || !tbl->phash_buckets) in neigh_table_init()
1527 if (!tbl->entry_size) in neigh_table_init()
1528 tbl->entry_size = ALIGN(offsetof(struct neighbour, primary_key) + in neigh_table_init()
1529 tbl->key_len, NEIGH_PRIV_ALIGN); in neigh_table_init()
1531 WARN_ON(tbl->entry_size % NEIGH_PRIV_ALIGN); in neigh_table_init()
1533 rwlock_init(&tbl->lock); in neigh_table_init()
1534 INIT_DEFERRABLE_WORK(&tbl->gc_work, neigh_periodic_work); in neigh_table_init()
1535 queue_delayed_work(system_power_efficient_wq, &tbl->gc_work, in neigh_table_init()
1536 tbl->parms.reachable_time); in neigh_table_init()
1537 setup_timer(&tbl->proxy_timer, neigh_proxy_process, (unsigned long)tbl); in neigh_table_init()
1538 skb_queue_head_init_class(&tbl->proxy_queue, in neigh_table_init()
1541 tbl->last_flush = now; in neigh_table_init()
1542 tbl->last_rand = now + tbl->parms.reachable_time * 20; in neigh_table_init()
1544 neigh_tables[index] = tbl; in neigh_table_init()
1548 int neigh_table_clear(int index, struct neigh_table *tbl) in neigh_table_clear() argument
1552 cancel_delayed_work_sync(&tbl->gc_work); in neigh_table_clear()
1553 del_timer_sync(&tbl->proxy_timer); in neigh_table_clear()
1554 pneigh_queue_purge(&tbl->proxy_queue); in neigh_table_clear()
1555 neigh_ifdown(tbl, NULL); in neigh_table_clear()
1556 if (atomic_read(&tbl->entries)) in neigh_table_clear()
1559 call_rcu(&rcu_dereference_protected(tbl->nht, 1)->rcu, in neigh_table_clear()
1561 tbl->nht = NULL; in neigh_table_clear()
1563 kfree(tbl->phash_buckets); in neigh_table_clear()
1564 tbl->phash_buckets = NULL; in neigh_table_clear()
1566 remove_proc_entry(tbl->id, init_net.proc_net_stat); in neigh_table_clear()
1568 free_percpu(tbl->stats); in neigh_table_clear()
1569 tbl->stats = NULL; in neigh_table_clear()
1577 struct neigh_table *tbl = NULL; in neigh_find_table() local
1581 tbl = neigh_tables[NEIGH_ARP_TABLE]; in neigh_find_table()
1584 tbl = neigh_tables[NEIGH_ND_TABLE]; in neigh_find_table()
1587 tbl = neigh_tables[NEIGH_DN_TABLE]; in neigh_find_table()
1591 return tbl; in neigh_find_table()
1599 struct neigh_table *tbl; in neigh_delete() local
1621 tbl = neigh_find_table(ndm->ndm_family); in neigh_delete()
1622 if (tbl == NULL) in neigh_delete()
1625 if (nla_len(dst_attr) < tbl->key_len) in neigh_delete()
1629 err = pneigh_delete(tbl, net, nla_data(dst_attr), dev); in neigh_delete()
1636 neigh = neigh_lookup(tbl, nla_data(dst_attr), dev); in neigh_delete()
1657 struct neigh_table *tbl; in neigh_add() local
1684 tbl = neigh_find_table(ndm->ndm_family); in neigh_add()
1685 if (tbl == NULL) in neigh_add()
1688 if (nla_len(tb[NDA_DST]) < tbl->key_len) in neigh_add()
1697 pn = pneigh_lookup(tbl, net, dst, dev, 1); in neigh_add()
1708 neigh = neigh_lookup(tbl, dst, dev); in neigh_add()
1715 neigh = __neigh_lookup_errno(tbl, dst, dev); in neigh_add()
1789 static int neightbl_fill_info(struct sk_buff *skb, struct neigh_table *tbl, in neightbl_fill_info() argument
1801 read_lock_bh(&tbl->lock); in neightbl_fill_info()
1802 ndtmsg->ndtm_family = tbl->family; in neightbl_fill_info()
1806 if (nla_put_string(skb, NDTA_NAME, tbl->id) || in neightbl_fill_info()
1807 nla_put_msecs(skb, NDTA_GC_INTERVAL, tbl->gc_interval) || in neightbl_fill_info()
1808 nla_put_u32(skb, NDTA_THRESH1, tbl->gc_thresh1) || in neightbl_fill_info()
1809 nla_put_u32(skb, NDTA_THRESH2, tbl->gc_thresh2) || in neightbl_fill_info()
1810 nla_put_u32(skb, NDTA_THRESH3, tbl->gc_thresh3)) in neightbl_fill_info()
1814 unsigned int flush_delta = now - tbl->last_flush; in neightbl_fill_info()
1815 unsigned int rand_delta = now - tbl->last_rand; in neightbl_fill_info()
1818 .ndtc_key_len = tbl->key_len, in neightbl_fill_info()
1819 .ndtc_entry_size = tbl->entry_size, in neightbl_fill_info()
1820 .ndtc_entries = atomic_read(&tbl->entries), in neightbl_fill_info()
1823 .ndtc_proxy_qlen = tbl->proxy_queue.qlen, in neightbl_fill_info()
1827 nht = rcu_dereference_bh(tbl->nht); in neightbl_fill_info()
1845 st = per_cpu_ptr(tbl->stats, cpu); in neightbl_fill_info()
1863 BUG_ON(tbl->parms.dev); in neightbl_fill_info()
1864 if (neightbl_fill_parms(skb, &tbl->parms) < 0) in neightbl_fill_info()
1867 read_unlock_bh(&tbl->lock); in neightbl_fill_info()
1872 read_unlock_bh(&tbl->lock); in neightbl_fill_info()
1878 struct neigh_table *tbl, in neightbl_fill_param_info() argument
1892 read_lock_bh(&tbl->lock); in neightbl_fill_param_info()
1893 ndtmsg->ndtm_family = tbl->family; in neightbl_fill_param_info()
1897 if (nla_put_string(skb, NDTA_NAME, tbl->id) < 0 || in neightbl_fill_param_info()
1901 read_unlock_bh(&tbl->lock); in neightbl_fill_param_info()
1905 read_unlock_bh(&tbl->lock); in neightbl_fill_param_info()
1939 struct neigh_table *tbl; in neightbl_set() local
1958 tbl = neigh_tables[tidx]; in neightbl_set()
1959 if (!tbl) in neightbl_set()
1961 if (ndtmsg->ndtm_family && tbl->family != ndtmsg->ndtm_family) in neightbl_set()
1963 if (nla_strcmp(tb[NDTA_NAME], tbl->id) == 0) { in neightbl_set()
1976 write_lock_bh(&tbl->lock); in neightbl_set()
1991 p = lookup_neigh_parms(tbl, net, ifindex); in neightbl_set()
2076 tbl->gc_thresh1 = nla_get_u32(tb[NDTA_THRESH1]); in neightbl_set()
2079 tbl->gc_thresh2 = nla_get_u32(tb[NDTA_THRESH2]); in neightbl_set()
2082 tbl->gc_thresh3 = nla_get_u32(tb[NDTA_THRESH3]); in neightbl_set()
2085 tbl->gc_interval = nla_get_msecs(tb[NDTA_GC_INTERVAL]); in neightbl_set()
2090 write_unlock_bh(&tbl->lock); in neightbl_set()
2101 struct neigh_table *tbl; in neightbl_dump_info() local
2108 tbl = neigh_tables[tidx]; in neightbl_dump_info()
2109 if (!tbl) in neightbl_dump_info()
2112 if (tidx < tbl_skip || (family && tbl->family != family)) in neightbl_dump_info()
2115 if (neightbl_fill_info(skb, tbl, NETLINK_CB(cb->skb).portid, in neightbl_dump_info()
2121 p = list_next_entry(&tbl->parms, list); in neightbl_dump_info()
2122 list_for_each_entry_from(p, &tbl->parms_list, list) { in neightbl_dump_info()
2129 if (neightbl_fill_param_info(skb, tbl, p, in neightbl_dump_info()
2168 if (nla_put(skb, NDA_DST, neigh->tbl->key_len, neigh->primary_key)) in neigh_fill_info()
2203 struct neigh_table *tbl) in pneigh_fill_info() argument
2213 ndm->ndm_family = tbl->family; in pneigh_fill_info()
2221 if (nla_put(skb, NDA_DST, tbl->key_len, pn->key)) in pneigh_fill_info()
2260 static int neigh_dump_table(struct neigh_table *tbl, struct sk_buff *skb, in neigh_dump_table() argument
2287 nht = rcu_dereference_bh(tbl->nht); in neigh_dump_table()
2322 static int pneigh_dump_table(struct neigh_table *tbl, struct sk_buff *skb, in pneigh_dump_table() argument
2330 read_lock_bh(&tbl->lock); in pneigh_dump_table()
2335 for (n = tbl->phash_buckets[h], idx = 0; n; n = n->next) { in pneigh_dump_table()
2343 NLM_F_MULTI, tbl) < 0) { in pneigh_dump_table()
2344 read_unlock_bh(&tbl->lock); in pneigh_dump_table()
2353 read_unlock_bh(&tbl->lock); in pneigh_dump_table()
2364 struct neigh_table *tbl; in neigh_dump_info() local
2381 tbl = neigh_tables[t]; in neigh_dump_info()
2383 if (!tbl) in neigh_dump_info()
2385 if (t < s_t || (family && tbl->family != family)) in neigh_dump_info()
2391 err = pneigh_dump_table(tbl, skb, cb); in neigh_dump_info()
2393 err = neigh_dump_table(tbl, skb, cb); in neigh_dump_info()
2402 void neigh_for_each(struct neigh_table *tbl, void (*cb)(struct neighbour *, void *), void *cookie) in neigh_for_each() argument
2408 nht = rcu_dereference_bh(tbl->nht); in neigh_for_each()
2410 read_lock(&tbl->lock); /* avoid resizes */ in neigh_for_each()
2419 read_unlock(&tbl->lock); in neigh_for_each()
2425 void __neigh_for_each_release(struct neigh_table *tbl, in __neigh_for_each_release() argument
2431 nht = rcu_dereference_protected(tbl->nht, in __neigh_for_each_release()
2432 lockdep_is_held(&tbl->lock)); in __neigh_for_each_release()
2439 lockdep_is_held(&tbl->lock))) != NULL) { in __neigh_for_each_release()
2447 lockdep_is_held(&tbl->lock))); in __neigh_for_each_release()
2464 struct neigh_table *tbl; in neigh_xmit() local
2467 tbl = neigh_tables[index]; in neigh_xmit()
2468 if (!tbl) in neigh_xmit()
2470 neigh = __neigh_lookup_noref(tbl, addr, dev); in neigh_xmit()
2472 neigh = __neigh_create(tbl, addr, dev, false); in neigh_xmit()
2601 struct neigh_table *tbl = state->tbl; in pneigh_get_first() local
2607 pn = tbl->phash_buckets[bucket]; in pneigh_get_first()
2624 struct neigh_table *tbl = state->tbl; in pneigh_get_next() local
2633 pn = tbl->phash_buckets[state->bucket]; in pneigh_get_next()
2674 void *neigh_seq_start(struct seq_file *seq, loff_t *pos, struct neigh_table *tbl, unsigned int neig… in neigh_seq_start() argument
2679 state->tbl = tbl; in neigh_seq_start()
2684 state->nht = rcu_dereference_bh(tbl->nht); in neigh_seq_start()
2728 struct neigh_table *tbl = seq->private; in neigh_stat_seq_start() local
2738 return per_cpu_ptr(tbl->stats, cpu); in neigh_stat_seq_start()
2745 struct neigh_table *tbl = seq->private; in neigh_stat_seq_next() local
2752 return per_cpu_ptr(tbl->stats, cpu); in neigh_stat_seq_next()
2764 struct neigh_table *tbl = seq->private; in neigh_stat_seq_show() local
2774 atomic_read(&tbl->entries), in neigh_stat_seq_show()
3133 struct neigh_table *tbl = p->tbl; in neigh_sysctl_register() local
3135 t->neigh_vars[NEIGH_VAR_GC_INTERVAL].data = &tbl->gc_interval; in neigh_sysctl_register()
3136 t->neigh_vars[NEIGH_VAR_GC_THRESH1].data = &tbl->gc_thresh1; in neigh_sysctl_register()
3137 t->neigh_vars[NEIGH_VAR_GC_THRESH2].data = &tbl->gc_thresh2; in neigh_sysctl_register()
3138 t->neigh_vars[NEIGH_VAR_GC_THRESH3].data = &tbl->gc_thresh3; in neigh_sysctl_register()