From 1842e4e9ff32828bcac95786a8b101750277c19a Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Thu, 6 Jul 2017 17:47:03 +0200 Subject: socket: the checkers distinguish between _bh and non _bh --- src/socket.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/socket.c') diff --git a/src/socket.c b/src/socket.c index 40f8b8d..ac6c668 100644 --- a/src/socket.c +++ b/src/socket.c @@ -45,7 +45,7 @@ static inline int send4(struct wireguard_device *wg, struct sk_buff *skb, struct if (!rt) { security_sk_classify_flow(sock, flowi4_to_flowi(&fl)); rt = ip_route_output_flow(sock_net(sock), &fl, sock); - if (unlikely(endpoint->src4.s_addr && ((IS_ERR(rt) && PTR_ERR(rt) == -EINVAL) || (!IS_ERR(rt) && !inet_confirm_addr(sock_net(sock), __in_dev_get_rcu(rt->dst.dev), 0, fl.saddr, RT_SCOPE_HOST))))) { + if (unlikely(endpoint->src4.s_addr && ((IS_ERR(rt) && PTR_ERR(rt) == -EINVAL) || (!IS_ERR(rt) && !inet_confirm_addr(sock_net(sock), rcu_dereference_bh(rt->dst.dev->ip_ptr), 0, fl.saddr, RT_SCOPE_HOST))))) { endpoint->src4.s_addr = fl.saddr = 0; if (cache) dst_cache_reset(cache); -- cgit v1.2.3-59-g8ed1b