From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ferruh Yigit Subject: Re: [PATCH v6 2/5] igb_uio: fix irq disable on recent kernels Date: Mon, 4 Sep 2017 22:32:53 +0100 Message-ID: <4bfac191-103f-54c8-3ffc-f094ec6f8f44@intel.com> References: <1503336825-7700-1-git-send-email-markus.theil@tu-ilmenau.de> <1504549066-11067-1-git-send-email-markus.theil@tu-ilmenau.de> <1504549066-11067-2-git-send-email-markus.theil@tu-ilmenau.de> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Cc: stephen@networkplumber.org, nicolas.dichtel@6wind.com To: Markus Theil , dev@dpdk.org Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id 7AAD0101B for ; Mon, 4 Sep 2017 23:32:56 +0200 (CEST) In-Reply-To: <1504549066-11067-2-git-send-email-markus.theil@tu-ilmenau.de> Content-Language: en-US List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 9/4/2017 7:17 PM, Markus Theil wrote: > igb_uio already allocates irqs using pci_alloc_irq_vectors on > recent kernels >= 4.8. The interrupt disable code was not > using the corresponding pci_free_irq_vectors, but the also > deprecated pci_disable_msix, before this fix. > > Fixes: 99bb58f3adc7 ("igb_uio: switch to new irq function for MSI-X") > Cc: nicolas.dichtel@6wind.com > > Signed-off-by: Markus Theil <...> > -#ifdef HAVE_PCI_ENABLE_MSIX > +#ifndef HAVE_ALLOC_IRQ_VECTORS > msix_entry.entry = 0; > if (pci_enable_msix(udev->pdev, &msix_entry, 1) == 0) { > dev_dbg(&udev->pdev->dev, "using MSI-X"); > - udev->info.irq_flags = IRQF_NO_THREAD; This and below one [1] seems merge artifact, needs to be removed from this patch. > udev->info.irq = msix_entry.vector; > udev->mode = RTE_INTR_MODE_MSIX; > break; > @@ -331,6 +330,7 @@ igbuio_pci_enable_interrupts(struct rte_uio_pci_dev *udev) > #else > if (pci_alloc_irq_vectors(udev->pdev, 1, 1, PCI_IRQ_MSIX) == 1) { > dev_dbg(&udev->pdev->dev, "using MSI-X"); > + udev->info.irq_flags = IRQF_NO_THREAD; [1] > udev->info.irq = pci_irq_vector(udev->pdev, 0); > udev->mode = RTE_INTR_MODE_MSIX; > break; <...>