lkml.org 
[lkml]   [2013]   [Oct]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH RFC 42/77] lpfc: Update MSI/MSI-X interrupts enablement code
    Date
    As result of recent re-design of the MSI/MSI-X interrupts enabling
    pattern this driver has to be updated to use the new technique to
    obtain a optimal number of MSI/MSI-X interrupts required.

    Note, in case just one MSI-X vector was available the
    error message "0484 PCI enable MSI-X failed 1" is
    preserved to not break tools which might depend on it.

    Also, not sure why in case of multiple MSI-Xs mode failed
    the driver skips the single MSI-X mode and falls back to
    single MSI mode.

    Signed-off-by: Alexander Gordeev <agordeev@redhat.com>
    ---
    drivers/scsi/lpfc/lpfc_init.c | 18 +++++++++++-------
    1 files changed, 11 insertions(+), 7 deletions(-)

    diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c
    index 0803b84..d83a1a3 100644
    --- a/drivers/scsi/lpfc/lpfc_init.c
    +++ b/drivers/scsi/lpfc/lpfc_init.c
    @@ -8639,13 +8639,17 @@ lpfc_sli4_enable_msix(struct lpfc_hba *phba)

    /* Configure MSI-X capability structure */
    vectors = phba->cfg_fcp_io_channel;
    -enable_msix_vectors:
    - rc = pci_enable_msix(phba->pcidev, phba->sli4_hba.msix_entries,
    - vectors);
    - if (rc > 1) {
    - vectors = rc;
    - goto enable_msix_vectors;
    - } else if (rc) {
    +
    + rc = pci_msix_table_size(phba->pcidev);
    + if (rc < 0)
    + goto msg_fail_out;
    +
    + vectors = min(vectors, rc);
    + if (vectors > 1)
    + rc = pci_enable_msix(phba->pcidev, phba->sli4_hba.msix_entries,
    + vectors);
    + if (rc) {
    +msg_fail_out:
    lpfc_printf_log(phba, KERN_INFO, LOG_INIT,
    "0484 PCI enable MSI-X failed (%d)\n", rc);
    goto vec_fail_out;
    --
    1.7.7.6


    \
     
     \ /
      Last update: 2013-10-02 20:41    [W:4.194 / U:1.392 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site