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 12B6F45804 for ; Fri, 23 Aug 2024 18:23:10 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0D68C4337C; Fri, 23 Aug 2024 18:23:10 +0200 (CEST) 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 AE1094336F for ; Fri, 23 Aug 2024 18:23:08 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1724430188; 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=hwAXJooGMRk96A5gOJOhRnyODTmzE41ajolULQmpf/Y=; b=BSHT1EMnVam1JMME9y7S1WXgxKMpbK1IIaUP7XenWYZtYDkV3OUq73wA6ypiljEGoQwavx Alh8tJZhWzfxFMbWqlIIPHXoD1whrkNGaymiqW5/jSiE5fUEekGnXewg5QneGuWeAIo9Ur IO6tYAHMiR+69JGl/w+4bjRCiK7xjOc= Received: from mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-537-GNQRz34nOH--aSgi0V1K7Q-1; Fri, 23 Aug 2024 12:23:05 -0400 X-MC-Unique: GNQRz34nOH--aSgi0V1K7Q-1 Received: from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 71E121955D42; Fri, 23 Aug 2024 16:23:04 +0000 (UTC) Received: from rh.redhat.com (unknown [10.39.193.224]) by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 3D3961955F54; Fri, 23 Aug 2024 16:23:02 +0000 (UTC) From: Kevin Traynor To: Jiawen Wu Cc: dpdk stable Subject: patch 'net/txgbe: restrict configuration of VLAN strip offload' has been queued to stable release 21.11.8 Date: Fri, 23 Aug 2024 17:18:45 +0100 Message-ID: <20240823161929.1004778-97-ktraynor@redhat.com> In-Reply-To: <20240823161929.1004778-1-ktraynor@redhat.com> References: <20240823161929.1004778-1-ktraynor@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17 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.8 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 08/28/24. 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/206d98e0ee7a5cc39b6c1ab8e604fe5af69d042c Thanks. Kevin --- >From 206d98e0ee7a5cc39b6c1ab8e604fe5af69d042c Mon Sep 17 00:00:00 2001 From: Jiawen Wu Date: Tue, 18 Jun 2024 15:11:35 +0800 Subject: [PATCH] net/txgbe: restrict configuration of VLAN strip offload [ upstream commit 66364efcf95884b97b71aaff697f8597a286f52e ] There is a hardware limitation that Rx ring config register is not writable when Rx ring is enabled, i.e. the TXGBE_RXCFG_ENA bit is set. But disabling the ring when there is traffic will cause ring get stuck. So restrict the configuration of VLAN strip offload only if device is started. Fixes: 220b0e49bc47 ("net/txgbe: support VLAN") Signed-off-by: Jiawen Wu --- drivers/net/txgbe/txgbe_ethdev.c | 49 +++++++++++++------------------- 1 file changed, 20 insertions(+), 29 deletions(-) diff --git a/drivers/net/txgbe/txgbe_ethdev.c b/drivers/net/txgbe/txgbe_ethdev.c index ce3b50a65d..39874c67a9 100644 --- a/drivers/net/txgbe/txgbe_ethdev.c +++ b/drivers/net/txgbe/txgbe_ethdev.c @@ -988,39 +988,23 @@ txgbe_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on) static void -txgbe_vlan_strip_queue_set(struct rte_eth_dev *dev, uint16_t queue, int on) +txgbe_vlan_strip_q_set(struct rte_eth_dev *dev, uint16_t queue, int on) { - struct txgbe_hw *hw = TXGBE_DEV_HW(dev); - struct txgbe_rx_queue *rxq; - bool restart; - uint32_t rxcfg, rxbal, rxbah; - if (on) txgbe_vlan_hw_strip_enable(dev, queue); else txgbe_vlan_hw_strip_disable(dev, queue); +} - rxq = dev->data->rx_queues[queue]; - rxbal = rd32(hw, TXGBE_RXBAL(rxq->reg_idx)); - rxbah = rd32(hw, TXGBE_RXBAH(rxq->reg_idx)); - rxcfg = rd32(hw, TXGBE_RXCFG(rxq->reg_idx)); - if (rxq->offloads & RTE_ETH_RX_OFFLOAD_VLAN_STRIP) { - restart = (rxcfg & TXGBE_RXCFG_ENA) && - !(rxcfg & TXGBE_RXCFG_VLAN); - rxcfg |= TXGBE_RXCFG_VLAN; - } else { - restart = (rxcfg & TXGBE_RXCFG_ENA) && - (rxcfg & TXGBE_RXCFG_VLAN); - rxcfg &= ~TXGBE_RXCFG_VLAN; - } - rxcfg &= ~TXGBE_RXCFG_ENA; +static void +txgbe_vlan_strip_queue_set(struct rte_eth_dev *dev, uint16_t queue, int on) +{ + struct txgbe_hw *hw = TXGBE_DEV_HW(dev); - if (restart) { - /* set vlan strip for ring */ - txgbe_dev_rx_queue_stop(dev, queue); - wr32(hw, TXGBE_RXBAL(rxq->reg_idx), rxbal); - wr32(hw, TXGBE_RXBAH(rxq->reg_idx), rxbah); - wr32(hw, TXGBE_RXCFG(rxq->reg_idx), rxcfg); - txgbe_dev_rx_queue_start(dev, queue); + if (!hw->adapter_stopped) { + PMD_DRV_LOG(ERR, "Please stop port first"); + return; } + + txgbe_vlan_strip_q_set(dev, queue, on); } @@ -1247,7 +1231,7 @@ txgbe_vlan_hw_strip_config(struct rte_eth_dev *dev) if (rxq->offloads & RTE_ETH_RX_OFFLOAD_VLAN_STRIP) - txgbe_vlan_strip_queue_set(dev, i, 1); + txgbe_vlan_strip_q_set(dev, i, 1); else - txgbe_vlan_strip_queue_set(dev, i, 0); + txgbe_vlan_strip_q_set(dev, i, 0); } } @@ -1311,4 +1295,11 @@ static int txgbe_vlan_offload_set(struct rte_eth_dev *dev, int mask) { + struct txgbe_hw *hw = TXGBE_DEV_HW(dev); + + if (!hw->adapter_stopped && (mask & RTE_ETH_VLAN_STRIP_MASK)) { + PMD_DRV_LOG(ERR, "Please stop port first"); + return -EPERM; + } + txgbe_config_vlan_strip_on_all_queues(dev, mask); -- 2.46.0 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2024-08-23 17:18:12.583477852 +0100 +++ 0097-net-txgbe-restrict-configuration-of-VLAN-strip-offlo.patch 2024-08-23 17:18:09.817430444 +0100 @@ -1 +1 @@ -From 66364efcf95884b97b71aaff697f8597a286f52e Mon Sep 17 00:00:00 2001 +From 206d98e0ee7a5cc39b6c1ab8e604fe5af69d042c Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 66364efcf95884b97b71aaff697f8597a286f52e ] + @@ -13 +14,0 @@ -Cc: stable@dpdk.org @@ -21 +22 @@ -index 121dccb5eb..a59d964a5b 100644 +index ce3b50a65d..39874c67a9 100644 @@ -24 +25 @@ -@@ -1001,39 +1001,23 @@ txgbe_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on) +@@ -988,39 +988,23 @@ txgbe_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on) @@ -75 +76 @@ -@@ -1260,7 +1244,7 @@ txgbe_vlan_hw_strip_config(struct rte_eth_dev *dev) +@@ -1247,7 +1231,7 @@ txgbe_vlan_hw_strip_config(struct rte_eth_dev *dev) @@ -85 +86 @@ -@@ -1324,4 +1308,11 @@ static int +@@ -1311,4 +1295,11 @@ static int