From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id A89251B3AF; Thu, 2 Nov 2017 14:25:16 +0100 (CET) Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 02 Nov 2017 06:25:12 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.44,334,1505804400"; d="scan'208";a="1213344345" Received: from unknown (HELO dpdk6.bj.intel.com) ([172.16.182.87]) by fmsmga001.fm.intel.com with ESMTP; 02 Nov 2017 06:25:11 -0700 From: Wei Dai To: jingjing.wu@intel.com, beilei.xing@intel.com, cunming.liang@intel.com Cc: dev@dpdk.org, Wei Dai , stable@dpdk.org Date: Thu, 2 Nov 2017 21:10:55 +0800 Message-Id: <1509628256-16300-2-git-send-email-wei.dai@intel.com> X-Mailer: git-send-email 2.7.5 In-Reply-To: <1509628256-16300-1-git-send-email-wei.dai@intel.com> References: <1509628256-16300-1-git-send-email-wei.dai@intel.com> Subject: [dpdk-dev] [PATCH 1/2] net/i40e: fix VFIO interrupt mapping in VF X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Nov 2017 13:25:17 -0000 When a VF port is bound to VFIO-PIC, only miscellaneous interrupt is mapped to VFIO vector 0 in i40evf_dev_init( ). In ixgbevf_dev_interrupt_handler( ), if previous VFIO interrupt mapping set in i40evf_dev_init( ) is not cleard, it will fail when calling rte_intr_enable( ) tries to map Rx queue interrupt to other VFIO vectors. This patch clears the VFIO interrupt mappings before setting both miscellaneous and Rx queue interrupt mappings again to avoid failure. Fixes: 4b90a3ff26c5 ("i40evf: support Rx interrupt") Cc: stable@dpdk.org Signed-off-by: Wei Dai --- drivers/net/i40e/i40e_ethdev_vf.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c index 3b76c9e..567b7d0 100644 --- a/drivers/net/i40e/i40e_ethdev_vf.c +++ b/drivers/net/i40e/i40e_ethdev_vf.c @@ -1432,8 +1432,9 @@ i40evf_dev_interrupt_handler(void *param) " do nothing"); done: - i40evf_enable_irq0(hw); + rte_intr_disable(dev->intr_handle); rte_intr_enable(dev->intr_handle); + i40evf_enable_irq0(hw); } static int -- 2.7.5