Lines Matching refs:f6i
107 void fib6_update_sernum(struct net *net, struct fib6_info *f6i) in fib6_update_sernum() argument
111 fn = rcu_dereference_protected(f6i->fib6_node, in fib6_update_sernum()
112 lockdep_is_held(&f6i->fib6_table->tb6_lock)); in fib6_update_sernum()
149 struct fib6_info *f6i; in fib6_info_alloc() local
150 size_t sz = sizeof(*f6i); in fib6_info_alloc()
155 f6i = kzalloc(sz, gfp_flags); in fib6_info_alloc()
156 if (!f6i) in fib6_info_alloc()
160 INIT_LIST_HEAD(&f6i->fib6_siblings); in fib6_info_alloc()
161 refcount_set(&f6i->fib6_ref, 1); in fib6_info_alloc()
163 INIT_HLIST_NODE(&f6i->gc_link); in fib6_info_alloc()
165 return f6i; in fib6_info_alloc()
170 struct fib6_info *f6i = container_of(head, struct fib6_info, rcu); in fib6_info_destroy_rcu() local
172 WARN_ON(f6i->fib6_node); in fib6_info_destroy_rcu()
174 if (f6i->nh) in fib6_info_destroy_rcu()
175 nexthop_put(f6i->nh); in fib6_info_destroy_rcu()
177 fib6_nh_release(f6i->fib6_nh); in fib6_info_destroy_rcu()
179 ip_fib_metrics_put(f6i->fib6_metrics); in fib6_info_destroy_rcu()
180 kfree(f6i); in fib6_info_destroy_rcu()
717 void fib6_metric_set(struct fib6_info *f6i, int metric, u32 val) in fib6_metric_set() argument
719 if (!f6i) in fib6_metric_set()
722 if (f6i->fib6_metrics == &dst_default_metrics) { in fib6_metric_set()
729 f6i->fib6_metrics = p; in fib6_metric_set()
732 f6i->fib6_metrics->metrics[metric - 1] = val; in fib6_metric_set()
1004 static void fib6_drop_pcpu_from(struct fib6_info *f6i, in fib6_drop_pcpu_from() argument
1010 f6i->fib6_destroying = 1; in fib6_drop_pcpu_from()
1013 if (f6i->nh) { in fib6_drop_pcpu_from()
1015 .from = f6i, in fib6_drop_pcpu_from()
1019 nexthop_for_each_fib6_nh(f6i->nh, fib6_nh_drop_pcpu_from, in fib6_drop_pcpu_from()
1024 fib6_nh = f6i->fib6_nh; in fib6_drop_pcpu_from()
1025 __fib6_drop_pcpu_from(fib6_nh, f6i, table); in fib6_drop_pcpu_from()
1366 void fib6_update_sernum_stub(struct net *net, struct fib6_info *f6i) in fib6_update_sernum_stub() argument
1368 spin_lock_bh(&f6i->fib6_table->tb6_lock); in fib6_update_sernum_stub()
1369 fib6_update_sernum_upto_root(net, f6i); in fib6_update_sernum_stub()
1370 spin_unlock_bh(&f6i->fib6_table->tb6_lock); in fib6_update_sernum_stub()