From nobody Thu Sep 18 08:14:49 2025 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ab0:35eb:0:0:0:0:0 with SMTP id w11csp2725059uau; Tue, 28 Jun 2022 12:04:22 -0700 (PDT) X-Google-Smtp-Source: AGRyM1vf8bhZnlxMHAMngvYOhHSZBZQb9EykUh5SQdU1GX+UItBKm8ubD0Wm9tzD7tvuPMmSqwBs X-Received: by 2002:a63:4a4e:0:b0:401:baa6:d695 with SMTP id j14-20020a634a4e000000b00401baa6d695mr19764144pgl.259.1656443062300; Tue, 28 Jun 2022 12:04:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1656443062; cv=none; d=google.com; s=arc-20160816; b=JVbkgbkwDfGzC334xZKkk7HUfIxmZos67PxBuo56ZmVqk/AHQ6RW8ZtXKDRNUAzqu7 9Ov4HLAymhErVuKwySKU1usGEBymHz2qqkjp0ZJoqg8GzVIze8bIl13H4RCitE7TUArE o7RHLsboGDVRsMFR3xJFdnbUTp3TNwHcxhelJLS+BqPDyUvHEEjRDmGBcqxVFvEo1VSK gBoIpoIu8bsglSaQInexENkg48W5KauS/fcrkSVCEXrM6E68j7ovkyGfQv6ntX0eCXkj JfAap84r16GVoB4mR9omWXJYmOawHkcKOGX7fW91QspAyOzQ1/mEuuUBgL3uLYgH+0H8 XrNQ== 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=dG888aR6ZbB5jyxUnmEtsfcFKxrcl17BHx7TZQJHOSg=; b=KXQ26zUH3xqpE/VhMEDyo65PG8jWrJYWfzvVTuryxMRxJceHjI/u50VkLP1RSsPWG6 Yfte6ivC6m14jp2xNEu3zAN+NawWPwDg1SrQ+ytYBxW4QX4tqDercE4ZYjeKVm61nR6j EEqtzELlg1dcFqLwVlroOyM61V+u6NCpak4eW2WTnw+oIjQo8MfBHbE+jFj7ECh9UTsf 9MivlqomrdYEssYsESids38m1MK4Wgw5gn6YX1iCtCFswdMEB2ZJAoxT+kpBjkml+H9r kQthybDIPVvIjYtDvvV33CT6Lkg8sFPoXN4xbcVnXB/X6Sm7K861ZIGjplFz6chT3WFQ 3RMQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=KLuT14xg; spf=pass (google.com: domain of mptcp+bounces-5866-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) smtp.mailfrom="mptcp+bounces-5866-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id ot7-20020a17090b3b4700b001ead1c2f859si534785pjb.187.2022.06.28.12.04.22 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 28 Jun 2022 12:04:22 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-5866-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=KLuT14xg; spf=pass (google.com: domain of mptcp+bounces-5866-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) smtp.mailfrom="mptcp+bounces-5866-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 sv.mirrors.kernel.org (Postfix) with ESMTPS id ED5BE280CC4 for ; Tue, 28 Jun 2022 19:04:21 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 5FCBA46BB; Tue, 28 Jun 2022 19:04:20 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) (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 D5B384C75 for ; Tue, 28 Jun 2022 19:04:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1656443058; x=1687979058; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=KLD6tyHtFOIl8tUbSzN0mzIm//0DER4c0z5tbUBNWHM=; b=KLuT14xgpwo/4wHS5bWW33wGdy+J7nXDpLz76JNWb6FvozsrOx4PkLox OUGmk1uCFhyVLPcVHT4Of5zYLhxeYMPcPvzZRKwzMWI8e2fwZ3IBX4hqr UoLAPq0Zt1HuMH94qGX3FXKCwg9QxS56WAeLuPNw0KXFwz/BgwsaZtUwD 7CUherfTbRDROrqiFtkmJS+hLL5F/jwFep4UI8vKWwbCmU4FDXYx+DWmE cqckNJOf5Ye09IQzWK2kBuQY1u1rAS8sighfFEiRpT5ohVuBrWiuLNrHx pazTkB55ELXV+ftEqeo/qYVoypyezoSxr4REaSQQV+b2C4bkkv9ttF+0x A==; X-IronPort-AV: E=McAfee;i="6400,9594,10392"; a="343514647" X-IronPort-AV: E=Sophos;i="5.92,229,1650956400"; d="scan'208";a="343514647" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Jun 2022 12:04:01 -0700 X-IronPort-AV: E=Sophos;i="5.92,229,1650956400"; d="scan'208";a="917294952" Received: from gwbruss-mobl1.amr.corp.intel.com (HELO mjmartin-desk2.intel.com) ([10.209.112.228]) by fmsmga005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Jun 2022 12:04:01 -0700 From: Mat Martineau To: mptcp@lists.linux.dev Cc: Mat Martineau Subject: [PATCH mptcp-net 2/3] mptcp: Add a variant of mptcp_subflow_send_ack() for locked subflows Date: Tue, 28 Jun 2022 12:03:55 -0700 Message-Id: <20220628190356.326233-3-mathew.j.martineau@linux.intel.com> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220628190356.326233-1-mathew.j.martineau@linux.intel.com> References: <20220628190356.326233-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" The existing mptcp_subflow_send_ack() function handles subflow locking, but it's also sometimes necessary to force an ack from a caller that already holds the subflow socket lock. This is required for the following commit. Fixes: 340fa6667a69 ("mptcp: Only send extra TCP acks in eligible socket st= ates") Signed-off-by: Mat Martineau --- net/mptcp/protocol.c | 9 +++++++-- net/mptcp/protocol.h | 1 + 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 3efbae948707..b96a80c8e22a 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -506,13 +506,18 @@ static inline bool tcp_can_send_ack(const struct sock= *ssk) (TCPF_SYN_SENT | TCPF_SYN_RECV | TCPF_TIME_WAIT | TCPF_CLOSE | TCP= F_LISTEN)); } =20 +void __mptcp_subflow_send_ack(struct sock *ssk) +{ + if (tcp_can_send_ack(ssk)) + tcp_send_ack(ssk); +} + void mptcp_subflow_send_ack(struct sock *ssk) { bool slow; =20 slow =3D lock_sock_fast(ssk); - if (tcp_can_send_ack(ssk)) - tcp_send_ack(ssk); + __mptcp_subflow_send_ack(ssk); unlock_sock_fast(ssk, slow); } =20 diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index c14d70c036d0..033c995772dc 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -607,6 +607,7 @@ void __init mptcp_subflow_init(void); void mptcp_subflow_shutdown(struct sock *sk, struct sock *ssk, int how); void mptcp_close_ssk(struct sock *sk, struct sock *ssk, struct mptcp_subflow_context *subflow); +void __mptcp_subflow_send_ack(struct sock *ssk); void mptcp_subflow_send_ack(struct sock *ssk); void mptcp_subflow_reset(struct sock *ssk); void mptcp_subflow_queue_clean(struct sock *ssk); --=20 2.37.0