https://bugzilla.kernel.org/show_bug.cgi?id=62811 Bug ID: 62811 Summary: Don't Modify the scsi subcmd as LUN value when using VENDOR cmd Product: SCSI Drivers Version: 2.5 Kernel Version: 3.12rc4 Hardware: All OS: Linux Tree: Mainline Status: NEW Severity: normal Priority: P1 Component: Other Assignee: scsi_drivers-other@xxxxxxxxxxxxxxxxxxxx Reporter: yilikernel@xxxxxxxxx Regression: No Using the VENDOR scsi cmd, We should not to modify the cmd->cmnd [1] as lun value. it is useful as a subcmd for USB device, such as STEC usb device. Signed-off-by: Yi Li <yilikernel@xxxxxxxxx> --- linux/drivers/scsi/scsi.c_orig 2013-09-12 01:51:45.000000000 -0400 +++ linux/drivers/scsi/scsi.c 2013-09-12 01:59:24.000000000 -0400 @@ -83,6 +83,9 @@ static void scsi_done(struct scsi_cmnd * /* Do not call reset on error if we just did a reset within 15 sec. */ #define MIN_RESET_PERIOD (15*HZ) +/* Define a SCSI command VENDOR to get device info For STEC USB devcie */ +#define STECUSB_VENDOR_CMD_CODE 0xD8 + /* * Note - the initial logging level can be set here to log events at boot time. * After the system is up, you may enable logging via the /proc interface. @@ -700,8 +703,13 @@ int scsi_dispatch_cmd(struct scsi_cmnd * */ if (cmd->device->scsi_level <= SCSI_2 && cmd->device->scsi_level != SCSI_UNKNOWN) { - cmd->cmnd[1] = (cmd->cmnd[1] & 0x1f) | - (cmd->device->lun << 5 & 0xe0); + /* + * Don't Modify the cmnd[1] as LUN value when it is a VENDOR CMD + * for STEC disk. + */ + if (STECUSB_VENDOR_CMD_CODE != cmd->cmnd[0]) + cmd->cmnd[1] = (cmd->cmnd[1] & 0x1f) | + (cmd->device->lun << 5 & 0xe0); } /* -- You are receiving this mail because: You are watching the assignee of the bug. -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html