net/ixgbe: fix LSC interrupt
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@dpdk.org Signed-off-by: Qi Zhang <qi.z.zhang@intel.com> Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
This commit is contained in:
parent
0fcd5ef9eb
commit
491681ed63
@ -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 original mask */
|
||||
intr->mask_original = intr->mask;
|
||||
/* only disable lsc interrupt */
|
||||
intr->mask &= ~IXGBE_EIMS_LSC;
|
||||
}
|
||||
}
|
||||
|
||||
PMD_DRV_LOG(DEBUG, "enable intr immediately");
|
||||
|
Loading…
x
Reference in New Issue
Block a user