summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/scsi.c
diff options
context:
space:
mode:
authorJames Bottomley2006-04-01 04:07:45 +0200
committerJames Bottomley2006-04-13 17:13:31 +0200
commit4d7db04a7a69099accd84984a78c64d2178252f1 (patch)
tree4b447d05c77290bffe88339915da1186910234a3 /drivers/scsi/scsi.c
parent[SCSI] sym2: Fix build when spinlock debugging is enabled (diff)
downloadkernel-qcow2-linux-4d7db04a7a69099accd84984a78c64d2178252f1.tar.gz
kernel-qcow2-linux-4d7db04a7a69099accd84984a78c64d2178252f1.tar.xz
kernel-qcow2-linux-4d7db04a7a69099accd84984a78c64d2178252f1.zip
[SCSI] add SCSI_UNKNOWN and LUN transfer limit restrictions
Original From: Ingo Flaschberger <if@xip.at> To support the RA4100 array from Compaq. This patch now correctly handles SCSI_UNKNOWN types with regard to BLIST_REPORTLUNS2 (allow it) and cdb[1] LUN inclusion (don't). It also allows a BLIST_MAX_512 flag to restrict the maximum transfer length to 512 blocks (apparently this is an RA4100 problem). Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/scsi.c')
-rw-r--r--drivers/scsi/scsi.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c
index 32979fee6186..73994e2ac2cb 100644
--- a/drivers/scsi/scsi.c
+++ b/drivers/scsi/scsi.c
@@ -565,7 +565,8 @@ int scsi_dispatch_cmd(struct scsi_cmnd *cmd)
/*
* If SCSI-2 or lower, store the LUN value in cmnd.
*/
- if (cmd->device->scsi_level <= SCSI_2) {
+ 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);
}