scsi: storvsc: Fix calculation of sub-channel count
authorMichael Kelley <mikelley@microsoft.com>
Mon, 1 Apr 2019 16:10:52 +0000 (16:10 +0000)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 4 Apr 2019 03:30:08 +0000 (23:30 -0400)
commit382e06d11e075a40b4094b6ef809f8d4bcc7ab2a
tree2dd19238b6a478ca22b84758c135e35905c62929
parent1cb1d2c64e812928fe0a40b8f7e74523d0283dbe
scsi: storvsc: Fix calculation of sub-channel count

When the number of sub-channels offered by Hyper-V is >= the number of CPUs
in the VM, calculate the correct number of sub-channels.  The current code
produces one too many.

This scenario arises only when the number of CPUs is artificially
restricted (for example, with maxcpus=<n> on the kernel boot line), because
Hyper-V normally offers a sub-channel count < number of CPUs.  While the
current code doesn't break, the extra sub-channel is unbalanced across the
CPUs (for example, a total of 5 channels on a VM with 4 CPUs).

Signed-off-by: Michael Kelley <mikelley@microsoft.com>
Reviewed-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Reviewed-by: Long Li <longli@microsoft.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/storvsc_drv.c