From 2eee8e26162d239f87644fcc3aea40ee4c005f34 Mon Sep 17 00:00:00 2001
From: dpgilbert <dpgilbert@4ea69e1a-61f1-4043-bf83-b5c94c648137>
Date: Sun, 2 Aug 2009 16:09:37 +0000
Subject: [PATCH] SAT-2: bad things on the horizon

git-svn-id: https://smartmontools.svn.sourceforge.net/svnroot/smartmontools/trunk@2869 4ea69e1a-61f1-4043-bf83-b5c94c648137
---
 smartmontools/CHANGELOG   |  4 ++++
 smartmontools/scsiata.cpp | 11 +++++++++++
 2 files changed, 15 insertions(+)

diff --git a/smartmontools/CHANGELOG b/smartmontools/CHANGELOG
index 682a6f405..4e77d866a 100644
--- a/smartmontools/CHANGELOG
+++ b/smartmontools/CHANGELOG
@@ -42,6 +42,10 @@ NOTES FOR FUTURE RELEASES: see TODO file.
 
 <DEVELOPERS: ADDITIONS TO THE CHANGE LOG GO JUST BELOW HERE, PLEASE>
 
+  [DG] [SAT] Heads up about a non backwardly compatible change
+       introduced in draft SAT-2 (sat2r8b.pdf) that will break our
+       existing SAT processing code. Action needed if change stands.
+
   [MS] smartd.cpp: Adjust umask
 
   [CF] Makefile.am: Remove 'uninstall-docsDATA' target to fix
diff --git a/smartmontools/scsiata.cpp b/smartmontools/scsiata.cpp
index d555540ec..88913f626 100644
--- a/smartmontools/scsiata.cpp
+++ b/smartmontools/scsiata.cpp
@@ -22,6 +22,16 @@
  * ATA PASS THROUGH SCSI (16) and ATA PASS THROUGH SCSI (12) defined in
  * section 12 of that document.
  *
+ * sat-r09.pdf is the most recent, easily accessible draft prior to the
+ * original SAT standard (ANSI INCITS 431-2007). By mid-2009 the second
+ * version of the SAT standard (SAT-2) is nearing standardization. In
+ * their wisdom an incompatible change has been introduced in draft
+ * sat2r08a.pdf in the area of the ATA RETURN DESCRIPTOR. A new "fixed
+ * format" ATA RETURN buffer has been defined (sat2r08b.pdf section
+ * 12.2.7) for the case when DSENSE=0 in the Control mode page.
+ * Unfortunately this is the normal case. If the change stands our
+ * code will need to be extended for this case.
+ *
  * With more transports "hiding" SATA disks (and other S-ATAPI devices)
  * behind a SCSI command set, accessing special features like SMART
  * information becomes a challenge. The SAT standard offers ATA PASS
@@ -61,6 +71,7 @@ extern smartmonctrl *con;
    format into one structure to ease application processing.
    The original sense buffer should be kept around for those cases
    in which more information is required (e.g. the LBA of a MEDIUM ERROR). */
+/// Abridged SCSI sense data
 struct sg_scsi_sense_hdr {
     unsigned char response_code; /* permit: 0x0, 0x70, 0x71, 0x72, 0x73 */
     unsigned char sense_key;
-- 
GitLab