From mboxrd@z Thu Jan 1 00:00:00 1970 From: Changlong Xie Subject: [PATCH v11 22/27] COLO proxy: implement setup/teardown of COLO proxy module Date: Fri, 4 Mar 2016 16:41:26 +0800 Message-ID: <1457080891-26054-23-git-send-email-xiecl.fnst@cn.fujitsu.com> References: <1457080891-26054-1-git-send-email-xiecl.fnst@cn.fujitsu.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1457080891-26054-1-git-send-email-xiecl.fnst@cn.fujitsu.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen devel , Konrad Rzeszutek Wilk , Andrew Cooper , Ian Campbell , Ian Jackson , Wei Liu Cc: Lars Kurth , Changlong Xie , Wen Congyang , Gui Jianfeng , Jiang Yunhong , Dong Eddie , Anthony Perard , Shriram Rajagopalan , Yang Hongyang List-Id: xen-devel@lists.xenproject.org RnJvbTogV2VuIENvbmd5YW5nIDx3ZW5jeUBjbi5mdWppdHN1LmNvbT4KCnNldHVwL3RlYXJkb3du IG9mIENPTE8gcHJveHkgbW9kdWxlLgp3ZSB1c2UgbmV0bGluayB0byBjb21tdW5pY2F0ZSB3aXRo IHByb3h5IG1vZHVsZS4KQWJvdXQgY29sby1wcm94eSBtb2R1bGU6Cmh0dHBzOi8vbGttbC5vcmcv bGttbC8yMDE1LzYvMTgvMzIKSG93IHRvIHVzZToKaHR0cDovL3dpa2kueGVuLm9yZy93aWtpL0NP TE9fLV9Db2Fyc2VfR3JhaW5fTG9ja19TdGVwcGluZwoKU2lnbmVkLW9mZi1ieTogWWFuZyBIb25n eWFuZyA8aG9uZ3lhbmcueWFuZ0BlYXN5c3RhY2suY24+ClNpZ25lZC1vZmYtYnk6IFdlbiBDb25n eWFuZyA8d2VuY3lAY24uZnVqaXRzdS5jb20+ClNpZ25lZC1vZmYtYnk6IENoYW5nbG9uZyBYaWUg PHhpZWNsLmZuc3RAY24uZnVqaXRzdS5jb20+Ci0tLQogdG9vbHMvbGlieGwvTWFrZWZpbGUgICAg ICAgICAgIHwgICAxICsKIHRvb2xzL2xpYnhsL2xpYnhsX2NvbG8uaCAgICAgICB8ICAyNyArKysr KwogdG9vbHMvbGlieGwvbGlieGxfY29sb19wcm94eS5jIHwgMjE4ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrCiB0b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oICAg fCAgIDMgKwogNCBmaWxlcyBjaGFuZ2VkLCAyNDkgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUg MTAwNjQ0IHRvb2xzL2xpYnhsL2xpYnhsX2NvbG9fcHJveHkuYwoKZGlmZiAtLWdpdCBhL3Rvb2xz L2xpYnhsL01ha2VmaWxlIGIvdG9vbHMvbGlieGwvTWFrZWZpbGUKaW5kZXggMjhkNTRkMC4uNmZl YTllMCAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvTWFrZWZpbGUKKysrIGIvdG9vbHMvbGlieGwv TWFrZWZpbGUKQEAgLTY3LDYgKzY3LDcgQEAgZW5kaWYKIExJQlhMX09CSlMteSArPSBsaWJ4bF9y ZW11cy5vIGxpYnhsX2NoZWNrcG9pbnRfZGV2aWNlLm8gbGlieGxfcmVtdXNfZGlza19kcmJkLm8K IExJQlhMX09CSlMteSArPSBsaWJ4bF9jb2xvX3Jlc3RvcmUubyBsaWJ4bF9jb2xvX3NhdmUubwog TElCWExfT0JKUy15ICs9IGxpYnhsX2NvbG9fcWRpc2subworTElCWExfT0JKUy15ICs9IGxpYnhs X2NvbG9fcHJveHkubwogCiBMSUJYTF9PQkpTLSQoQ09ORklHX1g4NikgKz0gbGlieGxfY3B1aWQu byBsaWJ4bF94ODYubyBsaWJ4bF9wc3IubwogTElCWExfT0JKUy0kKENPTkZJR19BUk0pICs9IGxp YnhsX25vY3B1aWQubyBsaWJ4bF9hcm0ubyBsaWJ4bF9saWJmZHRfY29tcGF0Lm8KZGlmZiAtLWdp dCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2NvbG8uaCBiL3Rvb2xzL2xpYnhsL2xpYnhsX2NvbG8uaApp bmRleCA5MDM0NWY0Li45ZTdmOTljIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9jb2xv LmgKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfY29sby5oCkBAIC0xNiwyMSArMTYsNDIgQEAKICNp Zm5kZWYgTElCWExfQ09MT19ICiAjZGVmaW5lIExJQlhMX0NPTE9fSAogCisjaW5jbHVkZSA8bGlu dXgvbmV0bGluay5oPgorCiBzdHJ1Y3QgbGlieGxfX2FvOwogc3RydWN0IGxpYnhsX19lZ2M7CiBz dHJ1Y3QgbGlieGxfX2NvbG9fc2F2ZV9zdGF0ZTsKIHN0cnVjdCBsaWJ4bF9fY2hlY2twb2ludF9k ZXZpY2VzX3N0YXRlOwogCisjZGVmaW5lIE5FVExJTktfQ09MTyAyOAorCiBlbnVtIHsKICAgICBM SUJYTF9DT0xPX1NFVFVQRUQsCiAgICAgTElCWExfQ09MT19TVVNQRU5ERUQsCiAgICAgTElCWExf Q09MT19SRVNVTUVELAogfTsKIAorZW51bSBjb2xvX25ldGxpbmtfb3AgeworICAgIENPTE9fUVVF UllfQ0hFQ0tQT0lOVCA9IChOTE1TR19NSU5fVFlQRSArIDEpLAorICAgIENPTE9fQ0hFQ0tQT0lO VCwKKyAgICBDT0xPX0ZBSUxPVkVSLAorICAgIENPTE9fUFJPWFlfSU5JVCwKKyAgICBDT0xPX1BS T1hZX1JFU0VULCAvKiBVTlVTRUQsIHdpbGwgYmUgdXNlZCBmb3IgY29udGludW91cyBGVCAqLwor fTsKKwogdHlwZWRlZiBzdHJ1Y3QgbGlieGxfX2NvbG9fcWRpc2sgewogICAgIGJvb2wgc2V0dXBl ZDsKIH0gbGlieGxfX2NvbG9fcWRpc2s7CiAKK3R5cGVkZWYgc3RydWN0IGxpYnhsX19jb2xvX3By b3h5X3N0YXRlIGxpYnhsX19jb2xvX3Byb3h5X3N0YXRlOworc3RydWN0IGxpYnhsX19jb2xvX3By b3h5X3N0YXRlIHsKKyAgICAvKiBzZXQgYnkgY2FsbGVyIG9mIGNvbG9fcHJveHlfc2V0dXAgKi8K KyAgICBzdHJ1Y3QgbGlieGxfX2FvICphbzsKKworICAgIGludCBzb2NrX2ZkOworICAgIGludCBp bmRleDsKK307CisKIHR5cGVkZWYgc3RydWN0IGxpYnhsX19kb21haW5fY3JlYXRlX3N0YXRlIGxp YnhsX19kb21haW5fY3JlYXRlX3N0YXRlOwogdHlwZWRlZiB2b2lkIGxpYnhsX19kb21haW5fY3Jl YXRlX2NiKHN0cnVjdCBsaWJ4bF9fZWdjICplZ2MsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbGlieGxfX2RvbWFpbl9jcmVhdGVfc3RhdGUgKmRjcywKQEAgLTU4LDYgKzc5 LDkgQEAgc3RydWN0IGxpYnhsX19jb2xvX3Jlc3RvcmVfc3RhdGUgewogICAgIGJvb2wgcWRpc2tf c2V0dXBlZDsKICAgICBjb25zdCBjaGFyICpob3N0OwogICAgIGNvbnN0IGNoYXIgKnBvcnQ7CisK KyAgICAvKiBwcml2YXRlLCB1c2VkIGJ5IGNvbG8tcHJveHkgKi8KKyAgICBsaWJ4bF9fY29sb19w cm94eV9zdGF0ZSBjcHM7CiB9OwogCiBpbnQgaW5pdF9zdWJraW5kX3FkaXNrKHN0cnVjdCBsaWJ4 bF9fY2hlY2twb2ludF9kZXZpY2VzX3N0YXRlICpjZHMpOwpAQCAtNzMsNCArOTcsNyBAQCBleHRl cm4gdm9pZCBsaWJ4bF9fY29sb19zYXZlX3NldHVwKHN0cnVjdCBsaWJ4bF9fZWdjICplZ2MsCiBl eHRlcm4gdm9pZCBsaWJ4bF9fY29sb19zYXZlX3RlYXJkb3duKHN0cnVjdCBsaWJ4bF9fZWdjICpl Z2MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBsaWJ4bF9f Y29sb19zYXZlX3N0YXRlICpjc3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGludCByYyk7CitleHRlcm4gaW50IGNvbG9fcHJveHlfc2V0dXAobGlieGxfX2NvbG9fcHJv eHlfc3RhdGUgKmNwcyk7CitleHRlcm4gdm9pZCBjb2xvX3Byb3h5X3RlYXJkb3duKGxpYnhsX19j b2xvX3Byb3h5X3N0YXRlICpjcHMpOworCiAjZW5kaWYKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhs L2xpYnhsX2NvbG9fcHJveHkuYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2NvbG9fcHJveHkuYwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYjNiYWEzCi0tLSAvZGV2L251bGwKKysr IGIvdG9vbHMvbGlieGwvbGlieGxfY29sb19wcm94eS5jCkBAIC0wLDAgKzEsMjE4IEBACisvKgor ICogQ29weXJpZ2h0IChDKSAyMDE1IEZVSklUU1UgTElNSVRFRAorICogQXV0aG9yOiBZYW5nIEhv bmd5YW5nIDxob25neWFuZy55YW5nQGVhc3lzdGFjay5jbj4KKyAqCisgKiBUaGlzIHByb2dyYW0g aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQor ICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgYXMgcHVibGlzaGVkCisgKiBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB2 ZXJzaW9uIDIuMSBvbmx5LiB3aXRoIHRoZSBzcGVjaWFsCisgKiBleGNlcHRpb24gb24gbGlua2lu ZyBkZXNjcmliZWQgaW4gZmlsZSBMSUNFTlNFLgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl ZSB0aGUKKyAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh aWxzLgorICovCisKKyNpbmNsdWRlICJsaWJ4bF9vc2RlcHMuaCIgLyogbXVzdCBjb21lIGJlZm9y ZSBhbnkgb3RoZXIgaGVhZGVycyAqLworCisjaW5jbHVkZSAibGlieGxfaW50ZXJuYWwuaCIKKwor LyogPT09PT09PT09IGNvbG8tcHJveHk6IGhlbHBlciBmdW5jdGlvbnMgPT09PT09PT09PSAqLwor CitzdGF0aWMgaW50IGNvbG9fcHJveHlfc2VuZChsaWJ4bF9fY29sb19wcm94eV9zdGF0ZSAqY3Bz LCB1aW50OF90ICpidWZmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3Qgc2l6 ZSwgaW50IHR5cGUpCit7CisgICAgc3RydWN0IHNvY2thZGRyX25sIHNhOworICAgIHN0cnVjdCBu bG1zZ2hkciBtc2c7CisgICAgc3RydWN0IGlvdmVjIGlvdjsKKyAgICBzdHJ1Y3QgbXNnaGRyIG1o OworICAgIGludCByZXQ7CisKKyAgICBTVEFURV9BT19HQyhjcHMtPmFvKTsKKworICAgIG1lbXNl dCgmc2EsIDAsIHNpemVvZihzYSkpOworICAgIHNhLm5sX2ZhbWlseSA9IEFGX05FVExJTks7Cisg ICAgc2EubmxfcGlkID0gMDsKKyAgICBzYS5ubF9ncm91cHMgPSAwOworCisgICAgbXNnLm5sbXNn X2xlbiA9IE5MTVNHX1NQQUNFKDApOworICAgIG1zZy5ubG1zZ19mbGFncyA9IE5MTV9GX1JFUVVF U1Q7CisgICAgaWYgKHR5cGUgPT0gQ09MT19QUk9YWV9JTklUKSB7CisgICAgICAgIG1zZy5ubG1z Z19mbGFncyB8PSBOTE1fRl9BQ0s7CisgICAgfQorICAgIG1zZy5ubG1zZ19zZXEgPSAwOworICAg IC8qIFRoaXMgaXMgdW50cnVzdHkgKi8KKyAgICBtc2cubmxtc2dfcGlkID0gY3BzLT5pbmRleDsK KyAgICBtc2cubmxtc2dfdHlwZSA9IHR5cGU7CisKKyAgICBpb3YuaW92X2Jhc2UgPSAmbXNnOwor ICAgIGlvdi5pb3ZfbGVuID0gbXNnLm5sbXNnX2xlbjsKKworICAgIG1oLm1zZ19uYW1lID0gJnNh OworICAgIG1oLm1zZ19uYW1lbGVuID0gc2l6ZW9mKHNhKTsKKyAgICBtaC5tc2dfaW92ID0gJmlv djsKKyAgICBtaC5tc2dfaW92bGVuID0gMTsKKyAgICBtaC5tc2dfY29udHJvbCA9IE5VTEw7Cisg ICAgbWgubXNnX2NvbnRyb2xsZW4gPSAwOworICAgIG1oLm1zZ19mbGFncyA9IDA7CisKKyAgICBy ZXQgPSBzZW5kbXNnKGNwcy0+c29ja19mZCwgJm1oLCAwKTsKKyAgICBpZiAocmV0IDw9IDApIHsK KyAgICAgICAgTE9HKEVSUk9SLCAiY2FuJ3Qgc2VuZCBtc2cgdG8ga2VybmVsIGJ5IG5ldGxpbms6 ICVzIiwKKyAgICAgICAgICAgIHN0cmVycm9yKGVycm5vKSk7CisgICAgfQorCisgICAgcmV0dXJu IHJldDsKK30KKworLyogZXJyb3I6IHJldHVybiAtMSwgb3RoZXJ3aXNlIHJldHVybiAwICovCitz dGF0aWMgaW50NjRfdCBjb2xvX3Byb3h5X3JlY3YobGlieGxfX2NvbG9fcHJveHlfc3RhdGUgKmNw cywgdWludDhfdCAqKmJ1ZmYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu ZWQgaW50IHRpbWVvdXRfdXMpCit7CisgICAgc3RydWN0IHNvY2thZGRyX25sIHNhOworICAgIHN0 cnVjdCBpb3ZlYyBpb3Y7CisgICAgc3RydWN0IG1zZ2hkciBtaCA9IHsKKyAgICAgICAgLm1zZ19u YW1lID0gJnNhLAorICAgICAgICAubXNnX25hbWVsZW4gPSBzaXplb2Yoc2EpLAorICAgICAgICAu bXNnX2lvdiA9ICZpb3YsCisgICAgICAgIC5tc2dfaW92bGVuID0gMSwKKyAgICB9OworICAgIHN0 cnVjdCB0aW1ldmFsIHR2OworICAgIHVpbnQzMl90IHNpemUgPSAxNjM4NDsKKyAgICBpbnQ2NF90 IGxlbiA9IDA7CisgICAgaW50IHJldDsKKworICAgIFNUQVRFX0FPX0dDKGNwcy0+YW8pOworICAg IHVpbnQ4X3QgKnRtcCA9IGxpYnhsX19tYWxsb2MoTk9HQywgc2l6ZSk7CisKKyAgICBpZiAodGlt ZW91dF91cykgeworICAgICAgICB0di50dl9zZWMgPSB0aW1lb3V0X3VzIC8gMTAwMDAwMDsKKyAg ICAgICAgdHYudHZfdXNlYyA9IHRpbWVvdXRfdXMgJSAxMDAwMDAwOworICAgICAgICBzZXRzb2Nr b3B0KGNwcy0+c29ja19mZCwgU09MX1NPQ0tFVCwgU09fUkNWVElNRU8sICZ0diwgc2l6ZW9mKHR2 KSk7CisgICAgfQorCisgICAgaW92Lmlvdl9iYXNlID0gdG1wOworICAgIGlvdi5pb3ZfbGVuID0g c2l6ZTsKK25leHQ6CisgICAgcmV0ID0gcmVjdm1zZyhjcHMtPnNvY2tfZmQsICZtaCwgMCk7Cisg ICAgaWYgKHJldCA8PSAwKSB7CisgICAgICAgIGlmIChlcnJubyAhPSBFQUdBSU4gJiYgZXJybm8g IT0gRVdPVUxEQkxPQ0spCisgICAgICAgICAgICBMT0dFKEVSUk9SLCAiY2FuJ3QgcmVjdiBtc2cg ZnJvbSBrZXJuZWwgYnkgbmV0bGluayIpOworICAgICAgICBnb3RvIGVycjsKKyAgICB9CisKKyAg ICBsZW4gKz0gcmV0OworICAgIGlmIChtaC5tc2dfZmxhZ3MgJiBNU0dfVFJVTkMpIHsKKyAgICAg ICAgc2l6ZSArPSAxNjM4NDsKKyAgICAgICAgdG1wID0gbGlieGxfX3JlYWxsb2MoTk9HQywgdG1w LCBzaXplKTsKKyAgICAgICAgaW92Lmlvdl9iYXNlID0gdG1wICsgbGVuOworICAgICAgICBpb3Yu aW92X2xlbiA9IHNpemUgLSBsZW47CisgICAgICAgIGdvdG8gbmV4dDsKKyAgICB9CisKKyAgICAq YnVmZiA9IHRtcDsKKyAgICByZXQgPSBsZW47CisgICAgZ290byBvdXQ7CisKK2VycjoKKyAgICBm cmVlKHRtcCk7CisgICAgKmJ1ZmYgPSBOVUxMOworCitvdXQ6CisgICAgaWYgKHRpbWVvdXRfdXMp IHsKKyAgICAgICAgdHYudHZfc2VjID0gMDsKKyAgICAgICAgdHYudHZfdXNlYyA9IDA7CisgICAg ICAgIHNldHNvY2tvcHQoY3BzLT5zb2NrX2ZkLCBTT0xfU09DS0VULCBTT19SQ1ZUSU1FTywgJnR2 LCBzaXplb2YodHYpKTsKKyAgICB9CisgICAgcmV0dXJuIHJldDsKK30KKworLyogPT09PT09PT09 IGNvbG8tcHJveHk6IHNldHVwIGFuZCB0ZWFyZG93biA9PT09PT09PT09ICovCisKK2ludCBjb2xv X3Byb3h5X3NldHVwKGxpYnhsX19jb2xvX3Byb3h5X3N0YXRlICpjcHMpCit7CisgICAgaW50IHNr ZmQgPSAwOworICAgIHN0cnVjdCBzb2NrYWRkcl9ubCBzYTsKKyAgICBzdHJ1Y3Qgbmxtc2doZHIg Kmg7CisgICAgaW50IGkgPSAxOworICAgIGludCByZXQgPSBFUlJPUl9GQUlMOworICAgIHVpbnQ4 X3QgKmJ1ZmYgPSBOVUxMOworICAgIGludDY0X3Qgc2l6ZTsKKworICAgIFNUQVRFX0FPX0dDKGNw cy0+YW8pOworCisgICAgc2tmZCA9IHNvY2tldChQRl9ORVRMSU5LLCBTT0NLX1JBVywgTkVUTElO S19DT0xPKTsKKyAgICBpZiAoc2tmZCA8IDApIHsKKyAgICAgICAgTE9HKEVSUk9SLCAiY2FuIG5v dCBjcmVhdGUgYSBuZXRsaW5rIHNvY2tldDogJXMiLCBzdHJlcnJvcihlcnJubykpOworICAgICAg ICBnb3RvIG91dDsKKyAgICB9CisgICAgY3BzLT5zb2NrX2ZkID0gc2tmZDsKKyAgICBtZW1zZXQo JnNhLCAwLCBzaXplb2Yoc2EpKTsKKyAgICBzYS5ubF9mYW1pbHkgPSBBRl9ORVRMSU5LOworICAg IHNhLm5sX2dyb3VwcyA9IDA7CityZXRyeToKKyAgICBzYS5ubF9waWQgPSBpKys7CisKKyAgICBp ZiAoaSA+IDEwKSB7CisgICAgICAgIExPRyhFUlJPUiwgIm5ldGxpbmsgYmluZCBlcnJvciIpOwor ICAgICAgICBnb3RvIG91dDsKKyAgICB9CisKKyAgICByZXQgPSBiaW5kKHNrZmQsIChzdHJ1Y3Qg c29ja2FkZHIgKikmc2EsIHNpemVvZihzYSkpOworICAgIGlmIChyZXQgPCAwICYmIGVycm5vID09 IEVBRERSSU5VU0UpIHsKKyAgICAgICAgTE9HKEVSUk9SLCAiY29sbyBpbmRleCAlZCBoYXMgYWxy ZWFkeSBpbiB1c2VkIiwgc2EubmxfcGlkKTsKKyAgICAgICAgZ290byByZXRyeTsKKyAgICB9IGVs c2UgaWYgKHJldCA8IDApIHsKKyAgICAgICAgTE9HKEVSUk9SLCAibmV0bGluayBiaW5kIGVycm9y Iik7CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKworICAgIGNwcy0+aW5kZXggPSBzYS5ubF9w aWQ7CisgICAgcmV0ID0gY29sb19wcm94eV9zZW5kKGNwcywgTlVMTCwgMCwgQ09MT19QUk9YWV9J TklUKTsKKyAgICBpZiAocmV0IDwgMCkgeworICAgICAgICBnb3RvIG91dDsKKyAgICB9CisgICAg LyogcmVjZWl2ZSBhY2sgKi8KKyAgICBzaXplID0gY29sb19wcm94eV9yZWN2KGNwcywgJmJ1ZmYs IDUwMDAwMCk7CisgICAgaWYgKHNpemUgPCAwKSB7CisgICAgICAgIExPRyhFUlJPUiwgIkNhbid0 IHJlY3YgbXNnIGZyb20ga2VybmVsIGJ5IG5ldGxpbms6ICVzIiwKKyAgICAgICAgICAgIHN0cmVy cm9yKGVycm5vKSk7CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKworICAgIGlmIChzaXplKSB7 CisgICAgICAgIGggPSAoc3RydWN0IG5sbXNnaGRyICopYnVmZjsKKyAgICAgICAgaWYgKGgtPm5s bXNnX3R5cGUgPT0gTkxNU0dfRVJST1IpIHsKKyAgICAgICAgICAgIC8qIGFjaydzIHR5cGUgaXMg TkxNU0dfRVJST1IgKi8KKyAgICAgICAgICAgIHN0cnVjdCBubG1zZ2VyciAqZXJyID0gKHN0cnVj dCBubG1zZ2VyciAqKU5MTVNHX0RBVEEoaCk7CisKKyAgICAgICAgICAgIGlmIChzaXplIC0gc2l6 ZW9mKCpoKSA8IHNpemVvZigqZXJyKSkgeworICAgICAgICAgICAgICAgIExPRyhFUlJPUiwgIk5M TVNHX0xFTkdUSCBpcyB0b28gc2hvcnQiKTsKKyAgICAgICAgICAgICAgICBnb3RvIG91dDsKKyAg ICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGVyci0+ZXJyb3IpIHsKKyAgICAgICAgICAg ICAgICBMT0coRVJST1IsICJOTE1TR19FUlJPUiBjb250YWlucyBlcnJvciAlZCIsIGVyci0+ZXJy b3IpOworICAgICAgICAgICAgICAgIGdvdG8gb3V0OworICAgICAgICAgICAgfQorICAgICAgICB9 CisgICAgfQorCisgICAgcmV0ID0gMDsKKworb3V0OgorICAgIGZyZWUoYnVmZik7CisgICAgaWYg KHJldCkgeworICAgICAgICBjbG9zZShjcHMtPnNvY2tfZmQpOworICAgICAgICBjcHMtPnNvY2tf ZmQgPSAtMTsKKyAgICB9CisgICAgcmV0dXJuIHJldDsKK30KKwordm9pZCBjb2xvX3Byb3h5X3Rl YXJkb3duKGxpYnhsX19jb2xvX3Byb3h5X3N0YXRlICpjcHMpCit7CisgICAgaWYgKGNwcy0+c29j a19mZCA+PSAwKSB7CisgICAgICAgIGNsb3NlKGNwcy0+c29ja19mZCk7CisgICAgICAgIGNwcy0+ c29ja19mZCA9IC0xOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2lu dGVybmFsLmggYi90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oCmluZGV4IDBhZWFmMTguLjQ5 NDBiNTkgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgKKysrIGIvdG9v bHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaApAQCAtMzE5NCw2ICszMTk0LDkgQEAgc3RydWN0IGxp YnhsX19jb2xvX3NhdmVfc3RhdGUgewogICAgIC8qIHByaXZhdGUsIHVzZWQgYnkgcWRpc2sgYmxv Y2sgcmVwbGljYXRpb24gKi8KICAgICBib29sIHFkaXNrX3VzZWQ7CiAgICAgYm9vbCBxZGlza19z ZXR1cGVkOworCisgICAgLyogcHJpdmF0ZSwgdXNlZCBieSBjb2xvLXByb3h5ICovCisgICAgbGli eGxfX2NvbG9fcHJveHlfc3RhdGUgY3BzOwogfTsKIAogdHlwZWRlZiBzdHJ1Y3QgbGlieGxfX2xv Z2RpcnR5X3N3aXRjaCB7Ci0tIAoxLjkuMwoKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlz dHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK