[SCSI] arcmsr: fix write to device check
authorroel kluin <roel.kluin@gmail.com>
Sat, 1 Jan 2011 18:40:23 +0000 (19:40 +0100)
committerJames Bottomley <James.Bottomley@suse.de>
Mon, 3 Jan 2011 16:41:18 +0000 (10:41 -0600)
Use command->sc_data_direction instead of trying (incorrectly) to
figure it out from the command itself

[jejb: fix up compile failure]
Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Acked-by: NickCheng <nick.cheng@areca.com.tw>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/arcmsr/arcmsr_hba.c

index 17e3df4f016f6590cc86aac3ccc586add42cb2c6..1cadcd6b7da6daee8e14785ccf4abfa9a467c910 100644 (file)
@@ -1171,9 +1171,8 @@ static int arcmsr_build_ccb(struct AdapterControlBlock *acb,
        arcmsr_cdb->msgPages = arccdbsize/0x100 + (arccdbsize % 0x100 ? 1 : 0);
        if ( arccdbsize > 256)
                arcmsr_cdb->Flags |= ARCMSR_CDB_FLAG_SGL_BSIZE;
-       if (pcmd->cmnd[0]|WRITE_6 || pcmd->cmnd[0]|WRITE_10 || pcmd->cmnd[0]|WRITE_12 ){
+       if (pcmd->sc_data_direction == DMA_TO_DEVICE)
                arcmsr_cdb->Flags |= ARCMSR_CDB_FLAG_WRITE;
-       }
        ccb->arc_cdb_size = arccdbsize;
        return SUCCESS;
 }