Received: by 2002:a05:6a10:17d3:0:0:0:0 with SMTP id hz19csp2559025pxb; Mon, 19 Apr 2021 08:24:37 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxFRrEv9NHxxgrr7HRXW8YyORDEVDW1LejQej1FLK4jp9QlSmFxQnrkF2yC4oY+gI7VLCI4 X-Received: by 2002:a17:906:c099:: with SMTP id f25mr10015324ejz.499.1618845877235; Mon, 19 Apr 2021 08:24:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1618845877; cv=none; d=google.com; s=arc-20160816; b=HQLn1d1KL0NWi9eB6IxNFHR9SHJ6uhvezAOeNB+IsKnLueNtw6QuQj4q02jE+OSt5u wUE9w/4zaM03tAHFgClt/2+GodEC6nnNOUU/XsGHibnNeTc/bjoKcsgElisNv683qPSP VOe9zSHiJ9OdCJHHG169Vt/vjZCm0wSR3WpDZZXYX7d+y7vyigkvNUjEPiz1XaaUJro3 l7X5yISKYVLAeeFHqdhL7RYD/Ai4IPR6GOYuN2+hsAvOmzuVwkKEBikR0s99q6RlhHJe CqTD4TL8uhCNaUfKGR24ke6BEiYeeO3wve2TzJL3fKSnugz9HG2bXw3yr5Pu9lK9c4Rp OTTA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=8onETF8p6djsIsNXfm6cCyxQSWJSPB9MgOEfmtfpubk=; b=d1UZDAaChgTbZniWwAwGmLU+U5JtYynPQcM00uCvXASAdYdLY9xrZzGO2MSpR86jw8 W+jgbR3jPSLMyJc5kcJLPv6pKMN6YB6K5OsQhI8KRfR4eaEQBvRXl8p07X7P0eU4NYU+ 7DCyS1RHwuSMTVXNrTwDnygXF8XaqQW/vf6Jxi5nftSP6UtBLA7FDhYg/Ae7cxh3c9H8 9vy9GxIUssCUxBKwLeOsRYijkgVFhXJPeCsYV/EOUtWU7P6CZKgtCEkpGb3GHnI3j7bq 7RYP9yh3Hbhw4U5uknymFXvvAG1oAUKgf6pc4wv4MFzt52kSdsdqg5rz475gKW2IIhfo 71QQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=FM0ubMGb; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id u12si12965390eda.121.2021.04.19.08.24.13; Mon, 19 Apr 2021 08:24:37 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=FM0ubMGb; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240508AbhDSNQ2 (ORCPT + 99 others); Mon, 19 Apr 2021 09:16:28 -0400 Received: from mail.kernel.org ([198.145.29.99]:46768 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240281AbhDSNNc (ORCPT ); Mon, 19 Apr 2021 09:13:32 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 6B2FA613AE; Mon, 19 Apr 2021 13:12:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1618837940; bh=imUZ3C9Sftcex1J+MERKEd8JzO2ZbcZ53DzjncOKK1Q=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FM0ubMGbONMklHh/lZdV071yOj0IbFScLzvvzBjhURQOV7SpR/WFEGhdqPODsR6PQ wVqRcvVJPvLFdASWDDaQvZdZdCITt+fzvqsXoBd4U+rObLOGTfiGMcHvHaYGRjfTlr UKkZSsR5f9RQTP+fdH3pIZhTRjYP7cbw6X2sr9RQ= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Vinay Kumar Yadav , Rohit Maheshwari , "David S. Miller" Subject: [PATCH 5.11 101/122] ch_ktls: do not send snd_una update to TCB in middle Date: Mon, 19 Apr 2021 15:06:21 +0200 Message-Id: <20210419130533.585677055@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210419130530.166331793@linuxfoundation.org> References: <20210419130530.166331793@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Vinay Kumar Yadav commit e8a4155567b3c903f49cbf89b8017e9cc22c4fe4 upstream. snd_una update should not be done when the same skb is being sent out.chcr_short_record_handler() sends it again even though SND_UNA update is already sent for the skb in chcr_ktls_xmit(), which causes mismatch in un-acked TCP seq number, later causes problem in sending out complete record. Fixes: 429765a149f1 ("chcr: handle partial end part of a record") Signed-off-by: Vinay Kumar Yadav Signed-off-by: Rohit Maheshwari Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- drivers/net/ethernet/chelsio/inline_crypto/ch_ktls/chcr_ktls.c | 53 ---------- 1 file changed, 53 deletions(-) --- a/drivers/net/ethernet/chelsio/inline_crypto/ch_ktls/chcr_ktls.c +++ b/drivers/net/ethernet/chelsio/inline_crypto/ch_ktls/chcr_ktls.c @@ -1650,54 +1650,6 @@ static void chcr_ktls_copy_record_in_skb } /* - * chcr_ktls_update_snd_una: Reset the SEND_UNA. It will be done to avoid - * sending the same segment again. It will discard the segment which is before - * the current tx max. - * @tx_info - driver specific tls info. - * @q - TX queue. - * return: NET_TX_OK/NET_XMIT_DROP. - */ -static int chcr_ktls_update_snd_una(struct chcr_ktls_info *tx_info, - struct sge_eth_txq *q) -{ - struct fw_ulptx_wr *wr; - unsigned int ndesc; - int credits; - void *pos; - u32 len; - - len = sizeof(*wr) + roundup(CHCR_SET_TCB_FIELD_LEN, 16); - ndesc = DIV_ROUND_UP(len, 64); - - credits = chcr_txq_avail(&q->q) - ndesc; - if (unlikely(credits < 0)) { - chcr_eth_txq_stop(q); - return NETDEV_TX_BUSY; - } - - pos = &q->q.desc[q->q.pidx]; - - wr = pos; - /* ULPTX wr */ - wr->op_to_compl = htonl(FW_WR_OP_V(FW_ULPTX_WR)); - wr->cookie = 0; - /* fill len in wr field */ - wr->flowid_len16 = htonl(FW_WR_LEN16_V(DIV_ROUND_UP(len, 16))); - - pos += sizeof(*wr); - - pos = chcr_write_cpl_set_tcb_ulp(tx_info, q, tx_info->tid, pos, - TCB_SND_UNA_RAW_W, - TCB_SND_UNA_RAW_V(TCB_SND_UNA_RAW_M), - TCB_SND_UNA_RAW_V(0), 0); - - chcr_txq_advance(&q->q, ndesc); - cxgb4_ring_tx_db(tx_info->adap, &q->q, ndesc); - - return 0; -} - -/* * chcr_end_part_handler: This handler will handle the record which * is complete or if record's end part is received. T6 adapter has a issue that * it can't send out TAG with partial record so if its an end part then we have @@ -1897,11 +1849,6 @@ static int chcr_short_record_handler(str /* reset tcp_seq as per the prior_data_required len */ tcp_seq -= prior_data_len; } - /* reset snd una, so the middle record won't send the already - * sent part. - */ - if (chcr_ktls_update_snd_una(tx_info, q)) - goto out; atomic64_inc(&tx_info->adap->ch_ktls_stats.ktls_tx_middle_pkts); } else { atomic64_inc(&tx_info->adap->ch_ktls_stats.ktls_tx_start_pkts);