[SCSI] aacraid: add support for handling ATA pass-through commands.
authorRajashekhara, Mahesh <Mahesh_Rajashekhara@adaptec.com>
Mon, 10 May 2010 11:17:57 +0000 (04:17 -0700)
committerJames Bottomley <James.Bottomley@suse.de>
Mon, 17 May 2010 02:40:40 +0000 (22:40 -0400)
commit1fc8010a5d9a27391db2be103b13f4ac80990cfc
tree6943d7f3dbd2bf8435623b5f86e7a53163d4fadb
parente3cc268fe4a0ad1cbefbc53cee35c80281e609b8
[SCSI] aacraid: add support for handling ATA pass-through commands.

There are two conditions for ATA pass thru command that falls into
'SRB_STATUS_ERROR' condition.

1. When the "CC" bit is set by the host in ATA pass-through CDB

   - Even for the successful completion, SCSI target shall generate
     check condition.

   - Driver returns a result code of SAM_STAT_CHECK_CONDITION, with a
     driver byte of DID_OK to the mid layer.

     Below is the snippet of existing code which fills a result code
     of SAM_STAT_CHECK_CONDITION:

***********************************
        if (le32_to_cpu(srbreply->scsi_status) == SAM_STAT_CHECK_CONDITION) {
                 int len;
                scsicmd->result |= SAM_STAT_CHECK_CONDITION;
..........
************************************

2. When the "CC" bit is reset by the host and if SCSI target generates
   a check condition when an error occurs.

   - Driver returns a result code of SAM_STAT_CHECK_CONDITION, with a
     driver byte of DID_ERROR to the mid layer.

Signed-off-by: Mahesh Rajashekhara <aacraid@adaptec.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/aacraid/aachba.c