summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/constants.c
diff options
context:
space:
mode:
authorMartin K. Petersen <martin.petersen@ORACLE.COM>2010-01-20 08:17:40 +0100
committerJames Bottomley <James.Bottomley@suse.de>2010-02-19 18:14:11 +0100
commit8475f688d796b875bf98ed161acd53d00a1483ff (patch)
tree68ae880f0aab38656061981535c9c6c71f91fa98 /drivers/scsi/constants.c
parent[SCSI] libsrp: fix bug in ADDITIONAL CDB LENGTH interpretation (diff)
downloadlinux-8475f688d796b875bf98ed161acd53d00a1483ff.tar.xz
linux-8475f688d796b875bf98ed161acd53d00a1483ff.zip
[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.c17
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)
break;
}
sa = (cdbp[8] << 8) + cdbp[9];
- name = get_sa_name(maint_in_arr, MAINT_IN_SZ, sa);
- if (name) {
+ name = get_sa_name(variable_length_arr, VARIABLE_LENGTH_SZ, sa);
+ if (name)
printk("%s", name);
- if ((cdb_len > 0) && (len != cdb_len))
- printk(", in_cdb_len=%d, ext_len=%d",
- len, cdb_len);
- } else {
+ else
printk("cdb[0]=0x%x, sa=0x%x", cdb0, sa);
- if ((cdb_len > 0) && (len != cdb_len))
- printk(", in_cdb_len=%d, ext_len=%d",
- len, cdb_len);
- }
+
+ if ((cdb_len > 0) && (len != cdb_len))
+ printk(", in_cdb_len=%d, ext_len=%d", len, cdb_len);
+
break;
case MAINTENANCE_IN:
sa = cdbp[1] & 0x1f;