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,