summaryrefslogtreecommitdiffstats
path: root/drivers/hv
diff options
context:
space:
mode:
authorK. Y. Srinivasan <kys@microsoft.com>2012-12-01 15:46:58 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-01-17 20:41:49 +0100
commit5fbebb2d2095e5c7d289d5f4ffecc2f2661c584a (patch)
tree6160cdab66b0b401d15fceffab8129b79ad198cb /drivers/hv
parentDrivers: hv: Implement flow management on the send side (diff)
downloadlinux-5fbebb2d2095e5c7d289d5f4ffecc2f2661c584a.tar.xz
linux-5fbebb2d2095e5c7d289d5f4ffecc2f2661c584a.zip
Drivers: hv: Capture the host build information
Capture the host build information so it can be presented along with the negotiated vmbus version information. Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> Reviewed-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/hv')
-rw-r--r--drivers/hv/hv.c9
-rw-r--r--drivers/hv/hyperv_vmbus.h7
2 files changed, 16 insertions, 0 deletions
diff --git a/drivers/hv/hv.c b/drivers/hv/hv.c
index 03e6a1eb1145..0cd2da3b22f5 100644
--- a/drivers/hv/hv.c
+++ b/drivers/hv/hv.c
@@ -40,6 +40,11 @@ struct hv_context hv_context = {
/*
* query_hypervisor_info - Get version info of the windows hypervisor
*/
+unsigned int host_info_eax;
+unsigned int host_info_ebx;
+unsigned int host_info_ecx;
+unsigned int host_info_edx;
+
static int query_hypervisor_info(void)
{
unsigned int eax;
@@ -76,6 +81,10 @@ static int query_hypervisor_info(void)
ecx,
edx >> 24,
edx & 0xFFFFFF);
+ host_info_eax = eax;
+ host_info_ebx = ebx;
+ host_info_ecx = ecx;
+ host_info_edx = edx;
}
return max_leaf;
}
diff --git a/drivers/hv/hyperv_vmbus.h b/drivers/hv/hyperv_vmbus.h
index ac111f223821..12f2f9e989f7 100644
--- a/drivers/hv/hyperv_vmbus.h
+++ b/drivers/hv/hyperv_vmbus.h
@@ -531,6 +531,13 @@ extern void hv_synic_init(void *irqarg);
extern void hv_synic_cleanup(void *arg);
+/*
+ * Host version information.
+ */
+extern unsigned int host_info_eax;
+extern unsigned int host_info_ebx;
+extern unsigned int host_info_ecx;
+extern unsigned int host_info_edx;
/* Interface */