From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id EF5D3A00C2 for ; Wed, 23 Nov 2022 19:04:57 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9C60C42DBE; Wed, 23 Nov 2022 19:04:57 +0100 (CET) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mails.dpdk.org (Postfix) with ESMTP id 5310042DA3 for ; Wed, 23 Nov 2022 19:04:56 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1669226695; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=jU2BorJJgau9FD+Ba6hZPIBL0a7+wAu9LztWd5OlBmI=; b=U/CQFf6OMPEyMAW8BbHCfvJn8+WvQDVPmcg7tshTWBLELIFnX9fewDyV9V/QrPA2jEr/KP lt8wY4U3piVw2AuOipW5pLBViji2c2WTjjfelh/boNNaoN4sQ6TBbIgGLtmFiD5iCjU5iY +9RyIvXn+2JIwXzlbsSRxyfrZDBRYhA= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-101-NuJIu2tpNHuX5HCl4koCEw-1; Wed, 23 Nov 2022 13:04:54 -0500 X-MC-Unique: NuJIu2tpNHuX5HCl4koCEw-1 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 2063A811E67; Wed, 23 Nov 2022 18:04:53 +0000 (UTC) Received: from rh.Home (unknown [10.39.195.16]) by smtp.corp.redhat.com (Postfix) with ESMTP id 6CB96492B07; Wed, 23 Nov 2022 18:04:52 +0000 (UTC) From: Kevin Traynor To: Mingjin Ye Cc: Qi Zhang , dpdk stable Subject: patch 'net/ice: fix scalar Tx path segment' has been queued to stable release 21.11.3 Date: Wed, 23 Nov 2022 18:03:37 +0000 Message-Id: <20221123180413.733554-24-ktraynor@redhat.com> In-Reply-To: <20221123180413.733554-1-ktraynor@redhat.com> References: <20221123180413.733554-1-ktraynor@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.10 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII"; x-default=true X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Hi, FYI, your patch has been queued to stable release 21.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 11/28/22. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable/commit/1f7763504a9acc4f793b60ceee2c6b101e7c7b1d Thanks. Kevin --- >From 1f7763504a9acc4f793b60ceee2c6b101e7c7b1d Mon Sep 17 00:00:00 2001 From: Mingjin Ye Date: Fri, 11 Nov 2022 16:12:41 +0000 Subject: [PATCH] net/ice: fix scalar Tx path segment [ upstream commit 688cb2f2c61e48552fb9a211fdcfdb754a795b40 ] The scalar Tx path would send empty buffer that causes the Tx queue to overflow. This patch adds the last buffer length judgment in tx_prepare to fix this issue, rte_errno will be set to EINVAL and returned if the last buffer is empty. Fixes: 17c7d0f9d6a4 ("net/ice: support basic Rx/Tx") Fixes: ccf33dccf7aa ("net/ice: check illegal packet sizes") Signed-off-by: Mingjin Ye Acked-by: Qi Zhang --- drivers/net/ice/ice_rxtx.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/drivers/net/ice/ice_rxtx.c b/drivers/net/ice/ice_rxtx.c index b91e6eaad5..ae2701f5e4 100644 --- a/drivers/net/ice/ice_rxtx.c +++ b/drivers/net/ice/ice_rxtx.c @@ -3460,4 +3460,20 @@ ice_set_tx_function_flag(struct rte_eth_dev *dev, struct ice_tx_queue *txq) #define ICE_MAX_TSO_MSS 9728 #define ICE_MAX_TSO_FRAME_SIZE 262144 + +/*Check for empty mbuf*/ +static inline uint16_t +ice_check_empty_mbuf(struct rte_mbuf *tx_pkt) +{ + struct rte_mbuf *txd = tx_pkt; + + while (txd != NULL) { + if (txd->data_len == 0) + return -1; + txd = txd->next; + } + + return 0; +} + uint16_t ice_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts, @@ -3506,4 +3522,10 @@ ice_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts, return i; } + + if (ice_check_empty_mbuf(m) != 0) { + rte_errno = EINVAL; + PMD_DRV_LOG(ERR, "INVALID mbuf: last mbuf data_len=[0]"); + return i; + } } return i; -- 2.38.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2022-11-23 09:55:57.670765585 +0000 +++ 0024-net-ice-fix-scalar-Tx-path-segment.patch 2022-11-23 09:55:57.063149292 +0000 @@ -1 +1 @@ -From 688cb2f2c61e48552fb9a211fdcfdb754a795b40 Mon Sep 17 00:00:00 2001 +From 1f7763504a9acc4f793b60ceee2c6b101e7c7b1d Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 688cb2f2c61e48552fb9a211fdcfdb754a795b40 ] + @@ -15 +16,0 @@ -Cc: stable@dpdk.org @@ -24 +25 @@ -index 3224a02db2..0ea0045836 100644 +index b91e6eaad5..ae2701f5e4 100644 @@ -27 +28 @@ -@@ -3646,4 +3646,20 @@ ice_set_tx_function_flag(struct rte_eth_dev *dev, struct ice_tx_queue *txq) +@@ -3460,4 +3460,20 @@ ice_set_tx_function_flag(struct rte_eth_dev *dev, struct ice_tx_queue *txq) @@ -48 +49 @@ -@@ -3692,4 +3708,10 @@ ice_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts, +@@ -3506,4 +3522,10 @@ ice_prep_pkts(__rte_unused void *tx_queue, struct rte_mbuf **tx_pkts,