[dpdk-stable] [PATCH 20.11] net/hns3: fix concurrent interrupt handling

Xueming(Steven) Li xuemingl at nvidia.com
Sun Jun 13 09:42:49 CEST 2021


Applied, thanks!

> -----Original Message-----
> From: Min Hu (Connor) <humin29 at huawei.com>
> Sent: Sunday, June 13, 2021 3:13 PM
> To: stable at dpdk.org
> Cc: Xueming(Steven) Li <xuemingl at nvidia.com>
> Subject: [PATCH 20.11] net/hns3: fix concurrent interrupt handling
> 
> From: Hongbo Zheng <zhenghongbo3 at huawei.com>
> 
> [ upstream commit f9f24ecd794f88231110c823cdeff5d7ec9a4382 ]
> 
> Currently, if RAS interrupt and FLR occurred at the same time, FLR will be detected and corresponding schedule state will be set during
> RAS interrupt processing. However, the schedule state value will be overridden in subsequent RAS processing, resulting in FLR
> processing failure. This patch solves this problem.
> 
> Fixes: 2790c6464725 ("net/hns3: support device reset")
> Cc: stable at dpdk.org
> 
> Signed-off-by: Hongbo Zheng <zhenghongbo3 at huawei.com>
> Signed-off-by: Min Hu (Connor) <humin29 at huawei.com>
> ---
>  drivers/net/hns3/hns3_intr.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/hns3/hns3_intr.c b/drivers/net/hns3/hns3_intr.c index 99b5301..0bba3ab 100644
> --- a/drivers/net/hns3/hns3_intr.c
> +++ b/drivers/net/hns3/hns3_intr.c
> @@ -1787,7 +1787,8 @@ hns3_schedule_reset(struct hns3_adapter *hns)
>  		return;
>  	if (rte_atomic16_read(&hns->hw.reset.schedule) == SCHEDULE_DEFERRED)
>  		rte_eal_alarm_cancel(hw->reset.ops->reset_service, hns);
> -	rte_atomic16_set(&hns->hw.reset.schedule, SCHEDULE_REQUESTED);
> +	else
> +		rte_atomic16_set(&hns->hw.reset.schedule, SCHEDULE_REQUESTED);
> 
>  	rte_eal_alarm_set(SWITCH_CONTEXT_US, hw->reset.ops->reset_service, hns);  }
> --
> 2.7.4



More information about the stable mailing list