• Gwendal Grignou's avatar
    [libata] Set proper SK when CK_COND is set. · 84a9a8cd
    Gwendal Grignou authored
    When the user application sends a ATA_12 or ATA_16 PASSTHROUGH
    scsi command, put the task file register in the sense data with the
    proper Sense Key. Instead of NO SENSE, set RECOVERED, as
    specified in [SAT2]12.2.5 Table 92.
    
    Tested:
    Using udev ata_id to generate a passthrough command, IDENTIFY:
    before:
     sd 0:0:0:0: [sda] CDB: ATA command pass through(12)/Blank: \
    a1 08 2e 00 01 00 00 00 00 ec 00 00
     sd 0:0:0:0: [sda] Sense Key : No Sense [current] [descriptor]
     Descriptor sense data with sense descriptors (in hex):
             72 00 00 00 00 00 00 0e 09 0c 00 00 00 00 00 3f
             00 18 00 a6 e0 50
    
    after
     sd 0:0:0:0: [sda] CDB: ATA command pass through(12)/Blank: \
    a1 08 2e 00 01 00 00 00 00 ec 00 00
     sd 0:0:0:0: [sda]  Sense Key : Recovered Error [current] [descriptor]
     Descriptor sense data with sense descriptors (in hex):
            72 01 00 1d 00 00 00 0e 09 0c 00 00 00 01 00 00
            00 00 00 00 00 50
    Signed-off-by: default avatarGwendal Grignou <gwendal@google.com>
    Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
    84a9a8cd
libata-scsi.c 104 KB