From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v16 05/11] x86/mm: add HYPERVISOR_memory_op to acquire guest resources Date: Fri, 15 Dec 2017 10:41:45 +0000 Message-ID: <20171215104151.29754-6-paul.durrant@citrix.com> References: <20171215104151.29754-1-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ePnRP-0005rk-GN for xen-devel@lists.xenproject.org; Fri, 15 Dec 2017 10:42:07 +0000 In-Reply-To: <20171215104151.29754-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 List-Id: xen-devel@lists.xenproject.org Q2VydGFpbiBtZW1vcnkgcmVzb3VyY2VzIGFzc29jaWF0ZWQgd2l0aCBhIGd1ZXN0IGFyZSBub3Qg bmVjZXNzYXJpbHkKcHJlc2VudCBpbiB0aGUgZ3Vlc3QgUDJNLgoKVGhpcyBwYXRjaCBhZGRzIHRo ZSBib2lsZXJwbGF0ZSBmb3IgbmV3IG1lbW9yeSBvcCB0byBhbGxvdyBzdWNoIGEgcmVzb3VyY2UK dG8gYmUgcHJpdi1tYXBwZWQgZGlyZWN0bHksIGJ5IGVpdGhlciBhIFBWIG9yIEhWTSB0b29scyBk b21haW4uCgpOT1RFOiBXaGlsc3QgdGhlIG5ldyBvcCBpcyBub3QgaW50cmluc2ljbHkgc3BlY2lm aWMgdG8gdGhlIHg4NiBhcmNoaXRlY3R1cmUsCiAgICAgIEkgaGF2ZSBubyBtZWFucyB0byB0ZXN0 IGl0IG9uIGFuIEFSTSBwbGF0Zm9ybSBhbmQgc28gY2Fubm90IHZlcmlmeQogICAgICB0aGF0IGl0 IGZ1bmN0aW9ucyBjb3JyZWN0bHkuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwu ZHVycmFudEBjaXRyaXguY29tPgpSZXZpZXdlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1 c2UuY29tPgpBY2tlZC1ieTogRGFuaWVsIERlIEdyYWFmIDxkZ2RlZ3JhQHR5Y2hvLm5zYS5nb3Y+ Ci0tLQpDYzogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBldS5jaXRyaXguY29tPgpDYzog QW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KQ2M6IEdlb3JnZSBEdW5s YXAgPEdlb3JnZS5EdW5sYXBAZXUuY2l0cml4LmNvbT4KQ2M6IElhbiBKYWNrc29uIDxpYW4uamFj a3NvbkBldS5jaXRyaXguY29tPgpDYzogS29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQud2ls a0BvcmFjbGUuY29tPgpDYzogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwu b3JnPgpDYzogVGltIERlZWdhbiA8dGltQHhlbi5vcmc+CkNjOiBXZWkgTGl1IDx3ZWkubGl1MkBj aXRyaXguY29tPgpDYzogSnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4KCnYxNDoK IC0gQWRkcmVzc2VkIG1vcmUgY29tbWVudHMgZnJvbSBKYW4uCgp2MTM6CiAtIFVzZSB4ZW5fcGZu X3QgZm9yIG1mbl9saXN0LgogLSBBZGRyZXNzZWQgZnVydGhlciBjb21tZW50cyBmcm9tIEphbiBh bmQgSnVsaWVuLgoKdjEyOgogLSBBZGRyZXNzZWQgbW9yZSBjb21tZW50cyBmb3JtIEphbi4KIC0g UmVtb3ZlZCAjaWZkZWYgQ09ORklHX1g4NiBmcm9tIGNvbW1vbiBjb2RlIGFuZCBpbnN0ZWFkIGlu dHJvZHVjZWQgYQogICBzdHViIHNldF9mb3JlaWduX3AybV9lbnRyeSgpIGluIGFzbS1hcm0vcDJt LmggcmV0dXJuaW5nIC1FT1BOT1RTVVBQLgogLSBSZXN0cmljdGVkIG1lY2hhbmlzbSBmb3IgcXVl cnlpbmcgaW1wbGVtZW50YXRpb24gbGltaXQgb24gbnJfZnJhbWVzCiAgIGFuZCBzaW1wbGlmaWVk IGNvbXBhdCBjb2RlLgoKdjExOgogLSBBZGRyZXNzZWQgbW9yZSBjb21tZW50cyBmcm9tIEphbi4K CnY5OgogLSBBZGRyZXNzZWQgbW9yZSBjb21tZW50cyBmcm9tIEphbi4KCnY4OgogLSBNb3ZlIHRo ZSBjb2RlIGludG8gY29tbW9uIGFzIHJlcXVlc3RlZCBieSBKYW4uCiAtIE1ha2UgdGhlIGdtZm5f bGlzdCBoYW5kbGUgYSA2NC1iaXQgdHlwZSB0byBhdm9pZCBsaW1pdGluZyB0aGUgTUZOCiAgIHJh bmdlIGZvciBhIDMyLWJpdCB0b29scyBkb21haW4uCiAtIEFkZCBtaXNzaW5nIHBhZC4KIC0gQWRk IGNvbXBhdCBjb2RlLgogLSBNYWtlIHRoaXMgcGF0Y2ggZGVhbCB3aXRoIHB1cmVseSBib2lsZXJw bGF0ZS4KIC0gRHJvcCBHZW9yZ2UncyBBLWIgYW5kIFdlaSdzIFItYiBiZWNhdXNlIHRoZSBjaGFu Z2VzIGFyZSBub24tdHJpdmlhbCwKICAgYW5kIHVwZGF0ZSBDYyBsaXN0IG5vdyB0aGUgYm9pbGVy cGxhdGUgaXMgY29tbW9uLgoKdjU6CiAtIFN3aXRjaGVkIF9fY29weV90by9mcm9tX2d1ZXN0X29m ZnNldCgpIHRvIGNvcHlfdG8vZnJvbV9ndWVzdF9vZmZzZXQoKS4KLS0tCiB0b29scy9mbGFzay9w b2xpY3kvbW9kdWxlcy94ZW4uaWYgICB8ICA0ICstCiB4ZW4vYXJjaC94ODYvbW0vcDJtLmMgICAg ICAgICAgICAgICB8ICAzICstCiB4ZW4vY29tbW9uL2NvbXBhdC9tZW1vcnkuYyAgICAgICAgICB8 IDk1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHhlbi9jb21tb24vbWVt b3J5LmMgICAgICAgICAgICAgICAgIHwgODkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKwogeGVuL2luY2x1ZGUvYXNtLWFybS9wMm0uaCAgICAgICAgICAgfCAxMCArKysrCiB4ZW4v aW5jbHVkZS9hc20teDg2L3AybS5oICAgICAgICAgICB8ICAzICsrCiB4ZW4vaW5jbHVkZS9wdWJs aWMvbWVtb3J5LmggICAgICAgICB8IDQzICsrKysrKysrKysrKysrKystCiB4ZW4vaW5jbHVkZS94 bGF0LmxzdCAgICAgICAgICAgICAgICB8ICAxICsKIHhlbi9pbmNsdWRlL3hzbS9kdW1teS5oICAg ICAgICAgICAgIHwgIDYgKysrCiB4ZW4vaW5jbHVkZS94c20veHNtLmggICAgICAgICAgICAgICB8 ICA2ICsrKwogeGVuL3hzbS9kdW1teS5jICAgICAgICAgICAgICAgICAgICAgfCAgMSArCiB4ZW4v eHNtL2ZsYXNrL2hvb2tzLmMgICAgICAgICAgICAgICB8ICA2ICsrKwogeGVuL3hzbS9mbGFzay9w b2xpY3kvYWNjZXNzX3ZlY3RvcnMgfCAgMiArCiAxMyBmaWxlcyBjaGFuZ2VkLCAyNjUgaW5zZXJ0 aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29scy9mbGFzay9wb2xpY3kv bW9kdWxlcy94ZW4uaWYgYi90b29scy9mbGFzay9wb2xpY3kvbW9kdWxlcy94ZW4uaWYKaW5kZXgg NTU0Mzc0OTZmNi4uMDdjYmE4YTE1ZCAxMDA2NDQKLS0tIGEvdG9vbHMvZmxhc2svcG9saWN5L21v ZHVsZXMveGVuLmlmCisrKyBiL3Rvb2xzL2ZsYXNrL3BvbGljeS9tb2R1bGVzL3hlbi5pZgpAQCAt NTIsNyArNTIsOCBAQCBkZWZpbmUoYGNyZWF0ZV9kb21haW5fY29tbW9uJywgYAogCQkJc2V0dGlt ZSBzZXRkb21haW5oYW5kbGUgZ2V0dmNwdWNvbnRleHQgc2V0X21pc2NfaW5mbyB9OwogCWFsbG93 ICQxICQyOmRvbWFpbjIgeyBzZXRfY3B1aWQgc2V0dHNjIHNldHNjaGVkdWxlciBzZXRjbGFpbQog CQkJc2V0X21heF9ldnRjaG4gc2V0X3ZudW1haW5mbyBnZXRfdm51bWFpbmZvIGNhY2hlZmx1c2gK LQkJCXBzcl9jbXRfb3AgcHNyX2NhdF9vcCBzb2Z0X3Jlc2V0IHNldF9nbnR0YWJfbGltaXRzIH07 CisJCQlwc3JfY210X29wIHBzcl9jYXRfb3Agc29mdF9yZXNldCBzZXRfZ250dGFiX2xpbWl0cwor CQkJcmVzb3VyY2VfbWFwIH07CiAJYWxsb3cgJDEgJDI6c2VjdXJpdHkgY2hlY2tfY29udGV4dDsK IAlhbGxvdyAkMSAkMjpzaGFkb3cgZW5hYmxlOwogCWFsbG93ICQxICQyOm1tdSB7IG1hcF9yZWFk IG1hcF93cml0ZSBhZGp1c3QgbWVtb3J5bWFwIHBoeXNtYXAgcGlucGFnZSBtbXVleHRfb3AgdXBk YXRlbXAgfTsKQEAgLTE1Miw2ICsxNTMsNyBAQCBkZWZpbmUoYGRldmljZV9tb2RlbCcsIGAKIAlh bGxvdyAkMSAkMl90YXJnZXQ6ZG9tYWluIHsgZ2V0ZG9tYWluaW5mbyBzaHV0ZG93biB9OwogCWFs bG93ICQxICQyX3RhcmdldDptbXUgeyBtYXBfcmVhZCBtYXBfd3JpdGUgYWRqdXN0IHBoeXNtYXAg dGFyZ2V0X2hhY2sgfTsKIAlhbGxvdyAkMSAkMl90YXJnZXQ6aHZtIHsgZ2V0cGFyYW0gc2V0cGFy YW0gaHZtY3RsIGNhY2hlYXR0ciBkbSB9OworCWFsbG93ICQxICQyX3RhcmdldDpkb21haW4yIHJl c291cmNlX21hcDsKICcpCiAKICMgbWFrZV9kZXZpY2VfbW9kZWwocHJpdiwgZG1fZG9tLCBodm1f ZG9tKQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL3AybS5jIGIveGVuL2FyY2gveDg2L21t L3AybS5jCmluZGV4IGM3MmEzY2RlYmIuLjcxYmI5YjRmOTMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L3g4Ni9tbS9wMm0uYworKysgYi94ZW4vYXJjaC94ODYvbW0vcDJtLmMKQEAgLTExMzIsOCArMTEz Miw3IEBAIHN0YXRpYyBpbnQgc2V0X3R5cGVkX3AybV9lbnRyeShzdHJ1Y3QgZG9tYWluICpkLCB1 bnNpZ25lZCBsb25nIGdmbl9sLAogfQogCiAvKiBTZXQgZm9yZWlnbiBtZm4gaW4gdGhlIGdpdmVu IGd1ZXN0J3MgcDJtIHRhYmxlLiAqLwotc3RhdGljIGludCBzZXRfZm9yZWlnbl9wMm1fZW50cnko c3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm4sCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBtZm5fdCBtZm4pCitpbnQgc2V0X2ZvcmVpZ25fcDJtX2VudHJ5KHN0cnVj dCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLCBtZm5fdCBtZm4pCiB7CiAgICAgcmV0dXJu IHNldF90eXBlZF9wMm1fZW50cnkoZCwgZ2ZuLCBtZm4sIFBBR0VfT1JERVJfNEssIHAybV9tYXBf Zm9yZWlnbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwMm1fZ2V0X2hvc3RwMm0o ZCktPmRlZmF1bHRfYWNjZXNzKTsKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vY29tcGF0L21lbW9y eS5jIGIveGVuL2NvbW1vbi9jb21wYXQvbWVtb3J5LmMKaW5kZXggMzViYjI1OTgwOC4uOWE3Y2Ix YTcxYiAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9jb21wYXQvbWVtb3J5LmMKKysrIGIveGVuL2Nv bW1vbi9jb21wYXQvbWVtb3J5LmMKQEAgLTcxLDYgKzcxLDcgQEAgaW50IGNvbXBhdF9tZW1vcnlf b3AodW5zaWduZWQgaW50IGNtZCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBjb21wYXQp CiAgICAgICAgICAgICBzdHJ1Y3QgeGVuX3JlbW92ZV9mcm9tX3BoeXNtYXAgKnhyZnA7CiAgICAg ICAgICAgICBzdHJ1Y3QgeGVuX3ZudW1hX3RvcG9sb2d5X2luZm8gKnZudW1hOwogICAgICAgICAg ICAgc3RydWN0IHhlbl9tZW1fYWNjZXNzX29wICptYW87CisgICAgICAgICAgICBzdHJ1Y3QgeGVu X21lbV9hY3F1aXJlX3Jlc291cmNlICptYXI7CiAgICAgICAgIH0gbmF0OwogICAgICAgICB1bmlv biB7CiAgICAgICAgICAgICBzdHJ1Y3QgY29tcGF0X21lbW9yeV9yZXNlcnZhdGlvbiByc3J2OwpA QCAtNzksNiArODAsNyBAQCBpbnQgY29tcGF0X21lbW9yeV9vcCh1bnNpZ25lZCBpbnQgY21kLCBY RU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGNvbXBhdCkKICAgICAgICAgICAgIHN0cnVjdCBj b21wYXRfYWRkX3RvX3BoeXNtYXBfYmF0Y2ggYXRwYjsKICAgICAgICAgICAgIHN0cnVjdCBjb21w YXRfdm51bWFfdG9wb2xvZ3lfaW5mbyB2bnVtYTsKICAgICAgICAgICAgIHN0cnVjdCBjb21wYXRf bWVtX2FjY2Vzc19vcCBtYW87CisgICAgICAgICAgICBzdHJ1Y3QgY29tcGF0X21lbV9hY3F1aXJl X3Jlc291cmNlIG1hcjsKICAgICAgICAgfSBjbXA7CiAKICAgICAgICAgc2V0X3hlbl9ndWVzdF9o YW5kbGUobmF0LmhuZCwgQ09NUEFUX0FSR19YTEFUX1ZJUlRfQkFTRSk7CkBAIC0zOTUsNiArMzk3 LDU3IEBAIGludCBjb21wYXRfbWVtb3J5X29wKHVuc2lnbmVkIGludCBjbWQsIFhFTl9HVUVTVF9I QU5ETEVfUEFSQU0odm9pZCkgY29tcGF0KQogICAgICAgICB9CiAjZW5kaWYKIAorICAgICAgICBj YXNlIFhFTk1FTV9hY3F1aXJlX3Jlc291cmNlOgorICAgICAgICB7CisgICAgICAgICAgICB4ZW5f cGZuX3QgKnhlbl9mcmFtZV9saXN0OworICAgICAgICAgICAgdW5zaWduZWQgaW50IG1heF9ucl9m cmFtZXM7CisKKyAgICAgICAgICAgIGlmICggY29weV9mcm9tX2d1ZXN0KCZjbXAubWFyLCBjb21w YXQsIDEpICkKKyAgICAgICAgICAgICAgICByZXR1cm4gLUVGQVVMVDsKKworICAgICAgICAgICAg LyoKKyAgICAgICAgICAgICAqIFRoZSBudW1iZXIgb2YgZnJhbWVzIGhhbmRsZWQgaXMgY3VycmVu dGx5IGxpbWl0ZWQgdG8gYQorICAgICAgICAgICAgICogc21hbGwgbnVtYmVyIGJ5IHRoZSB1bmRl cmx5aW5nIGltcGxlbWVudGF0aW9uLCBzbyB0aGUKKyAgICAgICAgICAgICAqIHNjcmF0Y2ggc3Bh Y2Ugc2hvdWxkIGJlIHN1ZmZpY2llbnQgZm9yIGJvdW5jaW5nIHRoZQorICAgICAgICAgICAgICog ZnJhbWUgYWRkcmVzc2VzLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBtYXhfbnJfZnJh bWVzID0gKENPTVBBVF9BUkdfWExBVF9TSVpFIC0gc2l6ZW9mKCpuYXQubWFyKSkgLworICAgICAg ICAgICAgICAgIHNpemVvZigqeGVuX2ZyYW1lX2xpc3QpOworCisgICAgICAgICAgICBpZiAoIGNt cC5tYXIubnJfZnJhbWVzID4gbWF4X25yX2ZyYW1lcyApCisgICAgICAgICAgICAgICAgcmV0dXJu IC1FMkJJRzsKKworICAgICAgICAgICAgaWYgKCBjb21wYXRfaGFuZGxlX2lzX251bGwoY21wLm1h ci5mcmFtZV9saXN0KSApCisgICAgICAgICAgICAgICAgeGVuX2ZyYW1lX2xpc3QgPSBOVUxMOwor ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHhlbl9mcmFt ZV9saXN0ID0gKHhlbl9wZm5fdCAqKShuYXQubWFyICsgMSk7CisKKyAgICAgICAgICAgICAgICBp ZiAoICFjb21wYXRfaGFuZGxlX29rYXkoY21wLm1hci5mcmFtZV9saXN0LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbXAubWFyLm5yX2ZyYW1lcykgKQorICAgICAg ICAgICAgICAgICAgICByZXR1cm4gLUVGQVVMVDsKKworICAgICAgICAgICAgICAgIGZvciAoIGkg PSAwOyBpIDwgY21wLm1hci5ucl9mcmFtZXM7IGkrKyApCisgICAgICAgICAgICAgICAgeworICAg ICAgICAgICAgICAgICAgICBjb21wYXRfcGZuX3QgZnJhbWU7CisKKyAgICAgICAgICAgICAgICAg ICAgaWYgKCBfX2NvcHlfZnJvbV9jb21wYXRfb2Zmc2V0KAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAmZnJhbWUsIGNtcC5tYXIuZnJhbWVfbGlzdCwgaSwgMSkgKQorICAgICAgICAgICAg ICAgICAgICAgICAgcmV0dXJuIC1FRkFVTFQ7CisKKyAgICAgICAgICAgICAgICAgICAgeGVuX2Zy YW1lX2xpc3RbaV0gPSBmcmFtZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisK KyNkZWZpbmUgWExBVF9tZW1fYWNxdWlyZV9yZXNvdXJjZV9ITkRMX2ZyYW1lX2xpc3QoX2RfLCBf c18pIFwKKyAgICAgICAgICAgIHNldF94ZW5fZ3Vlc3RfaGFuZGxlKChfZF8pLT5mcmFtZV9saXN0 LCB4ZW5fZnJhbWVfbGlzdCkKKworICAgICAgICAgICAgWExBVF9tZW1fYWNxdWlyZV9yZXNvdXJj ZShuYXQubWFyLCAmY21wLm1hcik7CisKKyN1bmRlZiBYTEFUX21lbV9hY3F1aXJlX3Jlc291cmNl X0hORExfZnJhbWVfbGlzdAorCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQogICAgICAg ICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIGNvbXBhdF9hcmNoX21lbW9yeV9vcChjbWQs IGNvbXBhdCk7CiAgICAgICAgIH0KQEAgLTUzNSw2ICs1ODgsNDggQEAgaW50IGNvbXBhdF9tZW1v cnlfb3AodW5zaWduZWQgaW50IGNtZCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBjb21w YXQpCiAgICAgICAgICAgICAgICAgcmMgPSAtRUZBVUxUOwogICAgICAgICAgICAgYnJlYWs7CiAK KyAgICAgICAgY2FzZSBYRU5NRU1fYWNxdWlyZV9yZXNvdXJjZToKKyAgICAgICAgeworICAgICAg ICAgICAgY29uc3QgeGVuX3Bmbl90ICp4ZW5fZnJhbWVfbGlzdCA9ICh4ZW5fcGZuX3QgKikobmF0 Lm1hciArIDEpOworICAgICAgICAgICAgY29tcGF0X3Bmbl90ICpjb21wYXRfZnJhbWVfbGlzdCA9 IChjb21wYXRfcGZuX3QgKikobmF0Lm1hciArIDEpOworCisgICAgICAgICAgICBpZiAoIGNvbXBh dF9oYW5kbGVfaXNfbnVsbChjbXAubWFyLmZyYW1lX2xpc3QpICkKKyAgICAgICAgICAgIHsKKyAg ICAgICAgICAgICAgICBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRShjb21wYXRfbWVtX2FjcXVpcmVf cmVzb3VyY2VfdCk7CisKKyAgICAgICAgICAgICAgICBpZiAoIF9fY29weV9maWVsZF90b19ndWVz dCgKKyAgICAgICAgICAgICAgICAgICAgICAgICBndWVzdF9oYW5kbGVfY2FzdChjb21wYXQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcGF0X21lbV9hY3F1 aXJlX3Jlc291cmNlX3QpLAorICAgICAgICAgICAgICAgICAgICAgICAgICZjbXAubWFyLCBucl9m cmFtZXMpICkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FRkFVTFQ7CisgICAgICAgICAg ICB9CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLyoK KyAgICAgICAgICAgICAgICAgKiBOT1RFOiB0aGUgc21hbGxlciBjb21wYXQgYXJyYXkgb3Zlcndy aXRlcyB0aGUgbmF0aXZlCisgICAgICAgICAgICAgICAgICogICAgICAgYXJyYXkuCisgICAgICAg ICAgICAgICAgICovCisgICAgICAgICAgICAgICAgQlVJTERfQlVHX09OKHNpemVvZihjb21wYXRf cGZuX3QpID4gc2l6ZW9mKHhlbl9wZm5fdCkpOworCisgICAgICAgICAgICAgICAgZm9yICggaSA9 IDA7IGkgPCBjbXAubWFyLm5yX2ZyYW1lczsgaSsrICkKKyAgICAgICAgICAgICAgICB7CisgICAg ICAgICAgICAgICAgICAgIGNvbXBhdF9wZm5fdCBmcmFtZSA9IHhlbl9mcmFtZV9saXN0W2ldOwor CisgICAgICAgICAgICAgICAgICAgIGlmICggZnJhbWUgIT0geGVuX2ZyYW1lX2xpc3RbaV0gKQor ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FUkFOR0U7CisKKyAgICAgICAgICAgICAg ICAgICAgY29tcGF0X2ZyYW1lX2xpc3RbaV0gPSBmcmFtZTsKKyAgICAgICAgICAgICAgICB9CisK KyAgICAgICAgICAgICAgICBpZiAoIF9fY29weV90b19jb21wYXRfb2Zmc2V0KGNtcC5tYXIuZnJh bWVfbGlzdCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbXBhdF9mcmFtZV9saXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY21wLm1hci5ucl9mcmFtZXMpICkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu IC1FRkFVTFQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9 CisKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGRvbWFpbl9jcmFzaChjdXJyZW50LT5k b21haW4pOwogICAgICAgICAgICAgc3BsaXQgPSAwOwpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9t ZW1vcnkuYyBiL3hlbi9jb21tb24vbWVtb3J5LmMKaW5kZXggYTZiYTMzZmRjYi4uNmMzODVhMjMy OCAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9tZW1vcnkuYworKysgYi94ZW4vY29tbW9uL21lbW9y eS5jCkBAIC05NzAsNiArOTcwLDkwIEBAIHN0YXRpYyBsb25nIHhhdHBfcGVybWlzc2lvbl9jaGVj ayhzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgc3BhY2UpCiAgICAgcmV0dXJuIHhzbV9h ZGRfdG9fcGh5c21hcChYU01fVEFSR0VULCBjdXJyZW50LT5kb21haW4sIGQpOwogfQogCitzdGF0 aWMgaW50IGFjcXVpcmVfcmVzb3VyY2UoCisgICAgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZW5f bWVtX2FjcXVpcmVfcmVzb3VyY2VfdCkgYXJnKQoreworICAgIHN0cnVjdCBkb21haW4gKmQsICpj dXJyZCA9IGN1cnJlbnQtPmRvbWFpbjsKKyAgICB4ZW5fbWVtX2FjcXVpcmVfcmVzb3VyY2VfdCB4 bWFyOworICAgIC8qCisgICAgICogVGhlIG1mbl9saXN0IGFuZCBnZm5fbGlzdCAoYmVsb3cpIGFy cmF5cyBhcmUgb2sgb24gc3RhY2sgZm9yIHRoZQorICAgICAqIG1vbWVudCBzaW5jZSB0aGV5IGFy ZSBzbWFsbCwgYnV0IGlmIHRoZXkgbmVlZCB0byBncm93IGluIGZ1dHVyZQorICAgICAqIHVzZS1j YXNlcyB0aGVuIHBlci1DUFUgYXJyYXlzIG9yIGhlYXAgYWxsb2NhdGlvbnMgbWF5IGJlIHJlcXVp cmVkLgorICAgICAqLworICAgIHhlbl9wZm5fdCBtZm5fbGlzdFsyXTsKKyAgICBpbnQgcmM7CisK KyAgICBpZiAoIGNvcHlfZnJvbV9ndWVzdCgmeG1hciwgYXJnLCAxKSApCisgICAgICAgIHJldHVy biAtRUZBVUxUOworCisgICAgaWYgKCB4bWFyLnBhZCAhPSAwICkKKyAgICAgICAgcmV0dXJuIC1F SU5WQUw7CisKKyAgICBpZiAoIGd1ZXN0X2hhbmRsZV9pc19udWxsKHhtYXIuZnJhbWVfbGlzdCkg KQorICAgIHsKKyAgICAgICAgaWYgKCB4bWFyLm5yX2ZyYW1lcyApCisgICAgICAgICAgICByZXR1 cm4gLUVJTlZBTDsKKworICAgICAgICB4bWFyLm5yX2ZyYW1lcyA9IEFSUkFZX1NJWkUobWZuX2xp c3QpOworCisgICAgICAgIGlmICggX19jb3B5X2ZpZWxkX3RvX2d1ZXN0KGFyZywgJnhtYXIsIG5y X2ZyYW1lcykgKQorICAgICAgICAgICAgcmV0dXJuIC1FRkFVTFQ7CisKKyAgICAgICAgcmV0dXJu IDA7CisgICAgfQorCisgICAgaWYgKCB4bWFyLm5yX2ZyYW1lcyA+IEFSUkFZX1NJWkUobWZuX2xp c3QpICkKKyAgICAgICAgcmV0dXJuIC1FMkJJRzsKKworICAgIHJjID0gcmN1X2xvY2tfcmVtb3Rl X2RvbWFpbl9ieV9pZCh4bWFyLmRvbWlkLCAmZCk7CisgICAgaWYgKCByYyApCisgICAgICAgIHJl dHVybiByYzsKKworICAgIHJjID0geHNtX2RvbWFpbl9yZXNvdXJjZV9tYXAoWFNNX0RNX1BSSVYs IGQpOworICAgIGlmICggcmMgKQorICAgICAgICBnb3RvIG91dDsKKworICAgIHN3aXRjaCAoIHht YXIudHlwZSApCisgICAgeworICAgIGRlZmF1bHQ6CisgICAgICAgIHJjID0gLUVPUE5PVFNVUFA7 CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGlmICggcmMgKQorICAgICAgICBnb3RvIG91 dDsKKworICAgIGlmICggIXBhZ2luZ19tb2RlX3RyYW5zbGF0ZShjdXJyZCkgKQorICAgIHsKKyAg ICAgICAgaWYgKCBjb3B5X3RvX2d1ZXN0KHhtYXIuZnJhbWVfbGlzdCwgbWZuX2xpc3QsIHhtYXIu bnJfZnJhbWVzKSApCisgICAgICAgICAgICByYyA9IC1FRkFVTFQ7CisgICAgfQorICAgIGVsc2UK KyAgICB7CisgICAgICAgIHhlbl9wZm5fdCBnZm5fbGlzdFtBUlJBWV9TSVpFKG1mbl9saXN0KV07 CisgICAgICAgIHVuc2lnbmVkIGludCBpOworCisgICAgICAgIGlmICggY29weV9mcm9tX2d1ZXN0 KGdmbl9saXN0LCB4bWFyLmZyYW1lX2xpc3QsIHhtYXIubnJfZnJhbWVzKSApCisgICAgICAgICAg ICByYyA9IC1FRkFVTFQ7CisKKyAgICAgICAgZm9yICggaSA9IDA7ICFyYyAmJiBpIDwgeG1hci5u cl9mcmFtZXM7IGkrKyApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJjID0gc2V0X2ZvcmVpZ25f cDJtX2VudHJ5KGN1cnJkLCBnZm5fbGlzdFtpXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF9tZm4obWZuX2xpc3RbaV0pKTsKKyAgICAgICAgICAgIGlmICggcmMgKQor ICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICogTWFrZSBzdXJlIHJjIGlzIC1F SU8gZm9yIGFueSBpdGVyYXRpb24gb3RoZXIgdGhhbgorICAgICAgICAgICAgICAgICAqIHRoZSBm aXJzdC4KKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICByYyA9IGkgPyAtRUlP IDogcmM7CisgICAgICAgIH0KKyAgICB9CisKKyBvdXQ6CisgICAgcmN1X3VubG9ja19kb21haW4o ZCk7CisgICAgcmV0dXJuIHJjOworfQorCiBsb25nIGRvX21lbW9yeV9vcCh1bnNpZ25lZCBsb25n IGNtZCwgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2b2lkKSBhcmcpCiB7CiAgICAgc3RydWN0IGRv bWFpbiAqZCwgKmN1cnJfZCA9IGN1cnJlbnQtPmRvbWFpbjsKQEAgLTE0MDgsNiArMTQ5MiwxMSBA QCBsb25nIGRvX21lbW9yeV9vcCh1bnNpZ25lZCBsb25nIGNtZCwgWEVOX0dVRVNUX0hBTkRMRV9Q QVJBTSh2b2lkKSBhcmcpCiAgICAgfQogI2VuZGlmCiAKKyAgICBjYXNlIFhFTk1FTV9hY3F1aXJl X3Jlc291cmNlOgorICAgICAgICByYyA9IGFjcXVpcmVfcmVzb3VyY2UoCisgICAgICAgICAgICBn dWVzdF9oYW5kbGVfY2FzdChhcmcsIHhlbl9tZW1fYWNxdWlyZV9yZXNvdXJjZV90KSk7CisgICAg ICAgIGJyZWFrOworCiAgICAgZGVmYXVsdDoKICAgICAgICAgcmMgPSBhcmNoX21lbW9yeV9vcChj bWQsIGFyZyk7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLWFy bS9wMm0uaCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vcDJtLmgKaW5kZXggYTBhYmM4NGVkOC4uMGZl ZTBmNzczOCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLWFybS9wMm0uaAorKysgYi94ZW4v aW5jbHVkZS9hc20tYXJtL3AybS5oCkBAIC0zNDgsNiArMzQ4LDE2IEBAIHN0YXRpYyBpbmxpbmUg Z2ZuX3QgZ2ZuX25leHRfYm91bmRhcnkoZ2ZuX3QgZ2ZuLCB1bnNpZ25lZCBpbnQgb3JkZXIpCiAg ICAgcmV0dXJuIGdmbl9hZGQoZ2ZuLCAxVUwgPDwgb3JkZXIpOwogfQogCitzdGF0aWMgaW5saW5l IGludCBzZXRfZm9yZWlnbl9wMm1fZW50cnkoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9u ZyBnZm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWZuX3QgbWZu KQoreworICAgIC8qCisgICAgICogTk9URTogSWYgdGhpcyBpcyBpbXBsZW1lbnRlZCB0aGVuIHBy b3BlciByZWZlcmVuY2UgY291bnRpbmcgb2YKKyAgICAgKiAgICAgICBmb3JlaWduIGVudHJpZXMg d2lsbCBuZWVkIHRvIGJlIGltcG1lbWVudGVkLgorICAgICAqLworICAgIHJldHVybiAtRU9QTk9U U1VQUDsKK30KKwogI2VuZGlmIC8qIF9YRU5fUDJNX0ggKi8KIAogLyoKZGlmZiAtLWdpdCBhL3hl bi9pbmNsdWRlL2FzbS14ODYvcDJtLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L3AybS5oCmluZGV4 IDE3YjFkMGM4ZDMuLjQ0ZjdlYzA4OGMgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYv cDJtLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9wMm0uaApAQCAtNjIwLDYgKzYyMCw5IEBA IHZvaWQgcDJtX21lbW9yeV90eXBlX2NoYW5nZWQoc3RydWN0IGRvbWFpbiAqZCk7CiBpbnQgcDJt X2lzX2xvZ2RpcnR5X3JhbmdlKHN0cnVjdCBwMm1fZG9tYWluICosIHVuc2lnbmVkIGxvbmcgc3Rh cnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZW5kKTsKIAorLyog U2V0IGZvcmVpZ24gZW50cnkgaW4gdGhlIHAybSB0YWJsZSAoZm9yIHByaXYtbWFwcGluZykgKi8K K2ludCBzZXRfZm9yZWlnbl9wMm1fZW50cnkoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9u ZyBnZm4sIG1mbl90IG1mbik7CisKIC8qIFNldCBtbWlvIGFkZHJlc3NlcyBpbiB0aGUgcDJtIHRh YmxlIChmb3IgcGFzcy10aHJvdWdoKSAqLwogaW50IHNldF9tbWlvX3AybV9lbnRyeShzdHJ1Y3Qg ZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbiwgbWZuX3QgbWZuLAogICAgICAgICAgICAgICAg ICAgICAgICB1bnNpZ25lZCBpbnQgb3JkZXIsIHAybV9hY2Nlc3NfdCBhY2Nlc3MpOwpkaWZmIC0t Z2l0IGEveGVuL2luY2x1ZGUvcHVibGljL21lbW9yeS5oIGIveGVuL2luY2x1ZGUvcHVibGljL21l bW9yeS5oCmluZGV4IDI5Mzg2ZGY5OGIuLjgzZTYwYjY2MDMgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNs dWRlL3B1YmxpYy9tZW1vcnkuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvbWVtb3J5LmgKQEAg LTU5OSw2ICs1OTksNDcgQEAgc3RydWN0IHhlbl9yZXNlcnZlZF9kZXZpY2VfbWVtb3J5X21hcCB7 CiB0eXBlZGVmIHN0cnVjdCB4ZW5fcmVzZXJ2ZWRfZGV2aWNlX21lbW9yeV9tYXAgeGVuX3Jlc2Vy dmVkX2RldmljZV9tZW1vcnlfbWFwX3Q7CiBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fcmVz ZXJ2ZWRfZGV2aWNlX21lbW9yeV9tYXBfdCk7CiAKKy8qCisgKiBHZXQgdGhlIHBhZ2VzIGZvciBh IHBhcnRpY3VsYXIgZ3Vlc3QgcmVzb3VyY2UsIHNvIHRoYXQgdGhleSBjYW4gYmUKKyAqIG1hcHBl ZCBkaXJlY3RseSBieSBhIHRvb2xzIGRvbWFpbi4KKyAqLworI2RlZmluZSBYRU5NRU1fYWNxdWly ZV9yZXNvdXJjZSAyOAorc3RydWN0IHhlbl9tZW1fYWNxdWlyZV9yZXNvdXJjZSB7CisgICAgLyog SU4gLSB0aGUgZG9tYWluIHdob3NlIHJlc291cmNlIGlzIHRvIGJlIG1hcHBlZCAqLworICAgIGRv bWlkX3QgZG9taWQ7CisgICAgLyogSU4gLSB0aGUgdHlwZSBvZiByZXNvdXJjZSAqLworICAgIHVp bnQxNl90IHR5cGU7CisgICAgLyoKKyAgICAgKiBJTiAtIGEgdHlwZS1zcGVjaWZpYyByZXNvdXJj ZSBpZGVudGlmaWVyLCB3aGljaCBtdXN0IGJlIHplcm8KKyAgICAgKiAgICAgIHVubGVzcyBzdGF0 ZWQgb3RoZXJ3aXNlLgorICAgICAqLworICAgIHVpbnQzMl90IGlkOworICAgIC8qIElOL09VVCAt IEFzIGFuIElOIHBhcmFtZXRlciBudW1iZXIgb2YgZnJhbWVzIG9mIHRoZSByZXNvdXJjZQorICAg ICAqICAgICAgICAgIHRvIGJlIG1hcHBlZC4gSG93ZXZlciwgaWYgdGhlIHNwZWNpZmllZCB2YWx1 ZSBpcyAwIGFuZAorICAgICAqICAgICAgICAgIGZyYW1lX2xpc3QgaXMgTlVMTCB0aGVuIHRoaXMg ZmllbGQgd2lsbCBiZSBzZXQgdG8gdGhlCisgICAgICogICAgICAgICAgbWF4aW11bSB2YWx1ZSBz dXBwb3J0ZWQgYnkgdGhlIGltcGxlbWVudGF0aW9uIG9uIHJldHVybi4KKyAgICAgKi8KKyAgICB1 aW50MzJfdCBucl9mcmFtZXM7CisgICAgdWludDMyX3QgcGFkOworICAgIC8qIElOIC0gdGhlIGlu ZGV4IG9mIHRoZSBpbml0aWFsIGZyYW1lIHRvIGJlIG1hcHBlZC4gVGhpcyBwYXJhbWV0ZXIKKyAg ICAgKiAgICAgIGlzIGlnbm9yZWQgaWYgbnJfZnJhbWVzIGlzIDAuCisgICAgICovCisgICAgdWlu dDY0X2FsaWduZWRfdCBmcmFtZTsKKyAgICAvKiBJTi9PVVQgLSBJZiB0aGUgdG9vbHMgZG9tYWlu IGlzIFBWIHRoZW4sIHVwb24gcmV0dXJuLCBmcmFtZV9saXN0CisgICAgICogICAgICAgICAgd2ls bCBiZSBwb3B1bGF0ZWQgd2l0aCB0aGUgTUZOcyBvZiB0aGUgcmVzb3VyY2UuCisgICAgICogICAg ICAgICAgSWYgdGhlIHRvb2xzIGRvbWFpbiBpcyBIVk0gdGhlbiBpdCBpcyBleHBlY3RlZCB0aGF0 LCBvbgorICAgICAqICAgICAgICAgIGVudHJ5LCBmcmFtZV9saXN0IHdpbGwgYmUgcG9wdWxhdGVk IHdpdGggYSBsaXN0IG9mIEdGTnMKKyAgICAgKiAgICAgICAgICB0aGF0IHdpbGwgYmUgbWFwcGVk IHRvIHRoZSBNRk5zIG9mIHRoZSByZXNvdXJjZS4KKyAgICAgKiAgICAgICAgICBJZiAtRUlPIGlz IHJldHVybmVkIHRoZW4gdGhlIGZyYW1lX2xpc3QgaGFzIG9ubHkgYmVlbgorICAgICAqICAgICAg ICAgIHBhcnRpYWxseSBtYXBwZWQgYW5kIGl0IGlzIHVwIHRvIHRoZSBjYWxsZXIgdG8gdW5tYXAg YWxsCisgICAgICogICAgICAgICAgdGhlIEdGTnMuCisgICAgICogICAgICAgICAgVGhpcyBwYXJh bWV0ZXIgbWF5IGJlIE5VTEwgaWYgbnJfZnJhbWVzIGlzIDAuCisgICAgICovCisgICAgWEVOX0dV RVNUX0hBTkRMRSh4ZW5fcGZuX3QpIGZyYW1lX2xpc3Q7Cit9OwordHlwZWRlZiBzdHJ1Y3QgeGVu X21lbV9hY3F1aXJlX3Jlc291cmNlIHhlbl9tZW1fYWNxdWlyZV9yZXNvdXJjZV90OworREVGSU5F X1hFTl9HVUVTVF9IQU5ETEUoeGVuX21lbV9hY3F1aXJlX3Jlc291cmNlX3QpOworCiAjZW5kaWYg LyogZGVmaW5lZChfX1hFTl9fKSB8fCBkZWZpbmVkKF9fWEVOX1RPT0xTX18pICovCiAKIC8qCkBA IC02NTAsNyArNjkxLDcgQEAgc3RydWN0IHhlbl92bnVtYV90b3BvbG9neV9pbmZvIHsKIHR5cGVk ZWYgc3RydWN0IHhlbl92bnVtYV90b3BvbG9neV9pbmZvIHhlbl92bnVtYV90b3BvbG9neV9pbmZv X3Q7CiBERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fdm51bWFfdG9wb2xvZ3lfaW5mb190KTsK IAotLyogTmV4dCBhdmFpbGFibGUgc3Vib3AgbnVtYmVyIGlzIDI4ICovCisvKiBOZXh0IGF2YWls YWJsZSBzdWJvcCBudW1iZXIgaXMgMjkgKi8KIAogI2VuZGlmIC8qIF9fWEVOX1BVQkxJQ19NRU1P UllfSF9fICovCiAKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hsYXQubHN0IGIveGVuL2luY2x1 ZGUveGxhdC5sc3QKaW5kZXggNDM0NmNiZWRjZi4uNTgwNmVmMGFkOCAxMDA2NDQKLS0tIGEveGVu L2luY2x1ZGUveGxhdC5sc3QKKysrIGIveGVuL2luY2x1ZGUveGxhdC5sc3QKQEAgLTg0LDYgKzg0 LDcgQEAKICEJbWVtb3J5X21hcAkJCW1lbW9yeS5oCiAhCW1lbW9yeV9yZXNlcnZhdGlvbgkJbWVt b3J5LmgKICEJbWVtX2FjY2Vzc19vcAkJCW1lbW9yeS5oCishCW1lbV9hY3F1aXJlX3Jlc291cmNl CQltZW1vcnkuaAogIQlwb2RfdGFyZ2V0CQkJbWVtb3J5LmgKICEJcmVtb3ZlX2Zyb21fcGh5c21h cAkJbWVtb3J5LmgKICEJcmVzZXJ2ZWRfZGV2aWNlX21lbW9yeV9tYXAJbWVtb3J5LmgKZGlmZiAt LWdpdCBhL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oIGIveGVuL2luY2x1ZGUveHNtL2R1bW15LmgK aW5kZXggZDZkZGFkY2FmZC4uZDI4YjhlYWMwOSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveHNt L2R1bW15LmgKKysrIGIveGVuL2luY2x1ZGUveHNtL2R1bW15LmgKQEAgLTcyNiwzICs3MjYsOSBA QCBzdGF0aWMgWFNNX0lOTElORSBpbnQgeHNtX3hlbl92ZXJzaW9uIChYU01fREVGQVVMVF9BUkcg dWludDMyX3Qgb3ApCiAgICAgICAgIHJldHVybiB4c21fZGVmYXVsdF9hY3Rpb24oWFNNX1BSSVYs IGN1cnJlbnQtPmRvbWFpbiwgTlVMTCk7CiAgICAgfQogfQorCitzdGF0aWMgWFNNX0lOTElORSBp bnQgeHNtX2RvbWFpbl9yZXNvdXJjZV9tYXAoWFNNX0RFRkFVTFRfQVJHIHN0cnVjdCBkb21haW4g KmQpCit7CisgICAgWFNNX0FTU0VSVF9BQ1RJT04oWFNNX0RNX1BSSVYpOworICAgIHJldHVybiB4 c21fZGVmYXVsdF9hY3Rpb24oYWN0aW9uLCBjdXJyZW50LT5kb21haW4sIGQpOworfQpkaWZmIC0t Z2l0IGEveGVuL2luY2x1ZGUveHNtL3hzbS5oIGIveGVuL2luY2x1ZGUveHNtL3hzbS5oCmluZGV4 IDE0MDZmNzUyYjYuLjY3MDE1MjQxNTAgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hzbS94c20u aAorKysgYi94ZW4vaW5jbHVkZS94c20veHNtLmgKQEAgLTE4MCw2ICsxODAsNyBAQCBzdHJ1Y3Qg eHNtX29wZXJhdGlvbnMgewogICAgIGludCAoKmRtX29wKSAoc3RydWN0IGRvbWFpbiAqZCk7CiAj ZW5kaWYKICAgICBpbnQgKCp4ZW5fdmVyc2lvbikgKHVpbnQzMl90IGNtZCk7CisgICAgaW50ICgq ZG9tYWluX3Jlc291cmNlX21hcCkgKHN0cnVjdCBkb21haW4gKmQpOwogfTsKIAogI2lmZGVmIENP TkZJR19YU00KQEAgLTY5Miw2ICs2OTMsMTEgQEAgc3RhdGljIGlubGluZSBpbnQgeHNtX3hlbl92 ZXJzaW9uICh4c21fZGVmYXVsdF90IGRlZiwgdWludDMyX3Qgb3ApCiAgICAgcmV0dXJuIHhzbV9v cHMtPnhlbl92ZXJzaW9uKG9wKTsKIH0KIAorc3RhdGljIGlubGluZSBpbnQgeHNtX2RvbWFpbl9y ZXNvdXJjZV9tYXAoeHNtX2RlZmF1bHRfdCBkZWYsIHN0cnVjdCBkb21haW4gKmQpCit7CisgICAg cmV0dXJuIHhzbV9vcHMtPmRvbWFpbl9yZXNvdXJjZV9tYXAoZCk7Cit9CisKICNlbmRpZiAvKiBY U01fTk9fV1JBUFBFUlMgKi8KIAogI2lmZGVmIENPTkZJR19NVUxUSUJPT1QKZGlmZiAtLWdpdCBh L3hlbi94c20vZHVtbXkuYyBiL3hlbi94c20vZHVtbXkuYwppbmRleCA0NzliMTAzNjE0Li42ZTc1 MTE5OWVlIDEwMDY0NAotLS0gYS94ZW4veHNtL2R1bW15LmMKKysrIGIveGVuL3hzbS9kdW1teS5j CkBAIC0xNTcsNCArMTU3LDUgQEAgdm9pZCBfX2luaXQgeHNtX2ZpeHVwX29wcyAoc3RydWN0IHhz bV9vcGVyYXRpb25zICpvcHMpCiAgICAgc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCBkbV9vcCk7 CiAjZW5kaWYKICAgICBzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIHhlbl92ZXJzaW9uKTsKKyAg ICBzZXRfdG9fZHVtbXlfaWZfbnVsbChvcHMsIGRvbWFpbl9yZXNvdXJjZV9tYXApOwogfQpkaWZm IC0tZ2l0IGEveGVuL3hzbS9mbGFzay9ob29rcy5jIGIveGVuL3hzbS9mbGFzay9ob29rcy5jCmlu ZGV4IDA0ZjQ1M2JmYzUuLmU1NjBkNGM2MTEgMTAwNjQ0Ci0tLSBhL3hlbi94c20vZmxhc2svaG9v a3MuYworKysgYi94ZW4veHNtL2ZsYXNrL2hvb2tzLmMKQEAgLTE3MTgsNiArMTcxOCwxMSBAQCBz dGF0aWMgaW50IGZsYXNrX3hlbl92ZXJzaW9uICh1aW50MzJfdCBvcCkKICAgICB9CiB9CiAKK3N0 YXRpYyBpbnQgZmxhc2tfZG9tYWluX3Jlc291cmNlX21hcChzdHJ1Y3QgZG9tYWluICpkKQorewor ICAgIHJldHVybiBjdXJyZW50X2hhc19wZXJtKGQsIFNFQ0NMQVNTX0RPTUFJTjIsIERPTUFJTjJf X1JFU09VUkNFX01BUCk7Cit9CisKIGxvbmcgZG9fZmxhc2tfb3AoWEVOX0dVRVNUX0hBTkRMRV9Q QVJBTSh4c21fb3BfdCkgdV9mbGFza19vcCk7CiBpbnQgY29tcGF0X2ZsYXNrX29wKFhFTl9HVUVT VF9IQU5ETEVfUEFSQU0oeHNtX29wX3QpIHVfZmxhc2tfb3ApOwogCkBAIC0xODUxLDYgKzE4NTYs NyBAQCBzdGF0aWMgc3RydWN0IHhzbV9vcGVyYXRpb25zIGZsYXNrX29wcyA9IHsKICAgICAuZG1f b3AgPSBmbGFza19kbV9vcCwKICNlbmRpZgogICAgIC54ZW5fdmVyc2lvbiA9IGZsYXNrX3hlbl92 ZXJzaW9uLAorICAgIC5kb21haW5fcmVzb3VyY2VfbWFwID0gZmxhc2tfZG9tYWluX3Jlc291cmNl X21hcCwKIH07CiAKIHZvaWQgX19pbml0IGZsYXNrX2luaXQoY29uc3Qgdm9pZCAqcG9saWN5X2J1 ZmZlciwgc2l6ZV90IHBvbGljeV9zaXplKQpkaWZmIC0tZ2l0IGEveGVuL3hzbS9mbGFzay9wb2xp Y3kvYWNjZXNzX3ZlY3RvcnMgYi94ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycwpp bmRleCAzYTJkODYzYjhmLi4zNDFhZGUxZjdkIDEwMDY0NAotLS0gYS94ZW4veHNtL2ZsYXNrL3Bv bGljeS9hY2Nlc3NfdmVjdG9ycworKysgYi94ZW4veHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVj dG9ycwpAQCAtMjUwLDYgKzI1MCw4IEBAIGNsYXNzIGRvbWFpbjIKICAgICBwc3JfY2F0X29wCiAj IFhFTl9ET01DVExfc2V0X2dudHRhYl9saW1pdHMKICAgICBzZXRfZ250dGFiX2xpbWl0cworIyBY RU5NRU1fcmVzb3VyY2VfbWFwCisgICAgcmVzb3VyY2VfbWFwCiB9CiAKICMgU2ltaWxhciB0byBj bGFzcyBkb21haW4sIGJ1dCBwcmltYXJpbHkgY29udGFpbnMgZG9tY3RscyByZWxhdGVkIHRvIEhW TSBkb21haW5zCi0tIAoyLjExLjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5w cm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8v eGVuLWRldmVs