igb_uio: fix IRQ disable on recent kernels
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: 99bb58f3ad
("igb_uio: switch to new irq function for MSI-X")
Cc: stable@dpdk.org
Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
This commit is contained in:
parent
0256ec056f
commit
9838673e32
@ -124,6 +124,6 @@ static bool pci_check_and_mask_intx(struct pci_dev *pdev)
|
||||
|
||||
#endif /* < 3.3.0 */
|
||||
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 8, 0)
|
||||
#define HAVE_PCI_ENABLE_MSIX
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
|
||||
#define HAVE_ALLOC_IRQ_VECTORS 1
|
||||
#endif
|
||||
|
@ -312,14 +312,14 @@ static int
|
||||
igbuio_pci_enable_interrupts(struct rte_uio_pci_dev *udev)
|
||||
{
|
||||
int err = 0;
|
||||
#ifdef HAVE_PCI_ENABLE_MSIX
|
||||
#ifndef HAVE_ALLOC_IRQ_VECTORS
|
||||
struct msix_entry msix_entry;
|
||||
#endif
|
||||
|
||||
switch (igbuio_intr_mode_preferred) {
|
||||
case RTE_INTR_MODE_MSIX:
|
||||
/* Only 1 msi-x vector needed */
|
||||
#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");
|
||||
@ -364,8 +364,13 @@ igbuio_pci_enable_interrupts(struct rte_uio_pci_dev *udev)
|
||||
static void
|
||||
igbuio_pci_disable_interrupts(struct rte_uio_pci_dev *udev)
|
||||
{
|
||||
#ifndef HAVE_ALLOC_IRQ_VECTORS
|
||||
if (udev->mode == RTE_INTR_MODE_MSIX)
|
||||
pci_disable_msix(udev->pdev);
|
||||
#else
|
||||
if (udev->mode == RTE_INTR_MODE_MSIX)
|
||||
pci_free_irq_vectors(udev->pdev);
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
|
Loading…
Reference in New Issue
Block a user