diff options
-rw-r--r-- | net/ipv4/tcp.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c index a162a0d85b7..d1e438fa0e2 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c @@ -3326,8 +3326,9 @@ void __init tcp_init(void) static int tcp_is_local(struct net *net, __be32 addr) { struct rtable *rt; - struct flowi fl = { .nl_u = { .ip4_u = { .daddr = addr } } }; - if (ip_route_output_key(net, &rt, &fl) || !rt) + struct flowi4 fl4 = { .daddr = addr }; + rt = ip_route_output_key(net, &fl4); + if (!rt) return 0; return rt->dst.dev && (rt->dst.dev->flags & IFF_LOOPBACK); } |