From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v12 05/11] x86/mm: add HYPERVISOR_memory_op to acquire guest resources Date: Tue, 17 Oct 2017 14:24:26 +0100 Message-ID: <20171017132432.24093-6-paul.durrant@citrix.com> References: <20171017132432.24093-1-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e4RrW-0000FY-FM for xen-devel@lists.xenproject.org; Tue, 17 Oct 2017 13:24:50 +0000 In-Reply-To: <20171017132432.24093-1-paul.durrant@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Stefano Stabellini , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Julien Grall , Paul Durrant , Jan Beulich , Daniel De Graaf List-Id: xen-devel@lists.xenproject.org Q2VydGFpbiBtZW1vcnkgcmVzb3VyY2VzIGFzc29jaWF0ZWQgd2l0aCBhIGd1ZXN0IGFyZSBub3Qg bmVjZXNzYXJpbHkKcHJlc2VudCBpbiB0aGUgZ3Vlc3QgUDJNLgoKVGhpcyBwYXRjaCBhZGRzIHRo ZSBib2lsZXJwbGF0ZSBmb3IgbmV3IG1lbW9yeSBvcCB0byBhbGxvdyBzdWNoIGEgcmVzb3VyY2UK dG8gYmUgcHJpdi1tYXBwZWQgZGlyZWN0bHksIGJ5IGVpdGhlciBhIFBWIG9yIEhWTSB0b29scyBk b21haW4uCgpOT1RFOiBXaGlsc3QgdGhlIG5ldyBvcCBpcyBub3QgaW50cmluc2ljbHkgc3BlY2lm aWMgdG8gdGhlIHg4NiBhcmNoaXRlY3R1cmUsCiAgICAgIEkgaGF2ZSBubyBtZWFucyB0byB0ZXN0 IGl0IG9uIGFuIEFSTSBwbGF0Zm9ybSBhbmQgc28gY2Fubm90IHZlcmlmeQogICAgICB0aGF0IGl0 IGZ1bmN0aW9ucyBjb3JyZWN0bHkuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwu ZHVycmFudEBjaXRyaXguY29tPgotLS0KQ2M6IEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBA ZXUuY2l0cml4LmNvbT4KQ2M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KQ2M6IEFu ZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CkNjOiBHZW9yZ2UgRHVubGFw IDxHZW9yZ2UuRHVubGFwQGV1LmNpdHJpeC5jb20+CkNjOiBJYW4gSmFja3NvbiA8aWFuLmphY2tz b25AZXUuY2l0cml4LmNvbT4KQ2M6IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndpbGtA b3JhY2xlLmNvbT4KQ2M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9y Zz4KQ2M6IFRpbSBEZWVnYW4gPHRpbUB4ZW4ub3JnPgpDYzogV2VpIExpdSA8d2VpLmxpdTJAY2l0 cml4LmNvbT4KQ2M6IERhbmllbCBEZSBHcmFhZiA8ZGdkZWdyYUB0eWNoby5uc2EuZ292PgpDYzog SnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4KCnYxMjoKIC0gQWRkcmVzc2VkIG1v cmUgY29tbWVudHMgZm9ybSBKYW4uCiAtIFJlbW92ZWQgI2lmZGVmIENPTkZJR19YODYgZnJvbSBj b21tb24gY29kZSBhbmQgaW5zdGVhZCBpbnRyb2R1Y2VkIGEKICAgc3R1YiBzZXRfZm9yZWlnbl9w Mm1fZW50cnkoKSBpbiBhc20tYXJtL3AybS5oIHJldHVybmluZyAtRU9QTk9UU1VQUC4KIC0gUmVz dHJpY3RlZCBtZWNoYW5pc20gZm9yIHF1ZXJ5aW5nIGltcGxlbWVudGF0aW9uIGxpbWl0IG9uIG5y X2ZyYW1lcwogICBhbmQgc2ltcGxpZmllZCBjb21wYXQgY29kZS4KCnYxMToKIC0gQWRkcmVzc2Vk IG1vcmUgY29tbWVudHMgZnJvbSBKYW4uCgp2OToKIC0gQWRkcmVzc2VkIG1vcmUgY29tbWVudHMg ZnJvbSBKYW4uCgp2ODoKIC0gTW92ZSB0aGUgY29kZSBpbnRvIGNvbW1vbiBhcyByZXF1ZXN0ZWQg YnkgSmFuLgogLSBNYWtlIHRoZSBnbWZuX2xpc3QgaGFuZGxlIGEgNjQtYml0IHR5cGUgdG8gYXZv aWQgbGltaXRpbmcgdGhlIE1GTgogICByYW5nZSBmb3IgYSAzMi1iaXQgdG9vbHMgZG9tYWluLgog LSBBZGQgbWlzc2luZyBwYWQuCiAtIEFkZCBjb21wYXQgY29kZS4KIC0gTWFrZSB0aGlzIHBhdGNo IGRlYWwgd2l0aCBwdXJlbHkgYm9pbGVycGxhdGUuCiAtIERyb3AgR2VvcmdlJ3MgQS1iIGFuZCBX ZWkncyBSLWIgYmVjYXVzZSB0aGUgY2hhbmdlcyBhcmUgbm9uLXRyaXZpYWwsCiAgIGFuZCB1cGRh dGUgQ2MgbGlzdCBub3cgdGhlIGJvaWxlcnBsYXRlIGlzIGNvbW1vbi4KCnY1OgogLSBTd2l0Y2hl ZCBfX2NvcHlfdG8vZnJvbV9ndWVzdF9vZmZzZXQoKSB0byBjb3B5X3RvL2Zyb21fZ3Vlc3Rfb2Zm c2V0KCkuCi0tLQogdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMveGVuLmlmICAgfCAgNCArLQog eGVuL2FyY2gveDg2L21tL3AybS5jICAgICAgICAgICAgICAgfCAgMyArLQogeGVuL2NvbW1vbi9j b21wYXQvbWVtb3J5LmMgICAgICAgICAgfCA5NSArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrCiB4ZW4vY29tbW9uL21lbW9yeS5jICAgICAgICAgICAgICAgICB8IDk0ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogeGVuL2luY2x1ZGUvYXNtLWFybS9wMm0u aCAgICAgICAgICAgfCAgNiArKysKIHhlbi9pbmNsdWRlL2FzbS14ODYvcDJtLmggICAgICAgICAg IHwgIDMgKysKIHhlbi9pbmNsdWRlL3B1YmxpYy9tZW1vcnkuaCAgICAgICAgIHwgNDMgKysrKysr KysrKysrKysrKy0KIHhlbi9pbmNsdWRlL3hsYXQubHN0ICAgICAgICAgICAgICAgIHwgIDEgKwog eGVuL2luY2x1ZGUveHNtL2R1bW15LmggICAgICAgICAgICAgfCAgNiArKysKIHhlbi9pbmNsdWRl L3hzbS94c20uaCAgICAgICAgICAgICAgIHwgIDYgKysrCiB4ZW4veHNtL2R1bW15LmMgICAgICAg ICAgICAgICAgICAgICB8ICAxICsKIHhlbi94c20vZmxhc2svaG9va3MuYyAgICAgICAgICAgICAg IHwgIDYgKysrCiB4ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycyB8ICAyICsKIDEz IGZpbGVzIGNoYW5nZWQsIDI2NiBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL3hlbi5pZiBiL3Rvb2xzL2ZsYXNrL3Bv bGljeS9tb2R1bGVzL3hlbi5pZgppbmRleCA1NTQzNzQ5NmY2Li4wN2NiYThhMTVkIDEwMDY0NAot LS0gYS90b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy94ZW4uaWYKKysrIGIvdG9vbHMvZmxhc2sv cG9saWN5L21vZHVsZXMveGVuLmlmCkBAIC01Miw3ICs1Miw4IEBAIGRlZmluZShgY3JlYXRlX2Rv bWFpbl9jb21tb24nLCBgCiAJCQlzZXR0aW1lIHNldGRvbWFpbmhhbmRsZSBnZXR2Y3B1Y29udGV4 dCBzZXRfbWlzY19pbmZvIH07CiAJYWxsb3cgJDEgJDI6ZG9tYWluMiB7IHNldF9jcHVpZCBzZXR0 c2Mgc2V0c2NoZWR1bGVyIHNldGNsYWltCiAJCQlzZXRfbWF4X2V2dGNobiBzZXRfdm51bWFpbmZv IGdldF92bnVtYWluZm8gY2FjaGVmbHVzaAotCQkJcHNyX2NtdF9vcCBwc3JfY2F0X29wIHNvZnRf cmVzZXQgc2V0X2dudHRhYl9saW1pdHMgfTsKKwkJCXBzcl9jbXRfb3AgcHNyX2NhdF9vcCBzb2Z0 X3Jlc2V0IHNldF9nbnR0YWJfbGltaXRzCisJCQlyZXNvdXJjZV9tYXAgfTsKIAlhbGxvdyAkMSAk MjpzZWN1cml0eSBjaGVja19jb250ZXh0OwogCWFsbG93ICQxICQyOnNoYWRvdyBlbmFibGU7CiAJ YWxsb3cgJDEgJDI6bW11IHsgbWFwX3JlYWQgbWFwX3dyaXRlIGFkanVzdCBtZW1vcnltYXAgcGh5 c21hcCBwaW5wYWdlIG1tdWV4dF9vcCB1cGRhdGVtcCB9OwpAQCAtMTUyLDYgKzE1Myw3IEBAIGRl ZmluZShgZGV2aWNlX21vZGVsJywgYAogCWFsbG93ICQxICQyX3RhcmdldDpkb21haW4geyBnZXRk b21haW5pbmZvIHNodXRkb3duIH07CiAJYWxsb3cgJDEgJDJfdGFyZ2V0Om1tdSB7IG1hcF9yZWFk IG1hcF93cml0ZSBhZGp1c3QgcGh5c21hcCB0YXJnZXRfaGFjayB9OwogCWFsbG93ICQxICQyX3Rh cmdldDpodm0geyBnZXRwYXJhbSBzZXRwYXJhbSBodm1jdGwgY2FjaGVhdHRyIGRtIH07CisJYWxs b3cgJDEgJDJfdGFyZ2V0OmRvbWFpbjIgcmVzb3VyY2VfbWFwOwogJykKIAogIyBtYWtlX2Rldmlj ZV9tb2RlbChwcml2LCBkbV9kb20sIGh2bV9kb20pCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv bW0vcDJtLmMgYi94ZW4vYXJjaC94ODYvbW0vcDJtLmMKaW5kZXggYzcyYTNjZGViYi4uNzFiYjli NGY5MyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tL3AybS5jCisrKyBiL3hlbi9hcmNoL3g4 Ni9tbS9wMm0uYwpAQCAtMTEzMiw4ICsxMTMyLDcgQEAgc3RhdGljIGludCBzZXRfdHlwZWRfcDJt X2VudHJ5KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuX2wsCiB9CiAKIC8qIFNl dCBmb3JlaWduIG1mbiBpbiB0aGUgZ2l2ZW4gZ3Vlc3QncyBwMm0gdGFibGUuICovCi1zdGF0aWMg aW50IHNldF9mb3JlaWduX3AybV9lbnRyeShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25n IGdmbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1mbl90IG1mbikKK2ludCBz ZXRfZm9yZWlnbl9wMm1fZW50cnkoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm4s IG1mbl90IG1mbikKIHsKICAgICByZXR1cm4gc2V0X3R5cGVkX3AybV9lbnRyeShkLCBnZm4sIG1m biwgUEFHRV9PUkRFUl80SywgcDJtX21hcF9mb3JlaWduLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHAybV9nZXRfaG9zdHAybShkKS0+ZGVmYXVsdF9hY2Nlc3MpOwpkaWZmIC0tZ2l0 IGEveGVuL2NvbW1vbi9jb21wYXQvbWVtb3J5LmMgYi94ZW4vY29tbW9uL2NvbXBhdC9tZW1vcnku YwppbmRleCAzNWJiMjU5ODA4Li43ZjJlMmUzMTA3IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2Nv bXBhdC9tZW1vcnkuYworKysgYi94ZW4vY29tbW9uL2NvbXBhdC9tZW1vcnkuYwpAQCAtNzEsNiAr NzEsNyBAQCBpbnQgY29tcGF0X21lbW9yeV9vcCh1bnNpZ25lZCBpbnQgY21kLCBYRU5fR1VFU1Rf SEFORExFX1BBUkFNKHZvaWQpIGNvbXBhdCkKICAgICAgICAgICAgIHN0cnVjdCB4ZW5fcmVtb3Zl X2Zyb21fcGh5c21hcCAqeHJmcDsKICAgICAgICAgICAgIHN0cnVjdCB4ZW5fdm51bWFfdG9wb2xv Z3lfaW5mbyAqdm51bWE7CiAgICAgICAgICAgICBzdHJ1Y3QgeGVuX21lbV9hY2Nlc3Nfb3AgKm1h bzsKKyAgICAgICAgICAgIHN0cnVjdCB4ZW5fbWVtX2FjcXVpcmVfcmVzb3VyY2UgKm1hcjsKICAg ICAgICAgfSBuYXQ7CiAgICAgICAgIHVuaW9uIHsKICAgICAgICAgICAgIHN0cnVjdCBjb21wYXRf bWVtb3J5X3Jlc2VydmF0aW9uIHJzcnY7CkBAIC03OSw2ICs4MCw3IEBAIGludCBjb21wYXRfbWVt b3J5X29wKHVuc2lnbmVkIGludCBjbWQsIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgY29t cGF0KQogICAgICAgICAgICAgc3RydWN0IGNvbXBhdF9hZGRfdG9fcGh5c21hcF9iYXRjaCBhdHBi OwogICAgICAgICAgICAgc3RydWN0IGNvbXBhdF92bnVtYV90b3BvbG9neV9pbmZvIHZudW1hOwog ICAgICAgICAgICAgc3RydWN0IGNvbXBhdF9tZW1fYWNjZXNzX29wIG1hbzsKKyAgICAgICAgICAg IHN0cnVjdCBjb21wYXRfbWVtX2FjcXVpcmVfcmVzb3VyY2UgbWFyOwogICAgICAgICB9IGNtcDsK IAogICAgICAgICBzZXRfeGVuX2d1ZXN0X2hhbmRsZShuYXQuaG5kLCBDT01QQVRfQVJHX1hMQVRf VklSVF9CQVNFKTsKQEAgLTM5NSw2ICszOTcsNTcgQEAgaW50IGNvbXBhdF9tZW1vcnlfb3AodW5z aWduZWQgaW50IGNtZCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBjb21wYXQpCiAgICAg ICAgIH0KICNlbmRpZgogCisgICAgICAgIGNhc2UgWEVOTUVNX2FjcXVpcmVfcmVzb3VyY2U6Cisg ICAgICAgIHsKKyAgICAgICAgICAgIHhlbl91bG9uZ190ICp4ZW5fZnJhbWVfbGlzdDsKKyAgICAg ICAgICAgIHVuc2lnbmVkIGludCBtYXhfbnJfZnJhbWVzOworCisgICAgICAgICAgICBpZiAoIGNv cHlfZnJvbV9ndWVzdCgmY21wLm1hciwgY29tcGF0LCAxKSApCisgICAgICAgICAgICAgICAgcmV0 dXJuIC1FRkFVTFQ7CisKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBUaGUgbnVtYmVy IG9mIGZyYW1lcyBoYW5kbGVkIGlzIGN1cnJlbnRseSBsaW1pdGVkIHRvIGEKKyAgICAgICAgICAg ICAqIHNtYWxsIG51bWJlciBieSB0aGUgdW5kZXJseWluZyBpbXBsZW1lbnRhdGlvbiwgc28gdGhl CisgICAgICAgICAgICAgKiBzY3JhdGNoIHNwYWNlIHNob3VsZCBiZSBzdWZmaWNpZW50IGZvciBi b3VuY2luZyB0aGUKKyAgICAgICAgICAgICAqIGZyYW1lIGFkZHJlc3Nlcy4KKyAgICAgICAgICAg ICAqLworICAgICAgICAgICAgbWF4X25yX2ZyYW1lcyA9IChDT01QQVRfQVJHX1hMQVRfU0laRSAt IHNpemVvZigqbmF0Lm1hcikpIC8KKyAgICAgICAgICAgICAgICBzaXplb2YoKnhlbl9mcmFtZV9s aXN0KTsKKworICAgICAgICAgICAgaWYgKCBjbXAubWFyLm5yX2ZyYW1lcyA+IG1heF9ucl9mcmFt ZXMgKQorICAgICAgICAgICAgICAgIHJldHVybiAtRTJCSUc7CisKKyAgICAgICAgICAgIGlmICgg Y29tcGF0X2hhbmRsZV9pc19udWxsKGNtcC5tYXIuZnJhbWVfbGlzdCkgKQorICAgICAgICAgICAg ICAgIHhlbl9mcmFtZV9saXN0ID0gTlVMTDsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg IHsKKyAgICAgICAgICAgICAgICB4ZW5fZnJhbWVfbGlzdCA9ICh4ZW5fdWxvbmdfdCAqKShuYXQu bWFyICsgMSk7CisKKyAgICAgICAgICAgICAgICBpZiAoICFjb21wYXRfaGFuZGxlX29rYXkoY21w Lm1hci5mcmFtZV9saXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjbXAubWFyLm5yX2ZyYW1lcykgKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gLUVGQVVM VDsKKworICAgICAgICAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgY21wLm1hci5ucl9mcmFtZXM7 IGkrKyApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBjb21wYXRfdWxv bmdfdCBmcmFtZTsKKworICAgICAgICAgICAgICAgICAgICBpZiAoIF9fY29weV9mcm9tX2NvbXBh dF9vZmZzZXQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmcmFtZSwgY21wLm1hci5m cmFtZV9saXN0LCBpLCAxKSApCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLUVGQVVM VDsKKworICAgICAgICAgICAgICAgICAgICB4ZW5fZnJhbWVfbGlzdFtpXSA9IGZyYW1lOworICAg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworI2RlZmluZSBYTEFUX21lbV9hY3F1aXJl X3Jlc291cmNlX0hORExfZnJhbWVfbGlzdChfZF8sIF9zXykgXAorICAgICAgICAgICAgc2V0X3hl bl9ndWVzdF9oYW5kbGUoKF9kXyktPmZyYW1lX2xpc3QsIHhlbl9mcmFtZV9saXN0KQorCisgICAg ICAgICAgICBYTEFUX21lbV9hY3F1aXJlX3Jlc291cmNlKG5hdC5tYXIsICZjbXAubWFyKTsKKwor I3VuZGVmIFhMQVRfbWVtX2FjcXVpcmVfcmVzb3VyY2VfSE5ETF9mcmFtZV9saXN0CisKKyAgICAg ICAgICAgIGJyZWFrOworICAgICAgICB9CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBy ZXR1cm4gY29tcGF0X2FyY2hfbWVtb3J5X29wKGNtZCwgY29tcGF0KTsKICAgICAgICAgfQpAQCAt NTM1LDYgKzU4OCw0OCBAQCBpbnQgY29tcGF0X21lbW9yeV9vcCh1bnNpZ25lZCBpbnQgY21kLCBY RU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGNvbXBhdCkKICAgICAgICAgICAgICAgICByYyA9 IC1FRkFVTFQ7CiAgICAgICAgICAgICBicmVhazsKIAorICAgICAgICBjYXNlIFhFTk1FTV9hY3F1 aXJlX3Jlc291cmNlOgorICAgICAgICB7CisgICAgICAgICAgICBjb25zdCB4ZW5fdWxvbmdfdCAq eGVuX2ZyYW1lX2xpc3QgPQorICAgICAgICAgICAgICAgICh4ZW5fdWxvbmdfdCAqKShuYXQubWFy ICsgMSk7CisgICAgICAgICAgICBjb21wYXRfdWxvbmdfdCAqY29tcGF0X2ZyYW1lX2xpc3QgPQor ICAgICAgICAgICAgICAgIChjb21wYXRfdWxvbmdfdCAqKShuYXQubWFyICsgMSk7CisKKyAgICAg ICAgICAgIGlmICggY21wLm1hci5ucl9mcmFtZXMgPT0gMCApCisgICAgICAgICAgICB7CisgICAg ICAgICAgICAgICAgREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoY29tcGF0X21lbV9hY3F1aXJlX3Jl c291cmNlX3QpOworCisgICAgICAgICAgICAgICAgaWYgKCBfX2NvcHlfZmllbGRfdG9fZ3Vlc3Qo CisgICAgICAgICAgICAgICAgICAgICAgICAgZ3Vlc3RfaGFuZGxlX2Nhc3QoY29tcGF0LAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBhdF9tZW1fYWNxdWly ZV9yZXNvdXJjZV90KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAmY21wLm1hciwgbnJfZnJh bWVzKSApCisgICAgICAgICAgICAgICAgICAgIHJldHVybiAtRUZBVUxUOworICAgICAgICAgICAg fQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8qCisg ICAgICAgICAgICAgICAgICogTk9URTogdGhlIHNtYWxsZXIgY29tcGF0IGFycmF5IG92ZXJ3cml0 ZXMgdGhlIG5hdGl2ZQorICAgICAgICAgICAgICAgICAqICAgICAgIGFycmF5LgorICAgICAgICAg ICAgICAgICAqLworICAgICAgICAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgY21wLm1hci5ucl9m cmFtZXM7IGkrKyApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBjb21w YXRfdWxvbmdfdCBmcmFtZSA9IHhlbl9mcmFtZV9saXN0W2ldOworCisgICAgICAgICAgICAgICAg ICAgIGlmICggZnJhbWUgIT0geGVuX2ZyYW1lX2xpc3RbaV0gKQorICAgICAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIC1FUkFOR0U7CisKKyAgICAgICAgICAgICAgICAgICAgY29tcGF0X2ZyYW1l X2xpc3RbaV0gPSBmcmFtZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBp ZiAoIF9fY29weV90b19jb21wYXRfb2Zmc2V0KGNtcC5tYXIuZnJhbWVfbGlzdCwgMCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBhdF9mcmFtZV9saXN0 LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY21wLm1hci5u cl9mcmFtZXMpICkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FRkFVTFQ7CisgICAgICAg ICAgICB9CisKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKICAgICAgICAgZGVmYXVs dDoKICAgICAgICAgICAgIGRvbWFpbl9jcmFzaChjdXJyZW50LT5kb21haW4pOwogICAgICAgICAg ICAgc3BsaXQgPSAwOwpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9tZW1vcnkuYyBiL3hlbi9jb21t b24vbWVtb3J5LmMKaW5kZXggYWQ5ODdlMGYyOS4uY2RkMmUwMzBjZiAxMDA2NDQKLS0tIGEveGVu L2NvbW1vbi9tZW1vcnkuYworKysgYi94ZW4vY29tbW9uL21lbW9yeS5jCkBAIC05NjUsNiArOTY1 LDk1IEBAIHN0YXRpYyBsb25nIHhhdHBfcGVybWlzc2lvbl9jaGVjayhzdHJ1Y3QgZG9tYWluICpk LCB1bnNpZ25lZCBpbnQgc3BhY2UpCiAgICAgcmV0dXJuIHhzbV9hZGRfdG9fcGh5c21hcChYU01f VEFSR0VULCBjdXJyZW50LT5kb21haW4sIGQpOwogfQogCitzdGF0aWMgaW50IGFjcXVpcmVfcmVz b3VyY2UoCisgICAgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZW5fbWVtX2FjcXVpcmVfcmVzb3Vy Y2VfdCkgYXJnKQoreworICAgIHN0cnVjdCBkb21haW4gKmQsICpjdXJyZCA9IGN1cnJlbnQtPmRv bWFpbjsKKyAgICB4ZW5fbWVtX2FjcXVpcmVfcmVzb3VyY2VfdCB4bWFyOworICAgIHVuc2lnbmVk IGxvbmcgbWZuX2xpc3RbMl07CisgICAgaW50IHJjOworCisgICAgaWYgKCBjb3B5X2Zyb21fZ3Vl c3QoJnhtYXIsIGFyZywgMSkgKQorICAgICAgICByZXR1cm4gLUVGQVVMVDsKKworICAgIGlmICgg eG1hci5wYWQgIT0gMCApCisgICAgICAgIHJldHVybiAtRUlOVkFMOworCisgICAgaWYgKCBndWVz dF9oYW5kbGVfaXNfbnVsbCh4bWFyLmZyYW1lX2xpc3QpICkKKyAgICB7CisgICAgICAgIC8qIFNw ZWNpYWwgY2FzZSBmb3IgcXVlcnlpbmcgaW1wbGVtZW50YXRpb24gbGltaXQgKi8KKyAgICAgICAg aWYgKCB4bWFyLm5yX2ZyYW1lcyA9PSAwICkKKyAgICAgICAgeworICAgICAgICAgICAgeG1hci5u cl9mcmFtZXMgPSBBUlJBWV9TSVpFKG1mbl9saXN0KTsKKworICAgICAgICAgICAgaWYgKCBfX2Nv cHlfZmllbGRfdG9fZ3Vlc3QoYXJnLCAmeG1hciwgbnJfZnJhbWVzKSApCisgICAgICAgICAgICAg ICAgcmV0dXJuIC1FRkFVTFQ7CisKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisK KyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisgICAgfQorCisgICAgaWYgKCB4bWFyLm5yX2ZyYW1l cyA9PSAwICkKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAgICBpZiAoIHhtYXIubnJfZnJh bWVzID4gQVJSQVlfU0laRShtZm5fbGlzdCkgKQorICAgICAgICByZXR1cm4gLUUyQklHOworCisg ICAgZCA9IHJjdV9sb2NrX2RvbWFpbl9ieV9hbnlfaWQoeG1hci5kb21pZCk7CisgICAgaWYgKCBk ID09IE5VTEwgKQorICAgICAgICByZXR1cm4gLUVTUkNIOworCisgICAgcmMgPSB4c21fZG9tYWlu X3Jlc291cmNlX21hcChYU01fRE1fUFJJViwgZCk7CisgICAgaWYgKCByYyApCisgICAgICAgIGdv dG8gb3V0OworCisgICAgc3dpdGNoICggeG1hci50eXBlICkKKyAgICB7CisgICAgZGVmYXVsdDoK KyAgICAgICAgcmMgPSAtRU9QTk9UU1VQUDsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAg aWYgKCByYyApCisgICAgICAgIGdvdG8gb3V0OworCisgICAgaWYgKCAhcGFnaW5nX21vZGVfdHJh bnNsYXRlKGN1cnJkKSApCisgICAgeworICAgICAgICBpZiAoIGNvcHlfdG9fZ3Vlc3QoeG1hci5m cmFtZV9saXN0LCBtZm5fbGlzdCwgeG1hci5ucl9mcmFtZXMpICkKKyAgICAgICAgICAgIHJjID0g LUVGQVVMVDsKKyAgICB9CisgICAgZWxzZQorICAgIHsKKyAgICAgICAgeGVuX3Bmbl90IGdmbl9s aXN0W0FSUkFZX1NJWkUobWZuX2xpc3QpXTsKKyAgICAgICAgdW5zaWduZWQgaW50IGk7CisKKyAg ICAgICAgcmMgPSAtRUZBVUxUOworICAgICAgICBpZiAoIGNvcHlfZnJvbV9ndWVzdChnZm5fbGlz dCwgeG1hci5mcmFtZV9saXN0LCB4bWFyLm5yX2ZyYW1lcykgKQorICAgICAgICAgICAgZ290byBv dXQ7CisKKyAgICAgICAgZm9yICggaSA9IDA7IGkgPCB4bWFyLm5yX2ZyYW1lczsgaSsrICkKKyAg ICAgICAgeworICAgICAgICAgICAgcmMgPSBzZXRfZm9yZWlnbl9wMm1fZW50cnkoY3VycmQsIGdm bl9saXN0W2ldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21mbiht Zm5fbGlzdFtpXSkpOworICAgICAgICAgICAgaWYgKCByYyApCisgICAgICAgICAgICB7CisgICAg ICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgKiBNYWtlIHN1cmUgcmMgaXMgLUVJTyBm b3IgYW55IGludGVyYXRpb24gb3RoZXIgdGhhbgorICAgICAgICAgICAgICAgICAqIHRoZSBmaXJz dC4KKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICByYyA9IChpICE9IDApID8g LUVJTyA6IHJjOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAg ICB9CisgICAgfQorCisgb3V0OgorICAgIHJjdV91bmxvY2tfZG9tYWluKGQpOworICAgIHJldHVy biByYzsKK30KKwogbG9uZyBkb19tZW1vcnlfb3AodW5zaWduZWQgbG9uZyBjbWQsIFhFTl9HVUVT VF9IQU5ETEVfUEFSQU0odm9pZCkgYXJnKQogewogICAgIHN0cnVjdCBkb21haW4gKmQsICpjdXJy X2QgPSBjdXJyZW50LT5kb21haW47CkBAIC0xNDA2LDYgKzE0OTUsMTEgQEAgbG9uZyBkb19tZW1v cnlfb3AodW5zaWduZWQgbG9uZyBjbWQsIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgYXJn KQogICAgIH0KICNlbmRpZgogCisgICAgY2FzZSBYRU5NRU1fYWNxdWlyZV9yZXNvdXJjZToKKyAg ICAgICAgcmMgPSBhY3F1aXJlX3Jlc291cmNlKAorICAgICAgICAgICAgZ3Vlc3RfaGFuZGxlX2Nh c3QoYXJnLCB4ZW5fbWVtX2FjcXVpcmVfcmVzb3VyY2VfdCkpOworICAgICAgICBicmVhazsKKwog ICAgIGRlZmF1bHQ6CiAgICAgICAgIHJjID0gYXJjaF9tZW1vcnlfb3AoY21kLCBhcmcpOwogICAg ICAgICBicmVhazsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vcDJtLmggYi94ZW4v aW5jbHVkZS9hc20tYXJtL3AybS5oCmluZGV4IGZhYWRjZmU4ZmUuLmE1Y2FhNzQ3Y2UgMTAwNjQ0 Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vcDJtLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLWFy bS9wMm0uaApAQCAtMzQ2LDYgKzM0NiwxMiBAQCBzdGF0aWMgaW5saW5lIGdmbl90IGdmbl9uZXh0 X2JvdW5kYXJ5KGdmbl90IGdmbiwgdW5zaWduZWQgaW50IG9yZGVyKQogICAgIHJldHVybiBnZm5f YWRkKGdmbiwgMVVMIDw8IG9yZGVyKTsKIH0KIAorc3RhdGljIGlubGluZSBpbnQgc2V0X2ZvcmVp Z25fcDJtX2VudHJ5KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1mbl90IG1mbikKK3sKKyAgICByZXR1 cm4gLUVPUE5PVFNVUFA7Cit9CisKICNlbmRpZiAvKiBfWEVOX1AyTV9IICovCiAKIC8qCmRpZmYg LS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L3AybS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9w Mm0uaAppbmRleCAxN2IxZDBjOGQzLi40NGY3ZWMwODhjIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVk ZS9hc20teDg2L3AybS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvcDJtLmgKQEAgLTYyMCw2 ICs2MjAsOSBAQCB2b2lkIHAybV9tZW1vcnlfdHlwZV9jaGFuZ2VkKHN0cnVjdCBkb21haW4gKmQp OwogaW50IHAybV9pc19sb2dkaXJ0eV9yYW5nZShzdHJ1Y3QgcDJtX2RvbWFpbiAqLCB1bnNpZ25l ZCBsb25nIHN0YXJ0LAogICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGVu ZCk7CiAKKy8qIFNldCBmb3JlaWduIGVudHJ5IGluIHRoZSBwMm0gdGFibGUgKGZvciBwcml2LW1h cHBpbmcpICovCitpbnQgc2V0X2ZvcmVpZ25fcDJtX2VudHJ5KHN0cnVjdCBkb21haW4gKmQsIHVu c2lnbmVkIGxvbmcgZ2ZuLCBtZm5fdCBtZm4pOworCiAvKiBTZXQgbW1pbyBhZGRyZXNzZXMgaW4g dGhlIHAybSB0YWJsZSAoZm9yIHBhc3MtdGhyb3VnaCkgKi8KIGludCBzZXRfbW1pb19wMm1fZW50 cnkoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm4sIG1mbl90IG1mbiwKICAgICAg ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG9yZGVyLCBwMm1fYWNjZXNzX3QgYWNjZXNz KTsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9tZW1vcnkuaCBiL3hlbi9pbmNsdWRl L3B1YmxpYy9tZW1vcnkuaAppbmRleCAyOTM4NmRmOThiLi4xODExOGVhNWM2IDEwMDY0NAotLS0g YS94ZW4vaW5jbHVkZS9wdWJsaWMvbWVtb3J5LmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL21l bW9yeS5oCkBAIC01OTksNiArNTk5LDQ3IEBAIHN0cnVjdCB4ZW5fcmVzZXJ2ZWRfZGV2aWNlX21l bW9yeV9tYXAgewogdHlwZWRlZiBzdHJ1Y3QgeGVuX3Jlc2VydmVkX2RldmljZV9tZW1vcnlfbWFw IHhlbl9yZXNlcnZlZF9kZXZpY2VfbWVtb3J5X21hcF90OwogREVGSU5FX1hFTl9HVUVTVF9IQU5E TEUoeGVuX3Jlc2VydmVkX2RldmljZV9tZW1vcnlfbWFwX3QpOwogCisvKgorICogR2V0IHRoZSBw YWdlcyBmb3IgYSBwYXJ0aWN1bGFyIGd1ZXN0IHJlc291cmNlLCBzbyB0aGF0IHRoZXkgY2FuIGJl CisgKiBtYXBwZWQgZGlyZWN0bHkgYnkgYSB0b29scyBkb21haW4uCisgKi8KKyNkZWZpbmUgWEVO TUVNX2FjcXVpcmVfcmVzb3VyY2UgMjgKK3N0cnVjdCB4ZW5fbWVtX2FjcXVpcmVfcmVzb3VyY2Ug eworICAgIC8qIElOIC0gdGhlIGRvbWFpbiB3aG9zZSByZXNvdXJjZSBpcyB0byBiZSBtYXBwZWQg Ki8KKyAgICBkb21pZF90IGRvbWlkOworICAgIC8qIElOIC0gdGhlIHR5cGUgb2YgcmVzb3VyY2Ug Ki8KKyAgICB1aW50MTZfdCB0eXBlOworICAgIC8qCisgICAgICogSU4gLSBhIHR5cGUtc3BlY2lm aWMgcmVzb3VyY2UgaWRlbnRpZmllciwgd2hpY2ggbXVzdCBiZSB6ZXJvCisgICAgICogICAgICB1 bmxlc3Mgc3RhdGVkIG90aGVyd2lzZS4KKyAgICAgKi8KKyAgICB1aW50MzJfdCBpZDsKKyAgICAv KiBJTi9PVVQgLSBBcyBhbiBJTiBwYXJhbWV0ZXIgbnVtYmVyIG9mIGZyYW1lcyBvZiB0aGUgcmVz b3VyY2UKKyAgICAgKiAgICAgICAgICB0byBiZSBtYXBwZWQuIEhvd2V2ZXIsIGlmIHRoZSBzcGVj aWZpZWQgdmFsdWUgaXMgMCBhbmQKKyAgICAgKiAgICAgICAgICBmcmFtZV9saXN0IGlzIE5VTEwg dGhlbiB0aGlzIGZpZWxkIHdpbGwgYmUgc2V0IHRvIHRoZQorICAgICAqICAgICAgICAgIG1heGlt dW0gdmFsdWUgc3VwcG9ydGVkIGJ5IHRoZSBpbXBsZW1lbnRhdGlvbiBvbiByZXR1cm4uCisgICAg ICovCisgICAgdWludDMyX3QgbnJfZnJhbWVzOworICAgIHVpbnQzMl90IHBhZDsKKyAgICAvKiBJ TiAtIHRoZSBpbmRleCBvZiB0aGUgaW5pdGlhbCBmcmFtZSB0byBiZSBtYXBwZWQuIFRoaXMgcGFy YW1ldGVyCisgICAgICogICAgICBpcyBpZ25vcmVkIGlmIG5yX2ZyYW1lcyBpcyAwLgorICAgICAq LworICAgIHVpbnQ2NF9hbGlnbmVkX3QgZnJhbWU7CisgICAgLyogSU4vT1VUIC0gSWYgdGhlIHRv b2xzIGRvbWFpbiBpcyBQViB0aGVuLCB1cG9uIHJldHVybiwgZnJhbWVfbGlzdAorICAgICAqICAg ICAgICAgIHdpbGwgYmUgcG9wdWxhdGVkIHdpdGggdGhlIE1GTnMgb2YgdGhlIHJlc291cmNlLgor ICAgICAqICAgICAgICAgIElmIHRoZSB0b29scyBkb21haW4gaXMgSFZNIHRoZW4gaXQgaXMgZXhw ZWN0ZWQgdGhhdCwgb24KKyAgICAgKiAgICAgICAgICBlbnRyeSwgZnJhbWVfbGlzdCB3aWxsIGJl IHBvcHVsYXRlZCB3aXRoIGEgbGlzdCBvZiBHRk5zCisgICAgICogICAgICAgICAgdGhhdCB3aWxs IGJlIG1hcHBlZCB0byB0aGUgTUZOcyBvZiB0aGUgcmVzb3VyY2UuCisgICAgICogICAgICAgICAg SWYgLUVJTyBpcyByZXR1cm5lZCB0aGVuIHRoZSBmcmFtZV9saXN0IGhhcyBvbmx5IGJlZW4KKyAg ICAgKiAgICAgICAgICBwYXJ0aWFsbHkgbWFwcGVkIGFuZCBpdCBpcyB1cCB0byB0aGUgY2FsbGVy IHRvIHVubWFwIGFsbAorICAgICAqICAgICAgICAgIHRoZSBHRk5zLgorICAgICAqICAgICAgICAg IFRoaXMgcGFyYW1ldGVyIG1heSBiZSBOVUxMIGlmIG5yX2ZyYW1lcyBpcyAwLgorICAgICAqLwor ICAgIFhFTl9HVUVTVF9IQU5ETEUoeGVuX3Vsb25nX3QpIGZyYW1lX2xpc3Q7Cit9OwordHlwZWRl ZiBzdHJ1Y3QgeGVuX21lbV9hY3F1aXJlX3Jlc291cmNlIHhlbl9tZW1fYWNxdWlyZV9yZXNvdXJj ZV90OworREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX21lbV9hY3F1aXJlX3Jlc291cmNlX3Qp OworCiAjZW5kaWYgLyogZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18p ICovCiAKIC8qCkBAIC02NTAsNyArNjkxLDcgQEAgc3RydWN0IHhlbl92bnVtYV90b3BvbG9neV9p bmZvIHsKIHR5cGVkZWYgc3RydWN0IHhlbl92bnVtYV90b3BvbG9neV9pbmZvIHhlbl92bnVtYV90 b3BvbG9neV9pbmZvX3Q7CiBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fdm51bWFfdG9wb2xv Z3lfaW5mb190KTsKIAotLyogTmV4dCBhdmFpbGFibGUgc3Vib3AgbnVtYmVyIGlzIDI4ICovCisv KiBOZXh0IGF2YWlsYWJsZSBzdWJvcCBudW1iZXIgaXMgMjkgKi8KIAogI2VuZGlmIC8qIF9fWEVO X1BVQkxJQ19NRU1PUllfSF9fICovCiAKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hsYXQubHN0 IGIveGVuL2luY2x1ZGUveGxhdC5sc3QKaW5kZXggMGYxNzAwMGVhNy4uNTgzNTg3MjMzNCAxMDA2 NDQKLS0tIGEveGVuL2luY2x1ZGUveGxhdC5sc3QKKysrIGIveGVuL2luY2x1ZGUveGxhdC5sc3QK QEAgLTgzLDYgKzgzLDcgQEAKICEJbWVtb3J5X21hcAkJCW1lbW9yeS5oCiAhCW1lbW9yeV9yZXNl cnZhdGlvbgkJbWVtb3J5LmgKICEJbWVtX2FjY2Vzc19vcAkJCW1lbW9yeS5oCishCW1lbV9hY3F1 aXJlX3Jlc291cmNlCQltZW1vcnkuaAogIQlwb2RfdGFyZ2V0CQkJbWVtb3J5LmgKICEJcmVtb3Zl X2Zyb21fcGh5c21hcAkJbWVtb3J5LmgKICEJcmVzZXJ2ZWRfZGV2aWNlX21lbW9yeV9tYXAJbWVt b3J5LmgKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oIGIveGVuL2luY2x1ZGUv eHNtL2R1bW15LmgKaW5kZXggYmE4OWVhNGJjMS4uOGYwNGQ1OWEzZSAxMDA2NDQKLS0tIGEveGVu L2luY2x1ZGUveHNtL2R1bW15LmgKKysrIGIveGVuL2luY2x1ZGUveHNtL2R1bW15LmgKQEAgLTcy NCwzICs3MjQsOSBAQCBzdGF0aWMgWFNNX0lOTElORSBpbnQgeHNtX3hlbl92ZXJzaW9uIChYU01f REVGQVVMVF9BUkcgdWludDMyX3Qgb3ApCiAgICAgICAgIHJldHVybiB4c21fZGVmYXVsdF9hY3Rp b24oWFNNX1BSSVYsIGN1cnJlbnQtPmRvbWFpbiwgTlVMTCk7CiAgICAgfQogfQorCitzdGF0aWMg WFNNX0lOTElORSBpbnQgeHNtX2RvbWFpbl9yZXNvdXJjZV9tYXAoWFNNX0RFRkFVTFRfQVJHIHN0 cnVjdCBkb21haW4gKmQpCit7CisgICAgWFNNX0FTU0VSVF9BQ1RJT04oWFNNX0RNX1BSSVYpOwor ICAgIHJldHVybiB4c21fZGVmYXVsdF9hY3Rpb24oYWN0aW9uLCBjdXJyZW50LT5kb21haW4sIGQp OworfQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveHNtL3hzbS5oIGIveGVuL2luY2x1ZGUveHNt L3hzbS5oCmluZGV4IDdmN2ZlZmZjNjguLmQwZGI4NjBhZTAgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNs dWRlL3hzbS94c20uaAorKysgYi94ZW4vaW5jbHVkZS94c20veHNtLmgKQEAgLTE4MCw2ICsxODAs NyBAQCBzdHJ1Y3QgeHNtX29wZXJhdGlvbnMgewogICAgIGludCAoKmRtX29wKSAoc3RydWN0IGRv bWFpbiAqZCk7CiAjZW5kaWYKICAgICBpbnQgKCp4ZW5fdmVyc2lvbikgKHVpbnQzMl90IGNtZCk7 CisgICAgaW50ICgqZG9tYWluX3Jlc291cmNlX21hcCkgKHN0cnVjdCBkb21haW4gKmQpOwogfTsK IAogI2lmZGVmIENPTkZJR19YU00KQEAgLTY5Miw2ICs2OTMsMTEgQEAgc3RhdGljIGlubGluZSBp bnQgeHNtX3hlbl92ZXJzaW9uICh4c21fZGVmYXVsdF90IGRlZiwgdWludDMyX3Qgb3ApCiAgICAg cmV0dXJuIHhzbV9vcHMtPnhlbl92ZXJzaW9uKG9wKTsKIH0KIAorc3RhdGljIGlubGluZSBpbnQg eHNtX2RvbWFpbl9yZXNvdXJjZV9tYXAoeHNtX2RlZmF1bHRfdCBkZWYsIHN0cnVjdCBkb21haW4g KmQpCit7CisgICAgcmV0dXJuIHhzbV9vcHMtPmRvbWFpbl9yZXNvdXJjZV9tYXAoZCk7Cit9CisK ICNlbmRpZiAvKiBYU01fTk9fV1JBUFBFUlMgKi8KIAogI2lmZGVmIENPTkZJR19NVUxUSUJPT1QK ZGlmZiAtLWdpdCBhL3hlbi94c20vZHVtbXkuYyBiL3hlbi94c20vZHVtbXkuYwppbmRleCA0Nzli MTAzNjE0Li42ZTc1MTE5OWVlIDEwMDY0NAotLS0gYS94ZW4veHNtL2R1bW15LmMKKysrIGIveGVu L3hzbS9kdW1teS5jCkBAIC0xNTcsNCArMTU3LDUgQEAgdm9pZCBfX2luaXQgeHNtX2ZpeHVwX29w cyAoc3RydWN0IHhzbV9vcGVyYXRpb25zICpvcHMpCiAgICAgc2V0X3RvX2R1bW15X2lmX251bGwo b3BzLCBkbV9vcCk7CiAjZW5kaWYKICAgICBzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHhlbl92 ZXJzaW9uKTsKKyAgICBzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGRvbWFpbl9yZXNvdXJjZV9t YXApOwogfQpkaWZmIC0tZ2l0IGEveGVuL3hzbS9mbGFzay9ob29rcy5jIGIveGVuL3hzbS9mbGFz ay9ob29rcy5jCmluZGV4IDdiMDA1YWY4MzQuLjdlOWVmY2Q4NjUgMTAwNjQ0Ci0tLSBhL3hlbi94 c20vZmxhc2svaG9va3MuYworKysgYi94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKQEAgLTE3MTgsNiAr MTcxOCwxMSBAQCBzdGF0aWMgaW50IGZsYXNrX3hlbl92ZXJzaW9uICh1aW50MzJfdCBvcCkKICAg ICB9CiB9CiAKK3N0YXRpYyBpbnQgZmxhc2tfZG9tYWluX3Jlc291cmNlX21hcChzdHJ1Y3QgZG9t YWluICpkKQoreworICAgIHJldHVybiBjdXJyZW50X2hhc19wZXJtKGQsIFNFQ0NMQVNTX0RPTUFJ TjIsIERPTUFJTjJfX1JFU09VUkNFX01BUCk7Cit9CisKIGxvbmcgZG9fZmxhc2tfb3AoWEVOX0dV RVNUX0hBTkRMRV9QQVJBTSh4c21fb3BfdCkgdV9mbGFza19vcCk7CiBpbnQgY29tcGF0X2ZsYXNr X29wKFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeHNtX29wX3QpIHVfZmxhc2tfb3ApOwogCkBAIC0x ODUxLDYgKzE4NTYsNyBAQCBzdGF0aWMgc3RydWN0IHhzbV9vcGVyYXRpb25zIGZsYXNrX29wcyA9 IHsKICAgICAuZG1fb3AgPSBmbGFza19kbV9vcCwKICNlbmRpZgogICAgIC54ZW5fdmVyc2lvbiA9 IGZsYXNrX3hlbl92ZXJzaW9uLAorICAgIC5kb21haW5fcmVzb3VyY2VfbWFwID0gZmxhc2tfZG9t YWluX3Jlc291cmNlX21hcCwKIH07CiAKIHZvaWQgX19pbml0IGZsYXNrX2luaXQoY29uc3Qgdm9p ZCAqcG9saWN5X2J1ZmZlciwgc2l6ZV90IHBvbGljeV9zaXplKQpkaWZmIC0tZ2l0IGEveGVuL3hz bS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMgYi94ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nl c3NfdmVjdG9ycwppbmRleCAzYTJkODYzYjhmLi4zNDFhZGUxZjdkIDEwMDY0NAotLS0gYS94ZW4v eHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycworKysgYi94ZW4veHNtL2ZsYXNrL3BvbGlj eS9hY2Nlc3NfdmVjdG9ycwpAQCAtMjUwLDYgKzI1MCw4IEBAIGNsYXNzIGRvbWFpbjIKICAgICBw c3JfY2F0X29wCiAjIFhFTl9ET01DVExfc2V0X2dudHRhYl9saW1pdHMKICAgICBzZXRfZ250dGFi X2xpbWl0cworIyBYRU5NRU1fcmVzb3VyY2VfbWFwCisgICAgcmVzb3VyY2VfbWFwCiB9CiAKICMg U2ltaWxhciB0byBjbGFzcyBkb21haW4sIGJ1dCBwcmltYXJpbHkgY29udGFpbnMgZG9tY3RscyBy ZWxhdGVkIHRvIEhWTSBkb21haW5zCi0tIAoyLjExLjAKCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZl bEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK