From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 90F30317167; Wed, 11 Mar 2026 00:20:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773188400; cv=none; b=LUDgE+gxk6E3CtSmZcR37qZtF6xTvxFVFqGneHWTpfWIIlSwR399T8AEiOlzUdfK38tq+s64sJt0l68DfMfZpZB/h7+b4W9R1Sj8/eCL5Z8aRNasKdSKRm3ObBE5GUoNilfHHdPfv+hEPov7K6Xbfdtnvdfbl0kFUWZ3irS7xsU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773188400; c=relaxed/simple; bh=b02zkt4NUR9l+CTwQ1oDADehl+q6118Aw00vCjrG7SM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=OCfJyNNhsJOSjsegYesO6/ESW2WFuJboQ5cgEpN6GOdjNweMLxTYguoIn0Yi9pAlXC7fGnFp4nAoyGun46Tkmo9LUBkZrYn7R5Yd9x06r4DURqoSL4PeNlXL4LccUEbiZOdeNY8kpjWVpsygXWB3cYNEnYxXQlzdfZ32ziP0XEM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=EJTsF34G; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="EJTsF34G" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BC62AC2BC87; Wed, 11 Mar 2026 00:19:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1773188400; bh=b02zkt4NUR9l+CTwQ1oDADehl+q6118Aw00vCjrG7SM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=EJTsF34GbZr7TMIz7WV9Vhb7cHJma8psjxNX2S2YTOg0I2/gtu5ETGraO9jH5pI0s YgdddnLZCm0fgLq/ZXvQBa4arX5HkoMdGdmrYFvfEYOZ6Hn3fXIxcxYAqv7H/07GJr XyOynShl/SmvHoJh0XbwJ63oXKPKVci+Zjyii2skO4d0oaFpv+43eS45hIzC1qMSGP sN5DjAK9lAxSxZsSoMxp8RE+srcgHj0e7UpAU2B1jmRBB3nCqIGDTCfzvDrWKDAgAI WBdgSSbhZnGkK8R8+2EOUfScnNYy84o9vHv7hE6mzSD6rRbmqLqgbTxBxxXuEP9Uo9 KzXdRqZYq395Q== From: Chuck Lever To: john.fastabend@gmail.com, kuba@kernel.org, sd@queasysnail.net Cc: netdev@vger.kernel.org, kernel-tls-handshake@lists.linux.dev, Chuck Lever Subject: [PATCH v2 1/8] tls: Factor tls_decrypt_async_drain() from recvmsg Date: Tue, 10 Mar 2026 20:19:45 -0400 Message-ID: <20260311001952.57059-2-cel@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260311001952.57059-1-cel@kernel.org> References: <20260311001952.57059-1-cel@kernel.org> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Chuck Lever The recvmsg path pairs tls_decrypt_async_wait() with __skb_queue_purge(&ctx->async_hold). Bundling the two into tls_decrypt_async_drain() gives later patches a single call for async teardown. Signed-off-by: Chuck Lever --- net/tls/tls_sw.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/net/tls/tls_sw.c b/net/tls/tls_sw.c index a656ce235758..cedcc82669db 100644 --- a/net/tls/tls_sw.c +++ b/net/tls/tls_sw.c @@ -249,6 +249,18 @@ static int tls_decrypt_async_wait(struct tls_sw_context_rx *ctx) return ctx->async_wait.err; } +/* Collect all pending async AEAD completions and release the + * skbs held for them. Returns the crypto error if any + * operation failed, zero otherwise. + */ +static int tls_decrypt_async_drain(struct tls_sw_context_rx *ctx) +{ + int ret = tls_decrypt_async_wait(ctx); + + __skb_queue_purge(&ctx->async_hold); + return ret; +} + static int tls_do_decryption(struct sock *sk, struct scatterlist *sgin, struct scatterlist *sgout, @@ -2223,8 +2235,7 @@ int tls_sw_recvmsg(struct sock *sk, int ret; /* Wait for all previously submitted records to be decrypted */ - ret = tls_decrypt_async_wait(ctx); - __skb_queue_purge(&ctx->async_hold); + ret = tls_decrypt_async_drain(ctx); if (ret) { if (err >= 0 || err == -EINPROGRESS) -- 2.53.0