[PATCH] don't mangle INQUIRY if cmddt or evpd bits are set
authorAl Viro <viro@zeniv.linux.org.uk>
Wed, 8 Feb 2006 19:09:00 +0000 (14:09 -0500)
committerAl Viro <viro@zeniv.linux.org.uk>
Sat, 18 Feb 2006 20:54:13 +0000 (15:54 -0500)
sbp2.c mangles INQUIRY response in a way that only applies to standard
inquiry data (i.e. when both cmddt and evpd bits are 0).  Leave other cases
alone; e.g. when asking for VPD the length of reply is in byte 3, not 4
and byte 4 is the first byte of device serial number.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
drivers/ieee1394/sbp2.c

index 18d7eda..c2c776f 100644 (file)
@@ -2082,9 +2082,7 @@ static void sbp2_check_sbp2_response(struct scsi_id_instance_data *scsi_id,
 
        SBP2_DEBUG("sbp2_check_sbp2_response");
 
-       switch (SCpnt->cmnd[0]) {
-
-       case INQUIRY:
+       if (SCpnt->cmnd[0] == INQUIRY && (SCpnt->cmnd[1] & 3) == 0) {
                /*
                 * Make sure data length is ok. Minimum length is 36 bytes
                 */
@@ -2097,13 +2095,7 @@ static void sbp2_check_sbp2_response(struct scsi_id_instance_data *scsi_id,
                 */
                scsi_buf[2] |= 2;
                scsi_buf[3] = (scsi_buf[3] & 0xf0) | 2;
-
-               break;
-
-       default:
-               break;
        }
-       return;
 }
 
 /*