diff options
author | Roel Kluin <12o3l@tiscali.nl> | 2008-01-28 08:09:54 -0500 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2008-04-07 13:18:59 -0400 |
commit | 0b6c4b14cfb2fd89064d29bdead62f9ed8631399 (patch) | |
tree | 8a9b8e9ecf74f0af991946f189827a0a6a1701ff | |
parent | 639db475c8bb77f915f79f567ee98ac673d6edf3 (diff) |
[SCSI] aic7xxx: Test opcode, not definition in aicasm:type_check()
This fixes a bug that we treat all sequencer operations as ands and
never do the additional invalid bit checks non-and operations require
because the if () to determine this has an operand which is always
true at the end of the or statement.
Signed-off-by: Roel Kluin <12o3l@tiscali.nl>
Acked-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
-rw-r--r-- | drivers/scsi/aic7xxx/aicasm/aicasm_gram.y | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/scsi/aic7xxx/aicasm/aicasm_gram.y b/drivers/scsi/aic7xxx/aicasm/aicasm_gram.y index 6066998ed562..702e2dbd11fb 100644 --- a/drivers/scsi/aic7xxx/aicasm/aicasm_gram.y +++ b/drivers/scsi/aic7xxx/aicasm/aicasm_gram.y | |||
@@ -1837,7 +1837,7 @@ type_check(symbol_t *symbol, expression_t *expression, int opcode) | |||
1837 | int and_op; | 1837 | int and_op; |
1838 | 1838 | ||
1839 | and_op = FALSE; | 1839 | and_op = FALSE; |
1840 | if (opcode == AIC_OP_AND || opcode == AIC_OP_JNZ || AIC_OP_JZ) | 1840 | if (opcode == AIC_OP_AND || opcode == AIC_OP_JNZ || opcode == AIC_OP_JZ) |
1841 | and_op = TRUE; | 1841 | and_op = TRUE; |
1842 | 1842 | ||
1843 | /* | 1843 | /* |