From: wenxiong@vmlinux.vnet.ibm.com
To: James.Bottomley@HansenPartnership.com
Cc: linux-scsi@vger.kernel.org, bjking1@us.ibm.com,
Alexander Gordeev <agordeev@redhat.com>,
Brian King <brking@linux.vnet.ibm.com>
Subject: [PATCH RESEND 5/7] ipr: Use pci_enable_msi_range() and pci_enable_msix_range()
Date: Wed, 12 Mar 2014 16:08:50 -0500 [thread overview]
Message-ID: <20140312210906.467119132@vmlinux.vnet.ibm.com> (raw)
In-Reply-To: 20140312210845.384489953@vmlinux.vnet.ibm.com
[-- Attachment #1: 002_msix --]
[-- Type: text/plain, Size: 2958 bytes --]
From: Alexander Gordeev <agordeev@redhat.com>
As result 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>
Acked-by: Brian King <brking@linux.vnet.ibm.com>
---
drivers/scsi/ipr.c | 47 ++++++++++++++++++-----------------------------
1 file changed, 18 insertions(+), 29 deletions(-)
Index: b/drivers/scsi/ipr.c
===================================================================
--- a/drivers/scsi/ipr.c 2014-03-11 17:18:06.709957199 -0500
+++ b/drivers/scsi/ipr.c 2014-03-11 17:18:20.169018184 -0500
@@ -9317,51 +9317,40 @@ static void ipr_wait_for_pci_err_recover
static int ipr_enable_msix(struct ipr_ioa_cfg *ioa_cfg)
{
struct msix_entry entries[IPR_MAX_MSIX_VECTORS];
- int i, err, vectors;
+ int i, vectors;
for (i = 0; i < ARRAY_SIZE(entries); ++i)
entries[i].entry = i;
- vectors = ipr_number_of_msix;
-
- while ((err = pci_enable_msix(ioa_cfg->pdev, entries, vectors)) > 0)
- vectors = err;
-
- if (err < 0) {
+ vectors = pci_enable_msix_range(ioa_cfg->pdev,
+ entries, 1, ipr_number_of_msix);
+ if (vectors < 0) {
ipr_wait_for_pci_err_recovery(ioa_cfg);
- return err;
+ return vectors;
}
- if (!err) {
- for (i = 0; i < vectors; i++)
- ioa_cfg->vectors_info[i].vec = entries[i].vector;
- ioa_cfg->nvectors = vectors;
- }
+ for (i = 0; i < vectors; i++)
+ ioa_cfg->vectors_info[i].vec = entries[i].vector;
+ ioa_cfg->nvectors = vectors;
- return err;
+ return 0;
}
static int ipr_enable_msi(struct ipr_ioa_cfg *ioa_cfg)
{
- int i, err, vectors;
+ int i, vectors;
- vectors = ipr_number_of_msix;
-
- while ((err = pci_enable_msi_block(ioa_cfg->pdev, vectors)) > 0)
- vectors = err;
-
- if (err < 0) {
+ vectors = pci_enable_msi_range(ioa_cfg->pdev, 1, ipr_number_of_msix);
+ if (vectors < 0) {
ipr_wait_for_pci_err_recovery(ioa_cfg);
- return err;
+ return vectors;
}
- if (!err) {
- for (i = 0; i < vectors; i++)
- ioa_cfg->vectors_info[i].vec = ioa_cfg->pdev->irq + i;
- ioa_cfg->nvectors = vectors;
- }
+ for (i = 0; i < vectors; i++)
+ ioa_cfg->vectors_info[i].vec = ioa_cfg->pdev->irq + i;
+ ioa_cfg->nvectors = vectors;
- return err;
+ return 0;
}
static void name_msi_vectors(struct ipr_ioa_cfg *ioa_cfg)
@@ -9426,7 +9415,7 @@ static irqreturn_t ipr_test_intr(int irq
* ipr_test_msi - Test for Message Signaled Interrupt (MSI) support.
* @pdev: PCI device struct
*
- * Description: The return value from pci_enable_msi() can not always be
+ * Description: The return value from pci_enable_msi_range() can not always be
* trusted. This routine sets up and initiates a test interrupt to determine
* if the interrupt is received via the ipr_test_intr() service routine.
* If the tests fails, the driver will fall back to LSI.
--
next prev parent reply other threads:[~2014-03-12 21:12 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-12 21:08 [PATCH RESEND 0/7] New CCINs and several patches for new improvement wenxiong
2014-03-12 21:08 ` [PATCH RESEND 1/7] ipr: Remove extended delay bit on GSCSI reads/writes ops wenxiong
2014-03-14 15:50 ` Brian King
2014-03-12 21:08 ` [PATCH RESEND 2/7] ipr: Add new CCIN definition for new hardware support wenxiong
2014-03-12 21:08 ` [PATCH RESEND 3/7] ipr: Handle early EEH wenxiong
2014-03-12 21:08 ` [PATCH RESEND 4/7] ipr: Get rid of superfluous call to pci_disbale_msi/msix() wenxiong
2014-03-19 19:55 ` James Bottomley
2014-03-19 20:26 ` Brian King
2014-03-19 20:57 ` James Bottomley
2014-03-12 21:08 ` wenxiong [this message]
2014-03-12 21:08 ` [PATCH RESEND 6/7] ipr: Format HCAM overlay ID 0x21 wenxiong
2014-03-12 21:08 ` [PATCH RESEND 7/7] ipr: Add new CCIN definition for Grand Canyon support wenxiong
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140312210906.467119132@vmlinux.vnet.ibm.com \
--to=wenxiong@vmlinux.vnet.ibm.com \
--cc=James.Bottomley@HansenPartnership.com \
--cc=agordeev@redhat.com \
--cc=bjking1@us.ibm.com \
--cc=brking@linux.vnet.ibm.com \
--cc=linux-scsi@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.