| 
					
				 | 
			
			
				@@ -181,7 +181,7 @@ Signed-off-by: Jonas Gorski <[email protected]> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  		cfg->fc_flags |= RTF_REJECT; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	if (rtm->rtm_type == RTN_LOCAL) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@@ -3502,6 +3536,9 @@ static int rt6_fill_node(struct net *net 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -3506,6 +3540,9 @@ static int rt6_fill_node(struct net *net 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  		case -EACCES: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  			rtm->rtm_type = RTN_PROHIBIT; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  			break; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -191,7 +191,7 @@ Signed-off-by: Jonas Gorski <[email protected]> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  		case -EAGAIN: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  			rtm->rtm_type = RTN_THROW; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  			break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@@ -3820,6 +3857,8 @@ static int ip6_route_dev_notify(struct n 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -3824,6 +3861,8 @@ static int ip6_route_dev_notify(struct n 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  #ifdef CONFIG_IPV6_MULTIPLE_TABLES 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  		net->ipv6.ip6_prohibit_entry->dst.dev = dev; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  		net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -200,7 +200,7 @@ Signed-off-by: Jonas Gorski <[email protected]> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  		net->ipv6.ip6_blk_hole_entry->dst.dev = dev; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  		net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  #endif 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@@ -3831,6 +3870,7 @@ static int ip6_route_dev_notify(struct n 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -3835,6 +3874,7 @@ static int ip6_route_dev_notify(struct n 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  		in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  #ifdef CONFIG_IPV6_MULTIPLE_TABLES 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  		in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -208,7 +208,7 @@ Signed-off-by: Jonas Gorski <[email protected]> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  		in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  #endif 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@@ -4047,6 +4087,17 @@ static int __net_init ip6_route_net_init 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -4051,6 +4091,17 @@ static int __net_init ip6_route_net_init 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  			 ip6_template_metrics, true); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -226,7 +226,7 @@ Signed-off-by: Jonas Gorski <[email protected]> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  #endif 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	net->ipv6.sysctl.flush_delay = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@@ -4065,6 +4116,8 @@ out: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -4069,6 +4120,8 @@ out: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	return ret; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  #ifdef CONFIG_IPV6_MULTIPLE_TABLES 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -235,7 +235,7 @@ Signed-off-by: Jonas Gorski <[email protected]> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  out_ip6_prohibit_entry: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	kfree(net->ipv6.ip6_prohibit_entry); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  out_ip6_null_entry: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@@ -4082,6 +4135,7 @@ static void __net_exit ip6_route_net_exi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -4086,6 +4139,7 @@ static void __net_exit ip6_route_net_exi 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  #ifdef CONFIG_IPV6_MULTIPLE_TABLES 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	kfree(net->ipv6.ip6_prohibit_entry); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	kfree(net->ipv6.ip6_blk_hole_entry); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -243,7 +243,7 @@ Signed-off-by: Jonas Gorski <[email protected]> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  #endif 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	dst_entries_destroy(&net->ipv6.ip6_dst_ops); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@@ -4155,6 +4209,9 @@ void __init ip6_route_init_special_entri 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@@ -4159,6 +4213,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_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); 
			 |