diff options
-rw-r--r-- | drivers/hv/connection.c | 2 | ||||
-rw-r--r-- | include/linux/hyperv.h | 2 |
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; |