FAILED: patch "[PATCH] scsi: qla2xxx: Fix 64G link speed reporting in get_data_rate" failed to apply to 6.1-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 6.1-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-6.1.y
git checkout FETCH_HEAD
git cherry-pick -x 52fba32317ee631faa878725b2f7cd5c08acacd3
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '2026090959-mutate-gully-6c1e@gregkh' --subject-prefix 'PATCH 6.1.y' 'HEAD^..'
Possible dependencies:
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 52fba32317ee631faa878725b2f7cd5c08acacd3 Mon Sep 17 00:00:00 2001
From: Nilesh Javali <[email protected]>
Date: Thu, 23 Jul 2026 10:34:02 +0530
Subject: [PATCH] scsi: qla2xxx: Fix 64G link speed reporting in get_data_rate
qla2x00_get_data_rate() skips updating ha->link_data_rate when the firmware returns mcp->mb[1] == 0x7. That value was a legacy sentinel from before 64G hardware existed, but PORT_SPEED_64GB is now defined as 0x07 and ha->link_data_rate is decoded with the PORT_SPEED_* encoding. On a 64G-capable adapter a genuine 64G link is therefore dropped, and the port speed is misreported (port_speed sysfs, fc_host speed, FDMI).
Only 28xx and 29xx support 64G, so accept 0x07 on those adapters while keeping the legacy filter for older ones. Also drop the duplicate copy of the check at the end of the success branch; it repeated the first assignment with no intervening change.
drivers/scsi/qla2xxx/qla_mbx.c +3 -4
@@ -5785,10 +5785,11 @@ qla2x00_get_data_rate(scsi_qla_host_t *vha)ql_dbg (ql_dbg_mbx, vha,0x1107 ,"Failed=%x mb[0]=%x.\n" , rval, mcp->mb[0 ]); }else { -if (mcp->mb[1 ] !=0x7 ) +if (mcp->mb[1 ] !=0x7 ||IS_QLA28XX (ha) ||IS_QLA29XX (ha)) ha->link_data_rate = mcp->mb[1 ]; -if (IS_QLA83XX (ha) ||IS_QLA27XX (ha) ||IS_QLA28XX (ha) ||IS_QLA29XX (ha)) { +if (IS_QLA83XX (ha) ||IS_QLA27XX (ha) ||IS_QLA28XX (ha) || +IS_QLA29XX (ha)) {if (mcp->mb[4 ] &BIT_0 )ql_log (ql_log_info, vha,0x11a2 ,"FEC=enabled (data rate).\n" );
@@ -5796,8 +5797,6 @@ qla2x00_get_data_rate(scsi_qla_host_t *vha)ql_dbg (ql_dbg_mbx + ql_dbg_verbose, vha,0x1108 ,"Done %s.\n" , __func__); -if (mcp->mb[1 ] !=0x7 ) - ha->link_data_rate = mcp->mb[1 ]; }return rval;
Sasha Levin
maintainerPATCH 1/1 scsi: qla2xxx: Fix 64G link speed reporting in get_data_rate
From: Nilesh Javali <[email protected]>
[ Upstream commit 52fba32317ee631faa878725b2f7cd5c08acacd3 ]
qla2x00_get_data_rate() skips updating ha->link_data_rate when the firmware returns mcp->mb[1] == 0x7. That value was a legacy sentinel from before 64G hardware existed, but PORT_SPEED_64GB is now defined as 0x07 and ha->link_data_rate is decoded with the PORT_SPEED_* encoding. On a 64G-capable adapter a genuine 64G link is therefore dropped, and the port speed is misreported (port_speed sysfs, fc_host speed, FDMI).
Only 28xx and 29xx support 64G, so accept 0x07 on those adapters while keeping the legacy filter for older ones. Also drop the duplicate copy of the check at the end of the success branch; it repeated the first assignment with no intervening change.
--- drivers/scsi/qla2xxx/qla_mbx.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)
drivers/scsi/qla2xxx/qla_mbx.c +1 -3
@@ -5649,7 +5649,7 @@ qla2x00_get_data_rate(scsi_qla_host_t *vha)ql_dbg (ql_dbg_mbx, vha,0x1107 ,"Failed=%x mb[0]=%x.\n" , rval, mcp->mb[0 ]); }else { -if (mcp->mb[1 ] !=0x7 ) +if (mcp->mb[1 ] !=0x7 ||IS_QLA28XX (ha)) ha->link_data_rate = mcp->mb[1 ];if (IS_QLA83XX (ha) ||IS_QLA27XX (ha) ||IS_QLA28XX (ha)) {
@@ -5660,8 +5660,6 @@ qla2x00_get_data_rate(scsi_qla_host_t *vha)ql_dbg (ql_dbg_mbx + ql_dbg_verbose, vha,0x1108 ,"Done %s.\n" , __func__); -if (mcp->mb[1 ] !=0x7 ) - ha->link_data_rate = mcp->mb[1 ]; }return rval;
Signature · 1 line
2.53.0