Re: [PATCH v2 RESEND 10/23] hpsa: Use pci_enable_msix_range() instead of pci_enable_msix()

2014-08-13 Thread scameron
On Mon, Apr 14, 2014 at 10:05:34AM +0200, Alexander Gordeev wrote:
 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 agord...@redhat.com
 Cc: Stephen M. Cameron scame...@beardog.cce.hp.com
 Cc: iss_storage...@hp.com
 Cc: linux-scsi@vger.kernel.org
 Cc: linux-...@vger.kernel.org
 ---
  drivers/scsi/hpsa.c |   29 +
  1 files changed, 13 insertions(+), 16 deletions(-)
 
 diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c
 index 3284edb..36bb1e4 100644
 --- a/drivers/scsi/hpsa.c
 +++ b/drivers/scsi/hpsa.c
 @@ -6144,26 +6144,23 @@ static void hpsa_interrupt_mode(struct ctlr_info *h)
   goto default_int_mode;
   if (pci_find_capability(h-pdev, PCI_CAP_ID_MSIX)) {
   dev_info(h-pdev-dev, MSIX\n);
 - h-msix_vector = MAX_REPLY_QUEUES;
 - err = pci_enable_msix(h-pdev, hpsa_msix_entries,
 -   h-msix_vector);
 - if (err  0) {
 + err = pci_enable_msix_range(h-pdev, hpsa_msix_entries,
 + 1, MAX_REPLY_QUEUES);
 + if (err  0) {
 + dev_warn(h-pdev-dev, MSI-X init failed %d\n, err);
 + h-msix_vector = 0;
 + goto single_msi_mode;
 + } else if (err  MAX_REPLY_QUEUES) {
   dev_warn(h-pdev-dev, only %d MSI-X vectors 
  available\n, err);
 - h-msix_vector = err;
 - err = pci_enable_msix(h-pdev, hpsa_msix_entries,
 -   h-msix_vector);
 - }
 - if (!err) {
 - for (i = 0; i  h-msix_vector; i++)
 - h-intr[i] = hpsa_msix_entries[i].vector;
 - return;
 - } else {
 - dev_warn(h-pdev-dev, MSI-X init failed %d\n,
 -err);
 - h-msix_vector = 0;
   }
 +
 + h-msix_vector = err;
 + for (i = 0; i  h-msix_vector; i++)
 + h-intr[i] = hpsa_msix_entries[i].vector;
 + return;
   }
 +single_msi_mode:
   if (pci_find_capability(h-pdev, PCI_CAP_ID_MSI)) {
   dev_info(h-pdev-dev, MSI\n);
   if (!pci_enable_msi(h-pdev))
 -- 
 1.7.7.6

Ack.

-- steve

--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v2 RESEND 10/23] hpsa: Use pci_enable_msix_range() instead of pci_enable_msix()

2014-04-14 Thread Alexander Gordeev
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 agord...@redhat.com
Cc: Stephen M. Cameron scame...@beardog.cce.hp.com
Cc: iss_storage...@hp.com
Cc: linux-scsi@vger.kernel.org
Cc: linux-...@vger.kernel.org
---
 drivers/scsi/hpsa.c |   29 +
 1 files changed, 13 insertions(+), 16 deletions(-)

diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c
index 3284edb..36bb1e4 100644
--- a/drivers/scsi/hpsa.c
+++ b/drivers/scsi/hpsa.c
@@ -6144,26 +6144,23 @@ static void hpsa_interrupt_mode(struct ctlr_info *h)
goto default_int_mode;
if (pci_find_capability(h-pdev, PCI_CAP_ID_MSIX)) {
dev_info(h-pdev-dev, MSIX\n);
-   h-msix_vector = MAX_REPLY_QUEUES;
-   err = pci_enable_msix(h-pdev, hpsa_msix_entries,
- h-msix_vector);
-   if (err  0) {
+   err = pci_enable_msix_range(h-pdev, hpsa_msix_entries,
+   1, MAX_REPLY_QUEUES);
+   if (err  0) {
+   dev_warn(h-pdev-dev, MSI-X init failed %d\n, err);
+   h-msix_vector = 0;
+   goto single_msi_mode;
+   } else if (err  MAX_REPLY_QUEUES) {
dev_warn(h-pdev-dev, only %d MSI-X vectors 
   available\n, err);
-   h-msix_vector = err;
-   err = pci_enable_msix(h-pdev, hpsa_msix_entries,
- h-msix_vector);
-   }
-   if (!err) {
-   for (i = 0; i  h-msix_vector; i++)
-   h-intr[i] = hpsa_msix_entries[i].vector;
-   return;
-   } else {
-   dev_warn(h-pdev-dev, MSI-X init failed %d\n,
-  err);
-   h-msix_vector = 0;
}
+
+   h-msix_vector = err;
+   for (i = 0; i  h-msix_vector; i++)
+   h-intr[i] = hpsa_msix_entries[i].vector;
+   return;
}
+single_msi_mode:
if (pci_find_capability(h-pdev, PCI_CAP_ID_MSI)) {
dev_info(h-pdev-dev, MSI\n);
if (!pci_enable_msi(h-pdev))
-- 
1.7.7.6

--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html