summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/hv/connection.c2
-rw-r--r--include/linux/hyperv.h2
2 files changed, 3 insertions, 1 deletions
diff --git a/drivers/hv/connection.c b/drivers/hv/connection.c
index 13c23a4789de..d6b1e29b0ad2 100644
--- a/drivers/hv/connection.c
+++ b/drivers/hv/connection.c
@@ -79,6 +79,8 @@ static int vmbus_negotiate_version(struct vmbus_channel_msginfo *msginfo,
msg->monitor_page2 = virt_to_phys(
(void *)((unsigned long)vmbus_connection.monitor_pages +
PAGE_SIZE));
+ 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
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
index d98503bde7e9..1835c615948c 100644
--- a/include/linux/hyperv.h
+++ b/include/linux/hyperv.h
@@ -884,7 +884,7 @@ struct vmbus_channel_relid_released {
struct vmbus_channel_initiate_contact {
struct vmbus_channel_message_header header;
u32 vmbus_version_requested;
- u32 padding2;
+ u32 target_vcpu; /* The VCPU the host should respond to */
u64 interrupt_page;
u64 monitor_page1;
u64 monitor_page2;