From patchwork Tue Nov 4 08:08:14 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Zhang, Helin" X-Patchwork-Id: 1117 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 8E540592E; Tue, 4 Nov 2014 08:59:12 +0100 (CET) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id C22452A9 for ; Tue, 4 Nov 2014 08:59:10 +0100 (CET) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga103.jf.intel.com with ESMTP; 04 Nov 2014 00:06:28 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.07,312,1413270000"; d="scan'208";a="601813936" Received: from shvmail01.sh.intel.com ([10.239.29.42]) by orsmga001.jf.intel.com with ESMTP; 04 Nov 2014 00:08:20 -0800 Received: from shecgisg004.sh.intel.com (shecgisg004.sh.intel.com [10.239.29.89]) by shvmail01.sh.intel.com with ESMTP id sA488Ixv002145; Tue, 4 Nov 2014 16:08:18 +0800 Received: from shecgisg004.sh.intel.com (localhost [127.0.0.1]) by shecgisg004.sh.intel.com (8.13.6/8.13.6/SuSE Linux 0.8) with ESMTP id sA488GYt010282; Tue, 4 Nov 2014 16:08:18 +0800 Received: (from hzhan75@localhost) by shecgisg004.sh.intel.com (8.13.6/8.13.6/Submit) id sA488GUv010278; Tue, 4 Nov 2014 16:08:16 +0800 From: Helin Zhang To: dev@dpdk.org Date: Tue, 4 Nov 2014 16:08:14 +0800 Message-Id: <1415088494-10248-1-git-send-email-helin.zhang@intel.com> X-Mailer: git-send-email 1.7.4.1 Subject: [dpdk-dev] [PATCH] i40e: fix of PF interrupt handling X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" '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 --- 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)); }