Revert "ipv6: Fix handling of LLA with VRF and sockets bound to VRF"
authorSasha Levin <sashal@kernel.org>
Mon, 23 Mar 2020 20:21:45 +0000 (16:21 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 2 Apr 2020 14:34:22 +0000 (16:34 +0200)
This reverts commit 0293f8d1bdd21b3eb71032edb5832f9090dea48e.

This patch shouldn't have been backported to 4.14.

Signed-off-by: Sasha Levin <sashal@kernel.org>
net/ipv6/tcp_ipv6.c

index 5ec73cf386dfeea4bd3276dd7226ca7fd07b448c..7b4ce3f9e2f4e881c2451cdcbd1664778c3c01ae 100644 (file)
@@ -718,7 +718,6 @@ static void tcp_v6_init_req(struct request_sock *req,
                            const struct sock *sk_listener,
                            struct sk_buff *skb)
 {
-       bool l3_slave = ipv6_l3mdev_skb(TCP_SKB_CB(skb)->header.h6.flags);
        struct inet_request_sock *ireq = inet_rsk(req);
        const struct ipv6_pinfo *np = inet6_sk(sk_listener);
 
@@ -726,7 +725,7 @@ static void tcp_v6_init_req(struct request_sock *req,
        ireq->ir_v6_loc_addr = ipv6_hdr(skb)->daddr;
 
        /* So that link locals have meaning */
-       if ((!sk_listener->sk_bound_dev_if || l3_slave) &&
+       if (!sk_listener->sk_bound_dev_if &&
            ipv6_addr_type(&ireq->ir_v6_rmt_addr) & IPV6_ADDR_LINKLOCAL)
                ireq->ir_iif = tcp_v6_iif(skb);