|
@@ -677,7 +677,11 @@ static int __devinit virtscsi_probe(struct virtio_device *vdev)
|
|
cmd_per_lun = virtscsi_config_get(vdev, cmd_per_lun) ?: 1;
|
|
cmd_per_lun = virtscsi_config_get(vdev, cmd_per_lun) ?: 1;
|
|
shost->cmd_per_lun = min_t(u32, cmd_per_lun, shost->can_queue);
|
|
shost->cmd_per_lun = min_t(u32, cmd_per_lun, shost->can_queue);
|
|
shost->max_sectors = virtscsi_config_get(vdev, max_sectors) ?: 0xFFFF;
|
|
shost->max_sectors = virtscsi_config_get(vdev, max_sectors) ?: 0xFFFF;
|
|
- shost->max_lun = virtscsi_config_get(vdev, max_lun) + 1;
|
|
|
|
|
|
+
|
|
|
|
+ /* LUNs > 256 are reported with format 1, so they go in the range
|
|
|
|
+ * 16640-32767.
|
|
|
|
+ */
|
|
|
|
+ shost->max_lun = virtscsi_config_get(vdev, max_lun) + 1 + 0x4000;
|
|
shost->max_id = num_targets;
|
|
shost->max_id = num_targets;
|
|
shost->max_channel = 0;
|
|
shost->max_channel = 0;
|
|
shost->max_cmd_len = VIRTIO_SCSI_CDB_SIZE;
|
|
shost->max_cmd_len = VIRTIO_SCSI_CDB_SIZE;
|