Currently, when performing the following test case: 1. Run testpmd application based on hns3 PF device. 2. Inject reset(global/IMP reset) repeatedly. After the reset, the network port can't link up. In the RESET_STAGE_DEV_INIT stage of the reset process, the driver will reinitialize the hardware. If global/IMP reset occurs at this time again, the operation of reinitialize the hardware will fail because that firmware don't respond to the configuration commands issued by driver. In current driver, when failed to reinitialize the hardware, rollback operation is done, such as clearing the relevant configuration of the command queue registers. If firmware detects that the function's command queue register is not configured correctly, it will not complete the reset related hardware configuration for this function, resulting in that driver can't detect that the hardware reset has been completed. And then the reset process of the driver exit abnormally, the hardware can not work normally after reset. This patch fixes it by avoid clearing the command queue related registers when failed to reinitialize the hardware in the RESET_STAGE_DEV_INIT stage of the reset process. Fixes: 2790c6464725 ("net/hns3: support device reset") Cc: stable@dpdk.org Signed-off-by: Hongbo Zheng <zhenghongbo3@huawei.com> Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com> Signed-off-by: Chunsong Feng <fengchunsong@huawei.com>
DPDK is a set of libraries and drivers for fast packet processing. It supports many processor architectures and both FreeBSD and Linux. The DPDK uses the Open Source BSD-3-Clause license for the core libraries and drivers. The kernel components are GPL-2.0 licensed. Please check the doc directory for release notes, API documentation, and sample application information. For questions and usage discussions, subscribe to: users@dpdk.org Report bugs and issues to the development mailing list: dev@dpdk.org
Description
Languages
C
99.1%
Meson
0.5%
Python
0.2%
Shell
0.1%