Lines Matching refs:nh
2817 struct rt6_nh *nh; in ip6_print_replace_route_err() local
2819 list_for_each_entry(nh, rt6_nh_list, next) { in ip6_print_replace_route_err()
2821 &nh->r_cfg.fc_dst, &nh->r_cfg.fc_gateway, in ip6_print_replace_route_err()
2822 nh->r_cfg.fc_ifindex); in ip6_print_replace_route_err()
2829 struct rt6_nh *nh; in ip6_route_info_append() local
2833 list_for_each_entry(nh, rt6_nh_list, next) { in ip6_route_info_append()
2835 rtnh = nh->rt6_info; in ip6_route_info_append()
2844 nh = kzalloc(sizeof(*nh), GFP_KERNEL); in ip6_route_info_append()
2845 if (!nh) in ip6_route_info_append()
2847 nh->rt6_info = rt; in ip6_route_info_append()
2848 err = ip6_convert_metrics(&nh->mxc, r_cfg); in ip6_route_info_append()
2850 kfree(nh); in ip6_route_info_append()
2853 memcpy(&nh->r_cfg, r_cfg, sizeof(*r_cfg)); in ip6_route_info_append()
2854 list_add_tail(&nh->next, rt6_nh_list); in ip6_route_info_append()
2865 struct rt6_nh *nh, *nh_safe; in ip6_route_multipath_add() local
2917 list_for_each_entry(nh, &rt6_nh_list, next) { in ip6_route_multipath_add()
2918 err = __ip6_ins_rt(nh->rt6_info, &cfg->fc_nlinfo, &nh->mxc); in ip6_route_multipath_add()
2920 nh->rt6_info = NULL; in ip6_route_multipath_add()
2924 err_nh = nh; in ip6_route_multipath_add()
2944 list_for_each_entry(nh, &rt6_nh_list, next) { in ip6_route_multipath_add()
2945 if (err_nh == nh) in ip6_route_multipath_add()
2947 ip6_route_del(&nh->r_cfg); in ip6_route_multipath_add()
2951 list_for_each_entry_safe(nh, nh_safe, &rt6_nh_list, next) { in ip6_route_multipath_add()
2952 if (nh->rt6_info) in ip6_route_multipath_add()
2953 dst_free(&nh->rt6_info->dst); in ip6_route_multipath_add()
2954 kfree(nh->mxc.mx); in ip6_route_multipath_add()
2955 list_del(&nh->next); in ip6_route_multipath_add()
2956 kfree(nh); in ip6_route_multipath_add()