From: Helin Zhang Date: Tue, 4 Nov 2014 08:08:14 +0000 (+0800) Subject: i40e: fix PF interrupt handler X-Git-Tag: spdx-start~10210 X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=03e801bc790ab2478ad36ea44ce706c9d1a012ae;p=dpdk.git i40e: fix PF interrupt handler 'PFINT_ICR0_ENA' shouldn't be cleared in user space ISR, otherwise adminq interrupts might be missed during co-working with VF initialization. Signed-off-by: Helin Zhang Acked-by: Jing Chen --- diff --git a/lib/librte_pmd_i40e/i40e_ethdev.c b/lib/librte_pmd_i40e/i40e_ethdev.c index 661d146c54..ea10c26f3a 100644 --- a/lib/librte_pmd_i40e/i40e_ethdev.c +++ b/lib/librte_pmd_i40e/i40e_ethdev.c @@ -3574,7 +3574,6 @@ i40e_dev_interrupt_delayed_handler(void *param) i40e_dev_link_update(dev, 0); _rte_eth_dev_callback_process(dev, RTE_ETH_EVENT_INTR_LSC); - I40E_WRITE_REG(hw, I40E_PFINT_ICR0_ENA, I40E_PFINT_ICR0_ENA_MASK); i40e_pf_enable_irq0(hw); rte_intr_enable(&(dev->pci_dev->intr_handle)); } @@ -3601,7 +3600,6 @@ i40e_dev_interrupt_handler(__rte_unused struct rte_intr_handle *handle, /* Disable interrupt */ i40e_pf_disable_irq0(hw); - I40E_WRITE_REG(hw, I40E_PFINT_ICR0_ENA, 0); /* read out interrupt causes */ icr0 = I40E_READ_REG(hw, I40E_PFINT_ICR0); @@ -3663,7 +3661,6 @@ i40e_dev_interrupt_handler(__rte_unused struct rte_intr_handle *handle, done: /* Enable interrupt */ - I40E_WRITE_REG(hw, I40E_PFINT_ICR0_ENA, I40E_PFINT_ICR0_ENA_MASK); i40e_pf_enable_irq0(hw); rte_intr_enable(&(dev->pci_dev->intr_handle)); }