Message ID | 1415088494-10248-1-git-send-email-helin.zhang@intel.com (mailing list archive) |
---|---|
State | Accepted, archived |
Headers | show |
> -----Original Message----- > From: Zhang, Helin > Sent: Tuesday, November 04, 2014 4:08 PM > To: dev@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@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@intel.com>
> > '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@intel.com> > > Acked-by : Jing Chen <jing.d.chen@intel.com> Applied Thanks
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)); }
'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@intel.com> --- lib/librte_pmd_i40e/i40e_ethdev.c | 3 --- 1 file changed, 3 deletions(-)