]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
scsi: scsi_transport_sas: Fix the maximum channel scanning issue
authorYihang Li <liyihang9@huawei.com>
Tue, 17 Mar 2026 06:31:47 +0000 (14:31 +0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Fri, 20 Mar 2026 01:57:22 +0000 (21:57 -0400)
After commit 37c4e72b0651 ("scsi: Fix sas_user_scan() to handle wildcard
and multi-channel scans"), if the device supports multiple channels (0 to
shost->max_channel), user_scan() invokes updated sas_user_scan() to perform
the scan behavior for a specific transfer.  However, when the user
specifies shost->max_channel, it will return -EINVAL, which is not
expected.

Fix and support specifying the scan shost->max_channel for scanning.

Fixes: 37c4e72b0651 ("scsi: Fix sas_user_scan() to handle wildcard and multi-channel scans")
Signed-off-by: Yihang Li <liyihang9@huawei.com>
Reviewed-by: John Garry <john.g.garry@oracle.com>
Link: https://patch.msgid.link/20260317063147.2182562-1-liyihang9@huawei.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/scsi_transport_sas.c

index 12124f9d5ccd0acbdb4b001d7c2e846974caa2f5..13412702188e442d4f7ed15fc07520169991106d 100644 (file)
@@ -1734,7 +1734,7 @@ static int sas_user_scan(struct Scsi_Host *shost, uint channel,
                break;
 
        default:
-               if (channel < shost->max_channel) {
+               if (channel <= shost->max_channel) {
                        res = scsi_scan_host_selected(shost, channel, id, lun,
                                                      SCSI_SCAN_MANUAL);
                } else {