|  |  | @@ -185,7 +185,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> | 
			
		
	
		
		
			
				
					
					|  |  |  |  		cfg->fc_flags |= RTF_REJECT; |  |  |  |  		cfg->fc_flags |= RTF_REJECT; | 
			
		
	
		
		
			
				
					
					|  |  |  |   |  |  |  |   | 
			
		
	
		
		
			
				
					
					|  |  |  |  	if (rtm->rtm_type == RTN_LOCAL) |  |  |  |  	if (rtm->rtm_type == RTN_LOCAL) | 
			
		
	
		
		
			
				
					
					|  |  |  | @@ -6028,6 +6059,8 @@ static int ip6_route_dev_notify(struct n |  |  |  | @@ -6029,6 +6060,8 @@ static int ip6_route_dev_notify(struct n | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  #ifdef CONFIG_IPV6_MULTIPLE_TABLES |  |  |  |  #ifdef CONFIG_IPV6_MULTIPLE_TABLES | 
			
		
	
		
		
			
				
					
					|  |  |  |  		net->ipv6.ip6_prohibit_entry->dst.dev = dev; |  |  |  |  		net->ipv6.ip6_prohibit_entry->dst.dev = dev; | 
			
		
	
		
		
			
				
					
					|  |  |  |  		net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev); |  |  |  |  		net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -194,7 +194,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> | 
			
		
	
		
		
			
				
					
					|  |  |  |  		net->ipv6.ip6_blk_hole_entry->dst.dev = dev; |  |  |  |  		net->ipv6.ip6_blk_hole_entry->dst.dev = dev; | 
			
		
	
		
		
			
				
					
					|  |  |  |  		net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev); |  |  |  |  		net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev); | 
			
		
	
		
		
			
				
					
					|  |  |  |  #endif |  |  |  |  #endif | 
			
		
	
		
		
			
				
					
					|  |  |  | @@ -6039,6 +6072,7 @@ static int ip6_route_dev_notify(struct n |  |  |  | @@ -6040,6 +6073,7 @@ static int ip6_route_dev_notify(struct n | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  		in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev); |  |  |  |  		in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev); | 
			
		
	
		
		
			
				
					
					|  |  |  |  #ifdef CONFIG_IPV6_MULTIPLE_TABLES |  |  |  |  #ifdef CONFIG_IPV6_MULTIPLE_TABLES | 
			
		
	
		
		
			
				
					
					|  |  |  |  		in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev); |  |  |  |  		in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -202,7 +202,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> | 
			
		
	
		
		
			
				
					
					|  |  |  |  		in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev); |  |  |  |  		in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev); | 
			
		
	
		
		
			
				
					
					|  |  |  |  #endif |  |  |  |  #endif | 
			
		
	
		
		
			
				
					
					|  |  |  |  	} |  |  |  |  	} | 
			
		
	
		
		
			
				
					
					|  |  |  | @@ -6231,6 +6265,8 @@ static int __net_init ip6_route_net_init |  |  |  | @@ -6232,6 +6266,8 @@ static int __net_init ip6_route_net_init | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   |  |  |  |   | 
			
		
	
		
		
			
				
					
					|  |  |  |  #ifdef CONFIG_IPV6_MULTIPLE_TABLES |  |  |  |  #ifdef CONFIG_IPV6_MULTIPLE_TABLES | 
			
		
	
		
		
			
				
					
					|  |  |  |  	net->ipv6.fib6_has_custom_rules = false; |  |  |  |  	net->ipv6.fib6_has_custom_rules = false; | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -211,7 +211,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> | 
			
		
	
		
		
			
				
					
					|  |  |  |  	net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template, |  |  |  |  	net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template, | 
			
		
	
		
		
			
				
					
					|  |  |  |  					       sizeof(*net->ipv6.ip6_prohibit_entry), |  |  |  |  					       sizeof(*net->ipv6.ip6_prohibit_entry), | 
			
		
	
		
		
			
				
					
					|  |  |  |  					       GFP_KERNEL); |  |  |  |  					       GFP_KERNEL); | 
			
		
	
		
		
			
				
					
					|  |  |  | @@ -6241,11 +6277,21 @@ static int __net_init ip6_route_net_init |  |  |  | @@ -6242,11 +6278,21 @@ static int __net_init ip6_route_net_init | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  			 ip6_template_metrics, true); |  |  |  |  			 ip6_template_metrics, true); | 
			
		
	
		
		
			
				
					
					|  |  |  |  	INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->rt6i_uncached); |  |  |  |  	INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->rt6i_uncached); | 
			
		
	
		
		
			
				
					
					|  |  |  |   |  |  |  |   | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -234,7 +234,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> | 
			
		
	
		
		
			
				
					
					|  |  |  |  	net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops; |  |  |  |  	net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops; | 
			
		
	
		
		
			
				
					
					|  |  |  |  	dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst, |  |  |  |  	dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst, | 
			
		
	
		
		
			
				
					
					|  |  |  |  			 ip6_template_metrics, true); |  |  |  |  			 ip6_template_metrics, true); | 
			
		
	
		
		
			
				
					
					|  |  |  | @@ -6269,6 +6315,8 @@ out: |  |  |  | @@ -6270,6 +6316,8 @@ out: | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  	return ret; |  |  |  |  	return ret; | 
			
		
	
		
		
			
				
					
					|  |  |  |   |  |  |  |   | 
			
		
	
		
		
			
				
					
					|  |  |  |  #ifdef CONFIG_IPV6_MULTIPLE_TABLES |  |  |  |  #ifdef CONFIG_IPV6_MULTIPLE_TABLES | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -243,7 +243,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> | 
			
		
	
		
		
			
				
					
					|  |  |  |  out_ip6_prohibit_entry: |  |  |  |  out_ip6_prohibit_entry: | 
			
		
	
		
		
			
				
					
					|  |  |  |  	kfree(net->ipv6.ip6_prohibit_entry); |  |  |  |  	kfree(net->ipv6.ip6_prohibit_entry); | 
			
		
	
		
		
			
				
					
					|  |  |  |  out_ip6_null_entry: |  |  |  |  out_ip6_null_entry: | 
			
		
	
		
		
			
				
					
					|  |  |  | @@ -6288,6 +6336,7 @@ static void __net_exit ip6_route_net_exi |  |  |  | @@ -6289,6 +6337,7 @@ static void __net_exit ip6_route_net_exi | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  	kfree(net->ipv6.ip6_null_entry); |  |  |  |  	kfree(net->ipv6.ip6_null_entry); | 
			
		
	
		
		
			
				
					
					|  |  |  |  #ifdef CONFIG_IPV6_MULTIPLE_TABLES |  |  |  |  #ifdef CONFIG_IPV6_MULTIPLE_TABLES | 
			
		
	
		
		
			
				
					
					|  |  |  |  	kfree(net->ipv6.ip6_prohibit_entry); |  |  |  |  	kfree(net->ipv6.ip6_prohibit_entry); | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -251,7 +251,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org> | 
			
		
	
		
		
			
				
					
					|  |  |  |  	kfree(net->ipv6.ip6_blk_hole_entry); |  |  |  |  	kfree(net->ipv6.ip6_blk_hole_entry); | 
			
		
	
		
		
			
				
					
					|  |  |  |  #endif |  |  |  |  #endif | 
			
		
	
		
		
			
				
					
					|  |  |  |  	dst_entries_destroy(&net->ipv6.ip6_dst_ops); |  |  |  |  	dst_entries_destroy(&net->ipv6.ip6_dst_ops); | 
			
		
	
		
		
			
				
					
					|  |  |  | @@ -6365,6 +6414,9 @@ void __init ip6_route_init_special_entri |  |  |  | @@ -6366,6 +6415,9 @@ void __init ip6_route_init_special_entri | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  	init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev); |  |  |  |  	init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev); | 
			
		
	
		
		
			
				
					
					|  |  |  |  	init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev; |  |  |  |  	init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev; | 
			
		
	
		
		
			
				
					
					|  |  |  |  	init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev); |  |  |  |  	init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev); | 
			
		
	
	
		
		
			
				
					
					|  |  |   |