diff options
Diffstat (limited to 'drivers/net/vrf.c')
| -rw-r--r-- | drivers/net/vrf.c | 12 | 
1 files changed, 6 insertions, 6 deletions
| diff --git a/drivers/net/vrf.c b/drivers/net/vrf.c index bdb3a76a352e..6043e63b42f9 100644 --- a/drivers/net/vrf.c +++ b/drivers/net/vrf.c @@ -664,7 +664,7 @@ static int vrf_finish_output6(struct net *net, struct sock *sk,  	skb->protocol = htons(ETH_P_IPV6);  	skb->dev = dev; -	rcu_read_lock_bh(); +	rcu_read_lock();  	nexthop = rt6_nexthop((struct rt6_info *)dst, &ipv6_hdr(skb)->daddr);  	neigh = __ipv6_neigh_lookup_noref(dst->dev, nexthop);  	if (unlikely(!neigh)) @@ -672,10 +672,10 @@ static int vrf_finish_output6(struct net *net, struct sock *sk,  	if (!IS_ERR(neigh)) {  		sock_confirm_neigh(skb, neigh);  		ret = neigh_output(neigh, skb, false); -		rcu_read_unlock_bh(); +		rcu_read_unlock();  		return ret;  	} -	rcu_read_unlock_bh(); +	rcu_read_unlock();  	IP6_INC_STATS(dev_net(dst->dev),  		      ip6_dst_idev(dst), IPSTATS_MIB_OUTNOROUTES); @@ -889,7 +889,7 @@ static int vrf_finish_output(struct net *net, struct sock *sk, struct sk_buff *s  		}  	} -	rcu_read_lock_bh(); +	rcu_read_lock();  	neigh = ip_neigh_for_gw(rt, skb, &is_v6gw);  	if (!IS_ERR(neigh)) { @@ -898,11 +898,11 @@ static int vrf_finish_output(struct net *net, struct sock *sk, struct sk_buff *s  		sock_confirm_neigh(skb, neigh);  		/* if crossing protocols, can not use the cached header */  		ret = neigh_output(neigh, skb, is_v6gw); -		rcu_read_unlock_bh(); +		rcu_read_unlock();  		return ret;  	} -	rcu_read_unlock_bh(); +	rcu_read_unlock();  	vrf_tx_error(skb->dev, skb);  	return -EINVAL;  } | 
