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/usb/storage | |
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/usb/storage')
-rw-r--r-- | drivers/usb/storage/sddr09.c | 4 | ||||
-rw-r--r-- | drivers/usb/storage/usb.c | 10 |
2 files changed, 8 insertions, 6 deletions
diff --git a/drivers/usb/storage/sddr09.c b/drivers/usb/storage/sddr09.c index 073a2c32ccc4..38a4504ce450 100644 --- a/drivers/usb/storage/sddr09.c +++ b/drivers/usb/storage/sddr09.c | |||
@@ -1498,7 +1498,7 @@ static int dpcm_transport(struct scsi_cmnd *srb, struct us_data *us) | |||
1498 | { | 1498 | { |
1499 | int ret; | 1499 | int ret; |
1500 | 1500 | ||
1501 | usb_stor_dbg(us, "LUN=%d\n", srb->device->lun); | 1501 | usb_stor_dbg(us, "LUN=%d\n", (u8)srb->device->lun); |
1502 | 1502 | ||
1503 | switch (srb->device->lun) { | 1503 | switch (srb->device->lun) { |
1504 | case 0: | 1504 | case 0: |
@@ -1524,7 +1524,7 @@ static int dpcm_transport(struct scsi_cmnd *srb, struct us_data *us) | |||
1524 | break; | 1524 | break; |
1525 | 1525 | ||
1526 | default: | 1526 | default: |
1527 | usb_stor_dbg(us, "Invalid LUN %d\n", srb->device->lun); | 1527 | usb_stor_dbg(us, "Invalid LUN %d\n", (u8)srb->device->lun); |
1528 | ret = USB_STOR_TRANSPORT_ERROR; | 1528 | ret = USB_STOR_TRANSPORT_ERROR; |
1529 | break; | 1529 | break; |
1530 | } | 1530 | } |
diff --git a/drivers/usb/storage/usb.c b/drivers/usb/storage/usb.c index f1c96261a501..cedb29252a92 100644 --- a/drivers/usb/storage/usb.c +++ b/drivers/usb/storage/usb.c | |||
@@ -347,14 +347,16 @@ static int usb_stor_control_thread(void * __us) | |||
347 | */ | 347 | */ |
348 | else if (us->srb->device->id && | 348 | else if (us->srb->device->id && |
349 | !(us->fflags & US_FL_SCM_MULT_TARG)) { | 349 | !(us->fflags & US_FL_SCM_MULT_TARG)) { |
350 | usb_stor_dbg(us, "Bad target number (%d:%d)\n", | 350 | usb_stor_dbg(us, "Bad target number (%d:%llu)\n", |
351 | us->srb->device->id, us->srb->device->lun); | 351 | us->srb->device->id, |
352 | us->srb->device->lun); | ||
352 | us->srb->result = DID_BAD_TARGET << 16; | 353 | us->srb->result = DID_BAD_TARGET << 16; |
353 | } | 354 | } |
354 | 355 | ||
355 | else if (us->srb->device->lun > us->max_lun) { | 356 | else if (us->srb->device->lun > us->max_lun) { |
356 | usb_stor_dbg(us, "Bad LUN (%d:%d)\n", | 357 | usb_stor_dbg(us, "Bad LUN (%d:%llu)\n", |
357 | us->srb->device->id, us->srb->device->lun); | 358 | us->srb->device->id, |
359 | us->srb->device->lun); | ||
358 | us->srb->result = DID_BAD_TARGET << 16; | 360 | us->srb->result = DID_BAD_TARGET << 16; |
359 | } | 361 | } |
360 | 362 | ||