aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorK. Y. Srinivasan <kys@microsoft.com>2012-12-01 06:46:41 -0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-01-17 11:34:36 -0800
commit37f7278b81a9ab9b76cf4d716ba420444ca4a616 (patch)
tree5009a8fe1db5b3e8a88f7d307ddca8b85fc2a912
parent29423b7e51a8ea4d687cf98c3a50f33c554be194 (diff)
Drivers: hv: Save and export negotiated vmbus version
Export the negotiated vmbus version as this may be useful for individual drivers. 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>
-rw-r--r--drivers/hv/connection.c9
-rw-r--r--include/linux/hyperv.h6
2 files changed, 15 insertions, 0 deletions
diff --git a/drivers/hv/connection.c b/drivers/hv/connection.c
index 2b56a3f47b3..70ea5d1fc16 100644
--- a/drivers/hv/connection.c
+++ b/drivers/hv/connection.c
@@ -30,6 +30,7 @@
#include <linux/slab.h>
#include <linux/vmalloc.h>
#include <linux/hyperv.h>
+#include <linux/export.h>
#include <asm/hyperv.h>
#include "hyperv_vmbus.h"
@@ -54,6 +55,12 @@ struct vmbus_connection vmbus_connection = {
#define VERSION_INVAL -1
+/*
+ * Negotiated protocol version with the host.
+ */
+__u32 vmbus_proto_version;
+EXPORT_SYMBOL_GPL(vmbus_proto_version);
+
static __u32 vmbus_get_next_version(__u32 current_version)
{
switch (current_version) {
@@ -215,6 +222,8 @@ int vmbus_connect(void)
if (version == VERSION_INVAL)
goto cleanup;
+ vmbus_proto_version = version;
+ pr_info("Negotiated host information %d\n", version);
kfree(msginfo);
return 0;
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
index bee559ada3b..134a2022a7a 100644
--- a/include/linux/hyperv.h
+++ b/include/linux/hyperv.h
@@ -1204,5 +1204,11 @@ int hv_kvp_init(struct hv_util_service *);
void hv_kvp_deinit(void);
void hv_kvp_onchannelcallback(void *);
+/*
+ * Negotiated version with the Host.
+ */
+
+extern __u32 vmbus_proto_version;
+
#endif /* __KERNEL__ */
#endif /* _HYPERV_H */