genwqe: use pci_irq_allocate_vectors
authorChristoph Hellwig <hch@lst.de>
Tue, 4 Oct 2016 18:26:47 +0000 (15:26 -0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 31 Oct 2016 10:00:09 +0000 (04:00 -0600)
Simply the interrupt setup by using the new PCI layer helpers.

One odd thing about this driver is that it looks like it could request
multiple MSI vectors, but it will then only ever use a single one.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Gabriel Krisman Bertazi <krisman@linux.vnet.ibm.com>
Acked-by: Frank Haverkamp <haver@linux.vnet.ibm.com>=
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/genwqe/card_base.h
drivers/misc/genwqe/card_utils.c

index cb851c14ca4b17e52964647a1e3bbce5d6fb1ef9..5813b5f2500651bc37da061cd25717ce3eed5b59 100644 (file)
@@ -41,7 +41,6 @@
 #include "genwqe_driver.h"
 
 #define GENWQE_MSI_IRQS                        4  /* Just one supported, no MSIx */
-#define GENWQE_FLAG_MSI_ENABLED                (1 << 0)
 
 #define GENWQE_MAX_VFS                 15 /* maximum 15 VFs are possible */
 #define GENWQE_MAX_FUNCS               16 /* 1 PF and 15 VFs */
index fc2794b513faf12ca043e760524046ad2d72a9ed..147b83011b58c634b1e9445539c77db71ab9e5b8 100644 (file)
@@ -740,13 +740,10 @@ int genwqe_read_softreset(struct genwqe_dev *cd)
 int genwqe_set_interrupt_capability(struct genwqe_dev *cd, int count)
 {
        int rc;
-       struct pci_dev *pci_dev = cd->pci_dev;
 
-       rc = pci_enable_msi_range(pci_dev, 1, count);
+       rc = pci_alloc_irq_vectors(cd->pci_dev, 1, count, PCI_IRQ_MSI);
        if (rc < 0)
                return rc;
-
-       cd->flags |= GENWQE_FLAG_MSI_ENABLED;
        return 0;
 }
 
@@ -756,12 +753,7 @@ int genwqe_set_interrupt_capability(struct genwqe_dev *cd, int count)
  */
 void genwqe_reset_interrupt_capability(struct genwqe_dev *cd)
 {
-       struct pci_dev *pci_dev = cd->pci_dev;
-
-       if (cd->flags & GENWQE_FLAG_MSI_ENABLED) {
-               pci_disable_msi(pci_dev);
-               cd->flags &= ~GENWQE_FLAG_MSI_ENABLED;
-       }
+       pci_free_irq_vectors(cd->pci_dev);
 }
 
 /**