diff mbox series

scsi: qla2xxx: Fix qla2x00_request_irqs() for MSI

Message ID 1574314847-14280-1-git-send-email-chenhc@lemote.com (mailing list archive)
State Mainlined
Commit 45dc8f2d9c94ed74a5e31e63e9136a19a7e16081
Headers show
Series scsi: qla2xxx: Fix qla2x00_request_irqs() for MSI | expand

Commit Message

Huacai Chen Nov. 21, 2019, 5:40 a.m. UTC
Commit 4fa183455988adaa ("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 confusing.

Fixes: 4fa183455988adaa ("scsi: qla2xxx: Utilize pci_alloc_irq_vectors/pci_free_irq_vectors calls.")
Cc: Michael Hernandez <michael.hernandez@cavium.com>
Signed-off-by: Huacai Chen <chenhc@lemote.com>
---
 drivers/scsi/qla2xxx/qla_isr.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Himanshu Madhani Nov. 22, 2019, 4:06 p.m. UTC | #1
On 11/20/19, 11:37 PM, "Huacai Chen" <chenhuacai@gmail.com on behalf of chenhc@lemote.com> wrote:

    External Email
    
    ----------------------------------------------------------------------
    Commit 4fa183455988adaa ("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 confusing.
    
    Fixes: 4fa183455988adaa ("scsi: qla2xxx: Utilize pci_alloc_irq_vectors/pci_free_irq_vectors calls.")
    Cc: Michael Hernandez <michael.hernandez@cavium.com>
    Signed-off-by: Huacai Chen <chenhc@lemote.com>
    ---
     drivers/scsi/qla2xxx/qla_isr.c | 6 +++---
     1 file changed, 3 insertions(+), 3 deletions(-)
    
    diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c
    index 4c26630..c0568c6 100644
    --- a/drivers/scsi/qla2xxx/qla_isr.c
    +++ b/drivers/scsi/qla2xxx/qla_isr.c
    @@ -3626,7 +3626,7 @@ qla2x00_request_irqs(struct qla_hw_data *ha, struct rsp_que *rsp)
     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) &&
    @@ -3634,13 +3634,13 @@ qla2x00_request_irqs(struct qla_hw_data *ha, struct rsp_que *rsp)
     		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. */
    -- 
    2.7.0
    
   
 Looks Good. 

Acked-by: Himanshu Madhani <hmadhani@marvell.com>
Martin K. Petersen Nov. 27, 2019, 2:39 a.m. UTC | #2
Huacai,

> Commit 4fa183455988adaa ("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.

Applied to 5.5/scsi-queue, thanks!
diff mbox series

Patch

diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c
index 4c26630..c0568c6 100644
--- a/drivers/scsi/qla2xxx/qla_isr.c
+++ b/drivers/scsi/qla2xxx/qla_isr.c
@@ -3626,7 +3626,7 @@  qla2x00_request_irqs(struct qla_hw_data *ha, struct rsp_que *rsp)
 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) &&
@@ -3634,13 +3634,13 @@  qla2x00_request_irqs(struct qla_hw_data *ha, struct rsp_que *rsp)
 		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. */