• Y
    scsi: libsas: add lun number check in .slave_alloc callback · 785c2a06
    Yufen Yu 提交于
    hulk inclusion
    category: bugfix
    bugzilla: 51878
    CVE: NA
    
    -------------------------------------------------
    
    We found that offline a sata device on hisi sas control and then
    scanning the host can probe 255 non-existent devices into system.
    
    [root@localhost ~]# lsscsi
      [2:0:0:0]    disk    ATA      Samsung SSD 860  2B6Q  /dev/sda
      [2:0:1:0]    disk    ATA      WDC WD2003FYYS-3 1D01  /dev/sdb
      [2:0:2:0]    disk    SEAGATE  ST600MM0006      B001  /dev/sdc
    
     1) echo "offline" > /sys/block/sdb/device/state
     2) echo "- - -" > /sys/class/scsi_host/host2/scan
    
    Then, we can see another 255 non-existent devices in system:
      [root@localhost ~]# lsscsi
      [2:0:0:0]    disk    ATA      Samsung SSD 860  2B6Q  /dev/sda
      [2:0:1:0]    disk    ATA      WDC WD2003FYYS-3 1D01  /dev/sdb
      [2:0:1:1]    disk    ATA      WDC WD2003FYYS-3 1D01  /dev/sdh
      ...
      [2:0:1:255]  disk    ATA      WDC WD2003FYYS-3 1D01  /dev/sdjb
    
    After REPORT LUN command issued to the offline device fail, it tries
    to do a sequential scan and probe all devices whose lun is not 0
    successfully.
    
    To fix the problem, we try to do same things as commit 2fc62e2a
    ("[SCSI] libsas: disable scanning lun > 0 on ata devices"), which
    will prevent the device whose lun number is not zero probe into system.
    Reported-by: NWu Bo <wubo40@huawei.com>
    Suggested-by: NJohn Garry <john.garry@huawei.com>
    Signed-off-by: NYufen Yu <yuyufen@huawei.com>
    Reviewed-by: NJason Yan <yanaijie@huawei.com>
    Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
    785c2a06
sas_scsi_host.c 25.3 KB