]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
scsi: qla2xxx: Fix initiator mode with qlini_mode=exclusive
authorTony Battersby <tonyb@cybernetics.com>
Mon, 10 Nov 2025 15:48:45 +0000 (10:48 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 19 Jan 2026 12:09:47 +0000 (13:09 +0100)
[ Upstream commit 8f58fc64d559b5fda1b0a5e2a71422be61e79ab9 ]

When given the module parameter qlini_mode=exclusive, qla2xxx in
initiator mode is initially unable to successfully send SCSI commands to
devices it finds while scanning, resulting in an escalating series of
resets until an adapter reset clears the issue.  Fix by checking the
active mode instead of the module parameter.

Signed-off-by: Tony Battersby <tonyb@cybernetics.com>
Link: https://patch.msgid.link/1715ec14-ba9a-45dc-9cf2-d41aa6b81b5e@cybernetics.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/scsi/qla2xxx/qla_os.c

index 9267e7e734789c92d04367e6b3c05cc3e1f392f7..97a1aeb07947bd32f1d19e76c599b0cab501c925 100644 (file)
@@ -3425,13 +3425,7 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
            base_vha->mgmt_svr_loop_id, host->sg_tablesize);
 
        if (ha->mqenable) {
-               bool startit = false;
-
-               if (QLA_TGT_MODE_ENABLED())
-                       startit = false;
-
-               if (ql2x_ini_mode == QLA2XXX_INI_MODE_ENABLED)
-                       startit = true;
+               bool startit = !!(host->active_mode & MODE_INITIATOR);
 
                /* Create start of day qpairs for Block MQ */
                for (i = 0; i < ha->max_qpairs; i++)