aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/socket.c
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2017-07-06 17:47:03 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2017-07-06 18:12:33 +0200
commit1842e4e9ff32828bcac95786a8b101750277c19a (patch)
tree6284a0d80d613175934400cdd61ffc721fe27df8 /src/socket.c
parentdevice: cleanup register_netdev logic (diff)
downloadwireguard-monolithic-historical-1842e4e9ff32828bcac95786a8b101750277c19a.tar.xz
wireguard-monolithic-historical-1842e4e9ff32828bcac95786a8b101750277c19a.zip
socket: the checkers distinguish between _bh and non _bh
Diffstat (limited to 'src/socket.c')
-rw-r--r--src/socket.c2
1 files changed, 1 insertions, 1 deletions
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);