From 5704133a23c06ddcfc0d286a97b45e15e86113da Mon Sep 17 00:00:00 2001 From: Michal Simek Date: Mon, 2 Jan 2017 09:40:09 +0100 Subject: [PATCH] scsi: dm: Unbind all scsi based block devices before new scan New scan should unbind all block devices not to be listed again. Without this patch if scsi reset or scan is called new block devices are created which point to the same id and lun. For example: ZynqMP> scsi scan scsi_scan: if_type=2, devnum=0: sdhci@ff170000.blk, 6, 0 scsi_scan: if_type=2, devnum=0: ahci@fd0c0000.id1lun0, 2, 0 scsi_scan: if_type=2, devnum=0: ahci@fd0c0000.id1lun0, 2, 1 scsi_scan: if_type=2, devnum=0: ahci@fd0c0000.id1lun0, 2, 2 scsi_scan: if_type=2, devnum=0: ahci@fd0c0000.id1lun0, 2, 3 scsi_scan: if_type=2, devnum=0: ahci@fd0c0000.id1lun0, 2, 4 scanning bus for devices... Device 0: (1:0) Vendor: ATA Prod.: KINGSTON SVP200S Rev: 501A Type: Hard Disk Capacity: 57241.8 MB = 55.9 GB (117231408 x 512) Reported-by: Ken Ma Signed-off-by: Michal Simek Acked-by: Simon Glass --- common/scsi.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/common/scsi.c b/common/scsi.c index e7efa5ae797..fb5b407f6b1 100644 --- a/common/scsi.c +++ b/common/scsi.c @@ -559,6 +559,8 @@ int scsi_scan(int mode) if (mode == 1) printf("scanning bus for devices...\n"); + blk_unbind_all(IF_TYPE_SCSI); + ret = uclass_get(UCLASS_SCSI, &uc); if (ret) return ret; -- 2.47.3