|
|
@@ -1722,11 +1722,14 @@ static int storvsc_probe(struct hv_device *device,
|
|
|
max_targets = STORVSC_MAX_TARGETS;
|
|
|
max_channels = STORVSC_MAX_CHANNELS;
|
|
|
/*
|
|
|
- * On Windows8 and above, we support sub-channels for storage.
|
|
|
+ * On Windows8 and above, we support sub-channels for storage
|
|
|
+ * on SCSI and FC controllers.
|
|
|
* The number of sub-channels offerred is based on the number of
|
|
|
* VCPUs in the guest.
|
|
|
*/
|
|
|
- max_sub_channels = (num_cpus / storvsc_vcpus_per_sub_channel);
|
|
|
+ if (!dev_is_ide)
|
|
|
+ max_sub_channels =
|
|
|
+ (num_cpus - 1) / storvsc_vcpus_per_sub_channel;
|
|
|
}
|
|
|
|
|
|
scsi_driver.can_queue = (max_outstanding_req_per_channel *
|