Home Home > GIT Browse
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJiri Kosina <jkosina@suse.cz>2015-05-18 15:16:08 +0200
committerJiri Kosina <jkosina@suse.cz>2015-05-18 15:16:08 +0200
commitd48c1dcef1cb1f16062e89ece387403ebeb3af02 (patch)
treee1a9f00763f2f3a79ab681d24e3cff8ebba81d03
parentbd1aa170883f5273ef2514670ca731644f76c4d8 (diff)
parent60e97063a0c64a258e07f8d53ab711097211244b (diff)
Merge branch 'SLE11-SP3' into SLE11-SP4
-rw-r--r--patches.suse/suse-hv-hv_kvp-sles11sp2-negotiate-serveral-versions.patch127
-rw-r--r--series.conf1
2 files changed, 0 insertions, 128 deletions
diff --git a/patches.suse/suse-hv-hv_kvp-sles11sp2-negotiate-serveral-versions.patch b/patches.suse/suse-hv-hv_kvp-sles11sp2-negotiate-serveral-versions.patch
deleted file mode 100644
index 1f59d81464..0000000000
--- a/patches.suse/suse-hv-hv_kvp-sles11sp2-negotiate-serveral-versions.patch
+++ /dev/null
@@ -1,127 +0,0 @@
-From: <ohering@suse.de>
-Subject: handle more than just WS2008 in KVP negotiation
-References: bnc#850640
-Patch-mainline: Never, upstream uses slighly different approach
-
-The sles11sp2 code stream has a hardcoded version of WS2008 for
-negotiating the vmbus protocol version. With changes made for
-bnc#838346 and bnc#828714 new code was added to use this version is also
-to determine the KVP protocol version. But WS2012 and WS2012R2 do not
-provide a WS2008 compatible KVP protocol. As a result the KVP
-negotiation will fail and KVP is unavailable in the guest.
-
-Adjust the KVP negotiation to try serveral known KVP versions,
-independent from the used vmbus version.
-
----
- drivers/hv/channel_mgmt.c | 14 ++++--------
- drivers/hv/hv_kvp.c | 53 +++++++++++++++++++++++++++++++++-------------
- 2 files changed, 44 insertions(+), 23 deletions(-)
-
-Index: linux-3.0.101-0.5/drivers/hv/channel_mgmt.c
-===================================================================
---- linux-3.0.101-0.5.orig/drivers/hv/channel_mgmt.c
-+++ linux-3.0.101-0.5/drivers/hv/channel_mgmt.c
-@@ -110,25 +110,21 @@ bool vmbus_prep_negotiate_resp(struct ic
- found_match = true;
- }
- }
-+ if (!found_match)
-+ goto fw_error;
-
- /*
- * Respond with the framework and service
- * version numbers we can support.
- */
-
--fw_error:
-- if (!found_match) {
-- negop->icframe_vercnt = 0;
-- negop->icmsg_vercnt = 0;
-- } else {
-- negop->icframe_vercnt = 1;
-- negop->icmsg_vercnt = 1;
-- }
--
-+ negop->icframe_vercnt = 1;
-+ negop->icmsg_vercnt = 1;
- negop->icversion_data[0].major = icframe_major;
- negop->icversion_data[0].minor = icframe_minor;
- negop->icversion_data[1].major = icmsg_major;
- negop->icversion_data[1].minor = icmsg_minor;
-+fw_error:
- return found_match;
- }
-
-Index: linux-3.0.101-0.5/drivers/hv/hv_kvp.c
-===================================================================
---- linux-3.0.101-0.5.orig/drivers/hv/hv_kvp.c
-+++ linux-3.0.101-0.5/drivers/hv/hv_kvp.c
-@@ -609,28 +609,53 @@ void hv_kvp_onchannelcallback(void *cont
- sizeof(struct vmbuspipe_hdr)];
-
- if (icmsghdrp->icmsgtype == ICMSGTYPE_NEGOTIATE) {
-+ bool ret;
-+ const char *ver;
- /*
- * Based on the host, select appropriate
- * framework and service versions we will
- * negotiate.
- */
-- switch (vmbus_proto_version) {
-- case (VERSION_WS2008):
-- util_fw_version = UTIL_WS2K8_FW_VERSION;
-- kvp_srv_version = WS2008_SRV_VERSION;
-- break;
-- case (VERSION_WIN7):
-- util_fw_version = UTIL_FW_VERSION;
-- kvp_srv_version = WIN7_SRV_VERSION;
-- break;
-- default:
-- util_fw_version = UTIL_FW_VERSION;
-- kvp_srv_version = WIN8_SRV_VERSION;
-- }
-- vmbus_prep_negotiate_resp(icmsghdrp, negop,
-+
-+ util_fw_version = UTIL_FW_VERSION;
-+ kvp_srv_version = WIN8_SRV_VERSION;
-+ ver = "WIN8";
-+ ret = vmbus_prep_negotiate_resp(icmsghdrp, negop,
-+ recv_buffer, util_fw_version,
-+ kvp_srv_version);
-+ if (ret)
-+ goto found;
-+
-+ util_fw_version = UTIL_FW_VERSION;
-+ kvp_srv_version = WIN7_SRV_VERSION;
-+ ver = "WIN7";
-+ ret = vmbus_prep_negotiate_resp(icmsghdrp, negop,
- recv_buffer, util_fw_version,
- kvp_srv_version);
-+ if (ret)
-+ goto found;
-
-+ util_fw_version = UTIL_WS2K8_FW_VERSION;
-+ kvp_srv_version = WS2008_SRV_VERSION;
-+ ver = "WS2008";
-+ ret = vmbus_prep_negotiate_resp(icmsghdrp, negop,
-+ recv_buffer, util_fw_version,
-+ kvp_srv_version);
-+ if (ret)
-+ goto found;
-+
-+ ver = "nothing!";
-+ negop = (struct icmsg_negotiate *)&recv_buffer[
-+ sizeof(struct vmbuspipe_hdr) +
-+ sizeof(struct icmsg_hdr)];
-+ negop->icframe_vercnt = 0;
-+ negop->icmsg_vercnt = 0;
-+ negop->icversion_data[0].major = 0;
-+ negop->icversion_data[0].minor = 0;
-+ negop->icversion_data[1].major = 0;
-+ negop->icversion_data[1].minor = 0;
-+found:
-+ pr_info("KVP negotiated for %s\n", ver);
- } else {
- kvp_msg = (struct hv_kvp_msg *)&recv_buffer[
- sizeof(struct vmbuspipe_hdr) +
diff --git a/series.conf b/series.conf
index fdb1ca9305..dab2fb2a69 100644
--- a/series.conf
+++ b/series.conf
@@ -21935,7 +21935,6 @@
patches.suse/suse-hv-storvsc-Set-the-SRB-flags-correctly-when-no-data-tra.patch
- patches.suse/suse-hv-hv_kvp-sles11sp2-negotiate-serveral-versions.patch
patches.suse/suse-hv-rndis_filter-defines.patch
patches.suse/suse-hv-netvsc-net-flow_keys.patch