diff options
author | Hannes Reinecke <hare@suse.de> | 2014-06-25 09:27:36 -0400 |
---|---|---|
committer | Christoph Hellwig <hch@lst.de> | 2014-07-17 16:07:37 -0400 |
commit | 9cb78c16f5dadefd8dc5ba0ae5a2f26cd59419b3 (patch) | |
tree | 576b86c3ec56dd7176285ec2d27f27ca55f77bc3 /drivers/scsi/53c700.c | |
parent | 755f516bbb983915d6cbfb5aa592cc0a5a99fd00 (diff) |
scsi: use 64-bit LUNs
The SCSI standard defines 64-bit values for LUNs, and large arrays
employing large or hierarchical LUN numbers become more and more
common.
So update the linux SCSI stack to use 64-bit LUN numbers.
Signed-off-by: Hannes Reinecke <hare@suse.de>
Reviewed-by: Christoph Hellwig <hch@infradead.org>
Reviewed-by: Ewan Milne <emilne@redhat.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'drivers/scsi/53c700.c')
-rw-r--r-- | drivers/scsi/53c700.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/scsi/53c700.c b/drivers/scsi/53c700.c index a3adfb4357f5..fabd4be2c985 100644 --- a/drivers/scsi/53c700.c +++ b/drivers/scsi/53c700.c | |||
@@ -1005,7 +1005,7 @@ process_script_interrupt(__u32 dsps, __u32 dsp, struct scsi_cmnd *SCp, | |||
1005 | DMA_TO_DEVICE); | 1005 | DMA_TO_DEVICE); |
1006 | 1006 | ||
1007 | cmnd[0] = REQUEST_SENSE; | 1007 | cmnd[0] = REQUEST_SENSE; |
1008 | cmnd[1] = (SCp->device->lun & 0x7) << 5; | 1008 | cmnd[1] = (lun & 0x7) << 5; |
1009 | cmnd[2] = 0; | 1009 | cmnd[2] = 0; |
1010 | cmnd[3] = 0; | 1010 | cmnd[3] = 0; |
1011 | cmnd[4] = SCSI_SENSE_BUFFERSIZE; | 1011 | cmnd[4] = SCSI_SENSE_BUFFERSIZE; |
@@ -1396,7 +1396,8 @@ NCR_700_start_command(struct scsi_cmnd *SCp) | |||
1396 | struct NCR_700_Host_Parameters *hostdata = | 1396 | struct NCR_700_Host_Parameters *hostdata = |
1397 | (struct NCR_700_Host_Parameters *)SCp->device->host->hostdata[0]; | 1397 | (struct NCR_700_Host_Parameters *)SCp->device->host->hostdata[0]; |
1398 | __u16 count = 1; /* for IDENTIFY message */ | 1398 | __u16 count = 1; /* for IDENTIFY message */ |
1399 | 1399 | u8 lun = SCp->device->lun; | |
1400 | |||
1400 | if(hostdata->state != NCR_700_HOST_FREE) { | 1401 | if(hostdata->state != NCR_700_HOST_FREE) { |
1401 | /* keep this inside the lock to close the race window where | 1402 | /* keep this inside the lock to close the race window where |
1402 | * the running command finishes on another CPU while we don't | 1403 | * the running command finishes on another CPU while we don't |
@@ -1415,7 +1416,7 @@ NCR_700_start_command(struct scsi_cmnd *SCp) | |||
1415 | 1416 | ||
1416 | hostdata->msgout[0] = NCR_700_identify((SCp->cmnd[0] != REQUEST_SENSE && | 1417 | hostdata->msgout[0] = NCR_700_identify((SCp->cmnd[0] != REQUEST_SENSE && |
1417 | slot->flags != NCR_700_FLAG_AUTOSENSE), | 1418 | slot->flags != NCR_700_FLAG_AUTOSENSE), |
1418 | SCp->device->lun); | 1419 | lun); |
1419 | /* for INQUIRY or REQUEST_SENSE commands, we cannot be sure | 1420 | /* for INQUIRY or REQUEST_SENSE commands, we cannot be sure |
1420 | * if the negotiated transfer parameters still hold, so | 1421 | * if the negotiated transfer parameters still hold, so |
1421 | * always renegotiate them */ | 1422 | * always renegotiate them */ |