diff options
author | Martin K. Petersen <martin.petersen@ORACLE.COM> | 2010-01-20 02:17:40 -0500 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2010-02-19 12:14:11 -0500 |
commit | 8475f688d796b875bf98ed161acd53d00a1483ff (patch) | |
tree | 68ae880f0aab38656061981535c9c6c71f91fa98 /drivers/scsi/constants.c | |
parent | 78d85019ba8c13e1094cad0ea9bb4f61caad8320 (diff) |
[SCSI] Fix printing of variable length commands
We dereferenced the MAINTENANCE IN array when decoding variable length
commands. Use the right array. Also consolidate identical if
statements below.
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/constants.c')
-rw-r--r-- | drivers/scsi/constants.c | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/drivers/scsi/constants.c b/drivers/scsi/constants.c index 9129bcf117cf..7092ff67ecd3 100644 --- a/drivers/scsi/constants.c +++ b/drivers/scsi/constants.c | |||
@@ -219,18 +219,15 @@ static void print_opcode_name(unsigned char * cdbp, int cdb_len) | |||
219 | break; | 219 | break; |
220 | } | 220 | } |
221 | sa = (cdbp[8] << 8) + cdbp[9]; | 221 | sa = (cdbp[8] << 8) + cdbp[9]; |
222 | name = get_sa_name(maint_in_arr, MAINT_IN_SZ, sa); | 222 | name = get_sa_name(variable_length_arr, VARIABLE_LENGTH_SZ, sa); |
223 | if (name) { | 223 | if (name) |
224 | printk("%s", name); | 224 | printk("%s", name); |
225 | if ((cdb_len > 0) && (len != cdb_len)) | 225 | else |
226 | printk(", in_cdb_len=%d, ext_len=%d", | ||
227 | len, cdb_len); | ||
228 | } else { | ||
229 | printk("cdb[0]=0x%x, sa=0x%x", cdb0, sa); | 226 | printk("cdb[0]=0x%x, sa=0x%x", cdb0, sa); |
230 | if ((cdb_len > 0) && (len != cdb_len)) | 227 | |
231 | printk(", in_cdb_len=%d, ext_len=%d", | 228 | if ((cdb_len > 0) && (len != cdb_len)) |
232 | len, cdb_len); | 229 | printk(", in_cdb_len=%d, ext_len=%d", len, cdb_len); |
233 | } | 230 | |
234 | break; | 231 | break; |
235 | case MAINTENANCE_IN: | 232 | case MAINTENANCE_IN: |
236 | sa = cdbp[1] & 0x1f; | 233 | sa = cdbp[1] & 0x1f; |