> -----Original Message----- > From: Zhang, Helin > Sent: Tuesday, November 04, 2014 4:08 PM > To: dev at dpdk.org > Cc: Cao, Waterman; Cao, Min; Xu, HuilongX; Chen, Jing D; Zhang, Helin > Subject: [PATCH] i40e: fix of PF interrupt handling > > '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 <helin.zhang at intel.com> > --- > lib/librte_pmd_i40e/i40e_ethdev.c | 3 --- > 1 file changed, 3 deletions(-) > > diff --git a/lib/librte_pmd_i40e/i40e_ethdev.c > b/lib/librte_pmd_i40e/i40e_ethdev.c > index 661d146..ea10c26 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)); > } > -- > 1.8.1.4
Acked-by : Jing Chen <jing.d.chen at intel.com>