[11/11] net/hns3: fix triggering reset proceduce in slave process
Checks
Commit Message
From: Chengwen Feng <fengchengwen@huawei.com>
Currently, reset related operations can only be performed in the primary
process and are not allowed in the slave process in hns3 PMD driver.
In the internal function interface named hns3_cmd_send used for
communication between driver and firmware, if the wrong head value is
detected in the static subfunction hns3_cmd_csq_clean, driver will trigger
a function level reset to make the hardware work normally again.
This patch adds check condition to prevent triggering reset proceduce in
the salve process to avoid failure.
Fixes: 2790c6464725 ("net/hns3: support device reset")
Cc: stable@dpdk.org
Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
---
drivers/net/hns3/hns3_cmd.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
@@ -215,12 +215,12 @@ hns3_cmd_csq_clean(struct hns3_hw *hw)
head = hns3_read_dev(hw, HNS3_CMDQ_TX_HEAD_REG);
if (!is_valid_csq_clean_head(csq, head)) {
- struct hns3_adapter *hns = HNS3_DEV_HW_TO_ADAPTER(hw);
hns3_err(hw, "wrong cmd head (%u, %u-%u)", head,
csq->next_to_use, csq->next_to_clean);
- rte_atomic16_set(&hw->reset.disable_cmd, 1);
-
- hns3_schedule_delayed_reset(hns);
+ if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
+ rte_atomic16_set(&hw->reset.disable_cmd, 1);
+ hns3_schedule_delayed_reset(HNS3_DEV_HW_TO_ADAPTER(hw));
+ }
return -EIO;
}