2020-06-09 17:07:47

by Piotr Stankiewicz

[permalink] [raw]
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 <[email protected]>
Reviewed-by: Andy Shevchenko <[email protected]>
---
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;
maxvec = (nent && *nent) ? *nent : 1;
nvec = pci_alloc_irq_vectors(dd->pcidev, 1, maxvec, flags);
if (nvec < 0)
--
2.17.2


2020-06-11 13:22:13

by Michael J. Ruhl

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

>-----Original Message-----
>From: [email protected] <linux-rdma-
>[email protected]> On Behalf Of Piotr Stankiewicz
>Sent: Tuesday, June 9, 2020 5:18 AM
>To: Bjorn Helgaas <[email protected]>; [email protected]
>Cc: Stankiewicz, Piotr <[email protected]>; Dalessandro, Dennis
><[email protected]>; Marciniszyn, Mike
><[email protected]>; Doug Ledford <[email protected]>;
>Jason Gunthorpe <[email protected]>; Arnd Bergmann <[email protected]>;
>Shevchenko, Andriy <[email protected]>; linux-
>[email protected]; [email protected]
>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 <[email protected]>
>Reviewed-by: Andy Shevchenko <[email protected]>
>---
> 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