Browse Source

libata: Use Maximum Write Same Length to report discard size limit

Previously we used Maximum Unmap LBA Count in the Block Limits VPD to
signal the maximum number of sectors we could handle in a single Write
Same command.

Starting with SBC3r26 the Block Limits VPD has an explicit limit on the
number of blocks in a Write Same. This means we can stop abusing a field
related to the Unmap command and let our SAT use the proper value in the
VPD (Maximum Write Same Length).

Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
Cc: stable@kernel.org
Martin K. Petersen 14 years ago
parent
commit
5f4e206666
1 changed files with 1 additions and 1 deletions
  1. 1 1
      drivers/ata/libata-scsi.c

+ 1 - 1
drivers/ata/libata-scsi.c

@@ -2138,7 +2138,7 @@ static unsigned int ata_scsiop_inq_b0(struct ata_scsi_args *args, u8 *rbuf)
 	 * with the unmap bit set.
 	 * with the unmap bit set.
 	 */
 	 */
 	if (ata_id_has_trim(args->id)) {
 	if (ata_id_has_trim(args->id)) {
-		put_unaligned_be32(65535 * 512 / 8, &rbuf[20]);
+		put_unaligned_be64(65535 * 512 / 8, &rbuf[36]);
 		put_unaligned_be32(1, &rbuf[28]);
 		put_unaligned_be32(1, &rbuf[28]);
 	}
 	}