libata-scsi: reject WRITE SAME (16) with n_block that exceeds limit
authorTom Yan <tom.ty89@gmail.com>
Tue, 12 Jul 2016 20:31:22 +0000 (04:31 +0800)
committerTejun Heo <tj@kernel.org>
Tue, 12 Jul 2016 20:37:13 +0000 (16:37 -0400)
commit5c79097a28c2525740dd9e4470676ec9d25bee45
tree438017e16c167c249e87bd4e068ee6e80392be64
parentf086b7489a4ced0067ed39766146b60ff1fe4b9d
libata-scsi: reject WRITE SAME (16) with n_block that exceeds limit

Currently if a WRITE SAME (16) command is issued to the SATL with
"number of blocks" that is larger than the "Maximum write same length"
(which is the maximum number of blocks per TRIM command allowed in
libata, currently 65535 * 512 / 8 blocks), the SATL will accept the
command and translate it to a TRIM command with the upper limit.

However, according to SBC (as of sbc4r11.pdf), the "device server"
should terminate the command with "Invalid field in CDB" in that case.

Signed-off-by: Tom Yan <tom.ty89@gmail.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
drivers/ata/libata-scsi.c