]> 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:11:46 +0000 (13:11 +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 a6ecb4bb7456099c4e749924cfd80f86b1e187df..f35a53cc00dd31f56ef17c74f38eaec53158854b 100644 (file)
@@ -3288,13 +3288,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++)