Re: [PATCH v2] scsi: libsas: add lun number check in .slave_alloc callback

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




在 2021/6/9 17:40, John Garry 写道:
On 09/06/2021 10:36, Yufen Yu wrote:
We found that offline a ata device on hisi sas control and then
scanning the host can probe 255 not exist devices into system.
It can be reproduced easily as following:

Some ata devices on hisi sas v3 control:
   [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 not exist 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 2fc62e2ac350
("[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@xxxxxxxxxx>
Suggested-by: John Garry <john.garry@xxxxxxxxxx>
Signed-off-by: Yufen Yu <yuyufen@xxxxxxxxxx>
---
  drivers/scsi/aic94xx/aic94xx_init.c    | 1 +
  drivers/scsi/hisi_sas/hisi_sas_v1_hw.c | 1 +
  drivers/scsi/hisi_sas/hisi_sas_v2_hw.c | 1 +
  drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 1 +
  drivers/scsi/isci/init.c               | 1 +
  drivers/scsi/libsas/sas_scsi_host.c    | 9 +++++++++
  drivers/scsi/mvsas/mv_init.c           | 1 +
  drivers/scsi/pm8001/pm8001_init.c      | 1 +

Do we also need to modify aix79xx in a similar fashion?

I just noticed that libsas.h already has a prototype for sas_slave_alloc() - any idea why?

sas_slave_alloc() was implemented in the history and it was removed in this commit: 9508a66f898d. And it seems the prototype was left over since then.



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux