From nobody Thu Apr 25 18:15:07 2024 Received: from mail-wm1-f48.google.com (mail-wm1-f48.google.com [209.85.128.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E4396C0B7 for ; Tue, 14 Feb 2023 16:05:30 +0000 (UTC) Received: by mail-wm1-f48.google.com with SMTP id k8-20020a05600c1c8800b003dc57ea0dfeso14059617wms.0 for ; Tue, 14 Feb 2023 08:05:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=Ly6DfkEKz/G+rxKKbWncYYr46bc2Li2tCDDJdiz0T8M=; b=ag05wB9PpHBHmboVYhZi7jl9gaupeMoVum/iIEd4UdEfztJtdlqtoqaxK8cG0vAqpa HVxiTBnhAm8HYDuRjIQn/h7S2LtHv9sRBA9JaSMxs1bgacFBXFIlNNIgPb6jGqzIGulf KUWRtn8mCG3blgQmHPsqTlgJZy5JQ4GN+cIkstq1VmD+ULkVnxxVk83M1+PyKLAyvb0v lXweCzJHI89+kBcTlSbe0GnZYeVfJZNjyrlta/XWFbFGKbhTOQbTGQAjDAXW1FaAH4a3 Etvf1Mpp8cZMxqVzVoSMJs9RHKkTQh2IKypPgjHKx7E+gTTFI2+1NPt8CnaWNz9b1ZIE GTbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Ly6DfkEKz/G+rxKKbWncYYr46bc2Li2tCDDJdiz0T8M=; b=MBLYfLtDofcAbLGosQtWTJ38l16N9H+dMAxeKqjwMx2i3I/w6o+WOoPNXXKVxzQLKK ELOdqNqGseAeE4h+KPx9dPvJibOYNroZkKhyqah0u1KbXPUhkP8x8ylI70fMJ+Ruryg6 sf+/SuDcGCqrpFcxc1U8eFDsQHBuULm49mUbC90BVe1Nl+JIxRfAlMFybWKR4vm9OcJf 3VPWx1l9anaLGbzT31IumPNED/x4UHg89aFGkE6QKGI84LOikgE/8zrjZznjEZ1AkVCR But0CmN2lMT4/MEYXN861T7cpjVWXu/wtFvKJRtd5NtnFoegdpKh82w+xAXQVDjeFoWW aouw== X-Gm-Message-State: AO0yUKWUG4fUF58GkZ/7poQX3wseEP13hjbRb3dIzey44L5SbpVeMo3R BbzXatbWsIYHSeNpNRGH66tn+l1SCdblJqeCMshdlQ== X-Google-Smtp-Source: AK7set9dsNaaz8mZMAVPHChTu9UZgZGDw+xvILUMyZHZQ/STzLl27yRjoWAXXjB7Fo2PehqG7Lj3xg== X-Received: by 2002:a05:600c:4ab0:b0:3de:d9f:3025 with SMTP id b48-20020a05600c4ab000b003de0d9f3025mr2313297wmp.0.1676390728817; Tue, 14 Feb 2023 08:05:28 -0800 (PST) Received: from vdi08.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id bg30-20020a05600c3c9e00b003db012d49b7sm4435537wmb.2.2023.02.14.08.05.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Feb 2023 08:05:28 -0800 (PST) From: Matthieu Baerts Date: Tue, 14 Feb 2023 17:05:07 +0100 Subject: [PATCH 6.1 1/4] mptcp: sockopt: make 'tcp_fastopen_connect' generic Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230214-upstream-stable-20230214-linux-6-1-12-rc1-mptcp-fixes-v1-1-02f36fa30f8c@tessares.net> References: <20230214-upstream-stable-20230214-linux-6-1-12-rc1-mptcp-fixes-v1-0-02f36fa30f8c@tessares.net> In-Reply-To: <20230214-upstream-stable-20230214-linux-6-1-12-rc1-mptcp-fixes-v1-0-02f36fa30f8c@tessares.net> To: Greg Kroah-Hartman , Sasha Levin Cc: Paolo Abeni , stable@vger.kernel.org, mptcp@lists.linux.dev, Matthieu Baerts , Mat Martineau X-Mailer: b4 0.12.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=2300; i=matthieu.baerts@tessares.net; h=from:subject:message-id; bh=XgzkoybHN6ABv/TX942NWNid6qtwPZKWNVbrOVabEK8=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBj67FGqQtd+YwgDINrS+SBqFBoIc+L3o3Bk6Jmi IEkgWfMNwmJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCY+uxRgAKCRD2t4JPQmmg c7GtD/4un9n6YptAU7aNzIVTvTx9aLILOaddL0mVlwN6l+YChgp1geqYAsP6sfdxokobJZAouON qs+fzhGSJaQIl0ViU2OA+fzrNvLCLwvu/ZwNU0NbrEsSu5YmvFx1tR3VvjbvnPTf5CsNiuUSBt3 fyleKiM9piQXwWBtRSnbhA7HHzlgKyVrl2T2a3a65CmfRYI6fX0WE4nrsIb7yZARdbxWAiNOonl op78YmaN1eiHuLziJxyw8tURkwM7X9AeftMw+yGJLMY1/+wtu1SVcn6BRKh2IyCS8/Ui6jiGs51 OIJiT/vacHr4PHi1bsaBTiqt+Tb5ba3UCRy1JPwmzyFfFcTpoZ7LS5+5uUIErp0tz69IinxNg0r ryU6XsZ3OoMRYopVV7tXtQOmc06Ji6MYO68HPjGGBoFX0rR58JVLG/KO06nUSRe9XxF8f0PKPtt lQTd5d8Q+tFBFpZFx0x8Cpx63jsb3rmQNK5TryBJgAcIhhjDaoorYp6B4J6p1dP1UpENvdTky+A tK5ovhb92b3Kau0ejsleEdUZITndbT17y+2BXgM0erVKSz0now8CaxrRhQZlyhT8lDiyP6t77ss Rqf53ATYYx0Y3vzcpEusTiiui1zmPjUUrjgW5CGuOYOpzR9cxgfI/82LC3rO1yoGcVHv1psgEyC 9Mhnev1123FwSYw== X-Developer-Key: i=matthieu.baerts@tessares.net; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 [ Upstream commit d3d429047cc66ff49780c93e4fccd9527723d385 ] There are other socket options that need to act only on the first subflow, e.g. all TCP_FASTOPEN* socket options. This is similar to the getsockopt version. In the next commit, this new mptcp_setsockopt_first_sf_only() helper is used by other another option. Reviewed-by: Mat Martineau Signed-off-by: Matthieu Baerts Signed-off-by: Mat Martineau Signed-off-by: Paolo Abeni Stable-dep-of: 21e43569685d ("mptcp: fix locking for setsockopt corner-case= ") Signed-off-by: Matthieu Baerts --- net/mptcp/sockopt.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/net/mptcp/sockopt.c b/net/mptcp/sockopt.c index c7cb68c725b2..8d3b09d75c3a 100644 --- a/net/mptcp/sockopt.c +++ b/net/mptcp/sockopt.c @@ -769,17 +769,17 @@ static int mptcp_setsockopt_sol_tcp_defer(struct mptc= p_sock *msk, sockptr_t optv return tcp_setsockopt(listener->sk, SOL_TCP, TCP_DEFER_ACCEPT, optval, op= tlen); } =20 -static int mptcp_setsockopt_sol_tcp_fastopen_connect(struct mptcp_sock *ms= k, sockptr_t optval, - unsigned int optlen) +static int mptcp_setsockopt_first_sf_only(struct mptcp_sock *msk, int leve= l, int optname, + sockptr_t optval, unsigned int optlen) { struct socket *sock; =20 - /* Limit to first subflow */ + /* Limit to first subflow, before the connection establishment */ sock =3D __mptcp_nmpc_socket(msk); if (!sock) return -EINVAL; =20 - return tcp_setsockopt(sock->sk, SOL_TCP, TCP_FASTOPEN_CONNECT, optval, op= tlen); + return tcp_setsockopt(sock->sk, level, optname, optval, optlen); } =20 static int mptcp_setsockopt_sol_tcp(struct mptcp_sock *msk, int optname, @@ -811,7 +811,8 @@ static int mptcp_setsockopt_sol_tcp(struct mptcp_sock *= msk, int optname, case TCP_DEFER_ACCEPT: return mptcp_setsockopt_sol_tcp_defer(msk, optval, optlen); case TCP_FASTOPEN_CONNECT: - return mptcp_setsockopt_sol_tcp_fastopen_connect(msk, optval, optlen); + return mptcp_setsockopt_first_sf_only(msk, SOL_TCP, optname, + optval, optlen); } =20 return -EOPNOTSUPP; --=20 2.38.1 From nobody Thu Apr 25 18:15:07 2024 Received: from mail-wr1-f45.google.com (mail-wr1-f45.google.com [209.85.221.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EC944C0B9 for ; Tue, 14 Feb 2023 16:05:31 +0000 (UTC) Received: by mail-wr1-f45.google.com with SMTP id bu23so16171488wrb.8 for ; Tue, 14 Feb 2023 08:05:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=/j0dQwXx6AIG08VyqZYo5n7fbJdrLUUxSJIZ8auBLdo=; b=qZnlQQy55pXjOWZ6DAwHoPbPOplfbvv3FpCSBi/m9R/gtUR4hg8FdmGUSMxYoCYegi BltbdKy6a7yw6gA0odXf4xvQXTS2VygQcXr7iuR5mezCGq4lNZCn5Iq0Pk+xm8qXaZVt tkk/6LtDmWkiDhr+J8orlQCcgjPvA+oE9YN00vAoN2DVG1vo1j/q+O+ZXz50EUOi+cvM NeDAIMa/k9JTM/EfKdI+xljHgovVInQbG7Fr1ew4k7ymAVi8mmJrU00N9MwdOIJzTaOU 0zXAj6p9iFXc83GgwB5L/jiejeZJWtpWHcdLJY9Z7+poyP9Ync9hTQm0fsMFqBllsUZ9 vRng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/j0dQwXx6AIG08VyqZYo5n7fbJdrLUUxSJIZ8auBLdo=; b=BPSiGt+dpC5pdUciLfi5E5y7EWRNlbjah2rnetGT0h4nJ/YOKDnQAbv6f0Ae5t/xK7 dKlxK85pMOzUv9WH0mjRTFU0URKqx0HbBxaA1r4TcUEWn4bYLb/VQ8C4azrSNot275OH l2Jr6I56PYSKwhkEck5iUB18UDA7dAl5maE1z2DHFlmZpF3cLPwI7jYhcDo5p7OT4ilR TasfGGVxTuEDDgixODfL+ybU3FLKRlEY+pxqwheaoNotRP+gCsbqWda7MKE1u8mIW8C2 wpBPm8uQi9uOuI45D6aFFJn578xcf3GN+1X4HZzVbT3ubaMWBkBIgseXASgtJoQ51SA7 rVpw== X-Gm-Message-State: AO0yUKURvwB70MBLcsvvA687XFTyCIgUfCbpwm+ZRnRnm8nuVuLtbC68 SMdkNRTSWDtghHfqCD/0cPHe7/YXMZCf7of544ZC3g== X-Google-Smtp-Source: AK7set+1CYzNTBfFCsuzloGVhP8KsfC6aujEwUBtmCOyjWJ1RlJ8y9L+lMFJQjyyfwfwQQQ6lzC7Nw== X-Received: by 2002:adf:f744:0:b0:2c5:41f4:b878 with SMTP id z4-20020adff744000000b002c541f4b878mr2521389wrp.43.1676390729781; Tue, 14 Feb 2023 08:05:29 -0800 (PST) Received: from vdi08.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id bg30-20020a05600c3c9e00b003db012d49b7sm4435537wmb.2.2023.02.14.08.05.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Feb 2023 08:05:29 -0800 (PST) From: Matthieu Baerts Date: Tue, 14 Feb 2023 17:05:08 +0100 Subject: [PATCH 6.1 2/4] mptcp: fix locking for setsockopt corner-case Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230214-upstream-stable-20230214-linux-6-1-12-rc1-mptcp-fixes-v1-2-02f36fa30f8c@tessares.net> References: <20230214-upstream-stable-20230214-linux-6-1-12-rc1-mptcp-fixes-v1-0-02f36fa30f8c@tessares.net> In-Reply-To: <20230214-upstream-stable-20230214-linux-6-1-12-rc1-mptcp-fixes-v1-0-02f36fa30f8c@tessares.net> To: Greg Kroah-Hartman , Sasha Levin Cc: Paolo Abeni , stable@vger.kernel.org, mptcp@lists.linux.dev, Matthieu Baerts , "David S. Miller" X-Mailer: b4 0.12.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=1701; i=matthieu.baerts@tessares.net; h=from:subject:message-id; bh=i6ETWnLe4bzct348gCvCTLhKQXFC5wvBIaCMrpk/Xjc=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBj67FGCqR0MNOTk4dTfFX0NXFES9yH/zkaZBZ8Q 5kGmGDHtNiJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCY+uxRgAKCRD2t4JPQmmg c75cEADoH/JEjTlQxNpGu5GKfnwnD7p+zlxq5XSrsepsw9vudIwtWjMBuQBdUNfD2DZkEePurPc oJlNHcrdJqh8ii6tun5AuQ09EzYwpi/WfFps+yuNEY6egAJJiz0tt1b1685KngXF1NgawQa5T3q 3EMZXgBW7smsWjDX9bXCbJSjpW31vJ8m1DRew+XM/XuIL/5c+Xo5QSNm8o5CuuxBMLrP+ski0z5 bUls8HT0EuEkDkbXdo76u7ras4I+dWJ2ZCclOfY4kDdUz49y77dnS413uhFzCs2KWj+Kglgelna n6Tl1XQrD4EIuFgiExIVee5KFSGonN4nVEgxdBcaUaPsyelVhLVgvN+tWTH9pMoSmISRMAxgt/P CTllTPx8Bff39mxYzIRnOArY/4+KXmpawO1vGCdOi1ra1HHXnDJUhBI9ztHPqGUUWDyhD1Ti0tt 4soSWafx02+o4VEpgUlMKDOHzWTJXYRg0OoHTlztdayuzfAZH1/ucUqA52Bb93MjQL6WxFQRx4G KnjsBGq4DqUnzk4ZGDXG9aKNhtV3hfSdzzSUTuWJOXC8148D4wEXeaYh/eZ78L8o/kgiWEKvfut aCindYF2l5LNDzsLtd3d3tJEfXjIDQrmpS/0qgkZvSeMp4oZuFkQE+e+mF1yddxyLmSSi6WIvLV VsmkW439GjqbwoQ== X-Developer-Key: i=matthieu.baerts@tessares.net; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 From: Paolo Abeni [ Upstream commit 21e43569685de4ad773fb060c11a15f3fd5e7ac4 ] We need to call the __mptcp_nmpc_socket(), and later subflow socket access under the msk socket lock, or e.g. a racing connect() could change the socket status under the hood, with unexpected results. Fixes: 54635bd04701 ("mptcp: add TCP_FASTOPEN_CONNECT socket option") Cc: stable@vger.kernel.org Signed-off-by: Paolo Abeni Reviewed-by: Matthieu Baerts Signed-off-by: Matthieu Baerts Signed-off-by: David S. Miller Signed-off-by: Matthieu Baerts --- net/mptcp/sockopt.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/net/mptcp/sockopt.c b/net/mptcp/sockopt.c index 8d3b09d75c3a..696ba398d699 100644 --- a/net/mptcp/sockopt.c +++ b/net/mptcp/sockopt.c @@ -772,14 +772,21 @@ static int mptcp_setsockopt_sol_tcp_defer(struct mptc= p_sock *msk, sockptr_t optv static int mptcp_setsockopt_first_sf_only(struct mptcp_sock *msk, int leve= l, int optname, sockptr_t optval, unsigned int optlen) { + struct sock *sk =3D (struct sock *)msk; struct socket *sock; + int ret =3D -EINVAL; =20 /* Limit to first subflow, before the connection establishment */ + lock_sock(sk); sock =3D __mptcp_nmpc_socket(msk); if (!sock) - return -EINVAL; + goto unlock; =20 - return tcp_setsockopt(sock->sk, level, optname, optval, optlen); + ret =3D tcp_setsockopt(sock->sk, level, optname, optval, optlen); + +unlock: + release_sock(sk); + return ret; } =20 static int mptcp_setsockopt_sol_tcp(struct mptcp_sock *msk, int optname, --=20 2.38.1 From nobody Thu Apr 25 18:15:07 2024 Received: from mail-wm1-f51.google.com (mail-wm1-f51.google.com [209.85.128.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A9A2AC0BA for ; Tue, 14 Feb 2023 16:05:32 +0000 (UTC) Received: by mail-wm1-f51.google.com with SMTP id m16-20020a05600c3b1000b003dc4050c94aso11986371wms.4 for ; Tue, 14 Feb 2023 08:05:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=ztgPqq49kics+10J7Iq/tHqvzOz/l1zYeaPIluiheAY=; b=IJXRrvx6RAgtDCm4pUv3gwz+e7E1ShR7YXtuZohCeSte7a+RNffjhlda1Idd/9afmM PN/KRlnOci3jo/UqZ/76xNWc9OK04JeRlb0PwqPBxKbVD0QbuRDNeGKB8I4YkdjBguZp I50i3OgILvkaarIVom8TxUZlVZRv0ePNzfuvTUvIkQ5U/2e5jxMyjPacO+vN4b32Uy7t zD+SuQUwnK6pKZH/dkmI9ysZQUaHD67RzYj1fBJ+aFKq2SUBaa8+lfjRS7mEUERUrVFm rxZcBAm1VZtSFWQnWmxcxfXp3uu/ROiIMbSYGa00B0BdSv1qoZLmiEUcVGYRPg8Ijmgi Salw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ztgPqq49kics+10J7Iq/tHqvzOz/l1zYeaPIluiheAY=; b=GiEnOnXapAAaT1agN+x8fEFstWcMy3g80ADOCLvJ8ZRD2cnXmixtNW/HTh4BdUWEcO LwgCFjErwWN58N1NFr1C66TuoC2K/WatD8sqk/kk4ga+T5cr+RUUJ1bhgWd6mz0f8hJm Mxlpgs38zIhHwzjCq4SjHoXwZiIld8VaaG94QXQUkYTpkitDi/X2yjpjcPONy7QAfGdW PVVtJQj3Rzqla638ZU0gSEQNSlyq8Gupw7x+fhxU6eZTTXazbW6O6tU578AekxPFuMwp fB+EM88IfIkBiSVRigbJCmKf2IaqGLxCzxbmtiXHc2aJGzGvUnWRGmFFizrZFMXLiyan 15OA== X-Gm-Message-State: AO0yUKV20F+Nbz5J/qR0/Uc6vAQDIb3tx3JnlQ0SdGjar/KXJeger4Ah ACO1Ylaw/UcudQegxqUqO0ZGR5O0ScdBZkthkHeSYA== X-Google-Smtp-Source: AK7set97SBchwfAt2mQ5Pa0Jk4z/FEUQ0ddnWcg3TRLhAKfq3e0XB0T4LNgs8eJv7YhVavl5KF1Olw== X-Received: by 2002:a05:600c:a694:b0:3e0:1ab:cf2a with SMTP id ip20-20020a05600ca69400b003e001abcf2amr2518110wmb.39.1676390730708; Tue, 14 Feb 2023 08:05:30 -0800 (PST) Received: from vdi08.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id bg30-20020a05600c3c9e00b003db012d49b7sm4435537wmb.2.2023.02.14.08.05.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Feb 2023 08:05:30 -0800 (PST) From: Matthieu Baerts Date: Tue, 14 Feb 2023 17:05:09 +0100 Subject: [PATCH 6.1 3/4] mptcp: fix locking for in-kernel listener creation Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230214-upstream-stable-20230214-linux-6-1-12-rc1-mptcp-fixes-v1-3-02f36fa30f8c@tessares.net> References: <20230214-upstream-stable-20230214-linux-6-1-12-rc1-mptcp-fixes-v1-0-02f36fa30f8c@tessares.net> In-Reply-To: <20230214-upstream-stable-20230214-linux-6-1-12-rc1-mptcp-fixes-v1-0-02f36fa30f8c@tessares.net> To: Greg Kroah-Hartman , Sasha Levin Cc: Paolo Abeni , stable@vger.kernel.org, mptcp@lists.linux.dev, Matthieu Baerts , "David S. Miller" X-Mailer: b4 0.12.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=2466; i=matthieu.baerts@tessares.net; h=from:subject:message-id; bh=W9RojX+R6gjvnbN8dvG5/529W0G43bBErUBVhqiK4cM=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBj67FH3r03V7VmECAPwCkQ2W6wbeNZLwoDi1xCh jUSL8IA9BCJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCY+uxRwAKCRD2t4JPQmmg cw6yEAC7vBfoU0ermaqP/7ijCgfqohK8967sRqGJzLMztYBDS78Ivp+sP9vWHCfDV3HcY2zwotL iOtdr9yVsDS/eBnqzUDLAkZm+lj65AjybktByWHnl1wFzevz7njKh9Lv1jb7zvZ6ZX5E16zQHX2 +gxtZBqAdeAZueVqzTKrP6vcbXflFVp4vyN5ox0zsFMwFNJXyx1Q/AcjkmOlf+UKx+z/O/cjSvW 9xK8JYLmh23rOxT4rXfzLh6gC+ImEfpkWFm9Xv6/z7d0aDuEN6PM8WfR15bQgsLiLm78qv2VP/l fYc0UjNRvCeaaYAkc09xNh9ZT3OIQhjPsh/vs44LiSc53Ti3iT4sb/Sd9K03rPaN4QUfItsa8rD BH0WJTd9pmyu83liqjhQqkMJTDYjnDFNTnpGqa9ieLjwaQSmTPjatWcrw+Ga107WzJIGvOOLxNj uU2KzcMdnkQZmWQX8FMeZAP2p713ZW9D7u0UZUAIa6Cm9blC3UzPGfkZzWUmGxnHJTL0YnfNSIi +tPiie+F+7Fde4zaQd/ETC/kgAyZsafbImRfFLkreMeNS9GJGoXvMnxoWLi+pVb6OmAcuOMXyZ8 sA4zqEkiRFzWT/hmBGBGkDQ8ZmqcAH0mWbpxT9q6CP2ebfVTpaUS4SIfDQJ0N8YaELJhbpbFp30 Y81+FfXvGYRC5lQ== X-Developer-Key: i=matthieu.baerts@tessares.net; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 From: Paolo Abeni [ Upstream commit ad2171009d968104ccda9dc517f5a3ba891515db ] For consistency, in mptcp_pm_nl_create_listen_socket(), we need to call the __mptcp_nmpc_socket() under the msk socket lock. Note that as a side effect, mptcp_subflow_create_socket() needs a 'nested' lockdep annotation, as it will acquire the subflow (kernel) socket lock under the in-kernel listener msk socket lock. The current lack of locking is almost harmless, because the relevant socket is not exposed to the user space, but in future we will add more complexity to the mentioned helper, let's play safe. Fixes: 1729cf186d8a ("mptcp: create the listening socket for new port") Cc: stable@vger.kernel.org Signed-off-by: Paolo Abeni Reviewed-by: Matthieu Baerts Signed-off-by: Matthieu Baerts Signed-off-by: David S. Miller Signed-off-by: Matthieu Baerts --- net/mptcp/pm_netlink.c | 10 ++++++---- net/mptcp/subflow.c | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c index 9813ed0fde9b..15253afc3fff 100644 --- a/net/mptcp/pm_netlink.c +++ b/net/mptcp/pm_netlink.c @@ -992,8 +992,8 @@ static int mptcp_pm_nl_create_listen_socket(struct sock= *sk, { int addrlen =3D sizeof(struct sockaddr_in); struct sockaddr_storage addr; - struct mptcp_sock *msk; struct socket *ssock; + struct sock *newsk; int backlog =3D 1024; int err; =20 @@ -1002,13 +1002,15 @@ static int mptcp_pm_nl_create_listen_socket(struct = sock *sk, if (err) return err; =20 - msk =3D mptcp_sk(entry->lsk->sk); - if (!msk) { + newsk =3D entry->lsk->sk; + if (!newsk) { err =3D -EINVAL; goto out; } =20 - ssock =3D __mptcp_nmpc_socket(msk); + lock_sock(newsk); + ssock =3D __mptcp_nmpc_socket(mptcp_sk(newsk)); + release_sock(newsk); if (!ssock) { err =3D -EINVAL; goto out; diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c index 929b0ee8b3d5..c4971bc42f60 100644 --- a/net/mptcp/subflow.c +++ b/net/mptcp/subflow.c @@ -1631,7 +1631,7 @@ int mptcp_subflow_create_socket(struct sock *sk, unsi= gned short family, if (err) return err; =20 - lock_sock(sf->sk); + lock_sock_nested(sf->sk, SINGLE_DEPTH_NESTING); =20 /* the newly created socket has to be in the same cgroup as its parent */ mptcp_attach_cgroup(sk, sf->sk); --=20 2.38.1 From nobody Thu Apr 25 18:15:07 2024 Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AA029C0B7 for ; Tue, 14 Feb 2023 16:05:33 +0000 (UTC) Received: by mail-wm1-f44.google.com with SMTP id o36so11322514wms.1 for ; Tue, 14 Feb 2023 08:05:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=koohUOzc3rjrd3gVo0FWEGT8TyvX1unyQ4Ov4ky2KxY=; b=ezar0RbmXvGadURMmsgoHqS5UwCpOY4/xRvW9tk4MUUE6qnooytNWC1Q4jjOa3Pmwi eJDcWj2/IQJXO1bJOLjkoW5wFOVsuMe4ekd2ZyUr/wsai2Lb8Y/xQfcALH2qP6BySKKV NmMnJOcC0Qvt56vU3ZwQW8nmNHN88lFb5My0CHi2jFRn80KY8H0o/PE4S8lt9YIFXwLg nBZtkiBa0g+PB0r+nw7kH1HjZB3vcdDyMWwH//fGjDe7jnbYk+Kr/vxpCzTZUAxkELCE 0K+OtGfvL/PuHEkYzTBcSYM54uZTGgXQM/pOwdpftVpC6gE/G8/TIG3S6d/xo3LP9aj9 wOqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=koohUOzc3rjrd3gVo0FWEGT8TyvX1unyQ4Ov4ky2KxY=; b=iAUBDiUXzP4/qiqXTXxZFFY36QWAddScrg8QA5xLDM3dSBiyMMJXtCZGZcXr9DzN93 FAGOcesoD5vv4Wu3EFo2rvYMkk/+Brq8Qvndo2QvdT5YcceCA2dbvi7rW8LHnFXObDwk QkDhjf+YOV+fat8OHs0vrOwT/67wEWYxoZYE0+qHCqwybP8Z/UbI4CvnYm+pV+o0fXHI LybqlgEGQWazmhyAgsg4TJxxAFX1L3DZMZpOwvQRffwK/3Vx081Z6j1zsAcBDcMRNOI+ j5ajbAz+vt73MEOucOW/qpY2OpAioJh33ajfycvF/cfDXzljCjcXJaTTnFEOPML7QSEv h2xQ== X-Gm-Message-State: AO0yUKVrbAlLAGP8hqfyP5gumE7PgybIyb6hpTLkcZJwzHtZ8kUBPVFg Yg4ilPpkbuAns9R5+AUB44LIV7i1/0JA6azm6rjkbw== X-Google-Smtp-Source: AK7set9Av7L6grWHige91KlE2d/GnFM04OOwqDW8qWWoB91apgCCJeh4yyq/B8Ly9x+X+KF13pc2SA== X-Received: by 2002:a05:600c:1893:b0:3dc:4cb5:41c with SMTP id x19-20020a05600c189300b003dc4cb5041cmr2343832wmp.0.1676390731757; Tue, 14 Feb 2023 08:05:31 -0800 (PST) Received: from vdi08.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id bg30-20020a05600c3c9e00b003db012d49b7sm4435537wmb.2.2023.02.14.08.05.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Feb 2023 08:05:31 -0800 (PST) From: Matthieu Baerts Date: Tue, 14 Feb 2023 17:05:10 +0100 Subject: [PATCH 6.1 4/4] selftests: mptcp: userspace: fix v4-v6 test in v6.1 Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20230214-upstream-stable-20230214-linux-6-1-12-rc1-mptcp-fixes-v1-4-02f36fa30f8c@tessares.net> References: <20230214-upstream-stable-20230214-linux-6-1-12-rc1-mptcp-fixes-v1-0-02f36fa30f8c@tessares.net> In-Reply-To: <20230214-upstream-stable-20230214-linux-6-1-12-rc1-mptcp-fixes-v1-0-02f36fa30f8c@tessares.net> To: Greg Kroah-Hartman , Sasha Levin Cc: Paolo Abeni , stable@vger.kernel.org, mptcp@lists.linux.dev, Matthieu Baerts X-Mailer: b4 0.12.1 X-Developer-Signature: v=1; a=openpgp-sha256; l=2149; i=matthieu.baerts@tessares.net; h=from:subject:message-id; bh=SmWA3FfTQrdAQe5yh2fWIfTfIMgI4aRmQCw9PfjZtg8=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBj67FHtzAQM2XHOno/T9eG7WW2rME9eHlHJv9JW jorwRbL/NeJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCY+uxRwAKCRD2t4JPQmmg c6SfD/9t1cdsl3PoFAZAjnJGng3cDWJx1rnsIJyQE55YF0cdFCSYuxv3XGgyVVBGs78+FUqpS0n mVck4LqsDy4i5LFDKzjMCkzph0kewhA0V3CfcQO5iG2nvyaanXqDGoAhqNI+chU5uTLrF6Ax6k6 hzKqBYAImEECjiwyrOSfhhOc/JxqmRZjn/kkQwI5eQah0IuCAfgAJczFgt5KNEkOrlQc5d9tUeQ G+vhz6meBV8/poBpby3+yuY0amgzGuvgWbkJhgTbMXYWgGcECFJVwehoSBo5NPOoeQGsNbM6pud VkqTb/wp5ss7ai+RPn2QwC/O5y0TW2/7ceBAR1C5MBpiS0S3K2DzBqbs7CP8CsgyqItRDI7yjkC VMEIuoFKssTflZN6xQZUeSWVNSvbzbRh3dHckGIxBnccDK7BwNtL6WukRSnknIv3CjAYFmdZ524 ZXFDWfQFxz+egzx7tMAyZy23iXV7XumrMzG7puTSngpPGT3BuYSxdBJ0gwkvBbrbbdhpvoCTfu3 Q7kJsFblUcC7QzscFCu1KEprt10PjH30N8/Zu6902I7eYyEF84Y7p0A1Otj75pZrRAUsYEBHybE UfBv/TZm+uVu/i1SpNjAmbTiawsnc2rUPuIdZWcy0wzUtvNbAsisl40lxmIk+s0IhGiCU5DWoPY FwNN7N8T972HqSw== X-Developer-Key: i=matthieu.baerts@tessares.net; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 The commit 4656d72c1efa ("selftests: mptcp: userspace: validate v4-v6 subfl= ows mix") has been backported to v6.1.8 without any conflicts. But it looks like it was depending on a previous one: commit 1cc94ac1af4b ("selftests: mptcp: make evts global in userspace_pm") Without it, the test fails with: ./userspace_pm.sh: line 788: : No such file or directory # ADD_ADDR4 id:14 10.0.2.1 (ns1) =3D> ns2, reuse port [FAIL] sed: can't read : No such file or directory This dependence refactors the way the monitoring files are being created: only once for all the different sub-tests instead of per sub-test. It is probably better to avoid backporting the refactoring. That is why the new sub-test has been adapted to work using the previous way that is still in place here in v6.1: the monitoring is started at the beginning of each sub-test and the created file is removed at the end. Fixes: f59549814a64 ("selftests: mptcp: userspace: validate v4-v6 subflows = mix") Signed-off-by: Matthieu Baerts --- tools/testing/selftests/net/mptcp/userspace_pm.sh | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tools/testing/selftests/net/mptcp/userspace_pm.sh b/tools/test= ing/selftests/net/mptcp/userspace_pm.sh index 0040e3bc7b16..ad6547c79b83 100755 --- a/tools/testing/selftests/net/mptcp/userspace_pm.sh +++ b/tools/testing/selftests/net/mptcp/userspace_pm.sh @@ -778,6 +778,14 @@ test_subflows() =20 test_subflows_v4_v6_mix() { + local client_evts + client_evts=3D$(mktemp) + # Capture events on the network namespace running the client + :>"$client_evts" + ip netns exec "$ns2" ./pm_nl_ctl events >> "$client_evts" 2>&1 & + evts_pid=3D$! + sleep 0.5 + # Attempt to add a listener at 10.0.2.1: ip netns exec "$ns1" ./pm_nl_ctl listen 10.0.2.1\ $app6_port > /dev/null 2>&1 & @@ -820,6 +828,9 @@ test_subflows_v4_v6_mix() ip netns exec "$ns1" ./pm_nl_ctl rem id $server_addr_id token\ "$server6_token" > /dev/null 2>&1 sleep 0.5 + + kill_wait $evts_pid + rm -f "$client_evts" } =20 test_prio() --=20 2.38.1