scsi: storvsc: Re-init stor_chns when a channel interrupt is re-assigned
authorAndrea Parri (Microsoft) <parri.andrea@gmail.com>
Mon, 6 Apr 2020 00:15:14 +0000 (02:15 +0200)
committerWei Liu <wei.liu@kernel.org>
Wed, 20 May 2020 09:13:19 +0000 (09:13 +0000)
commit7769e18c201aa88eade5556faf9da7f2bc15bb8a
treec851e261d39bc420dd9d6e7920ccefe02c68e2c4
parent7527810573436f00e582d3d5ef2eb3c027c98d7d
scsi: storvsc: Re-init stor_chns when a channel interrupt is re-assigned

For each storvsc_device, storvsc keeps track of the channel target CPUs
associated to the device (alloced_cpus) and it uses this information to
fill a "cache" (stor_chns) mapping CPU->channel according to a certain
heuristic.  Update the alloced_cpus mask and the stor_chns array when a
channel of the storvsc device is re-assigned to a different CPU.

Signed-off-by: Andrea Parri (Microsoft) <parri.andrea@gmail.com>
Cc: "James E.J. Bottomley" <jejb@linux.ibm.com>
Cc: "Martin K. Petersen" <martin.petersen@oracle.com>
Cc: <linux-scsi@vger.kernel.org>
Link: https://lore.kernel.org/r/20200406001514.19876-12-parri.andrea@gmail.com
Reviewed-by; Long Li <longli@microsoft.com>
Reviewed-by: Michael Kelley <mikelley@microsoft.com>
[ wei: fix a small issue reported by kbuild test robot <lkp@intel.com> ]
Signed-off-by: Wei Liu <wei.liu@kernel.org>
drivers/hv/vmbus_drv.c
drivers/scsi/storvsc_drv.c
include/linux/hyperv.h