Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial
[firefly-linux-kernel-4.4.55.git] / net / ipv6 / inet6_connection_sock.c
index 3a4d92b5a83e5586ff4201e2cc3abfac1caf4ead..628db24bcf22bceff783384ea7779a87c4cb0ab7 100644 (file)
@@ -42,16 +42,11 @@ int inet6_csk_bind_conflict(const struct sock *sk,
                if (sk != sk2 &&
                    (!sk->sk_bound_dev_if ||
                     !sk2->sk_bound_dev_if ||
-                    sk->sk_bound_dev_if == sk2->sk_bound_dev_if)) {
-                       if ((!sk->sk_reuse || !sk2->sk_reuse ||
-                            sk2->sk_state == TCP_LISTEN) &&
-                            ipv6_rcv_saddr_equal(sk, sk2))
-                               break;
-                       else if (sk->sk_reuse && sk2->sk_reuse &&
-                               !ipv6_addr_any(inet6_rcv_saddr(sk)) &&
-                               ipv6_rcv_saddr_equal(sk, sk2))
-                               break;
-               }
+                    sk->sk_bound_dev_if == sk2->sk_bound_dev_if) &&
+                   (!sk->sk_reuse || !sk2->sk_reuse ||
+                    sk2->sk_state == TCP_LISTEN) &&
+                    ipv6_rcv_saddr_equal(sk, sk2))
+                       break;
        }
 
        return node != NULL;