dpdk/0378-net-hns3-fix-setting-DCB-capability.patch
Dengdui Huang bc76778e92 sync some patchs from upstreaming
Sync some patchs from upstreaming and modifies are as follow:
- net/hns3: fix mailbox sync
- net/hns3: report maximum buffer size
- ethdev: add maximum Rx buffer size
- app/procinfo: show RSS hash algorithm
- ethdev: get RSS algorithm names
- app/procinfo: adjust format of RSS info
- app/procinfo: fix RSS info
- net/hns3: support setting and querying RSS hash function
- net/hns3: report RSS hash algorithms capability
- ethdev: set and query RSS hash algorithm
- ethdev: clarify RSS related fields usage
- net/hns3: fix uninitialized hash algo value
- net/hns3: keep set/get algo key functions local
- net/hns3: fix some error logs
- net/hns3: fix some return values
- net/hns3: fix LRO offload to report
- net/hns3: fix setting DCB capability
- app/testpmd: ease configuring all offloads
- net/hns3: refactor interrupt state query
- net/hns3: fix IMP or global reset
- net/hns3: fix multiple reset detected log
- net/hns3: remove reset log in secondary
- net/hns3: fix double stats for IMP and global reset
- net/hns3: fix crash for NEON and SVE
- net/hns3: fix unchecked Rx free threshold
- net/hns3: fix typo in function name
- net/hns3: fix build warning
- telemetry: fix repeat display when callback don't init dict

Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>
2023-11-21 21:38:03 +08:00

96 lines
2.9 KiB
Diff

From 98fc655dcb21ac85c24a5f7f454a361ef37e2b07 Mon Sep 17 00:00:00 2001
From: Huisong Li <lihuisong@huawei.com>
Date: Tue, 31 Oct 2023 20:23:54 +0800
Subject: [PATCH 378/394] net/hns3: fix setting DCB capability
[ upstream commit ac61c444e647298dded80a2ab52966a2dbe22b68 ]
The "hw->capability" is set after querying firmware and version.
But the DCB capability of PF is set in other place.
So this patch moves setting DCB capability to the place where
all capabilities are set.
Fixes: ab2e2e344163 ("net/hns3: get device capability in primary process")
Cc: stable@dpdk.org
Signed-off-by: Huisong Li <lihuisong@huawei.com>
Signed-off-by: Jie Hai <haijie1@huawei.com>
---
drivers/net/hns3/hns3_cmd.c | 25 +++++++++++++++++++++++++
drivers/net/hns3/hns3_ethdev.c | 13 -------------
2 files changed, 25 insertions(+), 13 deletions(-)
diff --git a/drivers/net/hns3/hns3_cmd.c b/drivers/net/hns3/hns3_cmd.c
index ca1d3f1b8c..62c55f347f 100644
--- a/drivers/net/hns3/hns3_cmd.c
+++ b/drivers/net/hns3/hns3_cmd.c
@@ -525,6 +525,28 @@ hns3_build_api_caps(void)
return rte_cpu_to_le_32(api_caps);
}
+static void
+hns3_set_dcb_capability(struct hns3_hw *hw)
+{
+ struct hns3_adapter *hns = HNS3_DEV_HW_TO_ADAPTER(hw);
+ struct rte_pci_device *pci_dev;
+ struct rte_eth_dev *eth_dev;
+ uint16_t device_id;
+
+ if (hns->is_vf)
+ return;
+
+ eth_dev = &rte_eth_devices[hw->data->port_id];
+ pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
+ device_id = pci_dev->id.device_id;
+
+ if (device_id == HNS3_DEV_ID_25GE_RDMA ||
+ device_id == HNS3_DEV_ID_50GE_RDMA ||
+ device_id == HNS3_DEV_ID_100G_RDMA_MACSEC ||
+ device_id == HNS3_DEV_ID_200G_RDMA)
+ hns3_set_bit(hw->capability, HNS3_DEV_SUPPORT_DCB_B, 1);
+}
+
static int
hns3_cmd_query_firmware_version_and_capability(struct hns3_hw *hw)
{
@@ -542,6 +564,9 @@ hns3_cmd_query_firmware_version_and_capability(struct hns3_hw *hw)
return ret;
hw->fw_version = rte_le_to_cpu_32(resp->firmware);
+
+ hns3_set_dcb_capability(hw);
+
/*
* Make sure mask the capability before parse capability because it
* may overwrite resp's data.
diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c
index 9966748835..022696d204 100644
--- a/drivers/net/hns3/hns3_ethdev.c
+++ b/drivers/net/hns3/hns3_ethdev.c
@@ -2719,22 +2719,9 @@ static int
hns3_get_capability(struct hns3_hw *hw)
{
struct hns3_adapter *hns = HNS3_DEV_HW_TO_ADAPTER(hw);
- struct rte_pci_device *pci_dev;
struct hns3_pf *pf = &hns->pf;
- struct rte_eth_dev *eth_dev;
- uint16_t device_id;
int ret;
- eth_dev = &rte_eth_devices[hw->data->port_id];
- pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
- device_id = pci_dev->id.device_id;
-
- if (device_id == HNS3_DEV_ID_25GE_RDMA ||
- device_id == HNS3_DEV_ID_50GE_RDMA ||
- device_id == HNS3_DEV_ID_100G_RDMA_MACSEC ||
- device_id == HNS3_DEV_ID_200G_RDMA)
- hns3_set_bit(hw->capability, HNS3_DEV_SUPPORT_DCB_B, 1);
-
ret = hns3_get_pci_revision_id(hw, &hw->revision);
if (ret)
return ret;
--
2.23.0