ipv6: fix possible seqlock deadlock in ip6_finish_output2
IPv6 stats are 64 bits and thus are protected with a seqlock. By not disabling bottom-half we could deadlock here if we don't disable bh and a softirq reentrantly updates the same mib. Cc: Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org> Acked-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
		
					parent
					
						
							
								696701b89d
							
						
					
				
			
			
				commit
				
					
						7f88c6b23a
					
				
			
		
					 1 changed files with 2 additions and 2 deletions
				
			
		|  | @ -116,8 +116,8 @@ static int ip6_finish_output2(struct sk_buff *skb) | |||
| 	} | ||||
| 	rcu_read_unlock_bh(); | ||||
| 
 | ||||
| 	IP6_INC_STATS_BH(dev_net(dst->dev), | ||||
| 			 ip6_dst_idev(dst), IPSTATS_MIB_OUTNOROUTES); | ||||
| 	IP6_INC_STATS(dev_net(dst->dev), | ||||
| 		      ip6_dst_idev(dst), IPSTATS_MIB_OUTNOROUTES); | ||||
| 	kfree_skb(skb); | ||||
| 	return -EINVAL; | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Hannes Frederic Sowa
				Hannes Frederic Sowa