summaryrefslogtreecommitdiff
path: root/drivers/hv
diff options
context:
space:
mode:
authorK. Y. Srinivasan <kys@microsoft.com>2014-01-16 01:12:58 (GMT)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-02-07 16:27:34 (GMT)
commite28bab4828354583bb66ac09021ca69b341a7db4 (patch)
tree72821290e295f053d8ffa8f49cb02ea50467d84a /drivers/hv
parentf0342e66b397947ed8c3eef8c37b5ca2d5b1bb50 (diff)
downloadlinux-e28bab4828354583bb66ac09021ca69b341a7db4.tar.xz
Drivers: hv: vmbus: Specify the target CPU that should receive notification
During the initial VMBUS connect phase, starting with WS2012 R2, we should specify the VPCU in the guest that should receive the notification. Fix this issue. This fix is required to properly connect to the host in the kexeced kernel. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Cc: <stable@vger.kernel.org> [3.9+] Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/hv')
-rw-r--r--drivers/hv/connection.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/hv/connection.c b/drivers/hv/connection.c
index af6edf9..855bbda 100644
--- a/drivers/hv/connection.c
+++ b/drivers/hv/connection.c
@@ -78,6 +78,8 @@ static int vmbus_negotiate_version(struct vmbus_channel_msginfo *msginfo,
msg->interrupt_page = virt_to_phys(vmbus_connection.int_page);
msg->monitor_page1 = virt_to_phys(vmbus_connection.monitor_pages[0]);
msg->monitor_page2 = virt_to_phys(vmbus_connection.monitor_pages[1]);
+ if (version == VERSION_WIN8)
+ msg->target_vcpu = hv_context.vp_index[smp_processor_id()];
/*
* Add to list before we send the request since we may