csiostor: Use pci_enable_msix_range() instead of pci_enable_msix()
authorAlexander Gordeev <agordeev@redhat.com>
Mon, 18 Aug 2014 06:01:50 +0000 (08:01 +0200)
committerChristoph Hellwig <hch@lst.de>
Tue, 16 Sep 2014 16:09:56 +0000 (09:09 -0700)
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>
Reviewed-by: Tomas Henzl <thenzl@redhat.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/scsi/csiostor/csio_hw.h
drivers/scsi/csiostor/csio_isr.c

index 49b1daa..5db2d85 100644 (file)
@@ -94,7 +94,7 @@ enum {
 };
 
 struct csio_msix_entries {
-       unsigned short  vector;         /* Vector assigned by pci_enable_msix */
+       unsigned short  vector;         /* Assigned MSI-X vector */
        void            *dev_id;        /* Priv object associated w/ this msix*/
        char            desc[24];       /* Description of this vector */
 };
index 91ba91d..a8c748a 100644 (file)
@@ -499,7 +499,7 @@ csio_reduce_sqsets(struct csio_hw *hw, int cnt)
 static int
 csio_enable_msix(struct csio_hw *hw)
 {
-       int rv, i, j, k, n, min, cnt;
+       int i, j, k, n, min, cnt;
        struct csio_msix_entries *entryp;
        struct msix_entry *entries;
        int extra = CSIO_EXTRA_VECS;
@@ -521,19 +521,15 @@ csio_enable_msix(struct csio_hw *hw)
 
        csio_dbg(hw, "FW supp #niq:%d, trying %d msix's\n", hw->cfg_niq, cnt);
 
-       while ((rv = pci_enable_msix(hw->pdev, entries, cnt)) >= min)
-               cnt = rv;
-       if (!rv) {
-               if (cnt < (hw->num_sqsets + extra)) {
-                       csio_dbg(hw, "Reducing sqsets to %d\n", cnt - extra);
-                       csio_reduce_sqsets(hw, cnt - extra);
-               }
-       } else {
-               if (rv > 0)
-                       csio_info(hw, "Not using MSI-X, remainder:%d\n", rv);
-
+       cnt = pci_enable_msix_range(hw->pdev, entries, min, cnt);
+       if (cnt < 0) {
                kfree(entries);
-               return -ENOMEM;
+               return cnt;
+       }
+
+       if (cnt < (hw->num_sqsets + extra)) {
+               csio_dbg(hw, "Reducing sqsets to %d\n", cnt - extra);
+               csio_reduce_sqsets(hw, cnt - extra);
        }
 
        /* Save off vectors */