• Mat Martineau's avatar
    tcp, ulp: Add clone operation to tcp_ulp_ops · 13230593
    Mat Martineau authored
    If ULP is used on a listening socket, icsk_ulp_ops and icsk_ulp_data are
    copied when the listener is cloned. Sometimes the clone is immediately
    deleted, which will invoke the release op on the clone and likely
    corrupt the listening socket's icsk_ulp_data.
    
    The clone operation is invoked immediately after the clone is copied and
    gives the ULP type an opportunity to set up the clone socket and its
    icsk_ulp_data.
    
    The MPTCP ULP clone will silently fallback to plain TCP on allocation
    failure, so 'clone()' does not need to return an error code.
    
    v6 -> v7:
     - move and rename ulp clone helper to make it inline-friendly
    v5 -> v6:
     - clarified MPTCP clone usage in commit message
    Signed-off-by: default avatarMat Martineau <mathew.j.martineau@linux.intel.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    13230593
inet_connection_sock.c 30.8 KB