[dpdk-dev] [PATCH] net/ixgbe: fix LSC interrupt issue

Lu, Wenzhuo wenzhuo.lu at intel.com
Tue May 9 03:15:14 CEST 2017


Hi Qi,

> -----Original Message-----
> From: Zhang, Qi Z
> Sent: Monday, May 8, 2017 11:58 AM
> To: Zhang, Helin; Lu, Wenzhuo
> Cc: dev at dpdk.org; Zhang, Qi Z; stable at dpdk.org
> Subject: [PATCH] net/ixgbe: fix LSC interrupt issue
> 
> There is a bug in previous fix for lsc interrupt.
> lsc interrupt is not disabled before delayed handler, that cause the delayed
> handler be re-entered.
> 
> Fixes: 9b667210700e ("net/ixgbe: fix blocked interrupts")
> Cc: stable at dpdk.org
> 
> Signed-off-by: Qi Zhang <qi.z.zhang at intel.com>
> ---
>  drivers/net/ixgbe/ixgbe_ethdev.c | 11 ++++++-----
>  1 file changed, 6 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c
> b/drivers/net/ixgbe/ixgbe_ethdev.c
> index ec667d8..c680aab 100644
> --- a/drivers/net/ixgbe/ixgbe_ethdev.c
> +++ b/drivers/net/ixgbe/ixgbe_ethdev.c
> @@ -4107,14 +4107,15 @@ ixgbe_dev_interrupt_action(struct rte_eth_dev
> *dev,
>  			timeout = IXGBE_LINK_DOWN_CHECK_TIMEOUT;
> 
>  		ixgbe_dev_link_status_print(dev);
> -		intr->mask_original = intr->mask;
> -		/* only disable lsc interrupt */
> -		intr->mask &= ~IXGBE_EIMS_LSC;
>  		if (rte_eal_alarm_set(timeout * 1000,
>  				      ixgbe_dev_interrupt_delayed_handler,
> (void *)dev) < 0)
>  			PMD_DRV_LOG(ERR, "Error setting alarm");
> -		else
> -			intr->mask = intr->mask_original;
> +		else {
> +			/* remember orignal mask */
Acked-by: Wenzhuo Lu <wenzhuo.lu at intel.com>

Except orignal -> original


More information about the dev mailing list