From: Florian Westphal <f...@strlen.de>

Handle SO_DEBUG and set it on all subflows.
Ignore those values not implemented on TCP sockets.

Acked-by: Paolo Abeni <pab...@redhat.com>
Signed-off-by: Florian Westphal <f...@strlen.de>
Signed-off-by: Mat Martineau <mathew.j.martin...@linux.intel.com>
---
 net/mptcp/sockopt.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/net/mptcp/sockopt.c b/net/mptcp/sockopt.c
index 7eb637488dc2..390433b7f324 100644
--- a/net/mptcp/sockopt.c
+++ b/net/mptcp/sockopt.c
@@ -77,6 +77,9 @@ static void mptcp_sol_socket_sync_intval(struct mptcp_sock 
*msk, int optname, in
                bool slow = lock_sock_fast(ssk);
 
                switch (optname) {
+               case SO_DEBUG:
+                       sock_valbool_flag(ssk, SOCK_DBG, !!val);
+                       break;
                case SO_KEEPALIVE:
                        if (ssk->sk_prot->keepalive)
                                ssk->sk_prot->keepalive(ssk, !!val);
@@ -150,6 +153,7 @@ static int mptcp_setsockopt_sol_socket_int(struct 
mptcp_sock *msk, int optname,
        case SO_KEEPALIVE:
                mptcp_sol_socket_sync_intval(msk, optname, val);
                return 0;
+       case SO_DEBUG:
        case SO_MARK:
        case SO_PRIORITY:
        case SO_SNDBUF:
@@ -246,9 +250,21 @@ static int mptcp_setsockopt_sol_socket(struct mptcp_sock 
*msk, int optname,
        case SO_RCVBUFFORCE:
        case SO_MARK:
        case SO_INCOMING_CPU:
+       case SO_DEBUG:
                return mptcp_setsockopt_sol_socket_int(msk, optname, optval, 
optlen);
        case SO_LINGER:
                return mptcp_setsockopt_sol_socket_linger(msk, optval, optlen);
+       case SO_NO_CHECK:
+       case SO_DONTROUTE:
+       case SO_BROADCAST:
+       case SO_BSDCOMPAT:
+       case SO_PASSCRED:
+       case SO_PASSSEC:
+       case SO_RXQ_OVFL:
+       case SO_WIFI_STATUS:
+       case SO_NOFCS:
+       case SO_SELECT_ERR_QUEUE:
+               return 0;
        }
 
        return sock_setsockopt(sk->sk_socket, SOL_SOCKET, optname, optval, 
optlen);
-- 
2.31.1

Reply via email to