dpdk/0166-net-hns3-fix-Rx-Tx-queue-numbers-check.patch
speech_white 3a8995b1ad Update DPDK baseline version
Update DPDK version from 19.11 to 20.11 and also support
hns3 PMD for Kunpeng 920 and Kunpeng 930.

Signed-off-by: speech_white <humin29@huawei.com>
2021-06-28 00:52:34 +00:00

69 lines
2.1 KiB
Diff

From cecc7bbcaf74f28a947f653069809bab67be42fe Mon Sep 17 00:00:00 2001
From: Huisong Li <lihuisong@huawei.com>
Date: Sat, 15 May 2021 08:52:33 +0800
Subject: [PATCH 166/189] net/hns3: fix Rx/Tx queue numbers check
The Rx/Tx queue numbers should be greater than TC number, this patch adds
this check for PF before updating the mapping between TC and queue.
Fixes: a951c1ed3ab5 ("net/hns3: support different numbers of Rx and Tx queues")
Fixes: 76d794566d43 ("net/hns3: maximize queue number")
Cc: stable@dpdk.org
Signed-off-by: Huisong Li <lihuisong@huawei.com>
Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
---
drivers/net/hns3/hns3_dcb.c | 12 ++++++++++++
drivers/net/hns3/hns3_ethdev_vf.c | 12 ------------
2 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/drivers/net/hns3/hns3_dcb.c b/drivers/net/hns3/hns3_dcb.c
index 49b8be7..f44e2f0 100644
--- a/drivers/net/hns3/hns3_dcb.c
+++ b/drivers/net/hns3/hns3_dcb.c
@@ -727,6 +727,18 @@ hns3_queue_to_tc_mapping(struct hns3_hw *hw, uint16_t nb_rx_q, uint16_t nb_tx_q)
{
int ret;
+ if (nb_rx_q < hw->num_tc) {
+ hns3_err(hw, "number of Rx queues(%u) is less than number of TC(%u).",
+ nb_rx_q, hw->num_tc);
+ return -EINVAL;
+ }
+
+ if (nb_tx_q < hw->num_tc) {
+ hns3_err(hw, "number of Tx queues(%u) is less than number of TC(%u).",
+ nb_tx_q, hw->num_tc);
+ return -EINVAL;
+ }
+
ret = hns3_set_rss_size(hw, nb_rx_q);
if (ret)
return ret;
diff --git a/drivers/net/hns3/hns3_ethdev_vf.c b/drivers/net/hns3/hns3_ethdev_vf.c
index dbd823f..7f7da18 100644
--- a/drivers/net/hns3/hns3_ethdev_vf.c
+++ b/drivers/net/hns3/hns3_ethdev_vf.c
@@ -1498,18 +1498,6 @@ hns3vf_set_tc_queue_mapping(struct hns3_adapter *hns, uint16_t nb_rx_q,
{
struct hns3_hw *hw = &hns->hw;
- if (nb_rx_q < hw->num_tc) {
- hns3_err(hw, "number of Rx queues(%u) is less than tcs(%u).",
- nb_rx_q, hw->num_tc);
- return -EINVAL;
- }
-
- if (nb_tx_q < hw->num_tc) {
- hns3_err(hw, "number of Tx queues(%u) is less than tcs(%u).",
- nb_tx_q, hw->num_tc);
- return -EINVAL;
- }
-
return hns3_queue_to_tc_mapping(hw, nb_rx_q, nb_tx_q);
}
--
2.7.4