[dpdk-stable] patch 'net/hns3: fix dumping VF register information' has been queued to stable release 19.11.1
luca.boccassi at gmail.com
luca.boccassi at gmail.com
Tue Feb 11 12:20:27 CET 2020
Hi,
FYI, your patch has been queued to stable release 19.11.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 02/13/20. 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.
Thanks.
Luca Boccassi
---
>From bc69de759e5734e4ba6beedcb769b484f84dfe56 Mon Sep 17 00:00:00 2001
From: "Wei Hu (Xavier)" <xavier.huwei at huawei.com>
Date: Thu, 9 Jan 2020 11:15:57 +0800
Subject: [PATCH] net/hns3: fix dumping VF register information
[ upstream commit fc066e6accfd593362b2786a7153557727b36e11 ]
Currently, when the API interface named rte_eth_dev_get_reg_info is
called by upper applications based on VF device, it returns error.
We can read registers directly to get ring and interrupt related
information in hns3 PF/VF PMD driver. But for some other internal table
entries and common configuration information, we can get them only
through the command interface between driver and firmware in PF driver,
and VF driver has not the related access permission.
This patch fixes it by preventing getting these information through the
command interface based on VF device in 'get_reg' ops implementation
function.
Fixes: 936eda25e8da ("net/hns3: support dump register")
Signed-off-by: Chengwen Feng <fengchengwen at huawei.com>
Signed-off-by: Wei Hu (Xavier) <xavier.huwei at huawei.com>
---
drivers/net/hns3/hns3_regs.c | 29 ++++++++++++++++++-----------
1 file changed, 18 insertions(+), 11 deletions(-)
diff --git a/drivers/net/hns3/hns3_regs.c b/drivers/net/hns3/hns3_regs.c
index 23405030e7..a3f2a51f9b 100644
--- a/drivers/net/hns3/hns3_regs.c
+++ b/drivers/net/hns3/hns3_regs.c
@@ -118,15 +118,9 @@ hns3_get_regs_length(struct hns3_hw *hw, uint32_t *length)
struct hns3_adapter *hns = HNS3_DEV_HW_TO_ADAPTER(hw);
int cmdq_lines, common_lines, ring_lines, tqp_intr_lines;
uint32_t regs_num_32_bit, regs_num_64_bit;
+ uint32_t len;
int ret;
- ret = hns3_get_regs_num(hw, ®s_num_32_bit, ®s_num_64_bit);
- if (ret) {
- hns3_err(hw, "Get register number failed, ret = %d.",
- ret);
- return -ENOTSUP;
- }
-
cmdq_lines = sizeof(cmdq_reg_addrs) / REG_LEN_PER_LINE + 1;
if (hns->is_vf)
common_lines =
@@ -136,11 +130,21 @@ hns3_get_regs_length(struct hns3_hw *hw, uint32_t *length)
ring_lines = sizeof(ring_reg_addrs) / REG_LEN_PER_LINE + 1;
tqp_intr_lines = sizeof(tqp_intr_reg_addrs) / REG_LEN_PER_LINE + 1;
- *length = (cmdq_lines + common_lines + ring_lines * hw->tqps_num +
- tqp_intr_lines * hw->num_msi) * REG_LEN_PER_LINE +
- regs_num_32_bit * sizeof(uint32_t) +
- regs_num_64_bit * sizeof(uint64_t);
+ len = (cmdq_lines + common_lines + ring_lines * hw->tqps_num +
+ tqp_intr_lines * hw->num_msi) * REG_LEN_PER_LINE;
+ if (!hns->is_vf) {
+ ret = hns3_get_regs_num(hw, ®s_num_32_bit, ®s_num_64_bit);
+ if (ret) {
+ hns3_err(hw, "Get register number failed, ret = %d.",
+ ret);
+ return -ENOTSUP;
+ }
+ len += regs_num_32_bit * sizeof(uint32_t) +
+ regs_num_64_bit * sizeof(uint64_t);
+ }
+
+ *length = len;
return 0;
}
@@ -346,6 +350,9 @@ hns3_get_regs(struct rte_eth_dev *eth_dev, struct rte_dev_reg_info *regs)
/* fetching per-PF registers values from PF PCIe register space */
hns3_direct_access_regs(hw, data);
+ if (hns->is_vf)
+ return 0;
+
ret = hns3_get_regs_num(hw, ®s_num_32_bit, ®s_num_64_bit);
if (ret) {
hns3_err(hw, "Get register number failed, ret = %d", ret);
--
2.20.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2020-02-11 11:17:41.782420434 +0000
+++ 0081-net-hns3-fix-dumping-VF-register-information.patch 2020-02-11 11:17:38.516003516 +0000
@@ -1,8 +1,10 @@
-From fc066e6accfd593362b2786a7153557727b36e11 Mon Sep 17 00:00:00 2001
+From bc69de759e5734e4ba6beedcb769b484f84dfe56 Mon Sep 17 00:00:00 2001
From: "Wei Hu (Xavier)" <xavier.huwei at huawei.com>
Date: Thu, 9 Jan 2020 11:15:57 +0800
Subject: [PATCH] net/hns3: fix dumping VF register information
+[ upstream commit fc066e6accfd593362b2786a7153557727b36e11 ]
+
Currently, when the API interface named rte_eth_dev_get_reg_info is
called by upper applications based on VF device, it returns error.
@@ -17,7 +19,6 @@
function.
Fixes: 936eda25e8da ("net/hns3: support dump register")
-Cc: stable at dpdk.org
Signed-off-by: Chengwen Feng <fengchengwen at huawei.com>
Signed-off-by: Wei Hu (Xavier) <xavier.huwei at huawei.com>
More information about the stable
mailing list