* [PATCH 0/2] ib: Use pci_enable_msix_range() instead of pci_enable_msix() @ 2014-02-18 15:09 Alexander Gordeev 2014-02-18 15:09 ` [PATCH 1/2] mthca: " Alexander Gordeev 2014-02-18 15:09 ` [PATCH 2/2] qib: Use pci_enable_msix_range() " Alexander Gordeev 0 siblings, 2 replies; 7+ messages in thread From: Alexander Gordeev @ 2014-02-18 15:09 UTC (permalink / raw) To: linux-kernel Cc: Alexander Gordeev, Roland Dreier, Sean Hefty, Hal Rosenstock, linux-rdma, linux-pci As result of deprecation of MSI-X/MSI enablement functions pci_enable_msix() and pci_enable_msi_block() all drivers using these two interfaces need to be updated to use the new pci_enable_msi_range() and pci_enable_msix_range() interfaces. Cc: Roland Dreier <roland@kernel.org> Cc: Sean Hefty <sean.hefty@intel.com> Cc: Hal Rosenstock <hal.rosenstock@gmail.com> Cc: linux-rdma@vger.kernel.org Cc: linux-pci@vger.kernel.org Alexander Gordeev (2): mthca: Use pci_enable_msix_range() instead of pci_enable_msix() qib: Use pci_enable_msix_range() instead of pci_enable_msix() drivers/infiniband/hw/mthca/mthca_main.c | 9 ++--- drivers/infiniband/hw/qib/qib_pcie.c | 55 +++++++++++++++-------------- 2 files changed, 31 insertions(+), 33 deletions(-) -- 1.7.7.6 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/2] mthca: Use pci_enable_msix_range() instead of pci_enable_msix() 2014-02-18 15:09 [PATCH 0/2] ib: Use pci_enable_msix_range() instead of pci_enable_msix() Alexander Gordeev @ 2014-02-18 15:09 ` Alexander Gordeev 2014-02-23 6:57 ` [PATCH v2 1/2] IB/mthca: Use pci_enable_msix_exact() " Alexander Gordeev 2014-02-18 15:09 ` [PATCH 2/2] qib: Use pci_enable_msix_range() " Alexander Gordeev 1 sibling, 1 reply; 7+ messages in thread From: Alexander Gordeev @ 2014-02-18 15:09 UTC (permalink / raw) To: linux-kernel Cc: Alexander Gordeev, Roland Dreier, Sean Hefty, Hal Rosenstock, linux-rdma, linux-pci As result of deprecation of MSI-X/MSI enablement functions pci_enable_msix() and pci_enable_msi_block() all drivers using these two interfaces need to be updated to use the new pci_enable_msi_range() and pci_enable_msix_range() interfaces. Signed-off-by: Alexander Gordeev <agordeev@redhat.com> Cc: Roland Dreier <roland@kernel.org> Cc: Sean Hefty <sean.hefty@intel.com> Cc: Hal Rosenstock <hal.rosenstock@gmail.com> Cc: linux-rdma@vger.kernel.org Cc: linux-pci@vger.kernel.org --- drivers/infiniband/hw/mthca/mthca_main.c | 9 +++------ 1 files changed, 3 insertions(+), 6 deletions(-) diff --git a/drivers/infiniband/hw/mthca/mthca_main.c b/drivers/infiniband/hw/mthca/mthca_main.c index 87897b9..959d600 100644 --- a/drivers/infiniband/hw/mthca/mthca_main.c +++ b/drivers/infiniband/hw/mthca/mthca_main.c @@ -858,13 +858,10 @@ static int mthca_enable_msi_x(struct mthca_dev *mdev) entries[1].entry = 1; entries[2].entry = 2; - err = pci_enable_msix(mdev->pdev, entries, ARRAY_SIZE(entries)); - if (err) { - if (err > 0) - mthca_info(mdev, "Only %d MSI-X vectors available, " - "not using MSI-X\n", err); + err = pci_enable_msix_range(mdev->pdev, entries, + ARRAY_SIZE(entries), ARRAY_SIZE(entries)); + if (err < 0) return err; - } mdev->eq_table.eq[MTHCA_EQ_COMP ].msi_x_vector = entries[0].vector; mdev->eq_table.eq[MTHCA_EQ_ASYNC].msi_x_vector = entries[1].vector; -- 1.7.7.6 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v2 1/2] IB/mthca: Use pci_enable_msix_exact() instead of pci_enable_msix() 2014-02-18 15:09 ` [PATCH 1/2] mthca: " Alexander Gordeev @ 2014-02-23 6:57 ` Alexander Gordeev 0 siblings, 0 replies; 7+ messages in thread From: Alexander Gordeev @ 2014-02-23 6:57 UTC (permalink / raw) To: linux-kernel Cc: Roland Dreier, Sean Hefty, Hal Rosenstock, linux-rdma, linux-pci As result of deprecation of MSI-X/MSI enablement functions pci_enable_msix() and pci_enable_msi_block() all drivers using these two interfaces need to be updated to use the new pci_enable_msi_range() or pci_enable_msi_exact() and pci_enable_msix_range() or pci_enable_msix_exact() interfaces. Signed-off-by: Alexander Gordeev <agordeev@redhat.com> Cc: Roland Dreier <roland@kernel.org> Cc: Sean Hefty <sean.hefty@intel.com> Cc: Hal Rosenstock <hal.rosenstock@gmail.com> Cc: linux-rdma@vger.kernel.org Cc: linux-pci@vger.kernel.org --- drivers/infiniband/hw/mthca/mthca_main.c | 8 ++------ 1 files changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/infiniband/hw/mthca/mthca_main.c b/drivers/infiniband/hw/mthca/mthca_main.c index 87897b9..ded76c1 100644 --- a/drivers/infiniband/hw/mthca/mthca_main.c +++ b/drivers/infiniband/hw/mthca/mthca_main.c @@ -858,13 +858,9 @@ static int mthca_enable_msi_x(struct mthca_dev *mdev) entries[1].entry = 1; entries[2].entry = 2; - err = pci_enable_msix(mdev->pdev, entries, ARRAY_SIZE(entries)); - if (err) { - if (err > 0) - mthca_info(mdev, "Only %d MSI-X vectors available, " - "not using MSI-X\n", err); + err = pci_enable_msix_exact(mdev->pdev, entries, ARRAY_SIZE(entries)); + if (err) return err; - } mdev->eq_table.eq[MTHCA_EQ_COMP ].msi_x_vector = entries[0].vector; mdev->eq_table.eq[MTHCA_EQ_ASYNC].msi_x_vector = entries[1].vector; -- 1.7.7.6 -- Regards, Alexander Gordeev agordeev@redhat.com ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/2] qib: Use pci_enable_msix_range() instead of pci_enable_msix() 2014-02-18 15:09 [PATCH 0/2] ib: Use pci_enable_msix_range() instead of pci_enable_msix() Alexander Gordeev 2014-02-18 15:09 ` [PATCH 1/2] mthca: " Alexander Gordeev @ 2014-02-18 15:09 ` Alexander Gordeev 2014-02-18 16:52 ` Marciniszyn, Mike 2014-02-19 23:11 ` Marciniszyn, Mike 1 sibling, 2 replies; 7+ messages in thread From: Alexander Gordeev @ 2014-02-18 15:09 UTC (permalink / raw) To: linux-kernel Cc: Alexander Gordeev, Mike Marciniszyn, Roland Dreier, Sean Hefty, Hal Rosenstock, linux-rdma, linux-pci As result of deprecation of MSI-X/MSI enablement functions pci_enable_msix() and pci_enable_msi_block() all drivers using these two interfaces need to be updated to use the new pci_enable_msi_range() and pci_enable_msix_range() interfaces. Signed-off-by: Alexander Gordeev <agordeev@redhat.com> Cc: Mike Marciniszyn <infinipath@intel.com> Cc: Roland Dreier <roland@kernel.org> Cc: Sean Hefty <sean.hefty@intel.com> Cc: Hal Rosenstock <hal.rosenstock@gmail.com> Cc: linux-rdma@vger.kernel.org Cc: linux-pci@vger.kernel.org --- drivers/infiniband/hw/qib/qib_pcie.c | 55 +++++++++++++++++---------------- 1 files changed, 28 insertions(+), 27 deletions(-) diff --git a/drivers/infiniband/hw/qib/qib_pcie.c b/drivers/infiniband/hw/qib/qib_pcie.c index c8d9c4a..61a0046 100644 --- a/drivers/infiniband/hw/qib/qib_pcie.c +++ b/drivers/infiniband/hw/qib/qib_pcie.c @@ -197,46 +197,47 @@ static void qib_msix_setup(struct qib_devdata *dd, int pos, u32 *msixcnt, struct qib_msix_entry *qib_msix_entry) { int ret; - u32 tabsize = 0; - u16 msix_flags; + int nvec = *msixcnt; struct msix_entry *msix_entry; int i; + ret = pci_msix_vec_count(dd->pcidev); + if (ret < 0) + goto do_intx; + + nvec = min(nvec, ret); + /* We can't pass qib_msix_entry array to qib_msix_setup * so use a dummy msix_entry array and copy the allocated * irq back to the qib_msix_entry array. */ - msix_entry = kmalloc(*msixcnt * sizeof(*msix_entry), GFP_KERNEL); - if (!msix_entry) { - ret = -ENOMEM; + msix_entry = kmalloc(nvec * sizeof(*msix_entry), GFP_KERNEL); + if (!msix_entry) goto do_intx; - } - for (i = 0; i < *msixcnt; i++) + + for (i = 0; i < nvec; i++) msix_entry[i] = qib_msix_entry[i].msix; - pci_read_config_word(dd->pcidev, pos + PCI_MSIX_FLAGS, &msix_flags); - tabsize = 1 + (msix_flags & PCI_MSIX_FLAGS_QSIZE); - if (tabsize > *msixcnt) - tabsize = *msixcnt; - ret = pci_enable_msix(dd->pcidev, msix_entry, tabsize); - if (ret > 0) { - tabsize = ret; - ret = pci_enable_msix(dd->pcidev, msix_entry, tabsize); - } -do_intx: - if (ret) { - qib_dev_err(dd, - "pci_enable_msix %d vectors failed: %d, falling back to INTx\n", - tabsize, ret); - tabsize = 0; - } - for (i = 0; i < tabsize; i++) + ret = pci_enable_msix_range(dd->pcidev, msix_entry, 1, nvec); + if (ret < 0) + goto free_msix_entry; + else + nvec = ret; + + for (i = 0; i < nvec; i++) qib_msix_entry[i].msix = msix_entry[i]; + kfree(msix_entry); - *msixcnt = tabsize; + *msixcnt = nvec; + return; - if (ret) - qib_enable_intx(dd->pcidev); +free_msix_entry: + kfree(msix_entry); +do_intx: + qib_dev_err(dd, "pci_enable_msix_range %d vectors failed: %d, " + "falling back to INTx\n", nvec, ret); + *msixcnt = 0; + qib_enable_intx(dd->pcidev); } /** -- 1.7.7.6 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* RE: [PATCH 2/2] qib: Use pci_enable_msix_range() instead of pci_enable_msix() 2014-02-18 15:09 ` [PATCH 2/2] qib: Use pci_enable_msix_range() " Alexander Gordeev @ 2014-02-18 16:52 ` Marciniszyn, Mike 2014-02-19 23:11 ` Marciniszyn, Mike 1 sibling, 0 replies; 7+ messages in thread From: Marciniszyn, Mike @ 2014-02-18 16:52 UTC (permalink / raw) To: Alexander Gordeev, linux-kernel@vger.kernel.org Cc: infinipath, Roland Dreier, Hefty, Sean, Hal Rosenstock, linux-rdma@vger.kernel.org, linux-pci@vger.kernel.org > Subject: [PATCH 2/2] qib: Use pci_enable_msix_range() instead of > pci_enable_msix() > We are testing this now. I suggest a subject/summary adding the IB/: IB/qib: Use pci_enable_msix_range() instead of pci_enable_msix() ^ permalink raw reply [flat|nested] 7+ messages in thread
* RE: [PATCH 2/2] qib: Use pci_enable_msix_range() instead of pci_enable_msix() 2014-02-18 15:09 ` [PATCH 2/2] qib: Use pci_enable_msix_range() " Alexander Gordeev 2014-02-18 16:52 ` Marciniszyn, Mike @ 2014-02-19 23:11 ` Marciniszyn, Mike 2014-04-09 13:22 ` Alexander Gordeev 1 sibling, 1 reply; 7+ messages in thread From: Marciniszyn, Mike @ 2014-02-19 23:11 UTC (permalink / raw) To: Alexander Gordeev, linux-kernel@vger.kernel.org Cc: Roland Dreier, Hefty, Sean, Hal Rosenstock, linux-rdma@vger.kernel.org, linux-pci@vger.kernel.org > Subject: [PATCH 2/2] qib: Use pci_enable_msix_range() instead of > pci_enable_msix() > > As result of deprecation of MSI-X/MSI enablement functions > pci_enable_msix() and pci_enable_msi_block() all drivers using these two > interfaces need to be updated to use the new pci_enable_msi_range() and > pci_enable_msix_range() interfaces. > > Signed-off-by: Alexander Gordeev <agordeev@redhat.com> This worked fine! Roland, can you fix up the subject to change qib to IB/qib when you merge it? Acked-by: Mike Marciniszyn <mike.marciniszyn@intel.com> ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 2/2] qib: Use pci_enable_msix_range() instead of pci_enable_msix() 2014-02-19 23:11 ` Marciniszyn, Mike @ 2014-04-09 13:22 ` Alexander Gordeev 0 siblings, 0 replies; 7+ messages in thread From: Alexander Gordeev @ 2014-04-09 13:22 UTC (permalink / raw) To: Roland Dreier Cc: linux-kernel@vger.kernel.org, Hefty, Sean, Hal Rosenstock, linux-rdma@vger.kernel.org, linux-pci@vger.kernel.org, Marciniszyn, Mike On Wed, Feb 19, 2014 at 11:11:39PM +0000, Marciniszyn, Mike wrote: > > Subject: [PATCH 2/2] qib: Use pci_enable_msix_range() instead of > > pci_enable_msix() > > > > As result of deprecation of MSI-X/MSI enablement functions > > pci_enable_msix() and pci_enable_msi_block() all drivers using these two > > interfaces need to be updated to use the new pci_enable_msi_range() and > > pci_enable_msix_range() interfaces. > > > > Signed-off-by: Alexander Gordeev <agordeev@redhat.com> > > This worked fine! > > Roland, can you fix up the subject to change qib to IB/qib when you merge it? > > Acked-by: Mike Marciniszyn <mike.marciniszyn@intel.com> Hi Roland, Do you want me to repost these patches? Thanks! -- Regards, Alexander Gordeev agordeev@redhat.com ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2014-04-09 13:20 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-02-18 15:09 [PATCH 0/2] ib: Use pci_enable_msix_range() instead of pci_enable_msix() Alexander Gordeev 2014-02-18 15:09 ` [PATCH 1/2] mthca: " Alexander Gordeev 2014-02-23 6:57 ` [PATCH v2 1/2] IB/mthca: Use pci_enable_msix_exact() " Alexander Gordeev 2014-02-18 15:09 ` [PATCH 2/2] qib: Use pci_enable_msix_range() " Alexander Gordeev 2014-02-18 16:52 ` Marciniszyn, Mike 2014-02-19 23:11 ` Marciniszyn, Mike 2014-04-09 13:22 ` Alexander Gordeev
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).