• R
    [SCSI] aacraid: add support for handling ATA pass-through commands. · 1fc8010a
    Rajashekhara, Mahesh 提交于
    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: NMahesh Rajashekhara <aacraid@adaptec.com>
    Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
    1fc8010a
aachba.c 84.1 KB