scsi: libsas: add lun number check in .slave_alloc callback
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:Wu Bo <wubo40@huawei.com> Suggested-by:
John Garry <john.garry@huawei.com> Signed-off-by:
Yufen Yu <yuyufen@huawei.com> Reviewed-by:
Jason Yan <yanaijie@huawei.com> Signed-off-by:
Yang Yingliang <yangyingliang@huawei.com>
Showing
- drivers/scsi/aic94xx/aic94xx_init.c 1 addition, 0 deletionsdrivers/scsi/aic94xx/aic94xx_init.c
- drivers/scsi/hisi_sas/hisi_sas_v1_hw.c 1 addition, 0 deletionsdrivers/scsi/hisi_sas/hisi_sas_v1_hw.c
- drivers/scsi/hisi_sas/hisi_sas_v2_hw.c 1 addition, 0 deletionsdrivers/scsi/hisi_sas/hisi_sas_v2_hw.c
- drivers/scsi/hisi_sas/hisi_sas_v3_hw.c 1 addition, 0 deletionsdrivers/scsi/hisi_sas/hisi_sas_v3_hw.c
- drivers/scsi/isci/init.c 1 addition, 0 deletionsdrivers/scsi/isci/init.c
- drivers/scsi/libsas/sas_scsi_host.c 9 additions, 0 deletionsdrivers/scsi/libsas/sas_scsi_host.c
- drivers/scsi/mvsas/mv_init.c 1 addition, 0 deletionsdrivers/scsi/mvsas/mv_init.c
- drivers/scsi/pm8001/pm8001_init.c 1 addition, 0 deletionsdrivers/scsi/pm8001/pm8001_init.c
Please register or sign in to comment