summaryrefslogtreecommitdiffstats
path: root/sys/dev
diff options
context:
space:
mode:
authorjimharris <jimharris@FreeBSD.org>2012-03-29 15:43:07 +0000
committerjimharris <jimharris@FreeBSD.org>2012-03-29 15:43:07 +0000
commitc5537d1e1c9e449bef1c2442e941758f27d9bca9 (patch)
tree81583bd484124001408252be650002a56cf62155 /sys/dev
parent6749f469aac0289072185f7a673279706ef32e3a (diff)
downloadFreeBSD-src-c5537d1e1c9e449bef1c2442e941758f27d9bca9.zip
FreeBSD-src-c5537d1e1c9e449bef1c2442e941758f27d9bca9.tar.gz
Fix bug where isci(4) would report only 15 bytes of returned data on a
READ_CAP_16 command to a SATA target. Sponsored by: Intel Reviewed by: sbruno Approved by: sbruno MFC after: 3 days
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/isci/scil/sati_read_capacity.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/dev/isci/scil/sati_read_capacity.c b/sys/dev/isci/scil/sati_read_capacity.c
index 6a73374..7607e3a 100644
--- a/sys/dev/isci/scil/sati_read_capacity.c
+++ b/sys/dev/isci/scil/sati_read_capacity.c
@@ -308,6 +308,10 @@ void sati_read_capacity_16_translate_data(
sati_set_data_byte(sequence, scsi_io, 10, (U8)((sector_size >> 8) & 0xFF));
sati_set_data_byte(sequence, scsi_io, 11, (U8)(sector_size & 0xFF));
+ //Explicitly set byte 12 to 0. SATI requires that all bytes in the data
+ //response be explicitly set to some value.
+ sati_set_data_byte(sequence, scsi_io, 12, 0);
+
//Check Bit 13 of ATA_IDENTIFY_DEVICE_DATA physical_logical_sector_info
//(Word 106) is enabled
physical_per_logical_enable_bit = (identify_device_data->physical_logical_sector_info
OpenPOWER on IntegriCloud