lkml.org 
[lkml]   [2020]   [Jan]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 61/65] scsi: qla2xxx: Fix qla2x00_request_irqs() for MSI
    Date
    From: Huacai Chen <chenhc@lemote.com>

    commit 45dc8f2d9c94ed74a5e31e63e9136a19a7e16081 upstream.

    Commit 4fa183455988 ("scsi: qla2xxx: Utilize pci_alloc_irq_vectors/
    pci_free_irq_vectors calls.") use pci_alloc_irq_vectors() to replace
    pci_enable_msi() but it didn't handle the return value correctly. This bug
    make qla2x00 always fail to setup MSI if MSI-X fail, so fix it.

    BTW, improve the log message of return value in qla2x00_request_irqs() to
    avoid confusion.

    Fixes: 4fa183455988 ("scsi: qla2xxx: Utilize pci_alloc_irq_vectors/pci_free_irq_vectors calls.")
    Cc: Michael Hernandez <michael.hernandez@cavium.com>
    Link: https://lore.kernel.org/r/1574314847-14280-1-git-send-email-chenhc@lemote.com
    Signed-off-by: Huacai Chen <chenhc@lemote.com>
    Acked-by: Himanshu Madhani <hmadhani@marvell.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/scsi/qla2xxx/qla_isr.c | 6 +++---
    1 file changed, 3 insertions(+), 3 deletions(-)

    --- a/drivers/scsi/qla2xxx/qla_isr.c
    +++ b/drivers/scsi/qla2xxx/qla_isr.c
    @@ -3519,7 +3519,7 @@ qla2x00_request_irqs(struct qla_hw_data
    skip_msix:

    ql_log(ql_log_info, vha, 0x0037,
    - "Falling back-to MSI mode -%d.\n", ret);
    + "Falling back-to MSI mode -- ret=%d.\n", ret);

    if (!IS_QLA24XX(ha) && !IS_QLA2532(ha) && !IS_QLA8432(ha) &&
    !IS_QLA8001(ha) && !IS_P3P_TYPE(ha) && !IS_QLAFX00(ha) &&
    @@ -3527,13 +3527,13 @@ skip_msix:
    goto skip_msi;

    ret = pci_alloc_irq_vectors(ha->pdev, 1, 1, PCI_IRQ_MSI);
    - if (!ret) {
    + if (ret > 0) {
    ql_dbg(ql_dbg_init, vha, 0x0038,
    "MSI: Enabled.\n");
    ha->flags.msi_enabled = 1;
    } else
    ql_log(ql_log_warn, vha, 0x0039,
    - "Falling back-to INTa mode -- %d.\n", ret);
    + "Falling back-to INTa mode -- ret=%d.\n", ret);
    skip_msi:

    /* Skip INTx on ISP82xx. */

    \
     
     \ /
      Last update: 2020-01-22 10:40    [W:2.304 / U:0.152 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site