From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Tyshchenko Subject: [PATCH v2 02/13] iommu: Add extra order argument to the IOMMU APIs and platform callbacks Date: Tue, 25 Jul 2017 20:26:44 +0300 Message-ID: <1501003615-15274-3-git-send-email-olekstysh@gmail.com> References: <1501003615-15274-1-git-send-email-olekstysh@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1da3c1-0008RQ-FH for xen-devel@lists.xenproject.org; Tue, 25 Jul 2017 17:27:13 +0000 Received: by mail-lf0-f67.google.com with SMTP id y15so5623517lfd.5 for ; Tue, 25 Jul 2017 10:27:11 -0700 (PDT) In-Reply-To: <1501003615-15274-1-git-send-email-olekstysh@gmail.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: Kevin Tian , Stefano Stabellini , Wei Liu , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Oleksandr Tyshchenko , Julien Grall , Suravee Suthikulpanit List-Id: xen-devel@lists.xenproject.org RnJvbTogT2xla3NhbmRyIFR5c2hjaGVua28gPG9sZWtzYW5kcl90eXNoY2hlbmtvQGVwYW0uY29t PgoKUmVwbGFjZSBleGlzdGluZyBzaW5nbGUtcGFnZSBzdHVmZiAoSU9NTVUgQVBJcyBhbmQgcGxh dGZvcm0gY2FsbGJhY2tzKQp3aXRoIHRoZSBtdWx0aS1wYWdlIG9uZSBmb2xsb3dlZCBieSBtb2Rp ZmljYXRpb25zIG9mIGFsbCByZWxhdGVkIHBhcnRzLgoKVGhlc2UgbmV3IG1hcF9wYWdlcy91bm1h cF9wYWdlcyBBUElzIGRvIGFsbW9zdCB0aGUgc2FtZSB0aGluZwphcyBvbGQgbWFwX3BhZ2UvdW5t YXBfcGFnZSBvbmVzIGV4Y2VwdCB0aGUgZm9ybWVycyBoYXZlIGV4dHJhCm9yZGVyIGFyZ3VtZW50 IGFuZCBhcyB0aGUgcmVzdWx0IGNhbiBoYW5kbGUgdGhlIG51bWJlciBvZiBwYWdlcy4KU28gaGF2 ZSBuZXcgcGxhdGZvcm0gY2FsbGJhY2tzLgoKQWx0aG91Z2ggdGhlIGN1cnJlbnQgYmVoYXZpb3Ig d2FzIHJldGFpbmVkIGluIGFsbCBwbGFjZXMgKEkgaG9wZSksCml0IHNob3VsZCBiZSBub3RlZCB0 aGF0IHRoZSByb2xsYmFjayBsb2dpYyB3YXMgbW92ZWQgZnJvbSB0aGUgY29tbW9uIGNvZGUKdG8g dGhlIElPTU1VIGRyaXZlcnMuIE5vdyB0aGUgSU9NTVUgZHJpdmVycyBhcmUgcmVzcG9uc2libGUg Zm9yIHVubWFwcGluZwphbHJlYWR5IG1hcHBlZCBwYWdlcyBpZiBzb21ldGhpbmcgd2VudCB3cm9u ZyBkdXJpbmcgbWFwcGluZyB0aGUgbnVtYmVyCm9mIHBhZ2VzIChvcmRlciA+IDApLgoKU2lnbmVk LW9mZi1ieTogT2xla3NhbmRyIFR5c2hjaGVua28gPG9sZWtzYW5kcl90eXNoY2hlbmtvQGVwYW0u Y29tPgoob25seSBmb3IgeDg2IGFuZCBnZW5lcmljIHBhcnRzKQpSZXZpZXdlZC1ieS9DQzogSmFu IEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDQzogSnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3Jh bGxAYXJtLmNvbT4KQ0M6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50ZWwuY29tPgpDQzogU3Vy YXZlZSBTdXRoaWt1bHBhbml0IDxzdXJhdmVlLnN1dGhpa3VscGFuaXRAYW1kLmNvbT4KQ0M6IEFu ZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CkNDOiBHZW9yZ2UgRHVubGFw IDxHZW9yZ2UuRHVubGFwQGV1LmNpdHJpeC5jb20+CkNDOiBJYW4gSmFja3NvbiA8aWFuLmphY2tz b25AZXUuY2l0cml4LmNvbT4KQ0M6IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndpbGtA b3JhY2xlLmNvbT4KQ0M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9y Zz4KQ0M6IFRpbSBEZWVnYW4gPHRpbUB4ZW4ub3JnPgpDQzogV2VpIExpdSA8d2VpLmxpdTJAY2l0 cml4LmNvbT4KCi0tLQogICBDaGFuZ2VzIGluIHYxOgogICAgICAtIFJlcGxhY2UgZXhpc3Rpbmcg c2luZ2xlLXBhZ2UgSU9NTVUgQVBJcy9wbGF0Zm9ybSBjYWxsYmFja3Mgd2l0aAogICAgICAgIG11 bHRpLXBhZ2Ugb25lcyBpbnN0ZWFkIG9mIGp1c3Qga2VlcGluZyBib3RoIHZhcmlhbnRzIG9mIHRo ZW0uCiAgICAgIC0gVXNlIG9yZGVyIGFyZ3VtZW50IGluc3RlYWQgb2YgcGFnZV9jb3VudC4KICAg ICAgLSBDbGFyaWZ5IHBhdGNoIHN1YmplY3QvZGVzY3JpcHRpb24uCgogICBDaGFuZ2VzIGluIHYy OgogICAgICAtIEFkZCBtYWludGFpbmVycyBpbiBDQwotLS0KIHhlbi9hcmNoL3g4Ni9tbS5jICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8IDExICsrKy0tLQogeGVuL2FyY2gveDg2L21tL3Ay bS1lcHQuYyAgICAgICAgICAgICAgICAgICAgIHwgMjEgKystLS0tLS0tLS0KIHhlbi9hcmNoL3g4 Ni9tbS9wMm0tcHQuYyAgICAgICAgICAgICAgICAgICAgICB8IDI2ICsrKy0tLS0tLS0tLS0tCiB4 ZW4vYXJjaC94ODYvbW0vcDJtLmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAzOCArKysrLS0t LS0tLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2L3g4Nl82NC9tbS5jICAgICAgICAgICAgICAgICAg ICAgIHwgIDUgKy0tCiB4ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMgICAgICAgICAgICAgICAgICAg ICAgfCAxMCArKystLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9tYXAuYyAg ICAgICB8IDUwICsrKysrKysrKysrKysrKysrKysrKysrKystLQogeGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvYW1kL3BjaV9hbWRfaW9tbXUuYyAgIHwgIDggKystLS0KIHhlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL2FybS9zbW11LmMgICAgICAgICAgICB8IDQxICsrKysrKysrKysrKysrKysrKysrLS0K IHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMgICAgICAgICAgICAgICB8IDIxICsrKysr LS0tLS0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYyAgICAgICAgICAgfCA0 OCArKysrKysrKysrKysrKysrKysrKysrKy0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQv eDg2L3Z0ZC5jICAgICAgICAgfCAgNCArLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9p b21tdS5jICAgICAgICAgICB8ICA2ICsrLS0KIHhlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3N2bS9h bWQtaW9tbXUtcHJvdG8uaCB8ICA4ICsrKy0tCiB4ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaCAgICAg ICAgICAgICAgICAgICAgICAgfCAyMCArKysrKystLS0tLQogMTUgZmlsZXMgY2hhbmdlZCwgMTk2 IGluc2VydGlvbnMoKyksIDEyMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94 ODYvbW0uYyBiL3hlbi9hcmNoL3g4Ni9tbS5jCmluZGV4IDJkYzdkYjkuLjMzZmNmZmUgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS5jCkBAIC0yNjIz LDExICsyNjIzLDE0IEBAIHN0YXRpYyBpbnQgX19nZXRfcGFnZV90eXBlKHN0cnVjdCBwYWdlX2lu Zm8gKnBhZ2UsIHVuc2lnbmVkIGxvbmcgdHlwZSwKICAgICAgICAgaWYgKCBkICYmIGlzX3B2X2Rv bWFpbihkKSAmJiB1bmxpa2VseShuZWVkX2lvbW11KGQpKSApCiAgICAgICAgIHsKICAgICAgICAg ICAgIGlmICggKHggJiBQR1RfdHlwZV9tYXNrKSA9PSBQR1Rfd3JpdGFibGVfcGFnZSApCi0gICAg ICAgICAgICAgICAgaW9tbXVfcmV0ID0gaW9tbXVfdW5tYXBfcGFnZShkLCBtZm5fdG9fZ21mbihk LCBwYWdlX3RvX21mbihwYWdlKSkpOworICAgICAgICAgICAgICAgIGlvbW11X3JldCA9IGlvbW11 X3VubWFwX3BhZ2VzKGQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbWZuX3RvX2dtZm4oZCwgcGFnZV90b19tZm4ocGFnZSkpLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDApOwogICAgICAgICAgICAgZWxzZSBpZiAo IHR5cGUgPT0gUEdUX3dyaXRhYmxlX3BhZ2UgKQotICAgICAgICAgICAgICAgIGlvbW11X3JldCA9 IGlvbW11X21hcF9wYWdlKGQsIG1mbl90b19nbWZuKGQsIHBhZ2VfdG9fbWZuKHBhZ2UpKSwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlX3RvX21mbihwYWdl KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVUZfcmVh ZGFibGV8SU9NTVVGX3dyaXRhYmxlKTsKKyAgICAgICAgICAgICAgICBpb21tdV9yZXQgPSBpb21t dV9tYXBfcGFnZXMoZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbWZuX3RvX2dtZm4oZCwgcGFnZV90b19tZm4ocGFnZSkpLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlX3RvX21mbihwYWdlKSwgMCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVGX3JlYWRhYmxlfElPTU1V Rl93cml0YWJsZSk7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4 Ni9tbS9wMm0tZXB0LmMgYi94ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5jCmluZGV4IGVjYWI1NmYu LjBjY2Y0NTEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMKKysrIGIveGVu L2FyY2gveDg2L21tL3AybS1lcHQuYwpAQCAtODcwLDI2ICs4NzAsOSBAQCBvdXQ6CiAgICAgICAg IGVsc2UKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCBpb21tdV9mbGFncyApCi0gICAgICAg ICAgICAgICAgZm9yICggaSA9IDA7IGkgPCAoMSA8PCBvcmRlcik7IGkrKyApCi0gICAgICAgICAg ICAgICAgewotICAgICAgICAgICAgICAgICAgICByYyA9IGlvbW11X21hcF9wYWdlKGQsIGdmbiAr IGksIG1mbl94KG1mbikgKyBpLCBpb21tdV9mbGFncyk7Ci0gICAgICAgICAgICAgICAgICAgIGlm ICggdW5saWtlbHkocmMpICkKLSAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAg ICAgICAgICAgd2hpbGUgKCBpLS0gKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIElm IHN0YXRlbWVudCB0byBzYXRpc2Z5IF9fbXVzdF9jaGVjay4gKi8KLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpZiAoIGlvbW11X3VubWFwX3BhZ2UocDJtLT5kb21haW4sIGdmbiArIGkpICkK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgICAg ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg ICAgfQorICAgICAgICAgICAgICAgIHJjID0gaW9tbXVfbWFwX3BhZ2VzKGQsIGdmbiwgbWZuX3go bWZuKSwgb3JkZXIsIGlvbW11X2ZsYWdzKTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg ICAgICBmb3IgKCBpID0gMDsgaSA8ICgxIDw8IG9yZGVyKTsgaSsrICkKLSAgICAgICAgICAgICAg ICB7Ci0gICAgICAgICAgICAgICAgICAgIHJldCA9IGlvbW11X3VubWFwX3BhZ2UoZCwgZ2ZuICsg aSk7Ci0gICAgICAgICAgICAgICAgICAgIGlmICggIXJjICkKLSAgICAgICAgICAgICAgICAgICAg ICAgIHJjID0gcmV0OwotICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByYyA9IGlv bW11X3VubWFwX3BhZ2VzKGQsIGdmbiwgb3JkZXIpOwogICAgICAgICB9CiAgICAgfQogCmRpZmYg LS1naXQgYS94ZW4vYXJjaC94ODYvbW0vcDJtLXB0LmMgYi94ZW4vYXJjaC94ODYvbW0vcDJtLXB0 LmMKaW5kZXggMDZlNjRiOC4uYjUxMmVlMyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tL3Ay bS1wdC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0tcHQuYwpAQCAtNTE0LDcgKzUxNCw3IEBA IHAybV9wdF9zZXRfZW50cnkoc3RydWN0IHAybV9kb21haW4gKnAybSwgdW5zaWduZWQgbG9uZyBn Zm4sIG1mbl90IG1mbiwKIHsKICAgICAvKiBYWFggLS0gdGhpcyBtaWdodCBiZSBhYmxlIHRvIGJl IGZhc3RlciBpZmYgY3VycmVudC0+ZG9tYWluID09IGQgKi8KICAgICB2b2lkICp0YWJsZTsKLSAg ICB1bnNpZ25lZCBsb25nIGksIGdmbl9yZW1haW5kZXIgPSBnZm47CisgICAgdW5zaWduZWQgbG9u ZyBnZm5fcmVtYWluZGVyID0gZ2ZuOwogICAgIGwxX3BnZW50cnlfdCAqcDJtX2VudHJ5LCBlbnRy eV9jb250ZW50OwogICAgIC8qIEludGVybWVkaWF0ZSB0YWJsZSB0byBmcmVlIGlmIHdlJ3JlIHJl cGxhY2luZyBpdCB3aXRoIGEgc3VwZXJwYWdlLiAqLwogICAgIGwxX3BnZW50cnlfdCBpbnRlcm1l ZGlhdGVfZW50cnkgPSBsMWVfZW1wdHkoKTsKQEAgLTcyMiwyOCArNzIyLDEwIEBAIHAybV9wdF9z ZXRfZW50cnkoc3RydWN0IHAybV9kb21haW4gKnAybSwgdW5zaWduZWQgbG9uZyBnZm4sIG1mbl90 IG1mbiwKICAgICAgICAgICAgICAgICBhbWRfaW9tbXVfZmx1c2hfcGFnZXMocDJtLT5kb21haW4s IGdmbiwgcGFnZV9vcmRlcik7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSBpZiAoIGlvbW11X3B0 ZV9mbGFncyApCi0gICAgICAgICAgICBmb3IgKCBpID0gMDsgaSA8ICgxVUwgPDwgcGFnZV9vcmRl cik7IGkrKyApCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmMgPSBpb21tdV9tYXBf cGFnZShwMm0tPmRvbWFpbiwgZ2ZuICsgaSwgbWZuX3gobWZuKSArIGksCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpb21tdV9wdGVfZmxhZ3MpOwotICAgICAgICAgICAgICAg IGlmICggdW5saWtlbHkocmMpICkKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg ICAgIHdoaWxlICggaS0tICkKLSAgICAgICAgICAgICAgICAgICAgICAgIC8qIElmIHN0YXRlbWVu dCB0byBzYXRpc2Z5IF9fbXVzdF9jaGVjay4gKi8KLSAgICAgICAgICAgICAgICAgICAgICAgIGlm ICggaW9tbXVfdW5tYXBfcGFnZShwMm0tPmRvbWFpbiwgZ2ZuICsgaSkgKQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwot ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJjID0gaW9tbXVf bWFwX3BhZ2VzKHAybS0+ZG9tYWluLCBnZm4sIG1mbl94KG1mbiksIHBhZ2Vfb3JkZXIsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpb21tdV9wdGVfZmxhZ3MpOwogICAgICAgICBl bHNlCi0gICAgICAgICAgICBmb3IgKCBpID0gMDsgaSA8ICgxVUwgPDwgcGFnZV9vcmRlcik7IGkr KyApCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaW50IHJldCA9IGlvbW11X3VubWFw X3BhZ2UocDJtLT5kb21haW4sIGdmbiArIGkpOwotCi0gICAgICAgICAgICAgICAgaWYgKCAhcmMg KQotICAgICAgICAgICAgICAgICAgICByYyA9IHJldDsKLSAgICAgICAgICAgIH0KKyAgICAgICAg ICAgIHJjID0gaW9tbXVfdW5tYXBfcGFnZXMocDJtLT5kb21haW4sIGdmbiwgcGFnZV9vcmRlcik7 CiAgICAgfQogCiAgICAgLyoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYyBiL3hl bi9hcmNoL3g4Ni9tbS9wMm0uYwppbmRleCBlY2UzMmZmLi4xOGE3MWY4IDEwMDY0NAotLS0gYS94 ZW4vYXJjaC94ODYvbW0vcDJtLmMKKysrIGIveGVuL2FyY2gveDg2L21tL3AybS5jCkBAIC03MDgs MjAgKzcwOCw5IEBAIHAybV9yZW1vdmVfcGFnZShzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLCB1bnNp Z25lZCBsb25nIGdmbiwgdW5zaWduZWQgbG9uZyBtZm4sCiAKICAgICBpZiAoICFwYWdpbmdfbW9k ZV90cmFuc2xhdGUocDJtLT5kb21haW4pICkKICAgICB7Ci0gICAgICAgIGludCByYyA9IDA7Ci0K ICAgICAgICAgaWYgKCBuZWVkX2lvbW11KHAybS0+ZG9tYWluKSApCi0gICAgICAgIHsKLSAgICAg ICAgICAgIGZvciAoIGkgPSAwOyBpIDwgKDEgPDwgcGFnZV9vcmRlcik7IGkrKyApCi0gICAgICAg ICAgICB7Ci0gICAgICAgICAgICAgICAgaW50IHJldCA9IGlvbW11X3VubWFwX3BhZ2UocDJtLT5k b21haW4sIG1mbiArIGkpOwotCi0gICAgICAgICAgICAgICAgaWYgKCAhcmMgKQotICAgICAgICAg ICAgICAgICAgICByYyA9IHJldDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAg IHJldHVybiByYzsKKyAgICAgICAgICAgIHJldHVybiBpb21tdV91bm1hcF9wYWdlcyhwMm0tPmRv bWFpbiwgbWZuLCBwYWdlX29yZGVyKTsKKyAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCiAgICAg QVNTRVJUKGdmbl9sb2NrZWRfYnlfbWUocDJtLCBnZm4pKTsKQEAgLTc2OCwyMyArNzU3LDggQEAg Z3Vlc3RfcGh5c21hcF9hZGRfZW50cnkoc3RydWN0IGRvbWFpbiAqZCwgZ2ZuX3QgZ2ZuLCBtZm5f dCBtZm4sCiAgICAgaWYgKCAhcGFnaW5nX21vZGVfdHJhbnNsYXRlKGQpICkKICAgICB7CiAgICAg ICAgIGlmICggbmVlZF9pb21tdShkKSAmJiB0ID09IHAybV9yYW1fcncgKQotICAgICAgICB7Ci0g ICAgICAgICAgICBmb3IgKCBpID0gMDsgaSA8ICgxIDw8IHBhZ2Vfb3JkZXIpOyBpKysgKQotICAg ICAgICAgICAgewotICAgICAgICAgICAgICAgIHJjID0gaW9tbXVfbWFwX3BhZ2UoZCwgbWZuX3go bWZuX2FkZChtZm4sIGkpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1m bl94KG1mbl9hZGQobWZuLCBpKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJT01NVUZfcmVhZGFibGV8SU9NTVVGX3dyaXRhYmxlKTsKLSAgICAgICAgICAgICAgICBpZiAo IHJjICE9IDAgKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgd2hpbGUg KCBpLS0gPiAwICkKLSAgICAgICAgICAgICAgICAgICAgICAgIC8qIElmIHN0YXRlbWVudCB0byBz YXRpc2Z5IF9fbXVzdF9jaGVjay4gKi8KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICggaW9t bXVfdW5tYXBfcGFnZShkLCBtZm5feChtZm5fYWRkKG1mbiwgaSkpKSApCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJj OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQorICAgICAgICAg ICAgcmV0dXJuIGlvbW11X21hcF9wYWdlcyhkLCBtZm5feChtZm4pLCBtZm5feChtZm4pLCBwYWdl X29yZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVUZfcmVhZGFi bGV8SU9NTVVGX3dyaXRhYmxlKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCkBAIC0xMTQ4 LDcgKzExMjIsNyBAQCBpbnQgc2V0X2lkZW50aXR5X3AybV9lbnRyeShzdHJ1Y3QgZG9tYWluICpk LCB1bnNpZ25lZCBsb25nIGdmbiwKICAgICB7CiAgICAgICAgIGlmICggIW5lZWRfaW9tbXUoZCkg KQogICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIHJldHVybiBpb21tdV9tYXBfcGFnZShk LCBnZm4sIGdmbiwgSU9NTVVGX3JlYWRhYmxlfElPTU1VRl93cml0YWJsZSk7CisgICAgICAgIHJl dHVybiBpb21tdV9tYXBfcGFnZXMoZCwgZ2ZuLCBnZm4sIDAsIElPTU1VRl9yZWFkYWJsZXxJT01N VUZfd3JpdGFibGUpOwogICAgIH0KIAogICAgIGdmbl9sb2NrKHAybSwgZ2ZuLCAwKTsKQEAgLTEy MzYsNyArMTIxMCw3IEBAIGludCBjbGVhcl9pZGVudGl0eV9wMm1fZW50cnkoc3RydWN0IGRvbWFp biAqZCwgdW5zaWduZWQgbG9uZyBnZm4pCiAgICAgewogICAgICAgICBpZiAoICFuZWVkX2lvbW11 KGQpICkKICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICByZXR1cm4gaW9tbXVfdW5tYXBf cGFnZShkLCBnZm4pOworICAgICAgICByZXR1cm4gaW9tbXVfdW5tYXBfcGFnZXMoZCwgZ2ZuLCAw KTsKICAgICB9CiAKICAgICBnZm5fbG9jayhwMm0sIGdmbiwgMCk7CmRpZmYgLS1naXQgYS94ZW4v YXJjaC94ODYveDg2XzY0L21tLmMgYi94ZW4vYXJjaC94ODYveDg2XzY0L21tLmMKaW5kZXggYWEx Yjk0Zi4uNWZkMWQ0YyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3g4Nl82NC9tbS5jCisrKyBi L3hlbi9hcmNoL3g4Ni94ODZfNjQvbW0uYwpAQCAtMTQ0MiwxMyArMTQ0MiwxNCBAQCBpbnQgbWVt b3J5X2FkZCh1bnNpZ25lZCBsb25nIHNwZm4sIHVuc2lnbmVkIGxvbmcgZXBmbiwgdW5zaWduZWQg aW50IHB4bSkKICAgICBpZiAoIGlvbW11X2VuYWJsZWQgJiYgIWlvbW11X3Bhc3N0aHJvdWdoICYm ICFuZWVkX2lvbW11KGhhcmR3YXJlX2RvbWFpbikgKQogICAgIHsKICAgICAgICAgZm9yICggaSA9 IHNwZm47IGkgPCBlcGZuOyBpKysgKQotICAgICAgICAgICAgaWYgKCBpb21tdV9tYXBfcGFnZSho YXJkd2FyZV9kb21haW4sIGksIGksIElPTU1VRl9yZWFkYWJsZXxJT01NVUZfd3JpdGFibGUpICkK KyAgICAgICAgICAgIGlmICggaW9tbXVfbWFwX3BhZ2VzKGhhcmR3YXJlX2RvbWFpbiwgaSwgaSwg MCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VRl9yZWFkYWJsZXxJT01N VUZfd3JpdGFibGUpICkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgaWYgKCBpICE9 IGVwZm4gKQogICAgICAgICB7CiAgICAgICAgICAgICB3aGlsZSAoaS0tID4gb2xkX21heCkKICAg ICAgICAgICAgICAgICAvKiBJZiBzdGF0ZW1lbnQgdG8gc2F0aXNmeSBfX211c3RfY2hlY2suICov Ci0gICAgICAgICAgICAgICAgaWYgKCBpb21tdV91bm1hcF9wYWdlKGhhcmR3YXJlX2RvbWFpbiwg aSkgKQorICAgICAgICAgICAgICAgIGlmICggaW9tbXVfdW5tYXBfcGFnZXMoaGFyZHdhcmVfZG9t YWluLCBpLCAwKSApCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAg ICBnb3RvIGRlc3Ryb3lfbTJwOwpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9ncmFudF90YWJsZS5j IGIveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jCmluZGV4IDAzZGUyYmUuLjUzOTljMzYgMTAwNjQ0 Ci0tLSBhL3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYworKysgYi94ZW4vY29tbW9uL2dyYW50X3Rh YmxlLmMKQEAgLTk4NywxMyArOTg3LDEzIEBAIF9fZ250dGFiX21hcF9ncmFudF9yZWYoCiAgICAg ICAgICAgICAgIShvbGRfcGluICYgKEdOVFBJTl9oc3R3X21hc2t8R05UUElOX2RldndfbWFzaykp ICkKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCAhKGtpbmQgJiBNQVBLSU5EX1dSSVRFKSAp Ci0gICAgICAgICAgICAgICAgZXJyID0gaW9tbXVfbWFwX3BhZ2UobGQsIGZyYW1lLCBmcmFtZSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVUZfcmVhZGFibGV8SU9N TVVGX3dyaXRhYmxlKTsKKyAgICAgICAgICAgICAgICBlcnIgPSBpb21tdV9tYXBfcGFnZXMobGQs IGZyYW1lLCBmcmFtZSwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg SU9NTVVGX3JlYWRhYmxlfElPTU1VRl93cml0YWJsZSk7CiAgICAgICAgIH0KICAgICAgICAgZWxz ZSBpZiAoIGFjdF9waW4gJiYgIW9sZF9waW4gKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAo ICFraW5kICkKLSAgICAgICAgICAgICAgICBlcnIgPSBpb21tdV9tYXBfcGFnZShsZCwgZnJhbWUs IGZyYW1lLCBJT01NVUZfcmVhZGFibGUpOworICAgICAgICAgICAgICAgIGVyciA9IGlvbW11X21h cF9wYWdlcyhsZCwgZnJhbWUsIGZyYW1lLCAwLCBJT01NVUZfcmVhZGFibGUpOwogICAgICAgICB9 CiAgICAgICAgIGlmICggZXJyICkKICAgICAgICAgewpAQCAtMTI0OCw5ICsxMjQ4LDkgQEAgX19n bnR0YWJfdW5tYXBfY29tbW9uKAogCiAgICAgICAgIGtpbmQgPSBtYXBraW5kKGxndCwgcmQsIG9w LT5mcmFtZSk7CiAgICAgICAgIGlmICggIWtpbmQgKQotICAgICAgICAgICAgZXJyID0gaW9tbXVf dW5tYXBfcGFnZShsZCwgb3AtPmZyYW1lKTsKKyAgICAgICAgICAgIGVyciA9IGlvbW11X3VubWFw X3BhZ2VzKGxkLCBvcC0+ZnJhbWUsIDApOwogICAgICAgICBlbHNlIGlmICggIShraW5kICYgTUFQ S0lORF9XUklURSkgKQotICAgICAgICAgICAgZXJyID0gaW9tbXVfbWFwX3BhZ2UobGQsIG9wLT5m cmFtZSwgb3AtPmZyYW1lLCBJT01NVUZfcmVhZGFibGUpOworICAgICAgICAgICAgZXJyID0gaW9t bXVfbWFwX3BhZ2VzKGxkLCBvcC0+ZnJhbWUsIG9wLT5mcmFtZSwgMCwgSU9NTVVGX3JlYWRhYmxl KTsKIAogICAgICAgICBkb3VibGVfZ3RfdW5sb2NrKGxndCwgcmd0KTsKIApkaWZmIC0tZ2l0IGEv eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X21hcC5jIGIveGVuL2RyaXZlcnMvcGFz c3Rocm91Z2gvYW1kL2lvbW11X21hcC5jCmluZGV4IGZkMjMyN2QuLmVhM2E3MjggMTAwNjQ0Ci0t LSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9tYXAuYworKysgYi94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfbWFwLmMKQEAgLTYzMSw4ICs2MzEsOSBAQCBzdGF0 aWMgaW50IHVwZGF0ZV9wYWdpbmdfbW9kZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25n IGdmbikKICAgICByZXR1cm4gMDsKIH0KIAotaW50IGFtZF9pb21tdV9tYXBfcGFnZShzdHJ1Y3Qg ZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbiwgdW5zaWduZWQgbG9uZyBtZm4sCi0gICAgICAg ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBmbGFncykKK3N0YXRpYyBpbnQgX19tdXN0X2No ZWNrIGFtZF9pb21tdV9tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdm biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBs b25nIG1mbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp Z25lZCBpbnQgZmxhZ3MpCiB7CiAgICAgYm9vbF90IG5lZWRfZmx1c2ggPSAwOwogICAgIHN0cnVj dCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGQpOwpAQCAtNzIwLDcgKzcyMSw4IEBAIG91 dDoKICAgICByZXR1cm4gMDsKIH0KIAotaW50IGFtZF9pb21tdV91bm1hcF9wYWdlKHN0cnVjdCBk b21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuKQorc3RhdGljIGludCBfX211c3RfY2hlY2sgYW1k X2lvbW11X3VubWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZ2ZuKQogewogICAgIHVuc2ln bmVkIGxvbmcgcHRfbWZuWzddOwogICAgIHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lv bW11KGQpOwpAQCAtNzcxLDYgKzc3Myw0OCBAQCBpbnQgYW1kX2lvbW11X3VubWFwX3BhZ2Uoc3Ry dWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm4pCiAgICAgcmV0dXJuIDA7CiB9CiAKKy8q IFRPRE86IE9wdGltaXplIGJ5IHNxdWFzaGluZyBtYXBfcGFnZXMvdW5tYXBfcGFnZXMgd2l0aCBt YXBfcGFnZS91bm1hcF9wYWdlICovCitpbnQgX19tdXN0X2NoZWNrIGFtZF9pb21tdV9tYXBfcGFn ZXMoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm4sCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBtZm4sIHVuc2lnbmVkIGludCBvcmRl ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZmxh Z3MpCit7CisgICAgdW5zaWduZWQgbG9uZyBpOworICAgIGludCByYyA9IDA7CisKKyAgICBmb3Ig KCBpID0gMDsgaSA8ICgxVUwgPDwgb3JkZXIpOyBpKysgKQorICAgIHsKKyAgICAgICAgcmMgPSBh bWRfaW9tbXVfbWFwX3BhZ2UoZCwgZ2ZuICsgaSwgbWZuICsgaSwgZmxhZ3MpOworICAgICAgICBp ZiAoIHVubGlrZWx5KHJjKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIHdoaWxlICggaS0tICkK KyAgICAgICAgICAgICAgICAvKiBJZiBzdGF0ZW1lbnQgdG8gc2F0aXNmeSBfX211c3RfY2hlY2su ICovCisgICAgICAgICAgICAgICAgaWYgKCBhbWRfaW9tbXVfdW5tYXBfcGFnZShkLCBnZm4gKyBp KSApCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBicmVhazsK KyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiByYzsKK30KKworaW50IF9fbXVzdF9jaGVj ayBhbWRfaW9tbXVfdW5tYXBfcGFnZXMoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBn Zm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQg b3JkZXIpCit7CisgICAgdW5zaWduZWQgbG9uZyBpOworICAgIGludCByYyA9IDA7CisKKyAgICBm b3IgKCBpID0gMDsgaSA8ICgxVUwgPDwgb3JkZXIpOyBpKysgKQorICAgIHsKKyAgICAgICAgaW50 IHJldCA9IGFtZF9pb21tdV91bm1hcF9wYWdlKGQsIGdmbiArIGkpOworCisgICAgICAgIGlmICgg IXJjICkKKyAgICAgICAgICAgIHJjID0gcmV0OworICAgIH0KKworICAgIHJldHVybiByYzsKK30K KwogaW50IGFtZF9pb21tdV9yZXNlcnZlX2RvbWFpbl91bml0eV9tYXAoc3RydWN0IGRvbWFpbiAq ZG9tYWluLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTY0IHBoeXNf YWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxv bmcgc2l6ZSwgaW50IGl3LCBpbnQgaXIpCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhy b3VnaC9hbWQvcGNpX2FtZF9pb21tdS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL3Bj aV9hbWRfaW9tbXUuYwppbmRleCA4YzI1MTEwLi5mZTc0NGQyIDEwMDY0NAotLS0gYS94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL2FtZC9wY2lfYW1kX2lvbW11LmMKQEAgLTI5Niw4ICsyOTYsOCBAQCBzdGF0aWMg dm9pZCBfX2h3ZG9tX2luaXQgYW1kX2lvbW11X2h3ZG9tX2luaXQoc3RydWN0IGRvbWFpbiAqZCkK ICAgICAgICAgICAgICAqLwogICAgICAgICAgICAgaWYgKCBtZm5fdmFsaWQoX21mbihwZm4pKSAp CiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaW50IHJldCA9IGFtZF9pb21tdV9tYXBf cGFnZShkLCBwZm4sIHBmbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElPTU1VRl9yZWFkYWJsZXxJT01NVUZfd3JpdGFibGUpOworICAgICAgICAgICAgICAg IGludCByZXQgPSBhbWRfaW9tbXVfbWFwX3BhZ2VzKGQsIHBmbiwgcGZuLCAwLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VRl9yZWFkYWJsZXxJT01N VUZfd3JpdGFibGUpOwogCiAgICAgICAgICAgICAgICAgaWYgKCAhcmMgKQogICAgICAgICAgICAg ICAgICAgICByYyA9IHJldDsKQEAgLTYyMCw4ICs2MjAsOCBAQCBjb25zdCBzdHJ1Y3QgaW9tbXVf b3BzIGFtZF9pb21tdV9vcHMgPSB7CiAgICAgLnJlbW92ZV9kZXZpY2UgPSBhbWRfaW9tbXVfcmVt b3ZlX2RldmljZSwKICAgICAuYXNzaWduX2RldmljZSAgPSBhbWRfaW9tbXVfYXNzaWduX2Rldmlj ZSwKICAgICAudGVhcmRvd24gPSBhbWRfaW9tbXVfZG9tYWluX2Rlc3Ryb3ksCi0gICAgLm1hcF9w YWdlID0gYW1kX2lvbW11X21hcF9wYWdlLAotICAgIC51bm1hcF9wYWdlID0gYW1kX2lvbW11X3Vu bWFwX3BhZ2UsCisgICAgLm1hcF9wYWdlcyA9IGFtZF9pb21tdV9tYXBfcGFnZXMsCisgICAgLnVu bWFwX3BhZ2VzID0gYW1kX2lvbW11X3VubWFwX3BhZ2VzLAogICAgIC5mcmVlX3BhZ2VfdGFibGUg PSBkZWFsbG9jYXRlX3BhZ2VfdGFibGUsCiAgICAgLnJlYXNzaWduX2RldmljZSA9IHJlYXNzaWdu X2RldmljZSwKICAgICAuZ2V0X2RldmljZV9ncm91cF9pZCA9IGFtZF9pb21tdV9ncm91cF9pZCwK ZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9zbW11LmMgYi94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC9hcm0vc21tdS5jCmluZGV4IDc0YzA5YjAuLjdjMzEzYzAgMTAwNjQ0 Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9zbW11LmMKKysrIGIveGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvYXJtL3NtbXUuYwpAQCAtMjc3OCw2ICsyNzc4LDQzIEBAIHN0YXRpYyBp bnQgX19tdXN0X2NoZWNrIGFybV9zbW11X3VubWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgdW5z aWduZWQgbG9uZyBnZm4pCiAJcmV0dXJuIGd1ZXN0X3BoeXNtYXBfcmVtb3ZlX3BhZ2UoZCwgX2dm bihnZm4pLCBfbWZuKGdmbiksIDApOwogfQogCisvKiBUT0RPOiBPcHRpbWl6ZSBieSBzcXVhc2hp bmcgbWFwX3BhZ2VzL3VubWFwX3BhZ2VzIHdpdGggbWFwX3BhZ2UvdW5tYXBfcGFnZSAqLworc3Rh dGljIGludCBfX211c3RfY2hlY2sgYXJtX3NtbXVfbWFwX3BhZ2VzKHN0cnVjdCBkb21haW4gKmQs IHVuc2lnbmVkIGxvbmcgZ2ZuLAorCQl1bnNpZ25lZCBsb25nIG1mbiwgdW5zaWduZWQgaW50IG9y ZGVyLCB1bnNpZ25lZCBpbnQgZmxhZ3MpCit7CisJdW5zaWduZWQgbG9uZyBpOworCWludCByYyA9 IDA7CisKKwlmb3IgKGkgPSAwOyBpIDwgKDFVTCA8PCBvcmRlcik7IGkrKykgeworCQlyYyA9IGFy bV9zbW11X21hcF9wYWdlKGQsIGdmbiArIGksIG1mbiArIGksIGZsYWdzKTsKKwkJaWYgKHVubGlr ZWx5KHJjKSkgeworCQkJd2hpbGUgKGktLSkKKwkJCQkvKiBJZiBzdGF0ZW1lbnQgdG8gc2F0aXNm eSBfX211c3RfY2hlY2suICovCisJCQkJaWYgKGFybV9zbW11X3VubWFwX3BhZ2UoZCwgZ2ZuICsg aSkpCisJCQkJCWNvbnRpbnVlOworCisJCQlicmVhazsKKwkJfQorCX0KKworCXJldHVybiByYzsK K30KKworc3RhdGljIGludCBfX211c3RfY2hlY2sgYXJtX3NtbXVfdW5tYXBfcGFnZXMoc3RydWN0 IGRvbWFpbiAqZCwKKwkJdW5zaWduZWQgbG9uZyBnZm4sIHVuc2lnbmVkIGludCBvcmRlcikKK3sK Kwl1bnNpZ25lZCBsb25nIGk7CisJaW50IHJjID0gMDsKKworCWZvciAoaSA9IDA7IGkgPCAoMVVM IDw8IG9yZGVyKTsgaSsrKSB7CisJCWludCByZXQgPSBhcm1fc21tdV91bm1hcF9wYWdlKGQsIGdm biArIGkpOworCQlpZiAoIXJjKQorCQkJcmMgPSByZXQ7CisJfQorCisJcmV0dXJuIHJjOworfQor CiBzdGF0aWMgY29uc3Qgc3RydWN0IGlvbW11X29wcyBhcm1fc21tdV9pb21tdV9vcHMgPSB7CiAg ICAgLmluaXQgPSBhcm1fc21tdV9pb21tdV9kb21haW5faW5pdCwKICAgICAuaHdkb21faW5pdCA9 IGFybV9zbW11X2lvbW11X2h3ZG9tX2luaXQsCkBAIC0yNzg2LDggKzI4MjMsOCBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IGlvbW11X29wcyBhcm1fc21tdV9pb21tdV9vcHMgPSB7CiAgICAgLmlvdGxi X2ZsdXNoX2FsbCA9IGFybV9zbW11X2lvdGxiX2ZsdXNoX2FsbCwKICAgICAuYXNzaWduX2Rldmlj ZSA9IGFybV9zbW11X2Fzc2lnbl9kZXYsCiAgICAgLnJlYXNzaWduX2RldmljZSA9IGFybV9zbW11 X3JlYXNzaWduX2RldiwKLSAgICAubWFwX3BhZ2UgPSBhcm1fc21tdV9tYXBfcGFnZSwKLSAgICAu dW5tYXBfcGFnZSA9IGFybV9zbW11X3VubWFwX3BhZ2UsCisgICAgLm1hcF9wYWdlcyA9IGFybV9z bW11X21hcF9wYWdlcywKKyAgICAudW5tYXBfcGFnZXMgPSBhcm1fc21tdV91bm1hcF9wYWdlcywK IH07CiAKIHN0YXRpYyBfX2luaXQgY29uc3Qgc3RydWN0IGFybV9zbW11X2RldmljZSAqZmluZF9z bW11KGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRldikKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL2lvbW11LmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5jCmluZGV4 IDVlODE4MTMuLjNlOWU0YzMgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lv bW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYwpAQCAtMTg4LDcgKzE4 OCw3IEBAIHZvaWQgX19od2RvbV9pbml0IGlvbW11X2h3ZG9tX2luaXQoc3RydWN0IGRvbWFpbiAq ZCkKICAgICAgICAgICAgICAgICAgID09IFBHVF93cml0YWJsZV9wYWdlKSApCiAgICAgICAgICAg ICAgICAgbWFwcGluZyB8PSBJT01NVUZfd3JpdGFibGU7CiAKLSAgICAgICAgICAgIHJldCA9IGhk LT5wbGF0Zm9ybV9vcHMtPm1hcF9wYWdlKGQsIGdmbiwgbWZuLCBtYXBwaW5nKTsKKyAgICAgICAg ICAgIHJldCA9IGhkLT5wbGF0Zm9ybV9vcHMtPm1hcF9wYWdlcyhkLCBnZm4sIG1mbiwgMCwgbWFw cGluZyk7CiAgICAgICAgICAgICBpZiAoICFyYyApCiAgICAgICAgICAgICAgICAgcmMgPSByZXQ7 CiAKQEAgLTI0OSw4ICsyNDksOCBAQCB2b2lkIGlvbW11X2RvbWFpbl9kZXN0cm95KHN0cnVjdCBk b21haW4gKmQpCiAgICAgYXJjaF9pb21tdV9kb21haW5fZGVzdHJveShkKTsKIH0KIAotaW50IGlv bW11X21hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLCB1bnNpZ25l ZCBsb25nIG1mbiwKLSAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MpCitpbnQg aW9tbXVfbWFwX3BhZ2VzKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLCB1bnNp Z25lZCBsb25nIG1mbiwKKyAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG9yZGVyLCB1 bnNpZ25lZCBpbnQgZmxhZ3MpCiB7CiAgICAgY29uc3Qgc3RydWN0IGRvbWFpbl9pb21tdSAqaGQg PSBkb21faW9tbXUoZCk7CiAgICAgaW50IHJjOwpAQCAtMjU4LDEzICsyNTgsMTMgQEAgaW50IGlv bW11X21hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLCB1bnNpZ25l ZCBsb25nIG1mbiwKICAgICBpZiAoICFpb21tdV9lbmFibGVkIHx8ICFoZC0+cGxhdGZvcm1fb3Bz ICkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICByYyA9IGhkLT5wbGF0Zm9ybV9vcHMtPm1hcF9w YWdlKGQsIGdmbiwgbWZuLCBmbGFncyk7CisgICAgcmMgPSBoZC0+cGxhdGZvcm1fb3BzLT5tYXBf cGFnZXMoZCwgZ2ZuLCBtZm4sIG9yZGVyLCBmbGFncyk7CiAgICAgaWYgKCB1bmxpa2VseShyYykg KQogICAgIHsKICAgICAgICAgaWYgKCAhZC0+aXNfc2h1dHRpbmdfZG93biAmJiBwcmludGtfcmF0 ZWxpbWl0KCkgKQogICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIKLSAgICAgICAgICAgICAg ICAgICAiZCVkOiBJT01NVSBtYXBwaW5nIGdmbiAlI2x4IHRvIG1mbiAlI2x4IGZhaWxlZDogJWRc biIsCi0gICAgICAgICAgICAgICAgICAgZC0+ZG9tYWluX2lkLCBnZm4sIG1mbiwgcmMpOworICAg ICAgICAgICAgICAgICAgICJkJWQ6IElPTU1VIG1hcHBpbmcgZ2ZuICUjbHggdG8gbWZuICUjbHgg b3JkZXIgJXUgZmFpbGVkOiAlZFxuIiwKKyAgICAgICAgICAgICAgICAgICBkLT5kb21haW5faWQs IGdmbiwgbWZuLCBvcmRlciwgcmMpOwogCiAgICAgICAgIGlmICggIWlzX2hhcmR3YXJlX2RvbWFp bihkKSApCiAgICAgICAgICAgICBkb21haW5fY3Jhc2goZCk7CkBAIC0yNzMsNyArMjczLDggQEAg aW50IGlvbW11X21hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLCB1 bnNpZ25lZCBsb25nIG1mbiwKICAgICByZXR1cm4gcmM7CiB9CiAKLWludCBpb21tdV91bm1hcF9w YWdlKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuKQoraW50IGlvbW11X3VubWFw X3BhZ2VzKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLAorICAgICAgICAgICAg ICAgICAgICAgIHVuc2lnbmVkIGludCBvcmRlcikKIHsKICAgICBjb25zdCBzdHJ1Y3QgZG9tYWlu X2lvbW11ICpoZCA9IGRvbV9pb21tdShkKTsKICAgICBpbnQgcmM7CkBAIC0yODEsMTMgKzI4Miwx MyBAQCBpbnQgaW9tbXVfdW5tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25n IGdmbikKICAgICBpZiAoICFpb21tdV9lbmFibGVkIHx8ICFoZC0+cGxhdGZvcm1fb3BzICkKICAg ICAgICAgcmV0dXJuIDA7CiAKLSAgICByYyA9IGhkLT5wbGF0Zm9ybV9vcHMtPnVubWFwX3BhZ2Uo ZCwgZ2ZuKTsKKyAgICByYyA9IGhkLT5wbGF0Zm9ybV9vcHMtPnVubWFwX3BhZ2VzKGQsIGdmbiwg b3JkZXIpOwogICAgIGlmICggdW5saWtlbHkocmMpICkKICAgICB7CiAgICAgICAgIGlmICggIWQt PmlzX3NodXR0aW5nX2Rvd24gJiYgcHJpbnRrX3JhdGVsaW1pdCgpICkKICAgICAgICAgICAgIHBy aW50ayhYRU5MT0dfRVJSCi0gICAgICAgICAgICAgICAgICAgImQlZDogSU9NTVUgdW5tYXBwaW5n IGdmbiAlI2x4IGZhaWxlZDogJWRcbiIsCi0gICAgICAgICAgICAgICAgICAgZC0+ZG9tYWluX2lk LCBnZm4sIHJjKTsKKyAgICAgICAgICAgICAgICAgICAiZCVkOiBJT01NVSB1bm1hcHBpbmcgZ2Zu ICUjbHggb3JkZXIgJXUgZmFpbGVkOiAlZFxuIiwKKyAgICAgICAgICAgICAgICAgICBkLT5kb21h aW5faWQsIGdmbiwgb3JkZXIsIHJjKTsKIAogICAgICAgICBpZiAoICFpc19oYXJkd2FyZV9kb21h aW4oZCkgKQogICAgICAgICAgICAgZG9tYWluX2NyYXNoKGQpOwpkaWZmIC0tZ2l0IGEveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92 dGQvaW9tbXUuYwppbmRleCAxOTMyOGY2Li5iNGU4Yzg5IDEwMDY0NAotLS0gYS94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92 dGQvaW9tbXUuYwpAQCAtMTgxNiw2ICsxODE2LDUwIEBAIHN0YXRpYyBpbnQgX19tdXN0X2NoZWNr IGludGVsX2lvbW11X3VubWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwKICAgICByZXR1cm4gZG1h X3B0ZV9jbGVhcl9vbmUoZCwgKHBhZGRyX3QpZ2ZuIDw8IFBBR0VfU0hJRlRfNEspOwogfQogCisv KiBUT0RPOiBPcHRpbWl6ZSBieSBzcXVhc2hpbmcgbWFwX3BhZ2VzL3VubWFwX3BhZ2VzIHdpdGgg bWFwX3BhZ2UvdW5tYXBfcGFnZSAqLworc3RhdGljIGludCBfX211c3RfY2hlY2sgaW50ZWxfaW9t bXVfbWFwX3BhZ2VzKHN0cnVjdCBkb21haW4gKmQsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBnZm4sCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBtZm4sCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG9yZGVy LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IGludCBmbGFncykKK3sKKyAgICB1bnNpZ25lZCBsb25nIGk7CisgICAgaW50IHJjID0gMDsKKwor ICAgIGZvciAoIGkgPSAwOyBpIDwgKDFVTCA8PCBvcmRlcik7IGkrKyApCisgICAgeworICAgICAg ICByYyA9IGludGVsX2lvbW11X21hcF9wYWdlKGQsIGdmbiArIGksIG1mbiArIGksIGZsYWdzKTsK KyAgICAgICAgaWYgKCB1bmxpa2VseShyYykgKQorICAgICAgICB7CisgICAgICAgICAgICB3aGls ZSAoIGktLSApCisgICAgICAgICAgICAgICAgLyogSWYgc3RhdGVtZW50IHRvIHNhdGlzZnkgX19t dXN0X2NoZWNrLiAqLworICAgICAgICAgICAgICAgIGlmICggaW50ZWxfaW9tbXVfdW5tYXBfcGFn ZShkLCBnZm4gKyBpKSApCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAg ICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiByYzsKK30KKworc3Rh dGljIGludCBfX211c3RfY2hlY2sgaW50ZWxfaW9tbXVfdW5tYXBfcGFnZXMoc3RydWN0IGRvbWFp biAqZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu c2lnbmVkIGxvbmcgZ2ZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdW5zaWduZWQgaW50IG9yZGVyKQoreworICAgIHVuc2lnbmVkIGxvbmcgaTsKKyAg ICBpbnQgcmMgPSAwOworCisgICAgZm9yICggaSA9IDA7IGkgPCAoMVVMIDw8IG9yZGVyKTsgaSsr ICkKKyAgICB7CisgICAgICAgIGludCByZXQgPSBpbnRlbF9pb21tdV91bm1hcF9wYWdlKGQsIGdm biArIGkpOworICAgICAgICBpZiAoICFyYyApCisgICAgICAgICAgICByYyA9IHJldDsKKyAgICB9 CisKKyAgICByZXR1cm4gcmM7Cit9CisKIGludCBpb21tdV9wdGVfZmx1c2goc3RydWN0IGRvbWFp biAqZCwgdTY0IGdmbiwgdTY0ICpwdGUsCiAgICAgICAgICAgICAgICAgICAgIGludCBvcmRlciwg aW50IHByZXNlbnQpCiB7CkBAIC0yNjM5LDggKzI2ODMsOCBAQCBjb25zdCBzdHJ1Y3QgaW9tbXVf b3BzIGludGVsX2lvbW11X29wcyA9IHsKICAgICAucmVtb3ZlX2RldmljZSA9IGludGVsX2lvbW11 X3JlbW92ZV9kZXZpY2UsCiAgICAgLmFzc2lnbl9kZXZpY2UgID0gaW50ZWxfaW9tbXVfYXNzaWdu X2RldmljZSwKICAgICAudGVhcmRvd24gPSBpb21tdV9kb21haW5fdGVhcmRvd24sCi0gICAgLm1h cF9wYWdlID0gaW50ZWxfaW9tbXVfbWFwX3BhZ2UsCi0gICAgLnVubWFwX3BhZ2UgPSBpbnRlbF9p b21tdV91bm1hcF9wYWdlLAorICAgIC5tYXBfcGFnZXMgPSBpbnRlbF9pb21tdV9tYXBfcGFnZXMs CisgICAgLnVubWFwX3BhZ2VzID0gaW50ZWxfaW9tbXVfdW5tYXBfcGFnZXMsCiAgICAgLmZyZWVf cGFnZV90YWJsZSA9IGlvbW11X2ZyZWVfcGFnZV90YWJsZSwKICAgICAucmVhc3NpZ25fZGV2aWNl ID0gcmVhc3NpZ25fZGV2aWNlX293bmVyc2hpcCwKICAgICAuZ2V0X2RldmljZV9ncm91cF9pZCA9 IGludGVsX2lvbW11X2dyb3VwX2lkLApkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91 Z2gvdnRkL3g4Ni92dGQuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94ODYvdnRkLmMK aW5kZXggODhhNjBiMy4uNjJhNmVlNiAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91 Z2gvdnRkL3g4Ni92dGQuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQveDg2L3Z0 ZC5jCkBAIC0xNDMsOCArMTQzLDggQEAgdm9pZCBfX2h3ZG9tX2luaXQgdnRkX3NldF9od2RvbV9t YXBwaW5nKHN0cnVjdCBkb21haW4gKmQpCiAgICAgICAgIHRtcCA9IDEgPDwgKFBBR0VfU0hJRlQg LSBQQUdFX1NISUZUXzRLKTsKICAgICAgICAgZm9yICggaiA9IDA7IGogPCB0bXA7IGorKyApCiAg ICAgICAgIHsKLSAgICAgICAgICAgIGludCByZXQgPSBpb21tdV9tYXBfcGFnZShkLCBwZm4gKiB0 bXAgKyBqLCBwZm4gKiB0bXAgKyBqLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElPTU1VRl9yZWFkYWJsZXxJT01NVUZfd3JpdGFibGUpOworICAgICAgICAgICAgaW50IHJl dCA9IGlvbW11X21hcF9wYWdlcyhkLCBwZm4gKiB0bXAgKyBqLCBwZm4gKiB0bXAgKyBqLCAwLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVUZfcmVhZGFibGV8SU9N TVVGX3dyaXRhYmxlKTsKIAogICAgICAgICAgICAgaWYgKCAhcmMgKQogICAgICAgICAgICAgICAg cmMgPSByZXQ7CmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94ODYvaW9tbXUu YyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9pb21tdS5jCmluZGV4IDAyNTM4MjMuLjk3 M2I3MmYgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9pb21tdS5jCisr KyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9pb21tdS5jCkBAIC02NSw5ICs2NSw5IEBA IGludCBhcmNoX2lvbW11X3BvcHVsYXRlX3BhZ2VfdGFibGUoc3RydWN0IGRvbWFpbiAqZCkKICAg ICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBBU1NFUlQoIShnZm4gPj4gREVGQVVMVF9ET01B SU5fQUREUkVTU19XSURUSCkpOwogICAgICAgICAgICAgICAgIEJVR19PTihTSEFSRURfTTJQKGdm bikpOwotICAgICAgICAgICAgICAgIHJjID0gaGQtPnBsYXRmb3JtX29wcy0+bWFwX3BhZ2UoZCwg Z2ZuLCBtZm4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJT01NVUZfcmVhZGFibGUgfAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSU9NTVVGX3dyaXRhYmxlKTsKKyAgICAgICAgICAgICAgICByYyA9IGhkLT5w bGF0Zm9ybV9vcHMtPm1hcF9wYWdlcyhkLCBnZm4sIG1mbiwgMCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVUZfcmVhZGFibGUgfAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VRl93cml0YWJs ZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoIHJjICkKICAgICAgICAgICAgIHsK ZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3N2bS9hbWQtaW9tbXUtcHJvdG8u aCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3N2bS9hbWQtaW9tbXUtcHJvdG8uaAppbmRleCA5 OWJjMjFjLi44ZjQ0NDg5IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9zdm0v YW1kLWlvbW11LXByb3RvLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vc3ZtL2FtZC1p b21tdS1wcm90by5oCkBAIC01Miw5ICs1MiwxMSBAQCBpbnQgYW1kX2lvbW11X2luaXQodm9pZCk7 CiBpbnQgYW1kX2lvbW11X3VwZGF0ZV9pdnJzX21hcHBpbmdfYWNwaSh2b2lkKTsKIAogLyogbWFw cGluZyBmdW5jdGlvbnMgKi8KLWludCBfX211c3RfY2hlY2sgYW1kX2lvbW11X21hcF9wYWdlKHN0 cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBtZm4sIHVuc2lnbmVkIGludCBmbGFncyk7Ci1p bnQgX19tdXN0X2NoZWNrIGFtZF9pb21tdV91bm1hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIHVu c2lnbmVkIGxvbmcgZ2ZuKTsKK2ludCBfX211c3RfY2hlY2sgYW1kX2lvbW11X21hcF9wYWdlcyhz dHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbiwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIG1mbiwgdW5zaWduZWQgaW50IG9yZGVyLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBmbGFncyk7 CitpbnQgX19tdXN0X2NoZWNrIGFtZF9pb21tdV91bm1hcF9wYWdlcyhzdHJ1Y3QgZG9tYWluICpk LCB1bnNpZ25lZCBsb25nIGdmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVuc2lnbmVkIGludCBvcmRlcik7CiB1NjQgYW1kX2lvbW11X2dldF9uZXh0X3RhYmxlX2Zy b21fcHRlKHUzMiAqZW50cnkpOwogaW50IF9fbXVzdF9jaGVjayBhbWRfaW9tbXVfYWxsb2Nfcm9v dChzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCk7CiBpbnQgYW1kX2lvbW11X3Jlc2VydmVfZG9tYWlu X3VuaXR5X21hcChzdHJ1Y3QgZG9tYWluICpkb21haW4sCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVk ZS94ZW4vaW9tbXUuaCBiL3hlbi9pbmNsdWRlL3hlbi9pb21tdS5oCmluZGV4IDU4MDNlM2YuLjMy OTc5OTggMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9pb21tdS5oCisrKyBiL3hlbi9pbmNs dWRlL3hlbi9pb21tdS5oCkBAIC03MSwxNCArNzEsMTYgQEAgaW50IGlvbW11X2NvbnN0cnVjdChz dHJ1Y3QgZG9tYWluICpkKTsKIC8qIEZ1bmN0aW9uIHVzZWQgaW50ZXJuYWxseSwgdXNlIGlvbW11 X2RvbWFpbl9kZXN0cm95ICovCiB2b2lkIGlvbW11X3RlYXJkb3duKHN0cnVjdCBkb21haW4gKmQp OwogCi0vKiBpb21tdV9tYXBfcGFnZSgpIHRha2VzIGZsYWdzIHRvIGRpcmVjdCB0aGUgbWFwcGlu ZyBvcGVyYXRpb24uICovCisvKiBpb21tdV9tYXBfcGFnZXMoKSB0YWtlcyBmbGFncyB0byBkaXJl Y3QgdGhlIG1hcHBpbmcgb3BlcmF0aW9uLiAqLwogI2RlZmluZSBfSU9NTVVGX3JlYWRhYmxlIDAK ICNkZWZpbmUgSU9NTVVGX3JlYWRhYmxlICAoMXU8PF9JT01NVUZfcmVhZGFibGUpCiAjZGVmaW5l IF9JT01NVUZfd3JpdGFibGUgMQogI2RlZmluZSBJT01NVUZfd3JpdGFibGUgICgxdTw8X0lPTU1V Rl93cml0YWJsZSkKLWludCBfX211c3RfY2hlY2sgaW9tbXVfbWFwX3BhZ2Uoc3RydWN0IGRvbWFp biAqZCwgdW5zaWduZWQgbG9uZyBnZm4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVuc2lnbmVkIGxvbmcgbWZuLCB1bnNpZ25lZCBpbnQgZmxhZ3MpOwotaW50IF9fbXVzdF9jaGVj ayBpb21tdV91bm1hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuKTsK K2ludCBfX211c3RfY2hlY2sgaW9tbXVfbWFwX3BhZ2VzKHN0cnVjdCBkb21haW4gKmQsIHVuc2ln bmVkIGxvbmcgZ2ZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg bG9uZyBtZm4sIHVuc2lnbmVkIGludCBvcmRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVuc2lnbmVkIGludCBmbGFncyk7CitpbnQgX19tdXN0X2NoZWNrIGlvbW11X3VubWFw X3BhZ2VzKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgb3JkZXIpOwogCiBlbnVtIGlvbW11 X2ZlYXR1cmUKIHsKQEAgLTE2OCw5ICsxNzAsMTEgQEAgc3RydWN0IGlvbW11X29wcyB7CiAjZW5k aWYgLyogSEFTX1BDSSAqLwogCiAgICAgdm9pZCAoKnRlYXJkb3duKShzdHJ1Y3QgZG9tYWluICpk KTsKLSAgICBpbnQgX19tdXN0X2NoZWNrICgqbWFwX3BhZ2UpKHN0cnVjdCBkb21haW4gKmQsIHVu c2lnbmVkIGxvbmcgZ2ZuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu ZWQgbG9uZyBtZm4sIHVuc2lnbmVkIGludCBmbGFncyk7Ci0gICAgaW50IF9fbXVzdF9jaGVjayAo KnVubWFwX3BhZ2UpKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuKTsKKyAgICBp bnQgX19tdXN0X2NoZWNrICgqbWFwX3BhZ2VzKShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBs b25nIGdmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25n IG1mbiwgdW5zaWduZWQgaW50IG9yZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVuc2lnbmVkIGludCBmbGFncyk7CisgICAgaW50IF9fbXVzdF9jaGVjayAoKnVubWFwX3Bh Z2VzKShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBvcmRlcik7CiAgICAgdm9pZCAoKmZy ZWVfcGFnZV90YWJsZSkoc3RydWN0IHBhZ2VfaW5mbyAqKTsKICNpZmRlZiBDT05GSUdfWDg2CiAg ICAgdm9pZCAoKnVwZGF0ZV9pcmVfZnJvbV9hcGljKSh1bnNpZ25lZCBpbnQgYXBpYywgdW5zaWdu ZWQgaW50IHJlZywgdW5zaWduZWQgaW50IHZhbHVlKTsKQEAgLTIxMyw3ICsyMTcsNyBAQCB2b2lk IGlvbW11X2Rldl9pb3RsYl9mbHVzaF90aW1lb3V0KHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBw Y2lfZGV2ICpwZGV2KTsKICAqIFRoZSBwdXJwb3NlIG9mIHRoZSBpb21tdV9kb250X2ZsdXNoX2lv dGxiIG9wdGlvbmFsIGNwdSBmbGFnIGlzIHRvCiAgKiBhdm9pZCB1bmVjZXNzYXJ5IGlvdGxiX2Zs dXNoIGluIHRoZSBsb3cgbGV2ZWwgSU9NTVUgY29kZS4KICAqCi0gKiBpb21tdV9tYXBfcGFnZS9p b21tdV91bm1hcF9wYWdlIG11c3QgZmx1c2ggdGhlIGlvdGxiIGJ1dCBzb21ldGhpbWVzCisgKiBp b21tdV9tYXBfcGFnZXMvaW9tbXVfdW5tYXBfcGFnZXMgbXVzdCBmbHVzaCB0aGUgaW90bGIgYnV0 IHNvbWV0aGltZXMKICAqIHRoaXMgb3BlcmF0aW9uIGNhbiBiZSByZWFsbHkgZXhwZW5zaXZlLiBU aGlzIGZsYWcgd2lsbCBiZSBzZXQgYnkgdGhlCiAgKiBjYWxsZXIgdG8gbm90aWZ5IHRoZSBsb3cg bGV2ZWwgSU9NTVUgY29kZSB0byBhdm9pZCB0aGUgaW90bGIgZmx1c2hlcy4KICAqIGlvbW11X2lv dGxiX2ZsdXNoL2lvbW11X2lvdGxiX2ZsdXNoX2FsbCB3aWxsIGJlIGV4cGxpY2l0bHkgY2FsbGVk IGJ5Ci0tIAoyLjcuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0 cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=