From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (xvm-189-124.dc0.ghst.net [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 2F088A0A01 for ; Sun, 3 Jan 2021 16:21:24 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4C6291606D0; Sun, 3 Jan 2021 16:21:23 +0100 (CET) Received: from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129]) by mails.dpdk.org (Postfix) with ESMTP id 309331606CA for ; Sun, 3 Jan 2021 16:21:21 +0100 (CET) Received: from Internal Mail-Server by MTLPINE1 (envelope-from dekelp@nvidia.com) with SMTP; 3 Jan 2021 17:21:20 +0200 Received: from mtl-vdi-280.wap.labs.mlnx. (mtl-vdi-280.wap.labs.mlnx [10.228.134.250]) by labmailer.mlnx (8.13.8/8.13.8) with ESMTP id 103FLJlw007326; Sun, 3 Jan 2021 17:21:19 +0200 From: Dekel Peled To: viacheslavo@nvidia.com, shahafs@nvidia.com, matan@nvidia.com Cc: dev@dpdk.org, stable@dpdk.org Date: Sun, 3 Jan 2021 17:18:40 +0200 Message-Id: <670e2f1c1644f8722b707d5f4d69eb460868317e.1609682638.git.dekelp@nvidia.com> X-Mailer: git-send-email 1.7.1 Subject: [dpdk-stable] [PATCH] net/mlx5: fix flow check hairpin split 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 Sender: "stable" Previously, the identification of hairpin queue was done using mlx5_rxq_get_type() function. Recent patch replaced it with use of mlx5_rxq_get_hairpin_conf(), and check of the return value conf != NULL. The case of return value is NULL (queue is not hairpin) was not handled. As result, non-hairpin flows were wrongly handled. This patch adds the required check for return value is NULL. Fixes: 509f8470de55 ("net/mlx5: do not split hairpin flow in explicit mode") Cc: stable@dpdk.org Signed-off-by: Dekel Peled Acked-by: Matan Azrad --- drivers/net/mlx5/mlx5_flow.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c index f110c6b714..0ba1dc8c70 100644 --- a/drivers/net/mlx5/mlx5_flow.c +++ b/drivers/net/mlx5/mlx5_flow.c @@ -3524,7 +3524,7 @@ flow_check_hairpin_split(struct rte_eth_dev *dev, if (queue == NULL) return 0; conf = mlx5_rxq_get_hairpin_conf(dev, queue->index); - if (conf != NULL && !!conf->tx_explicit) + if (!conf || !!conf->tx_explicit) return 0; queue_action = 1; action_n++; @@ -3534,7 +3534,7 @@ flow_check_hairpin_split(struct rte_eth_dev *dev, if (rss == NULL || rss->queue_num == 0) return 0; conf = mlx5_rxq_get_hairpin_conf(dev, rss->queue[0]); - if (conf != NULL && !!conf->tx_explicit) + if (!conf || !!conf->tx_explicit) return 0; queue_action = 1; action_n++; -- 2.25.1