lkml.org 
[lkml]   [2014]   [Aug]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v3 02/13] hpsa: Use pci_enable_msix_range() instead of pci_enable_msix()
    Date
    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>
    Acked-by: "Stephen M. Cameron" <scameron@beardog.cce.hp.com>
    Cc: iss_storagedev@hp.com
    Cc: linux-scsi@vger.kernel.org
    Cc: linux-pci@vger.kernel.org
    ---
    drivers/scsi/hpsa.c | 27 ++++++++++++---------------
    1 file changed, 12 insertions(+), 15 deletions(-)

    diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c
    index a9c4c9f..8c17c43 100644
    --- a/drivers/scsi/hpsa.c
    +++ b/drivers/scsi/hpsa.c
    @@ -6159,25 +6159,22 @@ static void hpsa_interrupt_mode(struct ctlr_info *h)
    h->msix_vector = MAX_REPLY_QUEUES;
    if (h->msix_vector > num_online_cpus())
    h->msix_vector = num_online_cpus();
    - 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, h->msix_vector);
    + 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 < h->msix_vector) {
    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.9.3


    \
     
     \ /
      Last update: 2014-08-18 11:21    [W:4.274 / U:0.064 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site