]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
scsi: qla2xxx: Reinstate module parameter ql2xenablemsix
authorHimanshu Madhani <himanshu.madhani@cavium.com>
Fri, 13 Oct 2017 16:34:03 +0000 (09:34 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 17 Oct 2017 02:54:29 +0000 (22:54 -0400)
[mkp: fixed whitespace]

Signed-off-by: Himanshu Madhani <himanshu.madhani@cavium.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/qla2xxx/qla_gbl.h
drivers/scsi/qla2xxx/qla_isr.c
drivers/scsi/qla2xxx/qla_os.c

index f852ca60c49fd182192efaeb6853bf5c379f015c..46c7822c20fc704a00364f25fd92fcc41670518a 100644 (file)
@@ -145,6 +145,7 @@ extern int ql2xmvasynctoatio;
 extern int ql2xuctrlirq;
 extern int ql2xnvmeenable;
 extern int ql2xautodetectsfp;
+extern int ql2xenablemsix;
 
 extern int qla2x00_loop_reset(scsi_qla_host_t *);
 extern void qla2x00_abort_all_cmds(scsi_qla_host_t *, int);
index 9d9668aac6f6c479144a73428fac6049c5a9ac09..ef7afd5eefe30cd0e1f5a5e9ac51132947193bae 100644 (file)
@@ -3486,11 +3486,14 @@ qla2x00_request_irqs(struct qla_hw_data *ha, struct rsp_que *rsp)
        scsi_qla_host_t *vha = pci_get_drvdata(ha->pdev);
 
        /* If possible, enable MSI-X. */
-       if (!IS_QLA2432(ha) && !IS_QLA2532(ha) && !IS_QLA8432(ha) &&
-           !IS_CNA_CAPABLE(ha) && !IS_QLA2031(ha) && !IS_QLAFX00(ha) &&
-           !IS_QLA27XX(ha))
+       if (ql2xenablemsix == 0 || (!IS_QLA2432(ha) && !IS_QLA2532(ha) &&
+           !IS_QLA8432(ha) && !IS_CNA_CAPABLE(ha) && !IS_QLA2031(ha) &&
+           !IS_QLAFX00(ha) && !IS_QLA27XX(ha)))
                goto skip_msi;
 
+       if (ql2xenablemsix == 2)
+               goto skip_msix;
+
        if (ha->pdev->subsystem_vendor == PCI_VENDOR_ID_HP &&
                (ha->pdev->subsystem_device == 0x7040 ||
                ha->pdev->subsystem_device == 0x7041 ||
index 5b2437a5ea440a5d3a6836115bcf444595d8f7ef..84874e6b36def3569cf6b0b00ef7b8a3715a3f0e 100644 (file)
@@ -268,6 +268,15 @@ MODULE_PARM_DESC(ql2xautodetectsfp,
                 "Detect SFP range and set appropriate distance.\n"
                 "1 (Default): Enable\n");
 
+int ql2xenablemsix = 1;
+module_param(ql2xenablemsix, int, 0444);
+MODULE_PARM_DESC(ql2xenablemsix,
+                "Set to enable MSI or MSI-X interrupt mechanism.\n"
+                " Default is 1, enable MSI-X interrupt mechanism.\n"
+                " 0 -- enable traditional pin-based mechanism.\n"
+                " 1 -- enable MSI-X interrupt mechanism.\n"
+                " 2 -- enable MSI interrupt mechanism.\n");
+
 /*
  * SCSI host template entry points
  */