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/message/i2o | |
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/message/i2o')
-rw-r--r-- | drivers/message/i2o/i2o_scsi.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/drivers/message/i2o/i2o_scsi.c b/drivers/message/i2o/i2o_scsi.c index 1d31d7284cbd..e7de92c67cf6 100644 --- a/drivers/message/i2o/i2o_scsi.c +++ b/drivers/message/i2o/i2o_scsi.c | |||
@@ -78,7 +78,7 @@ static unsigned int i2o_scsi_max_lun = 255; | |||
78 | struct i2o_scsi_host { | 78 | struct i2o_scsi_host { |
79 | struct Scsi_Host *scsi_host; /* pointer to the SCSI host */ | 79 | struct Scsi_Host *scsi_host; /* pointer to the SCSI host */ |
80 | struct i2o_controller *iop; /* pointer to the I2O controller */ | 80 | struct i2o_controller *iop; /* pointer to the I2O controller */ |
81 | unsigned int lun; /* lun's used for block devices */ | 81 | u64 lun; /* lun's used for block devices */ |
82 | struct i2o_device *channel[0]; /* channel->i2o_dev mapping table */ | 82 | struct i2o_device *channel[0]; /* channel->i2o_dev mapping table */ |
83 | }; | 83 | }; |
84 | 84 | ||
@@ -287,9 +287,8 @@ static int i2o_scsi_probe(struct device *dev) | |||
287 | } | 287 | } |
288 | 288 | ||
289 | if (le64_to_cpu(lun) >= scsi_host->max_lun) { | 289 | if (le64_to_cpu(lun) >= scsi_host->max_lun) { |
290 | osm_warn("SCSI device lun (%lu) >= max_lun of I2O host (%d)", | 290 | osm_warn("SCSI device lun (%llu) >= max_lun of I2O host (%d)", |
291 | (long unsigned int)le64_to_cpu(lun), | 291 | le64_to_cpu(lun), scsi_host->max_lun); |
292 | scsi_host->max_lun); | ||
293 | return -EFAULT; | 292 | return -EFAULT; |
294 | } | 293 | } |
295 | 294 | ||
@@ -308,9 +307,9 @@ static int i2o_scsi_probe(struct device *dev) | |||
308 | if (rc) | 307 | if (rc) |
309 | goto err; | 308 | goto err; |
310 | 309 | ||
311 | osm_info("device added (TID: %03x) channel: %d, id: %d, lun: %ld\n", | 310 | osm_info("device added (TID: %03x) channel: %d, id: %d, lun: %llu\n", |
312 | i2o_dev->lct_data.tid, channel, le32_to_cpu(id), | 311 | i2o_dev->lct_data.tid, channel, le32_to_cpu(id), |
313 | (long unsigned int)le64_to_cpu(lun)); | 312 | le64_to_cpu(lun)); |
314 | 313 | ||
315 | return 0; | 314 | return 0; |
316 | 315 | ||