Hi Qi, > -----Original Message----- > From: Zhang, Qi Z > Sent: Monday, May 8, 2017 11:58 AM > To: Zhang, Helin; Lu, Wenzhuo > Cc: dev@dpdk.org; Zhang, Qi Z; sta...@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: sta...@dpdk.org > > Signed-off-by: Qi Zhang <qi.z.zh...@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...@intel.com>
Except orignal -> original