Re: [PATCH] [RFC PATCH] scsi: scan: map PQ=1, PDT=other values to SCSI_SCAN_TARGET_PRESENT

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

 




> On Apr 12, 2019, at 23:07, Bart Van Assche <bvanassche@xxxxxxx> wrote:
> 
> On Fri, 2019-04-12 at 17:07 +-0800, Li Zhong wrote:
>> commit 84961f28e9d1 ("[SCSI] Don't add scsi_device for devices that
>> return PQ=1, PDT=0x1f") returns SCSI_SCAN_TARGET_PRESENT if inquiry returns
>> PQ=1, and PDT = 0x1f. However, from the scsi spec, it seemed setting PQ=1,
>> and PDT to the type it is capable to support, can also mean the device
>> is not connected. E.g. we see an IBM/2145 returns PQ=1 and PDT=0
>> for a non mapped lun (details attached at the end).
>> 
>> This patch changes the check condition a bit, so the check don't require
>> PTD to be 0x1f when PQ=1.
>> 
>> $ echo 0 0 1 > /sys/class/scsi_host/host1/scan
>> [ 2483.722186] scsi 1:0:0:1: scsi scan: INQUIRY pass 1 length 36
>> [ 2483.725687] scsi 1:0:0:1: scsi scan: INQUIRY successful with code 0x0
>> [ 2483.729171] scsi 1:0:0:1: scsi scan: INQUIRY pass 2 length 109
>> [ 2483.732481] scsi 1:0:0:1: scsi scan: INQUIRY successful with code 0x0
>> [ 2483.735911] scsi 1:0:0:1: Direct-Access     IBM      2145             0000 PQ: 1 ANSI: 6
>> [ 2483.741282] scsi 1:0:0:1: Attached scsi generic sg2 type 0
>> 
>> $ tail /proc/scsi/scsi
>> Attached devices:
>> Host: scsi1 Channel: 00 Id: 00 Lun: 00
>>  Vendor: IBM      Model: 2145             Rev: 0000
>>  Type:   Direct-Access                    ANSI  SCSI revision: 06
>> Host: scsi0 Channel: 00 Id: 00 Lun: 00
>>  Vendor: IBM      Model: 2145             Rev: 0000
>>  Type:   Direct-Access                    ANSI  SCSI revision: 06
>> Host: scsi1 Channel: 00 Id: 00 Lun: 01
>>  Vendor: IBM      Model: 2145             Rev: 0000
>>  Type:   Direct-Access                    ANSI  SCSI revision: 06
>> 
>> $ lsscsi
>> [0:0:0:0]    disk    IBM      2145             0000  /dev/sdb
>> [1:0:0:0]    disk    IBM      2145             0000  /dev/sda
>> [1:0:0:1]    disk    IBM      2145             0000  -
>> 
>> Signed-off-by: Li Zhong <lizhongfs@xxxxxxxxx>
>> ---
>> drivers/scsi/scsi_scan.c | 4 ++1filechanged2insertions(), 2 deletions(-)
>> 
>> diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c
>> index 53380e07b40e..eb72644e7915 100644
>> --- a/drivers/scsi/scsi_scan.c
>> +++b/drivers/scsi/scsiscanc11438+11438static int scsi_probe_and_add_lun(struct scsi_target *starget,
>> 	 * PDT=00h Direct-access device (floppy)
>> 	 * PDT=1Fh none (no FDD connected to the requested logical unit)
>> 	 */
>> -	if (((result[0] >> 5) == 1 || starget->pdt_1f_for_no_lun) &&
>> -	    (result[0] & 0x1f) == 0x1f &&
>> 	if (((result[0] >> 5) == 1 ||
>> 	    (starget->pdt_1f_for_no_lun && (result[0] & 0x1f) == 0x1f)) &&
>> 	    !scsi_is_wlun(lun)) {
>> 		SCSI_LOG_SCAN_BUS(3, sdev_printk(KERN_INFO, sdev,
>> 					"scsi scan: peripheral device type"
> 
> Should the comment above that if-statement be updated?

Thank you for the review. Will add it to the comments in v2. 

Thanks, Zhong
> 
> Thanks,
> 
> Bart.





[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