On Sat, 2017-06-24 at 01:50 +0900, Minwoo Im wrote: > On Thu, Jun 22, 2017 at 3:52 AM, Bart Van Assche <Bart.VanAssche@xxxxxxx> wrote: > > > @@ -4385,7 +4463,12 @@ int ata_scsi_add_hosts(struct ata_host *host, struct scsi_host_template *sht) > > > shost->max_id = 16; > > > shost->max_lun = 1; > > > shost->max_channel = 1; > > > - shost->max_cmd_len = 16; > > > + /* > > > + * SPC-3, SPC-4: Definition of CDB > > > + * A CDB may have a fixed length of up to 16 bytes or > > > + * variable length of between 12 and 260 bytes. > > > + */ > > > + shost->max_cmd_len = 260; > > > > Does ATA pass-through really support 260-byte CDBs or is the maximum CDB length > > that is supported by ATA_32 perhaps 32 bytes? > > Here's my opinion about your question. > In perspective of SCSI host, I guess the max cmd len should be 260 bytes. > Because SPC says that, in case of variable-length command, it could be > from 12 to 260 bytes. > That's why I have applied 260 value to max_cmd_len of scsi host. > Please feel free to give any opinions about it. Hello Minwoo, Table 172 in document sat4r06.pdf shows that the CDB of the ATA PASS-THROUGH (32) command is exactly 32 bytes long. My conclusion from analyzing __ata_scsi_queuecmd() is that the current version of that function does not support CDBs of more than 16 bytes. Since your patch adds support for a single command with 32-byte CDB I am convinced that max_cmd_len should be set to 32 in ata_scsi_add_hosts(). Bart.