From nobody Thu Sep 18 08:15:36 2025 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:869:b0:4b8:7781:bd2f with SMTP id d41csp549136pis; Wed, 18 May 2022 15:04:56 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyDXkLhAH6ZhHxusgoul5cwtCPadwSQoeqJXthMd5e93LgQcyMYVXBuq6j5GBKb5Do6MRBL X-Received: by 2002:a05:6808:10d2:b0:326:cd01:472c with SMTP id s18-20020a05680810d200b00326cd01472cmr1013140ois.170.1652911496029; Wed, 18 May 2022 15:04:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1652911496; cv=none; d=google.com; s=arc-20160816; b=sqBIalQlwqBDQFhvK4xohRrCXU1hnTKoDVpJaZUZm1unjgyZoZsTaq0u8wkrT2FXf3 3NFiuIss1F2TKX50V4EMnkO89lZ8AUOdVj1FvdzZBFP7nhPJxD2dChXDnBiiGYsYz3UM e9T8LQ5pFhzLrGdUQiy4PwLebp9igVyRPdq2bSCTrwvq99pfSP3qBkGjhhywFayXiPN3 gtiHmcY21qSllShHPVwioXxi/hG9VO+EtFAhwWpuPqbBYSz34dfOLMj0AfOOr0ecHd5S eZFlmHsNBqlXhg4vNwGq0/aXKQD7ihoNYF9lkLpbyp7tTBHxaEb0Gbd9dARK7zp1TQJN JJEg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=9bNbbiHy2RUPQuyWSU9YGZ2CLid+lrAjou8ZZ2IEur8=; b=aGz/aW3rZM2597pYe4wpDx0knHQwN/CTwD9PgwjU0dy+xRRspmG71pGdqVyuNVS9y3 OyJjr/0fRgJxBfkGxLXCEJ35nGyLxVFlFSypbOHTg6pCtfOJDcSf9uFGauQ2UpCdgNF1 ET8znBHpR1pJKZ46rFAdxFEpFbb6PHX9XBB8B+P/nfgQv18r1aE1iuKVprf9Ox+yoZiW 0jBvTXn7OYuJnuY/7Mvjqo0UPwk2vVaPcV6lPVGYqzMErXpV+GYvDk73D+td/iz5oUNx cWM/2JkbP8Lenffwrolrc8OO3LTt5wCuGHIL7W0YvkMKX1wfoaZQ5fOyLgTwIJboVCRs H0gg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=nshZX9Ir; spf=pass (google.com: domain of mptcp+bounces-5374-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:4040:4f00::1 as permitted sender) smtp.mailfrom="mptcp+bounces-5374-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from da.mirrors.kernel.org (da.mirrors.kernel.org. [2604:1380:4040:4f00::1]) by mx.google.com with ESMTPS id h23-20020a056830401700b006054e86efd4si3455687ots.317.2022.05.18.15.04.55 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 18 May 2022 15:04:56 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-5374-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:4040:4f00::1 as permitted sender) client-ip=2604:1380:4040:4f00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=nshZX9Ir; spf=pass (google.com: domain of mptcp+bounces-5374-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:4040:4f00::1 as permitted sender) smtp.mailfrom="mptcp+bounces-5374-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by da.mirrors.kernel.org (Postfix) with ESMTPS id CA51F2E09C7 for ; Wed, 18 May 2022 22:04:55 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 5A5A533C3; Wed, 18 May 2022 22:04:54 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1267D2F5D for ; Wed, 18 May 2022 22:04:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1652911493; x=1684447493; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=XhH0wmTxQ1KVSwFHJOHPbb9tf9TWh9PPcfw1KfcbbPI=; b=nshZX9Iry91Z0Tc7XyKL0hM1zxwuCJQ22Z5cxG+qzn7W1t645VSkc8ep 5JJtaIW3nWDqmg84uYzzHu0Pl/86IRgqyfTuS2mnB0N0LFlHE/+79dvEE w4yJL2M+qbXFA10gEX7kPDAJulAg0V5hagx8aKqXqG8D9kRJJWJhhz/46 6ScQdDt0wVcaTtrGDpXftlRuBv8Ea2cztILR0tH9thqdNhsT4zkazyTDj TjjcbXCPhgsJBosMcDnN05VnZnstfDjHoIjJyM5dDi4RPQQzT0tzZ0GOy IwzAUkkpwWqJxdXfefwTokwRKeFdBQfMRNH2D86e9YGCC1UReN1cQK9r1 w==; X-IronPort-AV: E=McAfee;i="6400,9594,10351"; a="271865360" X-IronPort-AV: E=Sophos;i="5.91,235,1647327600"; d="scan'208";a="271865360" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 May 2022 15:04:51 -0700 X-IronPort-AV: E=Sophos;i="5.91,235,1647327600"; d="scan'208";a="598075435" Received: from mjmartin-desk2.amr.corp.intel.com (HELO mjmartin-desk2.intel.com) ([10.209.36.18]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 May 2022 15:04:51 -0700 From: Mat Martineau To: netdev@vger.kernel.org Cc: Paolo Abeni , davem@davemloft.net, kuba@kernel.org, edumazet@google.com, matthieu.baerts@tessares.net, mptcp@lists.linux.dev, Geliang Tang , Mat Martineau Subject: [PATCH net-next 1/4] mptcp: stop using the mptcp_has_another_subflow() helper Date: Wed, 18 May 2022 15:04:43 -0700 Message-Id: <20220518220446.209750-2-mathew.j.martineau@linux.intel.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220518220446.209750-1-mathew.j.martineau@linux.intel.com> References: <20220518220446.209750-1-mathew.j.martineau@linux.intel.com> Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Paolo Abeni The mentioned helper requires the msk socket lock, and the current callers don't own it nor can't acquire it, so the access is racy. All the current callers are really checking for infinite mapping fallback, and the latter condition is explicitly tracked by the relevant msk variable: we can safely remove the caller usage - and the caller itself. The issue is present since MP_FAIL implementation, but the fix only applies since the infinite fallback support, ence the somewhat unexpected fixes tag. Fixes: 0530020a7c8f ("mptcp: track and update contiguous data status") Acked-and-tested-by: Geliang Tang Signed-off-by: Paolo Abeni Signed-off-by: Mat Martineau --- net/mptcp/pm.c | 2 +- net/mptcp/protocol.h | 13 ------------- net/mptcp/subflow.c | 3 +-- 3 files changed, 2 insertions(+), 16 deletions(-) diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c index cdc2d79071f8..a3f9bf8e8912 100644 --- a/net/mptcp/pm.c +++ b/net/mptcp/pm.c @@ -304,7 +304,7 @@ void mptcp_pm_mp_fail_received(struct sock *sk, u64 fai= l_seq) =20 pr_debug("fail_seq=3D%llu", fail_seq); =20 - if (mptcp_has_another_subflow(sk) || !READ_ONCE(msk->allow_infinite_fallb= ack)) + if (!READ_ONCE(msk->allow_infinite_fallback)) return; =20 if (!READ_ONCE(subflow->mp_fail_response_expect)) { diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index 4672901d0dfe..91f7ef6e6c56 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -649,19 +649,6 @@ static inline void mptcp_subflow_tcp_fallback(struct s= ock *sk, inet_csk(sk)->icsk_af_ops =3D ctx->icsk_af_ops; } =20 -static inline bool mptcp_has_another_subflow(struct sock *ssk) -{ - struct mptcp_subflow_context *subflow =3D mptcp_subflow_ctx(ssk), *tmp; - struct mptcp_sock *msk =3D mptcp_sk(subflow->conn); - - mptcp_for_each_subflow(msk, tmp) { - if (tmp !=3D subflow) - return true; - } - - return false; -} - void __init mptcp_proto_init(void); #if IS_ENABLED(CONFIG_MPTCP_IPV6) int __init mptcp_proto_v6_init(void); diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c index 6d59336a8e1e..1e07b4d7ee7b 100644 --- a/net/mptcp/subflow.c +++ b/net/mptcp/subflow.c @@ -1218,8 +1218,7 @@ static bool subflow_check_data_avail(struct sock *ssk) if (!__mptcp_check_fallback(msk)) { /* RFC 8684 section 3.7. */ if (subflow->send_mp_fail) { - if (mptcp_has_another_subflow(ssk) || - !READ_ONCE(msk->allow_infinite_fallback)) { + if (!READ_ONCE(msk->allow_infinite_fallback)) { ssk->sk_err =3D EBADMSG; tcp_set_state(ssk, TCP_CLOSE); subflow->reset_transient =3D 0; --=20 2.36.1