dpdk/0067-net-hns3-fix-pointer-offset-for-registers.patch
Dengdui Huang b27def5172 sync some patchs from upstreaming
Sync some patchs from upstreaming, includind some bugfixes, hns3 pmd
flow rule priority feature, hns3 pmd outer VLAN flow match feature,
and support dump reigser names and filter.
This patch set is modified as follows:
- net/hns3: fix cannot fully use hardware flow director table
- net/hns3: fix error code for repeatedly create counter
- net/hns3: support flow rule priority
- common/nfp: use new kvargs process API
- net/tap: use new kvargs process API
- net/sfc: use new kvargs process API
- kvargs: rework process API
- net/hns3: fix variable type
- net/hns3: fix pointer offset
- net/hns3: fix error log
- net/hns3: support filtering registers by module names
- net/hns3: support reporting names of registers
- net/hns3: refactor register dump
- net/hns3: remove separators between register module
- net/hns3: fix dump counter of registers
- net/hns3: remove some basic address dump
- telemetry: register command with private argument
- ethdev: fix race on ports in telemetry endpoints
- ethdev: add telemetry command for registers
- ethdev: add report of register names and filter
- net/hns3: support outer VLAN flow match
- net/hns3: register VLAN flow match mode parameter
- net/hns3: support general tunnel flow match
- net/hns3: restrict tunnel flow rule to one header
- net/hns3: remove ROH devices
- net/hns3: dump queue head and tail pointer info
- dmadev: fix potential null pointer access
- net/hns3: verify reset type from firmware
- ethdev: verify queue ID in Tx done cleanup

Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>
(cherry picked from commit a1c828e1eb9cf716187d2a7656023e95bdce9b55)
2024-11-22 10:06:01 +08:00

54 lines
1.8 KiB
Diff

From 3ba4957b2ea84b1cf93ec7e4b2e0e3c00672f6c9 Mon Sep 17 00:00:00 2001
From: Jie Hai <haijie1@huawei.com>
Date: Tue, 22 Oct 2024 12:01:13 +0800
Subject: [PATCH] net/hns3: fix pointer offset for registers
[ upstream commit 013fdd2d7b319e6a35d966f375e33ee330d9ccb5 ]
If the register values of multiple modules are obtained at a time,
the register values are incorrect because the data field to be filled
pointing to a wrong address. Update the pointer offset of data to
get the correct address.
Fixes: dd4b8bba785f ("net/hns3: support reporting names of registers")
Cc: stable@dpdk.org
Signed-off-by: Jie Hai <haijie1@huawei.com>
Acked-by: Chengwen Feng <fengchengwen@huawei.com>
Acked-by: Huisong Li <lihuisong@huawei.com>
---
drivers/net/hns3/hns3_regs.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/hns3/hns3_regs.c b/drivers/net/hns3/hns3_regs.c
index def775a..83dda4b 100644
--- a/drivers/net/hns3/hns3_regs.c
+++ b/drivers/net/hns3/hns3_regs.c
@@ -1274,6 +1274,7 @@ hns3_get_dfx_regs(struct hns3_hw *hw, struct rte_dev_reg_info *regs, uint32_t mo
if (cmd_descs == NULL)
return -ENOMEM;
+ data += regs->length;
for (i = 0; i < opcode_num; i++) {
opcode = hns3_dfx_reg_opcode_list[i];
bd_num = bd_num_list[i];
@@ -1285,7 +1286,6 @@ hns3_get_dfx_regs(struct hns3_hw *hw, struct rte_dev_reg_info *regs, uint32_t mo
if (ret)
break;
- data += regs->length;
regs_num = hns3_dfx_reg_fetch_data(cmd_descs, bd_num, data);
if (regs_num != hns3_reg_lists[i].entry_num) {
hns3_err(hw, "Query register number differ from the list for module %s!",
@@ -1294,6 +1294,7 @@ hns3_get_dfx_regs(struct hns3_hw *hw, struct rte_dev_reg_info *regs, uint32_t mo
}
hns3_fill_dfx_regs_name(hw, regs, hns3_reg_lists[i].reg_list, regs_num);
regs->length += regs_num;
+ data += regs_num;
}
rte_free(cmd_descs);
--
2.33.0