RE: [PATCH v3 08/15] IB/qib: Use PCI_IRQ_MSI_TYPES where appropriate

From: Ruhl, Michael J
Date: Thu Jun 11 2020 - 09:17:26 EST


>-----Original Message-----
>From: linux-rdma-owner@xxxxxxxxxxxxxxx <linux-rdma-
>owner@xxxxxxxxxxxxxxx> On Behalf Of Piotr Stankiewicz
>Sent: Tuesday, June 9, 2020 5:18 AM
>To: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>; linux-pci@xxxxxxxxxxxxxxx
>Cc: Stankiewicz, Piotr <piotr.stankiewicz@xxxxxxxxx>; Dalessandro, Dennis
><dennis.dalessandro@xxxxxxxxx>; Marciniszyn, Mike
><mike.marciniszyn@xxxxxxxxx>; Doug Ledford <dledford@xxxxxxxxxx>;
>Jason Gunthorpe <jgg@xxxxxxxx>; Arnd Bergmann <arnd@xxxxxxxx>;
>Shevchenko, Andriy <andriy.shevchenko@xxxxxxxxx>; linux-
>rdma@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
>Subject: [PATCH v3 08/15] IB/qib: Use PCI_IRQ_MSI_TYPES where appropriate
>
>Seeing as there is shorthand available to use when asking for any type
>of interrupt, or any type of message signalled interrupt, leverage it.
>
>Signed-off-by: Piotr Stankiewicz <piotr.stankiewicz@xxxxxxxxx>
>Reviewed-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxx>
>---
> drivers/infiniband/hw/qib/qib_pcie.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
>diff --git a/drivers/infiniband/hw/qib/qib_pcie.c
>b/drivers/infiniband/hw/qib/qib_pcie.c
>index 3dc6ce033319..caff44d2c12c 100644
>--- a/drivers/infiniband/hw/qib/qib_pcie.c
>+++ b/drivers/infiniband/hw/qib/qib_pcie.c
>@@ -213,7 +213,7 @@ int qib_pcie_params(struct qib_devdata *dd, u32
>minw, u32 *nent)
> u16 linkstat, speed;
> int nvec;
> int maxvec;
>- unsigned int flags = PCI_IRQ_MSIX | PCI_IRQ_MSI;
>+ unsigned int flags;
>
> if (!pci_is_pcie(dd->pcidev)) {
> qib_dev_err(dd, "Can't find PCI Express capability!\n");
>@@ -225,7 +225,9 @@ int qib_pcie_params(struct qib_devdata *dd, u32
>minw, u32 *nent)
> }
>
> if (dd->flags & QIB_HAS_INTX)
>- flags |= PCI_IRQ_LEGACY;
>+ flags = PCI_IRQ_ALL_TYPES;
>+ else
>+ flags = PCI_IRQ_MSI_TYPES;

Thinking about lines of code, this patch could probably just be:

- unsigned int flags = PCI_IRQ_MSIX | PCI_IRQ_MSI;
+ unsigned int flags = PCI_IRQ_MSI_TYPES;

Or maybe even:

- unsigned int flags = PCI_IRQ_MSIX | PCI_IRQ_MSI;
+ unsigned int flags = PCI_IRQ_ALL_TYPES;

- if (dd->flags & QIB_HAS_INTX)
- flags |= PCI_IRQ_LEGACY;

?

M

> maxvec = (nent && *nent) ? *nent : 1;
> nvec = pci_alloc_irq_vectors(dd->pcidev, 1, maxvec, flags);
> if (nvec < 0)
>--
>2.17.2