l2tp: remove the .tunnel_sock field from struct pppol2tp_session
authorGuillaume Nault <g.nault@alphalink.fr>
Fri, 10 Nov 2017 21:06:37 +0000 (06:06 +0900)
committerDavid S. Miller <davem@davemloft.net>
Sat, 11 Nov 2017 13:08:23 +0000 (22:08 +0900)
The last user of .tunnel_sock is pppol2tp_connect() which defensively
uses it to verify internal data consistency.

This check isn't necessary: l2tp_session_get() guarantees that the
returned session belongs to the tunnel passed as parameter. And
.tunnel_sock is never updated, so checking that it still points to
the parent tunnel socket is useless; that test can never fail.

Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/l2tp/l2tp_ppp.c

index 88b4cb1b7cde310451f64babe64f8881d47e3162..b412fc3351dc38fe00de6d86b3dc8b960da25699 100644 (file)
@@ -127,8 +127,6 @@ struct pppol2tp_session {
                                                 * PPPoX socket */
        struct sock             *__sk;          /* Copy of .sk, for cleanup */
        struct rcu_head         rcu;            /* For asynchronous release */
-       struct sock             *tunnel_sock;   /* Pointer to the tunnel UDP
-                                                * socket */
        int                     flags;          /* accessed by PPPIOCGFLAGS.
                                                 * Unused. */
 };
@@ -592,7 +590,6 @@ static void pppol2tp_session_init(struct l2tp_session *session)
 
        ps = l2tp_session_priv(session);
        mutex_init(&ps->sk_lock);
-       ps->tunnel_sock = session->tunnel->sock;
        ps->owner = current->pid;
 
        /* If PMTU discovery was enabled, use the MTU that was discovered */
@@ -743,13 +740,6 @@ static int pppol2tp_connect(struct socket *sock, struct sockaddr *uservaddr,
                        error = -EEXIST;
                        goto end;
                }
-
-               /* consistency checks */
-               if (ps->tunnel_sock != tunnel->sock) {
-                       mutex_unlock(&ps->sk_lock);
-                       error = -EEXIST;
-                       goto end;
-               }
        } else {
                /* Default MTU must allow space for UDP/L2TP/PPP headers */
                cfg.mtu = 1500 - PPPOL2TP_HEADER_OVERHEAD;