From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v14 05/11] x86/mm: add HYPERVISOR_memory_op to acquire guest resources Date: Tue, 28 Nov 2017 15:08:47 +0000 Message-ID: <20171128150853.1927-6-paul.durrant@citrix.com> References: <20171128150853.1927-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 1eJhVW-0000Qc-HX for xen-devel@lists.xenproject.org; Tue, 28 Nov 2017 15:09:10 +0000 In-Reply-To: <20171128150853.1927-1-paul.durrant@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Stefano Stabellini , Wei Liu , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Julien Grall , Paul Durrant , Daniel De Graaf List-Id: xen-devel@lists.xenproject.org Q2VydGFpbiBtZW1vcnkgcmVzb3VyY2VzIGFzc29jaWF0ZWQgd2l0aCBhIGd1ZXN0IGFyZSBub3Qg bmVjZXNzYXJpbHkKcHJlc2VudCBpbiB0aGUgZ3Vlc3QgUDJNLgoKVGhpcyBwYXRjaCBhZGRzIHRo ZSBib2lsZXJwbGF0ZSBmb3IgbmV3IG1lbW9yeSBvcCB0byBhbGxvdyBzdWNoIGEgcmVzb3VyY2UK dG8gYmUgcHJpdi1tYXBwZWQgZGlyZWN0bHksIGJ5IGVpdGhlciBhIFBWIG9yIEhWTSB0b29scyBk b21haW4uCgpOT1RFOiBXaGlsc3QgdGhlIG5ldyBvcCBpcyBub3QgaW50cmluc2ljbHkgc3BlY2lm aWMgdG8gdGhlIHg4NiBhcmNoaXRlY3R1cmUsCiAgICAgIEkgaGF2ZSBubyBtZWFucyB0byB0ZXN0 IGl0IG9uIGFuIEFSTSBwbGF0Zm9ybSBhbmQgc28gY2Fubm90IHZlcmlmeQogICAgICB0aGF0IGl0 IGZ1bmN0aW9ucyBjb3JyZWN0bHkuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwu ZHVycmFudEBjaXRyaXguY29tPgpSZXZpZXdlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1 c2UuY29tPgotLS0KQ2M6IEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAZXUuY2l0cml4LmNv bT4KQ2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CkNjOiBHZW9y Z2UgRHVubGFwIDxHZW9yZ2UuRHVubGFwQGV1LmNpdHJpeC5jb20+CkNjOiBJYW4gSmFja3NvbiA8 aWFuLmphY2tzb25AZXUuY2l0cml4LmNvbT4KQ2M6IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29u cmFkLndpbGtAb3JhY2xlLmNvbT4KQ2M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlA a2VybmVsLm9yZz4KQ2M6IFRpbSBEZWVnYW4gPHRpbUB4ZW4ub3JnPgpDYzogV2VpIExpdSA8d2Vp LmxpdTJAY2l0cml4LmNvbT4KQ2M6IERhbmllbCBEZSBHcmFhZiA8ZGdkZWdyYUB0eWNoby5uc2Eu Z292PgpDYzogSnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4KCnYxNDoKIC0gQWRk cmVzc2VkIG1vcmUgY29tbWVudHMgZnJvbSBKYW4uCgp2MTM6CiAtIFVzZSB4ZW5fcGZuX3QgZm9y IG1mbl9saXN0LgogLSBBZGRyZXNzZWQgZnVydGhlciBjb21tZW50cyBmcm9tIEphbiBhbmQgSnVs aWVuLgoKdjEyOgogLSBBZGRyZXNzZWQgbW9yZSBjb21tZW50cyBmb3JtIEphbi4KIC0gUmVtb3Zl ZCAjaWZkZWYgQ09ORklHX1g4NiBmcm9tIGNvbW1vbiBjb2RlIGFuZCBpbnN0ZWFkIGludHJvZHVj ZWQgYQogICBzdHViIHNldF9mb3JlaWduX3AybV9lbnRyeSgpIGluIGFzbS1hcm0vcDJtLmggcmV0 dXJuaW5nIC1FT1BOT1RTVVBQLgogLSBSZXN0cmljdGVkIG1lY2hhbmlzbSBmb3IgcXVlcnlpbmcg aW1wbGVtZW50YXRpb24gbGltaXQgb24gbnJfZnJhbWVzCiAgIGFuZCBzaW1wbGlmaWVkIGNvbXBh dCBjb2RlLgoKdjExOgogLSBBZGRyZXNzZWQgbW9yZSBjb21tZW50cyBmcm9tIEphbi4KCnY5Ogog LSBBZGRyZXNzZWQgbW9yZSBjb21tZW50cyBmcm9tIEphbi4KCnY4OgogLSBNb3ZlIHRoZSBjb2Rl IGludG8gY29tbW9uIGFzIHJlcXVlc3RlZCBieSBKYW4uCiAtIE1ha2UgdGhlIGdtZm5fbGlzdCBo YW5kbGUgYSA2NC1iaXQgdHlwZSB0byBhdm9pZCBsaW1pdGluZyB0aGUgTUZOCiAgIHJhbmdlIGZv ciBhIDMyLWJpdCB0b29scyBkb21haW4uCiAtIEFkZCBtaXNzaW5nIHBhZC4KIC0gQWRkIGNvbXBh dCBjb2RlLgogLSBNYWtlIHRoaXMgcGF0Y2ggZGVhbCB3aXRoIHB1cmVseSBib2lsZXJwbGF0ZS4K IC0gRHJvcCBHZW9yZ2UncyBBLWIgYW5kIFdlaSdzIFItYiBiZWNhdXNlIHRoZSBjaGFuZ2VzIGFy ZSBub24tdHJpdmlhbCwKICAgYW5kIHVwZGF0ZSBDYyBsaXN0IG5vdyB0aGUgYm9pbGVycGxhdGUg aXMgY29tbW9uLgoKdjU6CiAtIFN3aXRjaGVkIF9fY29weV90by9mcm9tX2d1ZXN0X29mZnNldCgp IHRvIGNvcHlfdG8vZnJvbV9ndWVzdF9vZmZzZXQoKS4KLS0tCiB0b29scy9mbGFzay9wb2xpY3kv bW9kdWxlcy94ZW4uaWYgICB8ICA0ICstCiB4ZW4vYXJjaC94ODYvbW0vcDJtLmMgICAgICAgICAg ICAgICB8ICAzICstCiB4ZW4vY29tbW9uL2NvbXBhdC9tZW1vcnkuYyAgICAgICAgICB8IDk1ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHhlbi9jb21tb24vbWVtb3J5LmMg ICAgICAgICAgICAgICAgIHwgODkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog eGVuL2luY2x1ZGUvYXNtLWFybS9wMm0uaCAgICAgICAgICAgfCAxMCArKysrCiB4ZW4vaW5jbHVk ZS9hc20teDg2L3AybS5oICAgICAgICAgICB8ICAzICsrCiB4ZW4vaW5jbHVkZS9wdWJsaWMvbWVt b3J5LmggICAgICAgICB8IDQzICsrKysrKysrKysrKysrKystCiB4ZW4vaW5jbHVkZS94bGF0Lmxz dCAgICAgICAgICAgICAgICB8ICAxICsKIHhlbi9pbmNsdWRlL3hzbS9kdW1teS5oICAgICAgICAg ICAgIHwgIDYgKysrCiB4ZW4vaW5jbHVkZS94c20veHNtLmggICAgICAgICAgICAgICB8ICA2ICsr KwogeGVuL3hzbS9kdW1teS5jICAgICAgICAgICAgICAgICAgICAgfCAgMSArCiB4ZW4veHNtL2Zs YXNrL2hvb2tzLmMgICAgICAgICAgICAgICB8ICA2ICsrKwogeGVuL3hzbS9mbGFzay9wb2xpY3kv YWNjZXNzX3ZlY3RvcnMgfCAgMiArCiAxMyBmaWxlcyBjaGFuZ2VkLCAyNjUgaW5zZXJ0aW9ucygr KSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29scy9mbGFzay9wb2xpY3kvbW9kdWxl cy94ZW4uaWYgYi90b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy94ZW4uaWYKaW5kZXggNTU0Mzc0 OTZmNi4uMDdjYmE4YTE1ZCAxMDA2NDQKLS0tIGEvdG9vbHMvZmxhc2svcG9saWN5L21vZHVsZXMv eGVuLmlmCisrKyBiL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL3hlbi5pZgpAQCAtNTIsNyAr NTIsOCBAQCBkZWZpbmUoYGNyZWF0ZV9kb21haW5fY29tbW9uJywgYAogCQkJc2V0dGltZSBzZXRk b21haW5oYW5kbGUgZ2V0dmNwdWNvbnRleHQgc2V0X21pc2NfaW5mbyB9OwogCWFsbG93ICQxICQy OmRvbWFpbjIgeyBzZXRfY3B1aWQgc2V0dHNjIHNldHNjaGVkdWxlciBzZXRjbGFpbQogCQkJc2V0 X21heF9ldnRjaG4gc2V0X3ZudW1haW5mbyBnZXRfdm51bWFpbmZvIGNhY2hlZmx1c2gKLQkJCXBz cl9jbXRfb3AgcHNyX2NhdF9vcCBzb2Z0X3Jlc2V0IHNldF9nbnR0YWJfbGltaXRzIH07CisJCQlw c3JfY210X29wIHBzcl9jYXRfb3Agc29mdF9yZXNldCBzZXRfZ250dGFiX2xpbWl0cworCQkJcmVz b3VyY2VfbWFwIH07CiAJYWxsb3cgJDEgJDI6c2VjdXJpdHkgY2hlY2tfY29udGV4dDsKIAlhbGxv dyAkMSAkMjpzaGFkb3cgZW5hYmxlOwogCWFsbG93ICQxICQyOm1tdSB7IG1hcF9yZWFkIG1hcF93 cml0ZSBhZGp1c3QgbWVtb3J5bWFwIHBoeXNtYXAgcGlucGFnZSBtbXVleHRfb3AgdXBkYXRlbXAg fTsKQEAgLTE1Miw2ICsxNTMsNyBAQCBkZWZpbmUoYGRldmljZV9tb2RlbCcsIGAKIAlhbGxvdyAk MSAkMl90YXJnZXQ6ZG9tYWluIHsgZ2V0ZG9tYWluaW5mbyBzaHV0ZG93biB9OwogCWFsbG93ICQx ICQyX3RhcmdldDptbXUgeyBtYXBfcmVhZCBtYXBfd3JpdGUgYWRqdXN0IHBoeXNtYXAgdGFyZ2V0 X2hhY2sgfTsKIAlhbGxvdyAkMSAkMl90YXJnZXQ6aHZtIHsgZ2V0cGFyYW0gc2V0cGFyYW0gaHZt Y3RsIGNhY2hlYXR0ciBkbSB9OworCWFsbG93ICQxICQyX3RhcmdldDpkb21haW4yIHJlc291cmNl X21hcDsKICcpCiAKICMgbWFrZV9kZXZpY2VfbW9kZWwocHJpdiwgZG1fZG9tLCBodm1fZG9tKQpk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL3AybS5jIGIveGVuL2FyY2gveDg2L21tL3AybS5j CmluZGV4IGM3MmEzY2RlYmIuLjcxYmI5YjRmOTMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9t bS9wMm0uYworKysgYi94ZW4vYXJjaC94ODYvbW0vcDJtLmMKQEAgLTExMzIsOCArMTEzMiw3IEBA IHN0YXRpYyBpbnQgc2V0X3R5cGVkX3AybV9lbnRyeShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25l ZCBsb25nIGdmbl9sLAogfQogCiAvKiBTZXQgZm9yZWlnbiBtZm4gaW4gdGhlIGdpdmVuIGd1ZXN0 J3MgcDJtIHRhYmxlLiAqLwotc3RhdGljIGludCBzZXRfZm9yZWlnbl9wMm1fZW50cnkoc3RydWN0 IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm4sCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBtZm5fdCBtZm4pCitpbnQgc2V0X2ZvcmVpZ25fcDJtX2VudHJ5KHN0cnVjdCBkb21h aW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLCBtZm5fdCBtZm4pCiB7CiAgICAgcmV0dXJuIHNldF90 eXBlZF9wMm1fZW50cnkoZCwgZ2ZuLCBtZm4sIFBBR0VfT1JERVJfNEssIHAybV9tYXBfZm9yZWln biwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwMm1fZ2V0X2hvc3RwMm0oZCktPmRl ZmF1bHRfYWNjZXNzKTsKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vY29tcGF0L21lbW9yeS5jIGIv eGVuL2NvbW1vbi9jb21wYXQvbWVtb3J5LmMKaW5kZXggMzViYjI1OTgwOC4uOWE3Y2IxYTcxYiAx MDA2NDQKLS0tIGEveGVuL2NvbW1vbi9jb21wYXQvbWVtb3J5LmMKKysrIGIveGVuL2NvbW1vbi9j b21wYXQvbWVtb3J5LmMKQEAgLTcxLDYgKzcxLDcgQEAgaW50IGNvbXBhdF9tZW1vcnlfb3AodW5z aWduZWQgaW50IGNtZCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBjb21wYXQpCiAgICAg ICAgICAgICBzdHJ1Y3QgeGVuX3JlbW92ZV9mcm9tX3BoeXNtYXAgKnhyZnA7CiAgICAgICAgICAg ICBzdHJ1Y3QgeGVuX3ZudW1hX3RvcG9sb2d5X2luZm8gKnZudW1hOwogICAgICAgICAgICAgc3Ry dWN0IHhlbl9tZW1fYWNjZXNzX29wICptYW87CisgICAgICAgICAgICBzdHJ1Y3QgeGVuX21lbV9h Y3F1aXJlX3Jlc291cmNlICptYXI7CiAgICAgICAgIH0gbmF0OwogICAgICAgICB1bmlvbiB7CiAg ICAgICAgICAgICBzdHJ1Y3QgY29tcGF0X21lbW9yeV9yZXNlcnZhdGlvbiByc3J2OwpAQCAtNzks NiArODAsNyBAQCBpbnQgY29tcGF0X21lbW9yeV9vcCh1bnNpZ25lZCBpbnQgY21kLCBYRU5fR1VF U1RfSEFORExFX1BBUkFNKHZvaWQpIGNvbXBhdCkKICAgICAgICAgICAgIHN0cnVjdCBjb21wYXRf YWRkX3RvX3BoeXNtYXBfYmF0Y2ggYXRwYjsKICAgICAgICAgICAgIHN0cnVjdCBjb21wYXRfdm51 bWFfdG9wb2xvZ3lfaW5mbyB2bnVtYTsKICAgICAgICAgICAgIHN0cnVjdCBjb21wYXRfbWVtX2Fj Y2Vzc19vcCBtYW87CisgICAgICAgICAgICBzdHJ1Y3QgY29tcGF0X21lbV9hY3F1aXJlX3Jlc291 cmNlIG1hcjsKICAgICAgICAgfSBjbXA7CiAKICAgICAgICAgc2V0X3hlbl9ndWVzdF9oYW5kbGUo bmF0LmhuZCwgQ09NUEFUX0FSR19YTEFUX1ZJUlRfQkFTRSk7CkBAIC0zOTUsNiArMzk3LDU3IEBA IGludCBjb21wYXRfbWVtb3J5X29wKHVuc2lnbmVkIGludCBjbWQsIFhFTl9HVUVTVF9IQU5ETEVf UEFSQU0odm9pZCkgY29tcGF0KQogICAgICAgICB9CiAjZW5kaWYKIAorICAgICAgICBjYXNlIFhF Tk1FTV9hY3F1aXJlX3Jlc291cmNlOgorICAgICAgICB7CisgICAgICAgICAgICB4ZW5fcGZuX3Qg Knhlbl9mcmFtZV9saXN0OworICAgICAgICAgICAgdW5zaWduZWQgaW50IG1heF9ucl9mcmFtZXM7 CisKKyAgICAgICAgICAgIGlmICggY29weV9mcm9tX2d1ZXN0KCZjbXAubWFyLCBjb21wYXQsIDEp ICkKKyAgICAgICAgICAgICAgICByZXR1cm4gLUVGQVVMVDsKKworICAgICAgICAgICAgLyoKKyAg ICAgICAgICAgICAqIFRoZSBudW1iZXIgb2YgZnJhbWVzIGhhbmRsZWQgaXMgY3VycmVudGx5IGxp bWl0ZWQgdG8gYQorICAgICAgICAgICAgICogc21hbGwgbnVtYmVyIGJ5IHRoZSB1bmRlcmx5aW5n IGltcGxlbWVudGF0aW9uLCBzbyB0aGUKKyAgICAgICAgICAgICAqIHNjcmF0Y2ggc3BhY2Ugc2hv dWxkIGJlIHN1ZmZpY2llbnQgZm9yIGJvdW5jaW5nIHRoZQorICAgICAgICAgICAgICogZnJhbWUg YWRkcmVzc2VzLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBtYXhfbnJfZnJhbWVzID0g KENPTVBBVF9BUkdfWExBVF9TSVpFIC0gc2l6ZW9mKCpuYXQubWFyKSkgLworICAgICAgICAgICAg ICAgIHNpemVvZigqeGVuX2ZyYW1lX2xpc3QpOworCisgICAgICAgICAgICBpZiAoIGNtcC5tYXIu bnJfZnJhbWVzID4gbWF4X25yX2ZyYW1lcyApCisgICAgICAgICAgICAgICAgcmV0dXJuIC1FMkJJ RzsKKworICAgICAgICAgICAgaWYgKCBjb21wYXRfaGFuZGxlX2lzX251bGwoY21wLm1hci5mcmFt ZV9saXN0KSApCisgICAgICAgICAgICAgICAgeGVuX2ZyYW1lX2xpc3QgPSBOVUxMOworICAgICAg ICAgICAgZWxzZQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHhlbl9mcmFtZV9saXN0 ID0gKHhlbl9wZm5fdCAqKShuYXQubWFyICsgMSk7CisKKyAgICAgICAgICAgICAgICBpZiAoICFj b21wYXRfaGFuZGxlX29rYXkoY21wLm1hci5mcmFtZV9saXN0LAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjbXAubWFyLm5yX2ZyYW1lcykgKQorICAgICAgICAgICAg ICAgICAgICByZXR1cm4gLUVGQVVMVDsKKworICAgICAgICAgICAgICAgIGZvciAoIGkgPSAwOyBp IDwgY21wLm1hci5ucl9mcmFtZXM7IGkrKyApCisgICAgICAgICAgICAgICAgeworICAgICAgICAg ICAgICAgICAgICBjb21wYXRfcGZuX3QgZnJhbWU7CisKKyAgICAgICAgICAgICAgICAgICAgaWYg KCBfX2NvcHlfZnJvbV9jb21wYXRfb2Zmc2V0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAmZnJhbWUsIGNtcC5tYXIuZnJhbWVfbGlzdCwgaSwgMSkgKQorICAgICAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIC1FRkFVTFQ7CisKKyAgICAgICAgICAgICAgICAgICAgeGVuX2ZyYW1lX2xp c3RbaV0gPSBmcmFtZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyNkZWZp bmUgWExBVF9tZW1fYWNxdWlyZV9yZXNvdXJjZV9ITkRMX2ZyYW1lX2xpc3QoX2RfLCBfc18pIFwK KyAgICAgICAgICAgIHNldF94ZW5fZ3Vlc3RfaGFuZGxlKChfZF8pLT5mcmFtZV9saXN0LCB4ZW5f ZnJhbWVfbGlzdCkKKworICAgICAgICAgICAgWExBVF9tZW1fYWNxdWlyZV9yZXNvdXJjZShuYXQu bWFyLCAmY21wLm1hcik7CisKKyN1bmRlZiBYTEFUX21lbV9hY3F1aXJlX3Jlc291cmNlX0hORExf ZnJhbWVfbGlzdAorCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQogICAgICAgICBkZWZh dWx0OgogICAgICAgICAgICAgcmV0dXJuIGNvbXBhdF9hcmNoX21lbW9yeV9vcChjbWQsIGNvbXBh dCk7CiAgICAgICAgIH0KQEAgLTUzNSw2ICs1ODgsNDggQEAgaW50IGNvbXBhdF9tZW1vcnlfb3Ao dW5zaWduZWQgaW50IGNtZCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBjb21wYXQpCiAg ICAgICAgICAgICAgICAgcmMgPSAtRUZBVUxUOwogICAgICAgICAgICAgYnJlYWs7CiAKKyAgICAg ICAgY2FzZSBYRU5NRU1fYWNxdWlyZV9yZXNvdXJjZToKKyAgICAgICAgeworICAgICAgICAgICAg Y29uc3QgeGVuX3Bmbl90ICp4ZW5fZnJhbWVfbGlzdCA9ICh4ZW5fcGZuX3QgKikobmF0Lm1hciAr IDEpOworICAgICAgICAgICAgY29tcGF0X3Bmbl90ICpjb21wYXRfZnJhbWVfbGlzdCA9IChjb21w YXRfcGZuX3QgKikobmF0Lm1hciArIDEpOworCisgICAgICAgICAgICBpZiAoIGNvbXBhdF9oYW5k bGVfaXNfbnVsbChjbXAubWFyLmZyYW1lX2xpc3QpICkKKyAgICAgICAgICAgIHsKKyAgICAgICAg ICAgICAgICBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShjb21wYXRfbWVtX2FjcXVpcmVfcmVzb3Vy Y2VfdCk7CisKKyAgICAgICAgICAgICAgICBpZiAoIF9fY29weV9maWVsZF90b19ndWVzdCgKKyAg ICAgICAgICAgICAgICAgICAgICAgICBndWVzdF9oYW5kbGVfY2FzdChjb21wYXQsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcGF0X21lbV9hY3F1aXJlX3Jl c291cmNlX3QpLAorICAgICAgICAgICAgICAgICAgICAgICAgICZjbXAubWFyLCBucl9mcmFtZXMp ICkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FRkFVTFQ7CisgICAgICAgICAgICB9Cisg ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLyoKKyAgICAg ICAgICAgICAgICAgKiBOT1RFOiB0aGUgc21hbGxlciBjb21wYXQgYXJyYXkgb3ZlcndyaXRlcyB0 aGUgbmF0aXZlCisgICAgICAgICAgICAgICAgICogICAgICAgYXJyYXkuCisgICAgICAgICAgICAg ICAgICovCisgICAgICAgICAgICAgICAgQlVJTERfQlVHX09OKHNpemVvZihjb21wYXRfcGZuX3Qp ID4gc2l6ZW9mKHhlbl9wZm5fdCkpOworCisgICAgICAgICAgICAgICAgZm9yICggaSA9IDA7IGkg PCBjbXAubWFyLm5yX2ZyYW1lczsgaSsrICkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAg ICAgICAgICAgIGNvbXBhdF9wZm5fdCBmcmFtZSA9IHhlbl9mcmFtZV9saXN0W2ldOworCisgICAg ICAgICAgICAgICAgICAgIGlmICggZnJhbWUgIT0geGVuX2ZyYW1lX2xpc3RbaV0gKQorICAgICAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FUkFOR0U7CisKKyAgICAgICAgICAgICAgICAgICAg Y29tcGF0X2ZyYW1lX2xpc3RbaV0gPSBmcmFtZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAg ICAgICAgICAgICBpZiAoIF9fY29weV90b19jb21wYXRfb2Zmc2V0KGNtcC5tYXIuZnJhbWVfbGlz dCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBh dF9mcmFtZV9saXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY21wLm1hci5ucl9mcmFtZXMpICkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FRkFV TFQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKICAg ICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGRvbWFpbl9jcmFzaChjdXJyZW50LT5kb21haW4p OwogICAgICAgICAgICAgc3BsaXQgPSAwOwpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9tZW1vcnku YyBiL3hlbi9jb21tb24vbWVtb3J5LmMKaW5kZXggYTZiYTMzZmRjYi4uNmMzODVhMjMyOCAxMDA2 NDQKLS0tIGEveGVuL2NvbW1vbi9tZW1vcnkuYworKysgYi94ZW4vY29tbW9uL21lbW9yeS5jCkBA IC05NzAsNiArOTcwLDkwIEBAIHN0YXRpYyBsb25nIHhhdHBfcGVybWlzc2lvbl9jaGVjayhzdHJ1 Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgc3BhY2UpCiAgICAgcmV0dXJuIHhzbV9hZGRfdG9f cGh5c21hcChYU01fVEFSR0VULCBjdXJyZW50LT5kb21haW4sIGQpOwogfQogCitzdGF0aWMgaW50 IGFjcXVpcmVfcmVzb3VyY2UoCisgICAgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZW5fbWVtX2Fj cXVpcmVfcmVzb3VyY2VfdCkgYXJnKQoreworICAgIHN0cnVjdCBkb21haW4gKmQsICpjdXJyZCA9 IGN1cnJlbnQtPmRvbWFpbjsKKyAgICB4ZW5fbWVtX2FjcXVpcmVfcmVzb3VyY2VfdCB4bWFyOwor ICAgIC8qCisgICAgICogVGhlIG1mbl9saXN0IGFuZCBnZm5fbGlzdCAoYmVsb3cpIGFycmF5cyBh cmUgb2sgb24gc3RhY2sgZm9yIHRoZQorICAgICAqIG1vbWVudCBzaW5jZSB0aGV5IGFyZSBzbWFs bCwgYnV0IGlmIHRoZXkgbmVlZCB0byBncm93IGluIGZ1dHVyZQorICAgICAqIHVzZS1jYXNlcyB0 aGVuIHBlci1DUFUgYXJyYXlzIG9yIGhlYXAgYWxsb2NhdGlvbnMgbWF5IGJlIHJlcXVpcmVkLgor ICAgICAqLworICAgIHhlbl9wZm5fdCBtZm5fbGlzdFsyXTsKKyAgICBpbnQgcmM7CisKKyAgICBp ZiAoIGNvcHlfZnJvbV9ndWVzdCgmeG1hciwgYXJnLCAxKSApCisgICAgICAgIHJldHVybiAtRUZB VUxUOworCisgICAgaWYgKCB4bWFyLnBhZCAhPSAwICkKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7 CisKKyAgICBpZiAoIGd1ZXN0X2hhbmRsZV9pc19udWxsKHhtYXIuZnJhbWVfbGlzdCkgKQorICAg IHsKKyAgICAgICAgaWYgKCB4bWFyLm5yX2ZyYW1lcyApCisgICAgICAgICAgICByZXR1cm4gLUVJ TlZBTDsKKworICAgICAgICB4bWFyLm5yX2ZyYW1lcyA9IEFSUkFZX1NJWkUobWZuX2xpc3QpOwor CisgICAgICAgIGlmICggX19jb3B5X2ZpZWxkX3RvX2d1ZXN0KGFyZywgJnhtYXIsIG5yX2ZyYW1l cykgKQorICAgICAgICAgICAgcmV0dXJuIC1FRkFVTFQ7CisKKyAgICAgICAgcmV0dXJuIDA7Cisg ICAgfQorCisgICAgaWYgKCB4bWFyLm5yX2ZyYW1lcyA+IEFSUkFZX1NJWkUobWZuX2xpc3QpICkK KyAgICAgICAgcmV0dXJuIC1FMkJJRzsKKworICAgIHJjID0gcmN1X2xvY2tfcmVtb3RlX2RvbWFp bl9ieV9pZCh4bWFyLmRvbWlkLCAmZCk7CisgICAgaWYgKCByYyApCisgICAgICAgIHJldHVybiBy YzsKKworICAgIHJjID0geHNtX2RvbWFpbl9yZXNvdXJjZV9tYXAoWFNNX0RNX1BSSVYsIGQpOwor ICAgIGlmICggcmMgKQorICAgICAgICBnb3RvIG91dDsKKworICAgIHN3aXRjaCAoIHhtYXIudHlw ZSApCisgICAgeworICAgIGRlZmF1bHQ6CisgICAgICAgIHJjID0gLUVPUE5PVFNVUFA7CisgICAg ICAgIGJyZWFrOworICAgIH0KKworICAgIGlmICggcmMgKQorICAgICAgICBnb3RvIG91dDsKKwor ICAgIGlmICggIXBhZ2luZ19tb2RlX3RyYW5zbGF0ZShjdXJyZCkgKQorICAgIHsKKyAgICAgICAg aWYgKCBjb3B5X3RvX2d1ZXN0KHhtYXIuZnJhbWVfbGlzdCwgbWZuX2xpc3QsIHhtYXIubnJfZnJh bWVzKSApCisgICAgICAgICAgICByYyA9IC1FRkFVTFQ7CisgICAgfQorICAgIGVsc2UKKyAgICB7 CisgICAgICAgIHhlbl9wZm5fdCBnZm5fbGlzdFtBUlJBWV9TSVpFKG1mbl9saXN0KV07CisgICAg ICAgIHVuc2lnbmVkIGludCBpOworCisgICAgICAgIGlmICggY29weV9mcm9tX2d1ZXN0KGdmbl9s aXN0LCB4bWFyLmZyYW1lX2xpc3QsIHhtYXIubnJfZnJhbWVzKSApCisgICAgICAgICAgICByYyA9 IC1FRkFVTFQ7CisKKyAgICAgICAgZm9yICggaSA9IDA7ICFyYyAmJiBpIDwgeG1hci5ucl9mcmFt ZXM7IGkrKyApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJjID0gc2V0X2ZvcmVpZ25fcDJtX2Vu dHJ5KGN1cnJkLCBnZm5fbGlzdFtpXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF9tZm4obWZuX2xpc3RbaV0pKTsKKyAgICAgICAgICAgIGlmICggcmMgKQorICAgICAg ICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICogTWFrZSBzdXJlIHJjIGlzIC1FSU8gZm9y IGFueSBpdGVyYXRpb24gb3RoZXIgdGhhbgorICAgICAgICAgICAgICAgICAqIHRoZSBmaXJzdC4K KyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICByYyA9IGkgPyAtRUlPIDogcmM7 CisgICAgICAgIH0KKyAgICB9CisKKyBvdXQ6CisgICAgcmN1X3VubG9ja19kb21haW4oZCk7Cisg ICAgcmV0dXJuIHJjOworfQorCiBsb25nIGRvX21lbW9yeV9vcCh1bnNpZ25lZCBsb25nIGNtZCwg WEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBhcmcpCiB7CiAgICAgc3RydWN0IGRvbWFpbiAq ZCwgKmN1cnJfZCA9IGN1cnJlbnQtPmRvbWFpbjsKQEAgLTE0MDgsNiArMTQ5MiwxMSBAQCBsb25n IGRvX21lbW9yeV9vcCh1bnNpZ25lZCBsb25nIGNtZCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2 b2lkKSBhcmcpCiAgICAgfQogI2VuZGlmCiAKKyAgICBjYXNlIFhFTk1FTV9hY3F1aXJlX3Jlc291 cmNlOgorICAgICAgICByYyA9IGFjcXVpcmVfcmVzb3VyY2UoCisgICAgICAgICAgICBndWVzdF9o YW5kbGVfY2FzdChhcmcsIHhlbl9tZW1fYWNxdWlyZV9yZXNvdXJjZV90KSk7CisgICAgICAgIGJy ZWFrOworCiAgICAgZGVmYXVsdDoKICAgICAgICAgcmMgPSBhcmNoX21lbW9yeV9vcChjbWQsIGFy Zyk7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLWFybS9wMm0u aCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vcDJtLmgKaW5kZXggZmFhZGNmZThmZS4uZGIyY2M1ZDdh MyAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLWFybS9wMm0uaAorKysgYi94ZW4vaW5jbHVk ZS9hc20tYXJtL3AybS5oCkBAIC0zNDYsNiArMzQ2LDE2IEBAIHN0YXRpYyBpbmxpbmUgZ2ZuX3Qg Z2ZuX25leHRfYm91bmRhcnkoZ2ZuX3QgZ2ZuLCB1bnNpZ25lZCBpbnQgb3JkZXIpCiAgICAgcmV0 dXJuIGdmbl9hZGQoZ2ZuLCAxVUwgPDwgb3JkZXIpOwogfQogCitzdGF0aWMgaW5saW5lIGludCBz ZXRfZm9yZWlnbl9wMm1fZW50cnkoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm4s CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWZuX3QgbWZuKQorewor ICAgIC8qCisgICAgICogTk9URTogSWYgdGhpcyBpcyBpbXBsZW1lbnRlZCB0aGVuIHByb3BlciBy ZWZlcmVuY2UgY291bnRpbmcgb2YKKyAgICAgKiAgICAgICBmb3JlaWduIGVudHJpZXMgd2lsbCBu ZWVkIHRvIGJlIGltcG1lbWVudGVkLgorICAgICAqLworICAgIHJldHVybiAtRU9QTk9UU1VQUDsK K30KKwogI2VuZGlmIC8qIF9YRU5fUDJNX0ggKi8KIAogLyoKZGlmZiAtLWdpdCBhL3hlbi9pbmNs dWRlL2FzbS14ODYvcDJtLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L3AybS5oCmluZGV4IDE3YjFk MGM4ZDMuLjQ0ZjdlYzA4OGMgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvcDJtLmgK KysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9wMm0uaApAQCAtNjIwLDYgKzYyMCw5IEBAIHZvaWQg cDJtX21lbW9yeV90eXBlX2NoYW5nZWQoc3RydWN0IGRvbWFpbiAqZCk7CiBpbnQgcDJtX2lzX2xv Z2RpcnR5X3JhbmdlKHN0cnVjdCBwMm1fZG9tYWluICosIHVuc2lnbmVkIGxvbmcgc3RhcnQsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZW5kKTsKIAorLyogU2V0IGZv cmVpZ24gZW50cnkgaW4gdGhlIHAybSB0YWJsZSAoZm9yIHByaXYtbWFwcGluZykgKi8KK2ludCBz ZXRfZm9yZWlnbl9wMm1fZW50cnkoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm4s IG1mbl90IG1mbik7CisKIC8qIFNldCBtbWlvIGFkZHJlc3NlcyBpbiB0aGUgcDJtIHRhYmxlIChm b3IgcGFzcy10aHJvdWdoKSAqLwogaW50IHNldF9tbWlvX3AybV9lbnRyeShzdHJ1Y3QgZG9tYWlu ICpkLCB1bnNpZ25lZCBsb25nIGdmbiwgbWZuX3QgbWZuLAogICAgICAgICAgICAgICAgICAgICAg ICB1bnNpZ25lZCBpbnQgb3JkZXIsIHAybV9hY2Nlc3NfdCBhY2Nlc3MpOwpkaWZmIC0tZ2l0IGEv eGVuL2luY2x1ZGUvcHVibGljL21lbW9yeS5oIGIveGVuL2luY2x1ZGUvcHVibGljL21lbW9yeS5o CmluZGV4IDI5Mzg2ZGY5OGIuLjgzZTYwYjY2MDMgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3B1 YmxpYy9tZW1vcnkuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvbWVtb3J5LmgKQEAgLTU5OSw2 ICs1OTksNDcgQEAgc3RydWN0IHhlbl9yZXNlcnZlZF9kZXZpY2VfbWVtb3J5X21hcCB7CiB0eXBl ZGVmIHN0cnVjdCB4ZW5fcmVzZXJ2ZWRfZGV2aWNlX21lbW9yeV9tYXAgeGVuX3Jlc2VydmVkX2Rl dmljZV9tZW1vcnlfbWFwX3Q7CiBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fcmVzZXJ2ZWRf ZGV2aWNlX21lbW9yeV9tYXBfdCk7CiAKKy8qCisgKiBHZXQgdGhlIHBhZ2VzIGZvciBhIHBhcnRp Y3VsYXIgZ3Vlc3QgcmVzb3VyY2UsIHNvIHRoYXQgdGhleSBjYW4gYmUKKyAqIG1hcHBlZCBkaXJl Y3RseSBieSBhIHRvb2xzIGRvbWFpbi4KKyAqLworI2RlZmluZSBYRU5NRU1fYWNxdWlyZV9yZXNv dXJjZSAyOAorc3RydWN0IHhlbl9tZW1fYWNxdWlyZV9yZXNvdXJjZSB7CisgICAgLyogSU4gLSB0 aGUgZG9tYWluIHdob3NlIHJlc291cmNlIGlzIHRvIGJlIG1hcHBlZCAqLworICAgIGRvbWlkX3Qg ZG9taWQ7CisgICAgLyogSU4gLSB0aGUgdHlwZSBvZiByZXNvdXJjZSAqLworICAgIHVpbnQxNl90 IHR5cGU7CisgICAgLyoKKyAgICAgKiBJTiAtIGEgdHlwZS1zcGVjaWZpYyByZXNvdXJjZSBpZGVu dGlmaWVyLCB3aGljaCBtdXN0IGJlIHplcm8KKyAgICAgKiAgICAgIHVubGVzcyBzdGF0ZWQgb3Ro ZXJ3aXNlLgorICAgICAqLworICAgIHVpbnQzMl90IGlkOworICAgIC8qIElOL09VVCAtIEFzIGFu IElOIHBhcmFtZXRlciBudW1iZXIgb2YgZnJhbWVzIG9mIHRoZSByZXNvdXJjZQorICAgICAqICAg ICAgICAgIHRvIGJlIG1hcHBlZC4gSG93ZXZlciwgaWYgdGhlIHNwZWNpZmllZCB2YWx1ZSBpcyAw IGFuZAorICAgICAqICAgICAgICAgIGZyYW1lX2xpc3QgaXMgTlVMTCB0aGVuIHRoaXMgZmllbGQg d2lsbCBiZSBzZXQgdG8gdGhlCisgICAgICogICAgICAgICAgbWF4aW11bSB2YWx1ZSBzdXBwb3J0 ZWQgYnkgdGhlIGltcGxlbWVudGF0aW9uIG9uIHJldHVybi4KKyAgICAgKi8KKyAgICB1aW50MzJf dCBucl9mcmFtZXM7CisgICAgdWludDMyX3QgcGFkOworICAgIC8qIElOIC0gdGhlIGluZGV4IG9m IHRoZSBpbml0aWFsIGZyYW1lIHRvIGJlIG1hcHBlZC4gVGhpcyBwYXJhbWV0ZXIKKyAgICAgKiAg ICAgIGlzIGlnbm9yZWQgaWYgbnJfZnJhbWVzIGlzIDAuCisgICAgICovCisgICAgdWludDY0X2Fs aWduZWRfdCBmcmFtZTsKKyAgICAvKiBJTi9PVVQgLSBJZiB0aGUgdG9vbHMgZG9tYWluIGlzIFBW IHRoZW4sIHVwb24gcmV0dXJuLCBmcmFtZV9saXN0CisgICAgICogICAgICAgICAgd2lsbCBiZSBw b3B1bGF0ZWQgd2l0aCB0aGUgTUZOcyBvZiB0aGUgcmVzb3VyY2UuCisgICAgICogICAgICAgICAg SWYgdGhlIHRvb2xzIGRvbWFpbiBpcyBIVk0gdGhlbiBpdCBpcyBleHBlY3RlZCB0aGF0LCBvbgor ICAgICAqICAgICAgICAgIGVudHJ5LCBmcmFtZV9saXN0IHdpbGwgYmUgcG9wdWxhdGVkIHdpdGgg YSBsaXN0IG9mIEdGTnMKKyAgICAgKiAgICAgICAgICB0aGF0IHdpbGwgYmUgbWFwcGVkIHRvIHRo ZSBNRk5zIG9mIHRoZSByZXNvdXJjZS4KKyAgICAgKiAgICAgICAgICBJZiAtRUlPIGlzIHJldHVy bmVkIHRoZW4gdGhlIGZyYW1lX2xpc3QgaGFzIG9ubHkgYmVlbgorICAgICAqICAgICAgICAgIHBh cnRpYWxseSBtYXBwZWQgYW5kIGl0IGlzIHVwIHRvIHRoZSBjYWxsZXIgdG8gdW5tYXAgYWxsCisg ICAgICogICAgICAgICAgdGhlIEdGTnMuCisgICAgICogICAgICAgICAgVGhpcyBwYXJhbWV0ZXIg bWF5IGJlIE5VTEwgaWYgbnJfZnJhbWVzIGlzIDAuCisgICAgICovCisgICAgWEVOX0dVRVNUX0hB TkRMRSh4ZW5fcGZuX3QpIGZyYW1lX2xpc3Q7Cit9OwordHlwZWRlZiBzdHJ1Y3QgeGVuX21lbV9h Y3F1aXJlX3Jlc291cmNlIHhlbl9tZW1fYWNxdWlyZV9yZXNvdXJjZV90OworREVGSU5FX1hFTl9H VUVTVF9IQU5ETEUoeGVuX21lbV9hY3F1aXJlX3Jlc291cmNlX3QpOworCiAjZW5kaWYgLyogZGVm aW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pICovCiAKIC8qCkBAIC02NTAs NyArNjkxLDcgQEAgc3RydWN0IHhlbl92bnVtYV90b3BvbG9neV9pbmZvIHsKIHR5cGVkZWYgc3Ry dWN0IHhlbl92bnVtYV90b3BvbG9neV9pbmZvIHhlbl92bnVtYV90b3BvbG9neV9pbmZvX3Q7CiBE RUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fdm51bWFfdG9wb2xvZ3lfaW5mb190KTsKIAotLyog TmV4dCBhdmFpbGFibGUgc3Vib3AgbnVtYmVyIGlzIDI4ICovCisvKiBOZXh0IGF2YWlsYWJsZSBz dWJvcCBudW1iZXIgaXMgMjkgKi8KIAogI2VuZGlmIC8qIF9fWEVOX1BVQkxJQ19NRU1PUllfSF9f ICovCiAKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hsYXQubHN0IGIveGVuL2luY2x1ZGUveGxh dC5sc3QKaW5kZXggNDM0NmNiZWRjZi4uNTgwNmVmMGFkOCAxMDA2NDQKLS0tIGEveGVuL2luY2x1 ZGUveGxhdC5sc3QKKysrIGIveGVuL2luY2x1ZGUveGxhdC5sc3QKQEAgLTg0LDYgKzg0LDcgQEAK ICEJbWVtb3J5X21hcAkJCW1lbW9yeS5oCiAhCW1lbW9yeV9yZXNlcnZhdGlvbgkJbWVtb3J5LmgK ICEJbWVtX2FjY2Vzc19vcAkJCW1lbW9yeS5oCishCW1lbV9hY3F1aXJlX3Jlc291cmNlCQltZW1v cnkuaAogIQlwb2RfdGFyZ2V0CQkJbWVtb3J5LmgKICEJcmVtb3ZlX2Zyb21fcGh5c21hcAkJbWVt b3J5LmgKICEJcmVzZXJ2ZWRfZGV2aWNlX21lbW9yeV9tYXAJbWVtb3J5LmgKZGlmZiAtLWdpdCBh L3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oIGIveGVuL2luY2x1ZGUveHNtL2R1bW15LmgKaW5kZXgg YjJjZDU2Y2RjNS4uNTRkYWU3YWU4YSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveHNtL2R1bW15 LmgKKysrIGIveGVuL2luY2x1ZGUveHNtL2R1bW15LmgKQEAgLTcyNCwzICs3MjQsOSBAQCBzdGF0 aWMgWFNNX0lOTElORSBpbnQgeHNtX3hlbl92ZXJzaW9uIChYU01fREVGQVVMVF9BUkcgdWludDMy X3Qgb3ApCiAgICAgICAgIHJldHVybiB4c21fZGVmYXVsdF9hY3Rpb24oWFNNX1BSSVYsIGN1cnJl bnQtPmRvbWFpbiwgTlVMTCk7CiAgICAgfQogfQorCitzdGF0aWMgWFNNX0lOTElORSBpbnQgeHNt X2RvbWFpbl9yZXNvdXJjZV9tYXAoWFNNX0RFRkFVTFRfQVJHIHN0cnVjdCBkb21haW4gKmQpCit7 CisgICAgWFNNX0FTU0VSVF9BQ1RJT04oWFNNX0RNX1BSSVYpOworICAgIHJldHVybiB4c21fZGVm YXVsdF9hY3Rpb24oYWN0aW9uLCBjdXJyZW50LT5kb21haW4sIGQpOworfQpkaWZmIC0tZ2l0IGEv eGVuL2luY2x1ZGUveHNtL3hzbS5oIGIveGVuL2luY2x1ZGUveHNtL3hzbS5oCmluZGV4IDdmN2Zl ZmZjNjguLmQwZGI4NjBhZTAgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hzbS94c20uaAorKysg Yi94ZW4vaW5jbHVkZS94c20veHNtLmgKQEAgLTE4MCw2ICsxODAsNyBAQCBzdHJ1Y3QgeHNtX29w ZXJhdGlvbnMgewogICAgIGludCAoKmRtX29wKSAoc3RydWN0IGRvbWFpbiAqZCk7CiAjZW5kaWYK ICAgICBpbnQgKCp4ZW5fdmVyc2lvbikgKHVpbnQzMl90IGNtZCk7CisgICAgaW50ICgqZG9tYWlu X3Jlc291cmNlX21hcCkgKHN0cnVjdCBkb21haW4gKmQpOwogfTsKIAogI2lmZGVmIENPTkZJR19Y U00KQEAgLTY5Miw2ICs2OTMsMTEgQEAgc3RhdGljIGlubGluZSBpbnQgeHNtX3hlbl92ZXJzaW9u ICh4c21fZGVmYXVsdF90IGRlZiwgdWludDMyX3Qgb3ApCiAgICAgcmV0dXJuIHhzbV9vcHMtPnhl bl92ZXJzaW9uKG9wKTsKIH0KIAorc3RhdGljIGlubGluZSBpbnQgeHNtX2RvbWFpbl9yZXNvdXJj ZV9tYXAoeHNtX2RlZmF1bHRfdCBkZWYsIHN0cnVjdCBkb21haW4gKmQpCit7CisgICAgcmV0dXJu IHhzbV9vcHMtPmRvbWFpbl9yZXNvdXJjZV9tYXAoZCk7Cit9CisKICNlbmRpZiAvKiBYU01fTk9f V1JBUFBFUlMgKi8KIAogI2lmZGVmIENPTkZJR19NVUxUSUJPT1QKZGlmZiAtLWdpdCBhL3hlbi94 c20vZHVtbXkuYyBiL3hlbi94c20vZHVtbXkuYwppbmRleCA0NzliMTAzNjE0Li42ZTc1MTE5OWVl IDEwMDY0NAotLS0gYS94ZW4veHNtL2R1bW15LmMKKysrIGIveGVuL3hzbS9kdW1teS5jCkBAIC0x NTcsNCArMTU3LDUgQEAgdm9pZCBfX2luaXQgeHNtX2ZpeHVwX29wcyAoc3RydWN0IHhzbV9vcGVy YXRpb25zICpvcHMpCiAgICAgc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBkbV9vcCk7CiAjZW5k aWYKICAgICBzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHhlbl92ZXJzaW9uKTsKKyAgICBzZXRf dG9fZHVtbXlfaWZfbnVsbChvcHMsIGRvbWFpbl9yZXNvdXJjZV9tYXApOwogfQpkaWZmIC0tZ2l0 IGEveGVuL3hzbS9mbGFzay9ob29rcy5jIGIveGVuL3hzbS9mbGFzay9ob29rcy5jCmluZGV4IGYw MWI0Y2ZhYWEuLjM5ODUxZmU2MWYgMTAwNjQ0Ci0tLSBhL3hlbi94c20vZmxhc2svaG9va3MuYwor KysgYi94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKQEAgLTE3MTgsNiArMTcxOCwxMSBAQCBzdGF0aWMg aW50IGZsYXNrX3hlbl92ZXJzaW9uICh1aW50MzJfdCBvcCkKICAgICB9CiB9CiAKK3N0YXRpYyBp bnQgZmxhc2tfZG9tYWluX3Jlc291cmNlX21hcChzdHJ1Y3QgZG9tYWluICpkKQoreworICAgIHJl dHVybiBjdXJyZW50X2hhc19wZXJtKGQsIFNFQ0NMQVNTX0RPTUFJTjIsIERPTUFJTjJfX1JFU09V UkNFX01BUCk7Cit9CisKIGxvbmcgZG9fZmxhc2tfb3AoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4 c21fb3BfdCkgdV9mbGFza19vcCk7CiBpbnQgY29tcGF0X2ZsYXNrX29wKFhFTl9HVUVTVF9IQU5E TEVfUEFSQU0oeHNtX29wX3QpIHVfZmxhc2tfb3ApOwogCkBAIC0xODUxLDYgKzE4NTYsNyBAQCBz dGF0aWMgc3RydWN0IHhzbV9vcGVyYXRpb25zIGZsYXNrX29wcyA9IHsKICAgICAuZG1fb3AgPSBm bGFza19kbV9vcCwKICNlbmRpZgogICAgIC54ZW5fdmVyc2lvbiA9IGZsYXNrX3hlbl92ZXJzaW9u LAorICAgIC5kb21haW5fcmVzb3VyY2VfbWFwID0gZmxhc2tfZG9tYWluX3Jlc291cmNlX21hcCwK IH07CiAKIHZvaWQgX19pbml0IGZsYXNrX2luaXQoY29uc3Qgdm9pZCAqcG9saWN5X2J1ZmZlciwg c2l6ZV90IHBvbGljeV9zaXplKQpkaWZmIC0tZ2l0IGEveGVuL3hzbS9mbGFzay9wb2xpY3kvYWNj ZXNzX3ZlY3RvcnMgYi94ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycwppbmRleCAz YTJkODYzYjhmLi4zNDFhZGUxZjdkIDEwMDY0NAotLS0gYS94ZW4veHNtL2ZsYXNrL3BvbGljeS9h Y2Nlc3NfdmVjdG9ycworKysgYi94ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycwpA QCAtMjUwLDYgKzI1MCw4IEBAIGNsYXNzIGRvbWFpbjIKICAgICBwc3JfY2F0X29wCiAjIFhFTl9E T01DVExfc2V0X2dudHRhYl9saW1pdHMKICAgICBzZXRfZ250dGFiX2xpbWl0cworIyBYRU5NRU1f cmVzb3VyY2VfbWFwCisgICAgcmVzb3VyY2VfbWFwCiB9CiAKICMgU2ltaWxhciB0byBjbGFzcyBk b21haW4sIGJ1dCBwcmltYXJpbHkgY29udGFpbnMgZG9tY3RscyByZWxhdGVkIHRvIEhWTSBkb21h aW5zCi0tIAoyLjExLjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0 Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRl dmVs