fnhe 171 net/ipv4/fib_semantics.c struct fib_nh_exception *fnhe; fnhe 173 net/ipv4/fib_semantics.c fnhe = rcu_dereference_protected(hash[i].chain, 1); fnhe 174 net/ipv4/fib_semantics.c while (fnhe) { fnhe 177 net/ipv4/fib_semantics.c next = rcu_dereference_protected(fnhe->fnhe_next, 1); fnhe 179 net/ipv4/fib_semantics.c rt_fibinfo_free(&fnhe->fnhe_rth_input); fnhe 180 net/ipv4/fib_semantics.c rt_fibinfo_free(&fnhe->fnhe_rth_output); fnhe 182 net/ipv4/fib_semantics.c kfree(fnhe); fnhe 184 net/ipv4/fib_semantics.c fnhe = next; fnhe 1884 net/ipv4/fib_semantics.c struct fib_nh_exception *fnhe; fnhe 1886 net/ipv4/fib_semantics.c for (fnhe = rcu_dereference_protected(bucket[i].chain, 1); fnhe 1887 net/ipv4/fib_semantics.c fnhe; fnhe 1888 net/ipv4/fib_semantics.c fnhe = rcu_dereference_protected(fnhe->fnhe_next, 1)) { fnhe 1889 net/ipv4/fib_semantics.c if (fnhe->fnhe_mtu_locked) { fnhe 1890 net/ipv4/fib_semantics.c if (new <= fnhe->fnhe_pmtu) { fnhe 1891 net/ipv4/fib_semantics.c fnhe->fnhe_pmtu = new; fnhe 1892 net/ipv4/fib_semantics.c fnhe->fnhe_mtu_locked = false; fnhe 1894 net/ipv4/fib_semantics.c } else if (new < fnhe->fnhe_pmtu || fnhe 1895 net/ipv4/fib_semantics.c orig == fnhe->fnhe_pmtu) { fnhe 1896 net/ipv4/fib_semantics.c fnhe->fnhe_pmtu = new; fnhe 587 net/ipv4/route.c static void fnhe_flush_routes(struct fib_nh_exception *fnhe) fnhe 591 net/ipv4/route.c rt = rcu_dereference(fnhe->fnhe_rth_input); fnhe 593 net/ipv4/route.c RCU_INIT_POINTER(fnhe->fnhe_rth_input, NULL); fnhe 597 net/ipv4/route.c rt = rcu_dereference(fnhe->fnhe_rth_output); fnhe 599 net/ipv4/route.c RCU_INIT_POINTER(fnhe->fnhe_rth_output, NULL); fnhe 607 net/ipv4/route.c struct fib_nh_exception *fnhe, *oldest; fnhe 610 net/ipv4/route.c for (fnhe = rcu_dereference(oldest->fnhe_next); fnhe; fnhe 611 net/ipv4/route.c fnhe = rcu_dereference(fnhe->fnhe_next)) { fnhe 612 net/ipv4/route.c if (time_before(fnhe->fnhe_stamp, oldest->fnhe_stamp)) fnhe 613 net/ipv4/route.c oldest = fnhe; fnhe 629 net/ipv4/route.c static void fill_route_from_fnhe(struct rtable *rt, struct fib_nh_exception *fnhe) fnhe 631 net/ipv4/route.c rt->rt_pmtu = fnhe->fnhe_pmtu; fnhe 632 net/ipv4/route.c rt->rt_mtu_locked = fnhe->fnhe_mtu_locked; fnhe 633 net/ipv4/route.c rt->dst.expires = fnhe->fnhe_expires; fnhe 635 net/ipv4/route.c if (fnhe->fnhe_gw) { fnhe 639 net/ipv4/route.c rt->rt_gw4 = fnhe->fnhe_gw; fnhe 648 net/ipv4/route.c struct fib_nh_exception *fnhe; fnhe 670 net/ipv4/route.c for (fnhe = rcu_dereference(hash->chain); fnhe; fnhe 671 net/ipv4/route.c fnhe = rcu_dereference(fnhe->fnhe_next)) { fnhe 672 net/ipv4/route.c if (fnhe->fnhe_daddr == daddr) fnhe 677 net/ipv4/route.c if (fnhe) { fnhe 678 net/ipv4/route.c if (fnhe->fnhe_genid != genid) fnhe 679 net/ipv4/route.c fnhe->fnhe_genid = genid; fnhe 681 net/ipv4/route.c fnhe->fnhe_gw = gw; fnhe 683 net/ipv4/route.c fnhe->fnhe_pmtu = pmtu; fnhe 684 net/ipv4/route.c fnhe->fnhe_mtu_locked = lock; fnhe 686 net/ipv4/route.c fnhe->fnhe_expires = max(1UL, expires); fnhe 688 net/ipv4/route.c rt = rcu_dereference(fnhe->fnhe_rth_input); fnhe 690 net/ipv4/route.c fill_route_from_fnhe(rt, fnhe); fnhe 691 net/ipv4/route.c rt = rcu_dereference(fnhe->fnhe_rth_output); fnhe 693 net/ipv4/route.c fill_route_from_fnhe(rt, fnhe); fnhe 696 net/ipv4/route.c fnhe = fnhe_oldest(hash); fnhe 698 net/ipv4/route.c fnhe = kzalloc(sizeof(*fnhe), GFP_ATOMIC); fnhe 699 net/ipv4/route.c if (!fnhe) fnhe 702 net/ipv4/route.c fnhe->fnhe_next = hash->chain; fnhe 703 net/ipv4/route.c rcu_assign_pointer(hash->chain, fnhe); fnhe 705 net/ipv4/route.c fnhe->fnhe_genid = genid; fnhe 706 net/ipv4/route.c fnhe->fnhe_daddr = daddr; fnhe 707 net/ipv4/route.c fnhe->fnhe_gw = gw; fnhe 708 net/ipv4/route.c fnhe->fnhe_pmtu = pmtu; fnhe 709 net/ipv4/route.c fnhe->fnhe_mtu_locked = lock; fnhe 710 net/ipv4/route.c fnhe->fnhe_expires = max(1UL, expires); fnhe 729 net/ipv4/route.c fnhe->fnhe_stamp = jiffies; fnhe 1328 net/ipv4/route.c struct fib_nh_exception *fnhe, __rcu **fnhe_p; fnhe 1338 net/ipv4/route.c fnhe = rcu_dereference_protected(*fnhe_p, lockdep_is_held(&fnhe_lock)); fnhe 1339 net/ipv4/route.c while (fnhe) { fnhe 1340 net/ipv4/route.c if (fnhe->fnhe_daddr == daddr) { fnhe 1342 net/ipv4/route.c fnhe->fnhe_next, lockdep_is_held(&fnhe_lock))); fnhe 1346 net/ipv4/route.c fnhe->fnhe_daddr = 0; fnhe 1347 net/ipv4/route.c fnhe_flush_routes(fnhe); fnhe 1348 net/ipv4/route.c kfree_rcu(fnhe, rcu); fnhe 1351 net/ipv4/route.c fnhe_p = &fnhe->fnhe_next; fnhe 1352 net/ipv4/route.c fnhe = rcu_dereference_protected(fnhe->fnhe_next, fnhe 1363 net/ipv4/route.c struct fib_nh_exception *fnhe; fnhe 1371 net/ipv4/route.c for (fnhe = rcu_dereference(hash[hval].chain); fnhe; fnhe 1372 net/ipv4/route.c fnhe = rcu_dereference(fnhe->fnhe_next)) { fnhe 1373 net/ipv4/route.c if (fnhe->fnhe_daddr == daddr) { fnhe 1374 net/ipv4/route.c if (fnhe->fnhe_expires && fnhe 1375 net/ipv4/route.c time_after(jiffies, fnhe->fnhe_expires)) { fnhe 1379 net/ipv4/route.c return fnhe; fnhe 1403 net/ipv4/route.c struct fib_nh_exception *fnhe; fnhe 1405 net/ipv4/route.c fnhe = find_exception(nhc, daddr); fnhe 1406 net/ipv4/route.c if (fnhe && !time_after_eq(jiffies, fnhe->fnhe_expires)) fnhe 1407 net/ipv4/route.c mtu = fnhe->fnhe_pmtu; fnhe 1416 net/ipv4/route.c static bool rt_bind_exception(struct rtable *rt, struct fib_nh_exception *fnhe, fnhe 1423 net/ipv4/route.c if (daddr == fnhe->fnhe_daddr) { fnhe 1429 net/ipv4/route.c porig = &fnhe->fnhe_rth_input; fnhe 1431 net/ipv4/route.c porig = &fnhe->fnhe_rth_output; fnhe 1434 net/ipv4/route.c if (fnhe->fnhe_genid != genid) { fnhe 1435 net/ipv4/route.c fnhe->fnhe_genid = genid; fnhe 1436 net/ipv4/route.c fnhe->fnhe_gw = 0; fnhe 1437 net/ipv4/route.c fnhe->fnhe_pmtu = 0; fnhe 1438 net/ipv4/route.c fnhe->fnhe_expires = 0; fnhe 1439 net/ipv4/route.c fnhe->fnhe_mtu_locked = false; fnhe 1440 net/ipv4/route.c fnhe_flush_routes(fnhe); fnhe 1443 net/ipv4/route.c fill_route_from_fnhe(rt, fnhe); fnhe 1459 net/ipv4/route.c fnhe->fnhe_stamp = jiffies; fnhe 1562 net/ipv4/route.c struct fib_nh_exception *fnhe, fnhe 1592 net/ipv4/route.c if (unlikely(fnhe)) fnhe 1593 net/ipv4/route.c cached = rt_bind_exception(rt, fnhe, daddr, do_cache); fnhe 1788 net/ipv4/route.c struct fib_nh_exception *fnhe; fnhe 1837 net/ipv4/route.c fnhe = find_exception(nhc, daddr); fnhe 1839 net/ipv4/route.c if (fnhe) fnhe 1840 net/ipv4/route.c rth = rcu_dereference(fnhe->fnhe_rth_input); fnhe 1862 net/ipv4/route.c rt_set_nexthop(rth, daddr, res, fnhe, res->fi, res->type, itag, fnhe 2318 net/ipv4/route.c struct fib_nh_exception *fnhe; fnhe 2375 net/ipv4/route.c fnhe = NULL; fnhe 2381 net/ipv4/route.c fnhe = find_exception(nhc, fl4->daddr); fnhe 2384 net/ipv4/route.c if (fnhe) { fnhe 2385 net/ipv4/route.c prth = &fnhe->fnhe_rth_output; fnhe 2430 net/ipv4/route.c rt_set_nexthop(rth, fl4->daddr, res, fnhe, fi, type, 0, do_cache); fnhe 2878 net/ipv4/route.c struct fib_nh_exception *fnhe; fnhe 2880 net/ipv4/route.c for (fnhe = rcu_dereference(bucket[i].chain); fnhe; fnhe 2881 net/ipv4/route.c fnhe = rcu_dereference(fnhe->fnhe_next)) { fnhe 2888 net/ipv4/route.c if (fnhe->fnhe_genid != genid) fnhe 2891 net/ipv4/route.c if (fnhe->fnhe_expires && fnhe 2892 net/ipv4/route.c time_after(jiffies, fnhe->fnhe_expires)) fnhe 2895 net/ipv4/route.c rt = rcu_dereference(fnhe->fnhe_rth_input); fnhe 2897 net/ipv4/route.c rt = rcu_dereference(fnhe->fnhe_rth_output); fnhe 2901 net/ipv4/route.c err = rt_fill_info(net, fnhe->fnhe_daddr, 0, rt,