From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Tyshchenko Subject: [PATCH v1 02/10] iommu: Add extra order argument to the IOMMU APIs and platform callbacks Date: Wed, 10 May 2017 17:03:06 +0300 Message-ID: <1494424994-26232-3-git-send-email-olekstysh@gmail.com> References: <1494424994-26232-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.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d8SDM-00076U-6N for xen-devel@lists.xenproject.org; Wed, 10 May 2017 14:03:40 +0000 Received: by mail-wm0-f65.google.com with SMTP id u65so43280wmu.3 for ; Wed, 10 May 2017 07:03:35 -0700 (PDT) In-Reply-To: <1494424994-26232-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: wei.liu2@citrix.com, julien.grall@arm.com, sstabellini@kernel.org, ian.jackson@eu.citrix.com, jbeulich@suse.com List-Id: xen-devel@lists.xenproject.org RnJvbTogT2xla3NhbmRyIFR5c2hjaGVua28gPG9sZWtzYW5kcl90eXNoY2hlbmtvQGVwYW0uY29t PgoKUmVwbGFjZSBleGlzdGluZyBzaW5nbGUtcGFnZSBzdHVmZiAoSU9NTVUgQVBJcyBhbmQgcGxh dGZvcm0gY2FsbGJhY2tzKQp3aXRoIHRoZSBtdWx0aS1wYWdlIG9uZSBmb2xsb3dlZCBieSBtb2Rp ZmljYXRpb25zIG9mIGFsbCByZWxhdGVkIHBhcnRzLgoKVGhlc2UgbmV3IG1hcF9wYWdlcy91bm1h cF9wYWdlcyBBUElzIGRvIGFsbW9zdCB0aGUgc2FtZSB0aGluZwphcyBvbGQgbWFwX3BhZ2UvdW5t YXBfcGFnZSBvbmVzIGV4Y2VwdCB0aGUgZm9ybWVycyBoYXZlIGV4dHJhCm9yZGVyIGFyZ3VtZW50 IGFuZCBhcyB0aGUgcmVzdWx0IGNhbiBoYW5kbGUgdGhlIG51bWJlciBvZiBwYWdlcy4KU28gaGF2 ZSBuZXcgcGxhdGZvcm0gY2FsbGJhY2tzLgoKQWx0aG91Z2ggdGhlIGN1cnJlbnQgYmVoYXZpb3Ig d2FzIHJldGFpbmVkIGluIGFsbCBwbGFjZXMgKEkgaG9wZSksCml0IHNob3VsZCBiZSBub3RlZCB0 aGF0IHRoZSByb2xsYmFjayBsb2dpYyB3YXMgbW92ZWQgZnJvbSB0aGUgY29tbW9uIGNvZGUKdG8g dGhlIElPTU1VIGRyaXZlcnMuIE5vdyB0aGUgSU9NTVUgZHJpdmVycyBhcmUgcmVzcG9uc2libGUg Zm9yIHVubWFwcGluZwphbHJlYWR5IG1hcHBlZCBwYWdlcyBpZiBzb21ldGhpbmcgd2VudCB3cm9u ZyBkdXJpbmcgbWFwcGluZyB0aGUgbnVtYmVyCm9mIHBhZ2VzIChvcmRlciA+IDApLgoKU2lnbmVk LW9mZi1ieTogT2xla3NhbmRyIFR5c2hjaGVua28gPG9sZWtzYW5kcl90eXNoY2hlbmtvQGVwYW0u Y29tPgpDQzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDQzogSnVsaWVuIEdyYWxs IDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4KCi0tLQogICBDaGFuZ2VzIGluIHYxOgogICAgICAtIFJl cGxhY2UgZXhpc3Rpbmcgc2luZ2xlLXBhZ2UgSU9NTVUgQVBJcy9wbGF0Zm9ybSBjYWxsYmFja3Mg d2l0aAogICAgICAgIG11bHRpLXBhZ2Ugb25lcyBpbnN0ZWFkIG9mIGp1c3Qga2VlcGluZyBib3Ro IHZhcmlhbnRzIG9mIHRoZW0uCiAgICAgIC0gVXNlIG9yZGVyIGFyZ3VtZW50IGluc3RlYWQgb2Yg cGFnZV9jb3VudC4KICAgICAgLSBDbGFyaWZ5IHBhdGNoIHN1YmplY3QvZGVzY3JpcHRpb24uCi0t LQogeGVuL2FyY2gveDg2L21tLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTEgKysr LS0tCiB4ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5jICAgICAgICAgICAgICAgICAgICAgfCAyMSAr Ky0tLS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9tbS9wMm0tcHQuYyAgICAgICAgICAgICAgICAgICAg ICB8IDI2ICsrKy0tLS0tLS0tLS0tCiB4ZW4vYXJjaC94ODYvbW0vcDJtLmMgICAgICAgICAgICAg ICAgICAgICAgICAgfCAzOCArKysrLS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni94ODZf NjQvbW0uYyAgICAgICAgICAgICAgICAgICAgICB8ICA1ICstLQogeGVuL2NvbW1vbi9ncmFudF90 YWJsZS5jICAgICAgICAgICAgICAgICAgICAgIHwgMTAgKysrLS0tCiB4ZW4vZHJpdmVycy9wYXNz dGhyb3VnaC9hbWQvaW9tbXVfbWFwLmMgICAgICAgfCA0OSArKysrKysrKysrKysrKysrKysrKysr KysrLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9wY2lfYW1kX2lvbW11LmMgICB8ICA4 ICsrLS0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vc21tdS5jICAgICAgICAgICAgfCA0 MSArKysrKysrKysrKysrKysrKysrKy0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5j ICAgICAgICAgICAgICAgfCAyMSArKysrKystLS0tLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L3Z0ZC9pb21tdS5jICAgICAgICAgICB8IDQ4ICsrKysrKysrKysrKysrKysrKysrKysrKy0tCiB4 ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQveDg2L3Z0ZC5jICAgICAgICAgfCAgNCArLS0KIHhl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9pb21tdS5jICAgICAgICAgICB8ICA2ICsrLS0KIHhl bi9pbmNsdWRlL2FzbS14ODYvaHZtL3N2bS9hbWQtaW9tbXUtcHJvdG8uaCB8ICA4ICsrKy0tCiB4 ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaCAgICAgICAgICAgICAgICAgICAgICAgfCAyMCArKysrKyst LS0tLQogMTUgZmlsZXMgY2hhbmdlZCwgMTk1IGluc2VydGlvbnMoKyksIDEyMSBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0uYyBiL3hlbi9hcmNoL3g4Ni9tbS5jCmlu ZGV4IDk2YmMyODAuLmM1YmMzYTUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS5jCisrKyBi L3hlbi9hcmNoL3g4Ni9tbS5jCkBAIC0yNjIzLDExICsyNjIzLDE0IEBAIHN0YXRpYyBpbnQgX19n ZXRfcGFnZV90eXBlKHN0cnVjdCBwYWdlX2luZm8gKnBhZ2UsIHVuc2lnbmVkIGxvbmcgdHlwZSwK ICAgICAgICAgaWYgKCBkICYmIGlzX3B2X2RvbWFpbihkKSAmJiB1bmxpa2VseShuZWVkX2lvbW11 KGQpKSApCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICggKHggJiBQR1RfdHlwZV9tYXNrKSA9 PSBQR1Rfd3JpdGFibGVfcGFnZSApCi0gICAgICAgICAgICAgICAgaW9tbXVfcmV0ID0gaW9tbXVf dW5tYXBfcGFnZShkLCBtZm5fdG9fZ21mbihkLCBwYWdlX3RvX21mbihwYWdlKSkpOworICAgICAg ICAgICAgICAgIGlvbW11X3JldCA9IGlvbW11X3VubWFwX3BhZ2VzKGQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWZuX3RvX2dtZm4oZCwgcGFnZV90b19t Zm4ocGFnZSkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDApOwogICAgICAgICAgICAgZWxzZSBpZiAoIHR5cGUgPT0gUEdUX3dyaXRhYmxlX3BhZ2UgKQot ICAgICAgICAgICAgICAgIGlvbW11X3JldCA9IGlvbW11X21hcF9wYWdlKGQsIG1mbl90b19nbWZu KGQsIHBhZ2VfdG9fbWZuKHBhZ2UpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwYWdlX3RvX21mbihwYWdlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJT01NVUZfcmVhZGFibGV8SU9NTVVGX3dyaXRhYmxlKTsKKyAgICAg ICAgICAgICAgICBpb21tdV9yZXQgPSBpb21tdV9tYXBfcGFnZXMoZCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWZuX3RvX2dtZm4oZCwgcGFnZV90b19tZm4o cGFnZSkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdl X3RvX21mbihwYWdlKSwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgSU9NTVVGX3JlYWRhYmxlfElPTU1VRl93cml0YWJsZSk7CiAgICAgICAgIH0KICAgICB9 CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMgYi94ZW4vYXJjaC94ODYv bW0vcDJtLWVwdC5jCmluZGV4IGYzN2ExZjIuLjNhNGI2YjggMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L3g4Ni9tbS9wMm0tZXB0LmMKKysrIGIveGVuL2FyY2gveDg2L21tL3AybS1lcHQuYwpAQCAtODY5 LDI2ICs4NjksOSBAQCBvdXQ6CiAgICAgICAgIGVsc2UKICAgICAgICAgewogICAgICAgICAgICAg aWYgKCBpb21tdV9mbGFncyApCi0gICAgICAgICAgICAgICAgZm9yICggaSA9IDA7IGkgPCAoMSA8 PCBvcmRlcik7IGkrKyApCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBy YyA9IGlvbW11X21hcF9wYWdlKGQsIGdmbiArIGksIG1mbl94KG1mbikgKyBpLCBpb21tdV9mbGFn cyk7Ci0gICAgICAgICAgICAgICAgICAgIGlmICggdW5saWtlbHkocmMpICkKLSAgICAgICAgICAg ICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKCBpLS0gKQotICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8qIElmIHN0YXRlbWVudCB0byBzYXRpc2Z5IF9fbXVzdF9j aGVjay4gKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIGlvbW11X3VubWFwX3Bh Z2UocDJtLT5kb21haW4sIGdmbiArIGkpICkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29udGludWU7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJjID0gaW9t bXVfbWFwX3BhZ2VzKGQsIGdmbiwgbWZuX3gobWZuKSwgb3JkZXIsIGlvbW11X2ZsYWdzKTsKICAg ICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBmb3IgKCBpID0gMDsgaSA8ICgxIDw8IG9y ZGVyKTsgaSsrICkKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHJldCA9 IGlvbW11X3VubWFwX3BhZ2UoZCwgZ2ZuICsgaSk7Ci0gICAgICAgICAgICAgICAgICAgIGlmICgg IXJjICkKLSAgICAgICAgICAgICAgICAgICAgICAgIHJjID0gcmV0OwotICAgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgICAgICByYyA9IGlvbW11X3VubWFwX3BhZ2VzKGQsIGdmbiwgb3JkZXIp OwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0vcDJtLXB0 LmMgYi94ZW4vYXJjaC94ODYvbW0vcDJtLXB0LmMKaW5kZXggNTA3OWI1OS4uNTFmM2UxMCAxMDA2 NDQKLS0tIGEveGVuL2FyY2gveDg2L21tL3AybS1wdC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9w Mm0tcHQuYwpAQCAtNTA3LDcgKzUwNyw3IEBAIHAybV9wdF9zZXRfZW50cnkoc3RydWN0IHAybV9k b21haW4gKnAybSwgdW5zaWduZWQgbG9uZyBnZm4sIG1mbl90IG1mbiwKIHsKICAgICAvKiBYWFgg LS0gdGhpcyBtaWdodCBiZSBhYmxlIHRvIGJlIGZhc3RlciBpZmYgY3VycmVudC0+ZG9tYWluID09 IGQgKi8KICAgICB2b2lkICp0YWJsZTsKLSAgICB1bnNpZ25lZCBsb25nIGksIGdmbl9yZW1haW5k ZXIgPSBnZm47CisgICAgdW5zaWduZWQgbG9uZyBnZm5fcmVtYWluZGVyID0gZ2ZuOwogICAgIGwx X3BnZW50cnlfdCAqcDJtX2VudHJ5LCBlbnRyeV9jb250ZW50OwogICAgIC8qIEludGVybWVkaWF0 ZSB0YWJsZSB0byBmcmVlIGlmIHdlJ3JlIHJlcGxhY2luZyBpdCB3aXRoIGEgc3VwZXJwYWdlLiAq LwogICAgIGwxX3BnZW50cnlfdCBpbnRlcm1lZGlhdGVfZW50cnkgPSBsMWVfZW1wdHkoKTsKQEAg LTcxOCwyOCArNzE4LDEwIEBAIHAybV9wdF9zZXRfZW50cnkoc3RydWN0IHAybV9kb21haW4gKnAy bSwgdW5zaWduZWQgbG9uZyBnZm4sIG1mbl90IG1mbiwKICAgICAgICAgICAgICAgICBhbWRfaW9t bXVfZmx1c2hfcGFnZXMocDJtLT5kb21haW4sIGdmbiwgcGFnZV9vcmRlcik7CiAgICAgICAgIH0K ICAgICAgICAgZWxzZSBpZiAoIGlvbW11X3B0ZV9mbGFncyApCi0gICAgICAgICAgICBmb3IgKCBp ID0gMDsgaSA8ICgxVUwgPDwgcGFnZV9vcmRlcik7IGkrKyApCi0gICAgICAgICAgICB7Ci0gICAg ICAgICAgICAgICAgcmMgPSBpb21tdV9tYXBfcGFnZShwMm0tPmRvbWFpbiwgZ2ZuICsgaSwgbWZu X3gobWZuKSArIGksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpb21tdV9w dGVfZmxhZ3MpOwotICAgICAgICAgICAgICAgIGlmICggdW5saWtlbHkocmMpICkKLSAgICAgICAg ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIHdoaWxlICggaS0tICkKLSAgICAgICAgICAg ICAgICAgICAgICAgIC8qIElmIHN0YXRlbWVudCB0byBzYXRpc2Z5IF9fbXVzdF9jaGVjay4gKi8K LSAgICAgICAgICAgICAgICAgICAgICAgIGlmICggaW9tbXVfdW5tYXBfcGFnZShwMm0tPmRvbWFp biwgZ2ZuICsgaSkgKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotCi0g ICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg IH0KKyAgICAgICAgICAgIHJjID0gaW9tbXVfbWFwX3BhZ2VzKHAybS0+ZG9tYWluLCBnZm4sIG1m bl94KG1mbiksIHBhZ2Vfb3JkZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp b21tdV9wdGVfZmxhZ3MpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBmb3IgKCBpID0gMDsg aSA8ICgxVUwgPDwgcGFnZV9vcmRlcik7IGkrKyApCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg ICAgICAgaW50IHJldCA9IGlvbW11X3VubWFwX3BhZ2UocDJtLT5kb21haW4sIGdmbiArIGkpOwot Ci0gICAgICAgICAgICAgICAgaWYgKCAhcmMgKQotICAgICAgICAgICAgICAgICAgICByYyA9IHJl dDsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJjID0gaW9tbXVfdW5tYXBfcGFnZXMocDJt LT5kb21haW4sIGdmbiwgcGFnZV9vcmRlcik7CiAgICAgfQogCiAgICAgLyoKZGlmZiAtLWdpdCBh L3hlbi9hcmNoL3g4Ni9tbS9wMm0uYyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYwppbmRleCAxZDU3 ZTVjLi4xNWJhNzFkIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vcDJtLmMKKysrIGIveGVu L2FyY2gveDg2L21tL3AybS5jCkBAIC03MDUsMjAgKzcwNSw5IEBAIHAybV9yZW1vdmVfcGFnZShz dHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLCB1bnNpZ25lZCBsb25nIGdmbiwgdW5zaWduZWQgbG9uZyBt Zm4sCiAKICAgICBpZiAoICFwYWdpbmdfbW9kZV90cmFuc2xhdGUocDJtLT5kb21haW4pICkKICAg ICB7Ci0gICAgICAgIGludCByYyA9IDA7Ci0KICAgICAgICAgaWYgKCBuZWVkX2lvbW11KHAybS0+ ZG9tYWluKSApCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgKDEgPDwg cGFnZV9vcmRlcik7IGkrKyApCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaW50IHJl dCA9IGlvbW11X3VubWFwX3BhZ2UocDJtLT5kb21haW4sIG1mbiArIGkpOwotCi0gICAgICAgICAg ICAgICAgaWYgKCAhcmMgKQotICAgICAgICAgICAgICAgICAgICByYyA9IHJldDsKLSAgICAgICAg ICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiByYzsKKyAgICAgICAgICAgIHJldHVy biBpb21tdV91bm1hcF9wYWdlcyhwMm0tPmRvbWFpbiwgbWZuLCBwYWdlX29yZGVyKTsKKyAgICAg ICAgcmV0dXJuIDA7CiAgICAgfQogCiAgICAgQVNTRVJUKGdmbl9sb2NrZWRfYnlfbWUocDJtLCBn Zm4pKTsKQEAgLTc2NSwyMyArNzU0LDggQEAgZ3Vlc3RfcGh5c21hcF9hZGRfZW50cnkoc3RydWN0 IGRvbWFpbiAqZCwgZ2ZuX3QgZ2ZuLCBtZm5fdCBtZm4sCiAgICAgaWYgKCAhcGFnaW5nX21vZGVf dHJhbnNsYXRlKGQpICkKICAgICB7CiAgICAgICAgIGlmICggbmVlZF9pb21tdShkKSAmJiB0ID09 IHAybV9yYW1fcncgKQotICAgICAgICB7Ci0gICAgICAgICAgICBmb3IgKCBpID0gMDsgaSA8ICgx IDw8IHBhZ2Vfb3JkZXIpOyBpKysgKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHJj ID0gaW9tbXVfbWFwX3BhZ2UoZCwgbWZuX3gobWZuX2FkZChtZm4sIGkpKSwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG1mbl94KG1mbl9hZGQobWZuLCBpKSksCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVUZfcmVhZGFibGV8SU9NTVVGX3dyaXRh YmxlKTsKLSAgICAgICAgICAgICAgICBpZiAoIHJjICE9IDAgKQotICAgICAgICAgICAgICAgIHsK LSAgICAgICAgICAgICAgICAgICAgd2hpbGUgKCBpLS0gPiAwICkKLSAgICAgICAgICAgICAgICAg ICAgICAgIC8qIElmIHN0YXRlbWVudCB0byBzYXRpc2Z5IF9fbXVzdF9jaGVjay4gKi8KLSAgICAg ICAgICAgICAgICAgICAgICAgIGlmICggaW9tbXVfdW5tYXBfcGFnZShkLCBtZm5feChtZm5fYWRk KG1mbiwgaSkpKSApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0KLSAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIHJjOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg ICAgIH0KLSAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGlvbW11X21hcF9wYWdlcyhkLCBt Zm5feChtZm4pLCBtZm5feChtZm4pLCBwYWdlX29yZGVyLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJT01NVUZfcmVhZGFibGV8SU9NTVVGX3dyaXRhYmxlKTsKICAgICAgICAg cmV0dXJuIDA7CiAgICAgfQogCkBAIC0xMTM0LDcgKzExMDgsNyBAQCBpbnQgc2V0X2lkZW50aXR5 X3AybV9lbnRyeShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbiwKICAgICB7CiAg ICAgICAgIGlmICggIW5lZWRfaW9tbXUoZCkgKQogICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAg ICAgIHJldHVybiBpb21tdV9tYXBfcGFnZShkLCBnZm4sIGdmbiwgSU9NTVVGX3JlYWRhYmxlfElP TU1VRl93cml0YWJsZSk7CisgICAgICAgIHJldHVybiBpb21tdV9tYXBfcGFnZXMoZCwgZ2ZuLCBn Zm4sIDAsIElPTU1VRl9yZWFkYWJsZXxJT01NVUZfd3JpdGFibGUpOwogICAgIH0KIAogICAgIGdm bl9sb2NrKHAybSwgZ2ZuLCAwKTsKQEAgLTEyMjIsNyArMTE5Niw3IEBAIGludCBjbGVhcl9pZGVu dGl0eV9wMm1fZW50cnkoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm4pCiAgICAg ewogICAgICAgICBpZiAoICFuZWVkX2lvbW11KGQpICkKICAgICAgICAgICAgIHJldHVybiAwOwot ICAgICAgICByZXR1cm4gaW9tbXVfdW5tYXBfcGFnZShkLCBnZm4pOworICAgICAgICByZXR1cm4g aW9tbXVfdW5tYXBfcGFnZXMoZCwgZ2ZuLCAwKTsKICAgICB9CiAKICAgICBnZm5fbG9jayhwMm0s IGdmbiwgMCk7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYveDg2XzY0L21tLmMgYi94ZW4vYXJj aC94ODYveDg2XzY0L21tLmMKaW5kZXggMzRmMzI1MC4uMjRhYWY4OCAxMDA2NDQKLS0tIGEveGVu L2FyY2gveDg2L3g4Nl82NC9tbS5jCisrKyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvbW0uYwpAQCAt MTQ0MywxMyArMTQ0MywxNCBAQCBpbnQgbWVtb3J5X2FkZCh1bnNpZ25lZCBsb25nIHNwZm4sIHVu c2lnbmVkIGxvbmcgZXBmbiwgdW5zaWduZWQgaW50IHB4bSkKICAgICBpZiAoIGlvbW11X2VuYWJs ZWQgJiYgIWlvbW11X3Bhc3N0aHJvdWdoICYmICFuZWVkX2lvbW11KGhhcmR3YXJlX2RvbWFpbikg KQogICAgIHsKICAgICAgICAgZm9yICggaSA9IHNwZm47IGkgPCBlcGZuOyBpKysgKQotICAgICAg ICAgICAgaWYgKCBpb21tdV9tYXBfcGFnZShoYXJkd2FyZV9kb21haW4sIGksIGksIElPTU1VRl9y ZWFkYWJsZXxJT01NVUZfd3JpdGFibGUpICkKKyAgICAgICAgICAgIGlmICggaW9tbXVfbWFwX3Bh Z2VzKGhhcmR3YXJlX2RvbWFpbiwgaSwgaSwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElPTU1VRl9yZWFkYWJsZXxJT01NVUZfd3JpdGFibGUpICkKICAgICAgICAgICAgICAg ICBicmVhazsKICAgICAgICAgaWYgKCBpICE9IGVwZm4gKQogICAgICAgICB7CiAgICAgICAgICAg ICB3aGlsZSAoaS0tID4gb2xkX21heCkKICAgICAgICAgICAgICAgICAvKiBJZiBzdGF0ZW1lbnQg dG8gc2F0aXNmeSBfX211c3RfY2hlY2suICovCi0gICAgICAgICAgICAgICAgaWYgKCBpb21tdV91 bm1hcF9wYWdlKGhhcmR3YXJlX2RvbWFpbiwgaSkgKQorICAgICAgICAgICAgICAgIGlmICggaW9t bXVfdW5tYXBfcGFnZXMoaGFyZHdhcmVfZG9tYWluLCBpLCAwKSApCiAgICAgICAgICAgICAgICAg ICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAgICBnb3RvIGRlc3Ryb3lfbTJwOwpkaWZmIC0tZ2l0 IGEveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jIGIveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jCmlu ZGV4IDRmZTk1NDQuLmVjZjhmODIgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vZ3JhbnRfdGFibGUu YworKysgYi94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMKQEAgLTk2NCwxMyArOTY0LDEzIEBAIF9f Z250dGFiX21hcF9ncmFudF9yZWYoCiAgICAgICAgICAgICAgIShvbGRfcGluICYgKEdOVFBJTl9o c3R3X21hc2t8R05UUElOX2RldndfbWFzaykpICkKICAgICAgICAgewogICAgICAgICAgICAgaWYg KCAhKGtpbmQgJiBNQVBLSU5EX1dSSVRFKSApCi0gICAgICAgICAgICAgICAgZXJyID0gaW9tbXVf bWFwX3BhZ2UobGQsIGZyYW1lLCBmcmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJT01NVUZfcmVhZGFibGV8SU9NTVVGX3dyaXRhYmxlKTsKKyAgICAgICAgICAgICAg ICBlcnIgPSBpb21tdV9tYXBfcGFnZXMobGQsIGZyYW1lLCBmcmFtZSwgMCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVGX3JlYWRhYmxlfElPTU1VRl93cml0YWJs ZSk7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSBpZiAoIGFjdF9waW4gJiYgIW9sZF9waW4gKQog ICAgICAgICB7CiAgICAgICAgICAgICBpZiAoICFraW5kICkKLSAgICAgICAgICAgICAgICBlcnIg PSBpb21tdV9tYXBfcGFnZShsZCwgZnJhbWUsIGZyYW1lLCBJT01NVUZfcmVhZGFibGUpOworICAg ICAgICAgICAgICAgIGVyciA9IGlvbW11X21hcF9wYWdlcyhsZCwgZnJhbWUsIGZyYW1lLCAwLCBJ T01NVUZfcmVhZGFibGUpOwogICAgICAgICB9CiAgICAgICAgIGlmICggZXJyICkKICAgICAgICAg ewpAQCAtMTE5MCw5ICsxMTkwLDkgQEAgX19nbnR0YWJfdW5tYXBfY29tbW9uKAogCiAgICAgICAg IGtpbmQgPSBtYXBraW5kKGxndCwgcmQsIG9wLT5mcmFtZSk7CiAgICAgICAgIGlmICggIWtpbmQg KQotICAgICAgICAgICAgZXJyID0gaW9tbXVfdW5tYXBfcGFnZShsZCwgb3AtPmZyYW1lKTsKKyAg ICAgICAgICAgIGVyciA9IGlvbW11X3VubWFwX3BhZ2VzKGxkLCBvcC0+ZnJhbWUsIDApOwogICAg ICAgICBlbHNlIGlmICggIShraW5kICYgTUFQS0lORF9XUklURSkgKQotICAgICAgICAgICAgZXJy ID0gaW9tbXVfbWFwX3BhZ2UobGQsIG9wLT5mcmFtZSwgb3AtPmZyYW1lLCBJT01NVUZfcmVhZGFi bGUpOworICAgICAgICAgICAgZXJyID0gaW9tbXVfbWFwX3BhZ2VzKGxkLCBvcC0+ZnJhbWUsIG9w LT5mcmFtZSwgMCwgSU9NTVVGX3JlYWRhYmxlKTsKIAogICAgICAgICBkb3VibGVfZ3RfdW5sb2Nr KGxndCwgcmd0KTsKIApkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lv bW11X21hcC5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X21hcC5jCmluZGV4 IGZkMjMyN2QuLjg3YWI5OWMgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2Ft ZC9pb21tdV9tYXAuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfbWFw LmMKQEAgLTYzMSw4ICs2MzEsOSBAQCBzdGF0aWMgaW50IHVwZGF0ZV9wYWdpbmdfbW9kZShzdHJ1 Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbikKICAgICByZXR1cm4gMDsKIH0KIAotaW50 IGFtZF9pb21tdV9tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbiwg dW5zaWduZWQgbG9uZyBtZm4sCi0gICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBm bGFncykKK3N0YXRpYyBpbnQgX19tdXN0X2NoZWNrIGFtZF9pb21tdV9tYXBfcGFnZShzdHJ1Y3Qg ZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIG1mbiwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MpCiB7CiAgICAgYm9vbF90 IG5lZWRfZmx1c2ggPSAwOwogICAgIHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11 KGQpOwpAQCAtNzIwLDcgKzcyMSw4IEBAIG91dDoKICAgICByZXR1cm4gMDsKIH0KIAotaW50IGFt ZF9pb21tdV91bm1hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuKQor c3RhdGljIGludCBfX211c3RfY2hlY2sgYW1kX2lvbW11X3VubWFwX3BhZ2Uoc3RydWN0IGRvbWFp biAqZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln bmVkIGxvbmcgZ2ZuKQogewogICAgIHVuc2lnbmVkIGxvbmcgcHRfbWZuWzddOwogICAgIHN0cnVj dCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGQpOwpAQCAtNzcxLDYgKzc3Myw0NyBAQCBp bnQgYW1kX2lvbW11X3VubWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBn Zm4pCiAgICAgcmV0dXJuIDA7CiB9CiAKKy8qIFRPRE86IE9wdGltaXplIGJ5IHNxdWFzaGluZyBt YXBfcGFnZXMvdW5tYXBfcGFnZXMgd2l0aCBtYXBfcGFnZS91bm1hcF9wYWdlICovCitpbnQgX19t dXN0X2NoZWNrIGFtZF9pb21tdV9tYXBfcGFnZXMoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQg bG9uZyBnZm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg bG9uZyBtZm4sIHVuc2lnbmVkIGludCBvcmRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MpCit7CisgICAgdW5zaWduZWQgbG9uZyBpOwor ICAgIGludCByYyA9IDA7CisKKyAgICBmb3IgKCBpID0gMDsgaSA8ICgxVUwgPDwgb3JkZXIpOyBp KysgKQorICAgIHsKKyAgICAgICAgcmMgPSBhbWRfaW9tbXVfbWFwX3BhZ2UoZCwgZ2ZuICsgaSwg bWZuICsgaSwgZmxhZ3MpOworICAgICAgICBpZiAoIHVubGlrZWx5KHJjKSApCisgICAgICAgIHsK KyAgICAgICAgICAgIHdoaWxlICggaS0tICkKKyAgICAgICAgICAgICAgICAvKiBJZiBzdGF0ZW1l bnQgdG8gc2F0aXNmeSBfX211c3RfY2hlY2suICovCisgICAgICAgICAgICAgICAgaWYgKCBhbWRf aW9tbXVfdW5tYXBfcGFnZShkLCBnZm4gKyBpKSApCisgICAgICAgICAgICAgICAgICAgIGNvbnRp bnVlOworCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVy biByYzsKK30KKworaW50IF9fbXVzdF9jaGVjayBhbWRfaW9tbXVfdW5tYXBfcGFnZXMoc3RydWN0 IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm4sCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgb3JkZXIpCit7CisgICAgdW5zaWduZWQgbG9uZyBp OworICAgIGludCByYyA9IDA7CisKKyAgICBmb3IgKCBpID0gMDsgaSA8ICgxVUwgPDwgb3JkZXIp OyBpKysgKQorICAgIHsKKyAgICAgICAgaW50IHJldCA9IGFtZF9pb21tdV91bm1hcF9wYWdlKGQs IGdmbiArIGkpOworICAgICAgICBpZiAoICFyYyApCisgICAgICAgICAgICByYyA9IHJldDsKKyAg ICB9CisKKyAgICByZXR1cm4gcmM7Cit9CisKIGludCBhbWRfaW9tbXVfcmVzZXJ2ZV9kb21haW5f dW5pdHlfbWFwKHN0cnVjdCBkb21haW4gKmRvbWFpbiwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHU2NCBwaHlzX2FkZHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHNpemUsIGludCBpdywgaW50IGlyKQpkaWZmIC0t Z2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL3BjaV9hbWRfaW9tbXUuYyBiL3hlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9wY2lfYW1kX2lvbW11LmMKaW5kZXggOGMyNTExMC4uZmU3 NDRkMiAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL3BjaV9hbWRfaW9t bXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9pb21tdS5jCkBA IC0yOTYsOCArMjk2LDggQEAgc3RhdGljIHZvaWQgX19od2RvbV9pbml0IGFtZF9pb21tdV9od2Rv bV9pbml0KHN0cnVjdCBkb21haW4gKmQpCiAgICAgICAgICAgICAgKi8KICAgICAgICAgICAgIGlm ICggbWZuX3ZhbGlkKF9tZm4ocGZuKSkgKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAg IGludCByZXQgPSBhbWRfaW9tbXVfbWFwX3BhZ2UoZCwgcGZuLCBwZm4sCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVUZfcmVhZGFibGV8SU9NTVVGX3dy aXRhYmxlKTsKKyAgICAgICAgICAgICAgICBpbnQgcmV0ID0gYW1kX2lvbW11X21hcF9wYWdlcyhk LCBwZm4sIHBmbiwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJT01NVUZfcmVhZGFibGV8SU9NTVVGX3dyaXRhYmxlKTsKIAogICAgICAgICAgICAgICAg IGlmICggIXJjICkKICAgICAgICAgICAgICAgICAgICAgcmMgPSByZXQ7CkBAIC02MjAsOCArNjIw LDggQEAgY29uc3Qgc3RydWN0IGlvbW11X29wcyBhbWRfaW9tbXVfb3BzID0gewogICAgIC5yZW1v dmVfZGV2aWNlID0gYW1kX2lvbW11X3JlbW92ZV9kZXZpY2UsCiAgICAgLmFzc2lnbl9kZXZpY2Ug ID0gYW1kX2lvbW11X2Fzc2lnbl9kZXZpY2UsCiAgICAgLnRlYXJkb3duID0gYW1kX2lvbW11X2Rv bWFpbl9kZXN0cm95LAotICAgIC5tYXBfcGFnZSA9IGFtZF9pb21tdV9tYXBfcGFnZSwKLSAgICAu dW5tYXBfcGFnZSA9IGFtZF9pb21tdV91bm1hcF9wYWdlLAorICAgIC5tYXBfcGFnZXMgPSBhbWRf aW9tbXVfbWFwX3BhZ2VzLAorICAgIC51bm1hcF9wYWdlcyA9IGFtZF9pb21tdV91bm1hcF9wYWdl cywKICAgICAuZnJlZV9wYWdlX3RhYmxlID0gZGVhbGxvY2F0ZV9wYWdlX3RhYmxlLAogICAgIC5y ZWFzc2lnbl9kZXZpY2UgPSByZWFzc2lnbl9kZXZpY2UsCiAgICAgLmdldF9kZXZpY2VfZ3JvdXBf aWQgPSBhbWRfaW9tbXVfZ3JvdXBfaWQsCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhy b3VnaC9hcm0vc21tdS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL3NtbXUuYwppbmRl eCAxMDgyZmNmLi41MjdhNTkyIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9h cm0vc21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9zbW11LmMKQEAgLTI3 ODAsNiArMjc4MCw0MyBAQCBzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBhcm1fc21tdV91bm1hcF9w YWdlKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuKQogCXJldHVybiAwOwogfQog CisvKiBUT0RPOiBPcHRpbWl6ZSBieSBzcXVhc2hpbmcgbWFwX3BhZ2VzL3VubWFwX3BhZ2VzIHdp dGggbWFwX3BhZ2UvdW5tYXBfcGFnZSAqLworc3RhdGljIGludCBfX211c3RfY2hlY2sgYXJtX3Nt bXVfbWFwX3BhZ2VzKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLAorCQl1bnNp Z25lZCBsb25nIG1mbiwgdW5zaWduZWQgaW50IG9yZGVyLCB1bnNpZ25lZCBpbnQgZmxhZ3MpCit7 CisJdW5zaWduZWQgbG9uZyBpOworCWludCByYyA9IDA7CisKKwlmb3IgKGkgPSAwOyBpIDwgKDFV TCA8PCBvcmRlcik7IGkrKykgeworCQlyYyA9IGFybV9zbW11X21hcF9wYWdlKGQsIGdmbiArIGks IG1mbiArIGksIGZsYWdzKTsKKwkJaWYgKHVubGlrZWx5KHJjKSkgeworCQkJd2hpbGUgKGktLSkK KwkJCQkvKiBJZiBzdGF0ZW1lbnQgdG8gc2F0aXNmeSBfX211c3RfY2hlY2suICovCisJCQkJaWYg KGFybV9zbW11X3VubWFwX3BhZ2UoZCwgZ2ZuICsgaSkpCisJCQkJCWNvbnRpbnVlOworCisJCQli cmVhazsKKwkJfQorCX0KKworCXJldHVybiByYzsKK30KKworc3RhdGljIGludCBfX211c3RfY2hl Y2sgYXJtX3NtbXVfdW5tYXBfcGFnZXMoc3RydWN0IGRvbWFpbiAqZCwKKwkJdW5zaWduZWQgbG9u ZyBnZm4sIHVuc2lnbmVkIGludCBvcmRlcikKK3sKKwl1bnNpZ25lZCBsb25nIGk7CisJaW50IHJj ID0gMDsKKworCWZvciAoaSA9IDA7IGkgPCAoMVVMIDw8IG9yZGVyKTsgaSsrKSB7CisJCWludCBy ZXQgPSBhcm1fc21tdV91bm1hcF9wYWdlKGQsIGdmbiArIGkpOworCQlpZiAoIXJjKQorCQkJcmMg PSByZXQ7CisJfQorCisJcmV0dXJuIHJjOworfQorCiBzdGF0aWMgY29uc3Qgc3RydWN0IGlvbW11 X29wcyBhcm1fc21tdV9pb21tdV9vcHMgPSB7CiAgICAgLmluaXQgPSBhcm1fc21tdV9pb21tdV9k b21haW5faW5pdCwKICAgICAuaHdkb21faW5pdCA9IGFybV9zbW11X2lvbW11X2h3ZG9tX2luaXQs CkBAIC0yNzg4LDggKzI4MjUsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGlvbW11X29wcyBhcm1f c21tdV9pb21tdV9vcHMgPSB7CiAgICAgLmlvdGxiX2ZsdXNoX2FsbCA9IGFybV9zbW11X2lvdGxi X2ZsdXNoX2FsbCwKICAgICAuYXNzaWduX2RldmljZSA9IGFybV9zbW11X2Fzc2lnbl9kZXYsCiAg ICAgLnJlYXNzaWduX2RldmljZSA9IGFybV9zbW11X3JlYXNzaWduX2RldiwKLSAgICAubWFwX3Bh Z2UgPSBhcm1fc21tdV9tYXBfcGFnZSwKLSAgICAudW5tYXBfcGFnZSA9IGFybV9zbW11X3VubWFw X3BhZ2UsCisgICAgLm1hcF9wYWdlcyA9IGFybV9zbW11X21hcF9wYWdlcywKKyAgICAudW5tYXBf cGFnZXMgPSBhcm1fc21tdV91bm1hcF9wYWdlcywKIH07CiAKIHN0YXRpYyBfX2luaXQgY29uc3Qg c3RydWN0IGFybV9zbW11X2RldmljZSAqZmluZF9zbW11KGNvbnN0IHN0cnVjdCBkZXZpY2UgKmRl dikKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMgYi94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC9pb21tdS5jCmluZGV4IDVlODE4MTMuLjNlOWU0YzMgMTAwNjQ0Ci0t LSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFz c3Rocm91Z2gvaW9tbXUuYwpAQCAtMTg4LDcgKzE4OCw3IEBAIHZvaWQgX19od2RvbV9pbml0IGlv bW11X2h3ZG9tX2luaXQoc3RydWN0IGRvbWFpbiAqZCkKICAgICAgICAgICAgICAgICAgID09IFBH VF93cml0YWJsZV9wYWdlKSApCiAgICAgICAgICAgICAgICAgbWFwcGluZyB8PSBJT01NVUZfd3Jp dGFibGU7CiAKLSAgICAgICAgICAgIHJldCA9IGhkLT5wbGF0Zm9ybV9vcHMtPm1hcF9wYWdlKGQs IGdmbiwgbWZuLCBtYXBwaW5nKTsKKyAgICAgICAgICAgIHJldCA9IGhkLT5wbGF0Zm9ybV9vcHMt Pm1hcF9wYWdlcyhkLCBnZm4sIG1mbiwgMCwgbWFwcGluZyk7CiAgICAgICAgICAgICBpZiAoICFy YyApCiAgICAgICAgICAgICAgICAgcmMgPSByZXQ7CiAKQEAgLTI0OSw4ICsyNDksOCBAQCB2b2lk IGlvbW11X2RvbWFpbl9kZXN0cm95KHN0cnVjdCBkb21haW4gKmQpCiAgICAgYXJjaF9pb21tdV9k b21haW5fZGVzdHJveShkKTsKIH0KIAotaW50IGlvbW11X21hcF9wYWdlKHN0cnVjdCBkb21haW4g KmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLCB1bnNpZ25lZCBsb25nIG1mbiwKLSAgICAgICAgICAgICAg ICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MpCitpbnQgaW9tbXVfbWFwX3BhZ2VzKHN0cnVjdCBkb21h aW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLCB1bnNpZ25lZCBsb25nIG1mbiwKKyAgICAgICAgICAg ICAgICAgICAgdW5zaWduZWQgaW50IG9yZGVyLCB1bnNpZ25lZCBpbnQgZmxhZ3MpCiB7CiAgICAg Y29uc3Qgc3RydWN0IGRvbWFpbl9pb21tdSAqaGQgPSBkb21faW9tbXUoZCk7CiAgICAgaW50IHJj OwpAQCAtMjU4LDEzICsyNTgsMTMgQEAgaW50IGlvbW11X21hcF9wYWdlKHN0cnVjdCBkb21haW4g KmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLCB1bnNpZ25lZCBsb25nIG1mbiwKICAgICBpZiAoICFpb21t dV9lbmFibGVkIHx8ICFoZC0+cGxhdGZvcm1fb3BzICkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAg ICByYyA9IGhkLT5wbGF0Zm9ybV9vcHMtPm1hcF9wYWdlKGQsIGdmbiwgbWZuLCBmbGFncyk7Cisg ICAgcmMgPSBoZC0+cGxhdGZvcm1fb3BzLT5tYXBfcGFnZXMoZCwgZ2ZuLCBtZm4sIG9yZGVyLCBm bGFncyk7CiAgICAgaWYgKCB1bmxpa2VseShyYykgKQogICAgIHsKICAgICAgICAgaWYgKCAhZC0+ aXNfc2h1dHRpbmdfZG93biAmJiBwcmludGtfcmF0ZWxpbWl0KCkgKQogICAgICAgICAgICAgcHJp bnRrKFhFTkxPR19FUlIKLSAgICAgICAgICAgICAgICAgICAiZCVkOiBJT01NVSBtYXBwaW5nIGdm biAlI2x4IHRvIG1mbiAlI2x4IGZhaWxlZDogJWRcbiIsCi0gICAgICAgICAgICAgICAgICAgZC0+ ZG9tYWluX2lkLCBnZm4sIG1mbiwgcmMpOworICAgICAgICAgICAgICAgICAgICJkJWQ6IElPTU1V IG1hcHBpbmcgZ2ZuICUjbHggdG8gbWZuICUjbHggb3JkZXIgJXUgZmFpbGVkOiAlZFxuIiwKKyAg ICAgICAgICAgICAgICAgICBkLT5kb21haW5faWQsIGdmbiwgbWZuLCBvcmRlciwgcmMpOwogCiAg ICAgICAgIGlmICggIWlzX2hhcmR3YXJlX2RvbWFpbihkKSApCiAgICAgICAgICAgICBkb21haW5f Y3Jhc2goZCk7CkBAIC0yNzMsNyArMjczLDggQEAgaW50IGlvbW11X21hcF9wYWdlKHN0cnVjdCBk b21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLCB1bnNpZ25lZCBsb25nIG1mbiwKICAgICByZXR1 cm4gcmM7CiB9CiAKLWludCBpb21tdV91bm1hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIHVuc2ln bmVkIGxvbmcgZ2ZuKQoraW50IGlvbW11X3VubWFwX3BhZ2VzKHN0cnVjdCBkb21haW4gKmQsIHVu c2lnbmVkIGxvbmcgZ2ZuLAorICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBvcmRl cikKIHsKICAgICBjb25zdCBzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCA9IGRvbV9pb21tdShkKTsK ICAgICBpbnQgcmM7CkBAIC0yODEsMTMgKzI4MiwxMyBAQCBpbnQgaW9tbXVfdW5tYXBfcGFnZShz dHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbikKICAgICBpZiAoICFpb21tdV9lbmFi bGVkIHx8ICFoZC0+cGxhdGZvcm1fb3BzICkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICByYyA9 IGhkLT5wbGF0Zm9ybV9vcHMtPnVubWFwX3BhZ2UoZCwgZ2ZuKTsKKyAgICByYyA9IGhkLT5wbGF0 Zm9ybV9vcHMtPnVubWFwX3BhZ2VzKGQsIGdmbiwgb3JkZXIpOwogICAgIGlmICggdW5saWtlbHko cmMpICkKICAgICB7CiAgICAgICAgIGlmICggIWQtPmlzX3NodXR0aW5nX2Rvd24gJiYgcHJpbnRr X3JhdGVsaW1pdCgpICkKICAgICAgICAgICAgIHByaW50ayhYRU5MT0dfRVJSCi0gICAgICAgICAg ICAgICAgICAgImQlZDogSU9NTVUgdW5tYXBwaW5nIGdmbiAlI2x4IGZhaWxlZDogJWRcbiIsCi0g ICAgICAgICAgICAgICAgICAgZC0+ZG9tYWluX2lkLCBnZm4sIHJjKTsKKyAgICAgICAgICAgICAg ICAgICAiZCVkOiBJT01NVSB1bm1hcHBpbmcgZ2ZuICUjbHggb3JkZXIgJXUgZmFpbGVkOiAlZFxu IiwKKyAgICAgICAgICAgICAgICAgICBkLT5kb21haW5faWQsIGdmbiwgb3JkZXIsIHJjKTsKIAog ICAgICAgICBpZiAoICFpc19oYXJkd2FyZV9kb21haW4oZCkgKQogICAgICAgICAgICAgZG9tYWlu X2NyYXNoKGQpOwpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11 LmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYwppbmRleCBhNWM2MWM2Li42 YzdmNGM2IDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYwor KysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYwpAQCAtMTgxNiw2ICsxODE2 LDUwIEBAIHN0YXRpYyBpbnQgX19tdXN0X2NoZWNrIGludGVsX2lvbW11X3VubWFwX3BhZ2Uoc3Ry dWN0IGRvbWFpbiAqZCwKICAgICByZXR1cm4gZG1hX3B0ZV9jbGVhcl9vbmUoZCwgKHBhZGRyX3Qp Z2ZuIDw8IFBBR0VfU0hJRlRfNEspOwogfQogCisvKiBUT0RPOiBPcHRpbWl6ZSBieSBzcXVhc2hp bmcgbWFwX3BhZ2VzL3VubWFwX3BhZ2VzIHdpdGggbWFwX3BhZ2UvdW5tYXBfcGFnZSAqLworc3Rh dGljIGludCBfX211c3RfY2hlY2sgaW50ZWxfaW9tbXVfbWFwX3BhZ2VzKHN0cnVjdCBkb21haW4g KmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu ZWQgbG9uZyBnZm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdW5zaWduZWQgbG9uZyBtZm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdW5zaWduZWQgaW50IG9yZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBmbGFncykKK3sKKyAgICB1bnNpZ25l ZCBsb25nIGk7CisgICAgaW50IHJjID0gMDsKKworICAgIGZvciAoIGkgPSAwOyBpIDwgKDFVTCA8 PCBvcmRlcik7IGkrKyApCisgICAgeworICAgICAgICByYyA9IGludGVsX2lvbW11X21hcF9wYWdl KGQsIGdmbiArIGksIG1mbiArIGksIGZsYWdzKTsKKyAgICAgICAgaWYgKCB1bmxpa2VseShyYykg KQorICAgICAgICB7CisgICAgICAgICAgICB3aGlsZSAoIGktLSApCisgICAgICAgICAgICAgICAg LyogSWYgc3RhdGVtZW50IHRvIHNhdGlzZnkgX19tdXN0X2NoZWNrLiAqLworICAgICAgICAgICAg ICAgIGlmICggaW50ZWxfaW9tbXVfdW5tYXBfcGFnZShkLCBnZm4gKyBpKSApCisgICAgICAgICAg ICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAg IH0KKworICAgIHJldHVybiByYzsKK30KKworc3RhdGljIGludCBfX211c3RfY2hlY2sgaW50ZWxf aW9tbXVfdW5tYXBfcGFnZXMoc3RydWN0IGRvbWFpbiAqZCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZ2ZuLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG9yZGVy KQoreworICAgIHVuc2lnbmVkIGxvbmcgaTsKKyAgICBpbnQgcmMgPSAwOworCisgICAgZm9yICgg aSA9IDA7IGkgPCAoMVVMIDw8IG9yZGVyKTsgaSsrICkKKyAgICB7CisgICAgICAgIGludCByZXQg PSBpbnRlbF9pb21tdV91bm1hcF9wYWdlKGQsIGdmbiArIGkpOworICAgICAgICBpZiAoICFyYyAp CisgICAgICAgICAgICByYyA9IHJldDsKKyAgICB9CisKKyAgICByZXR1cm4gcmM7Cit9CisKIGlu dCBpb21tdV9wdGVfZmx1c2goc3RydWN0IGRvbWFpbiAqZCwgdTY0IGdmbiwgdTY0ICpwdGUsCiAg ICAgICAgICAgICAgICAgICAgIGludCBvcmRlciwgaW50IHByZXNlbnQpCiB7CkBAIC0yNjM5LDgg KzI2ODMsOCBAQCBjb25zdCBzdHJ1Y3QgaW9tbXVfb3BzIGludGVsX2lvbW11X29wcyA9IHsKICAg ICAucmVtb3ZlX2RldmljZSA9IGludGVsX2lvbW11X3JlbW92ZV9kZXZpY2UsCiAgICAgLmFzc2ln bl9kZXZpY2UgID0gaW50ZWxfaW9tbXVfYXNzaWduX2RldmljZSwKICAgICAudGVhcmRvd24gPSBp b21tdV9kb21haW5fdGVhcmRvd24sCi0gICAgLm1hcF9wYWdlID0gaW50ZWxfaW9tbXVfbWFwX3Bh Z2UsCi0gICAgLnVubWFwX3BhZ2UgPSBpbnRlbF9pb21tdV91bm1hcF9wYWdlLAorICAgIC5tYXBf cGFnZXMgPSBpbnRlbF9pb21tdV9tYXBfcGFnZXMsCisgICAgLnVubWFwX3BhZ2VzID0gaW50ZWxf aW9tbXVfdW5tYXBfcGFnZXMsCiAgICAgLmZyZWVfcGFnZV90YWJsZSA9IGlvbW11X2ZyZWVfcGFn ZV90YWJsZSwKICAgICAucmVhc3NpZ25fZGV2aWNlID0gcmVhc3NpZ25fZGV2aWNlX293bmVyc2hp cCwKICAgICAuZ2V0X2RldmljZV9ncm91cF9pZCA9IGludGVsX2lvbW11X2dyb3VwX2lkLApkaWZm IC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3g4Ni92dGQuYyBiL3hlbi9kcml2 ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94ODYvdnRkLmMKaW5kZXggODhhNjBiMy4uNjJhNmVlNiAxMDA2 NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3g4Ni92dGQuYworKysgYi94ZW4v ZHJpdmVycy9wYXNzdGhyb3VnaC92dGQveDg2L3Z0ZC5jCkBAIC0xNDMsOCArMTQzLDggQEAgdm9p ZCBfX2h3ZG9tX2luaXQgdnRkX3NldF9od2RvbV9tYXBwaW5nKHN0cnVjdCBkb21haW4gKmQpCiAg ICAgICAgIHRtcCA9IDEgPDwgKFBBR0VfU0hJRlQgLSBQQUdFX1NISUZUXzRLKTsKICAgICAgICAg Zm9yICggaiA9IDA7IGogPCB0bXA7IGorKyApCiAgICAgICAgIHsKLSAgICAgICAgICAgIGludCBy ZXQgPSBpb21tdV9tYXBfcGFnZShkLCBwZm4gKiB0bXAgKyBqLCBwZm4gKiB0bXAgKyBqLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VRl9yZWFkYWJsZXxJT01NVUZf d3JpdGFibGUpOworICAgICAgICAgICAgaW50IHJldCA9IGlvbW11X21hcF9wYWdlcyhkLCBwZm4g KiB0bXAgKyBqLCBwZm4gKiB0bXAgKyBqLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJT01NVUZfcmVhZGFibGV8SU9NTVVGX3dyaXRhYmxlKTsKIAogICAgICAgICAg ICAgaWYgKCAhcmMgKQogICAgICAgICAgICAgICAgcmMgPSByZXQ7CmRpZmYgLS1naXQgYS94ZW4v ZHJpdmVycy9wYXNzdGhyb3VnaC94ODYvaW9tbXUuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L3g4Ni9pb21tdS5jCmluZGV4IDAyNTM4MjMuLjk3M2I3MmYgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2 ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L3g4Ni9pb21tdS5jCkBAIC02NSw5ICs2NSw5IEBAIGludCBhcmNoX2lvbW11X3BvcHVsYXRlX3Bh Z2VfdGFibGUoc3RydWN0IGRvbWFpbiAqZCkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg ICBBU1NFUlQoIShnZm4gPj4gREVGQVVMVF9ET01BSU5fQUREUkVTU19XSURUSCkpOwogICAgICAg ICAgICAgICAgIEJVR19PTihTSEFSRURfTTJQKGdmbikpOwotICAgICAgICAgICAgICAgIHJjID0g aGQtPnBsYXRmb3JtX29wcy0+bWFwX3BhZ2UoZCwgZ2ZuLCBtZm4sCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVUZfcmVhZGFibGUgfAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVGX3dyaXRhYmxl KTsKKyAgICAgICAgICAgICAgICByYyA9IGhkLT5wbGF0Zm9ybV9vcHMtPm1hcF9wYWdlcyhkLCBn Zm4sIG1mbiwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJT01NVUZfcmVhZGFibGUgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElPTU1VRl93cml0YWJsZSk7CiAgICAgICAgICAgICB9CiAgICAgICAg ICAgICBpZiAoIHJjICkKICAgICAgICAgICAgIHsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2Fz bS14ODYvaHZtL3N2bS9hbWQtaW9tbXUtcHJvdG8uaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZt L3N2bS9hbWQtaW9tbXUtcHJvdG8uaAppbmRleCA5OWJjMjFjLi44ZjQ0NDg5IDEwMDY0NAotLS0g YS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9zdm0vYW1kLWlvbW11LXByb3RvLmgKKysrIGIveGVu L2luY2x1ZGUvYXNtLXg4Ni9odm0vc3ZtL2FtZC1pb21tdS1wcm90by5oCkBAIC01Miw5ICs1Miwx MSBAQCBpbnQgYW1kX2lvbW11X2luaXQodm9pZCk7CiBpbnQgYW1kX2lvbW11X3VwZGF0ZV9pdnJz X21hcHBpbmdfYWNwaSh2b2lkKTsKIAogLyogbWFwcGluZyBmdW5jdGlvbnMgKi8KLWludCBfX211 c3RfY2hlY2sgYW1kX2lvbW11X21hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxv bmcgZ2ZuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9u ZyBtZm4sIHVuc2lnbmVkIGludCBmbGFncyk7Ci1pbnQgX19tdXN0X2NoZWNrIGFtZF9pb21tdV91 bm1hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuKTsKK2ludCBfX211 c3RfY2hlY2sgYW1kX2lvbW11X21hcF9wYWdlcyhzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBs b25nIGdmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBs b25nIG1mbiwgdW5zaWduZWQgaW50IG9yZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVuc2lnbmVkIGludCBmbGFncyk7CitpbnQgX19tdXN0X2NoZWNrIGFtZF9pb21t dV91bm1hcF9wYWdlcyhzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbiwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBvcmRlcik7CiB1 NjQgYW1kX2lvbW11X2dldF9uZXh0X3RhYmxlX2Zyb21fcHRlKHUzMiAqZW50cnkpOwogaW50IF9f bXVzdF9jaGVjayBhbWRfaW9tbXVfYWxsb2Nfcm9vdChzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCk7 CiBpbnQgYW1kX2lvbW11X3Jlc2VydmVfZG9tYWluX3VuaXR5X21hcChzdHJ1Y3QgZG9tYWluICpk b21haW4sCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaCBiL3hlbi9pbmNsdWRl L3hlbi9pb21tdS5oCmluZGV4IDU4MDNlM2YuLjMyOTc5OTggMTAwNjQ0Ci0tLSBhL3hlbi9pbmNs dWRlL3hlbi9pb21tdS5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9pb21tdS5oCkBAIC03MSwxNCAr NzEsMTYgQEAgaW50IGlvbW11X2NvbnN0cnVjdChzdHJ1Y3QgZG9tYWluICpkKTsKIC8qIEZ1bmN0 aW9uIHVzZWQgaW50ZXJuYWxseSwgdXNlIGlvbW11X2RvbWFpbl9kZXN0cm95ICovCiB2b2lkIGlv bW11X3RlYXJkb3duKHN0cnVjdCBkb21haW4gKmQpOwogCi0vKiBpb21tdV9tYXBfcGFnZSgpIHRh a2VzIGZsYWdzIHRvIGRpcmVjdCB0aGUgbWFwcGluZyBvcGVyYXRpb24uICovCisvKiBpb21tdV9t YXBfcGFnZXMoKSB0YWtlcyBmbGFncyB0byBkaXJlY3QgdGhlIG1hcHBpbmcgb3BlcmF0aW9uLiAq LwogI2RlZmluZSBfSU9NTVVGX3JlYWRhYmxlIDAKICNkZWZpbmUgSU9NTVVGX3JlYWRhYmxlICAo MXU8PF9JT01NVUZfcmVhZGFibGUpCiAjZGVmaW5lIF9JT01NVUZfd3JpdGFibGUgMQogI2RlZmlu ZSBJT01NVUZfd3JpdGFibGUgICgxdTw8X0lPTU1VRl93cml0YWJsZSkKLWludCBfX211c3RfY2hl Y2sgaW9tbXVfbWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm4sCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbWZuLCB1bnNpZ25l ZCBpbnQgZmxhZ3MpOwotaW50IF9fbXVzdF9jaGVjayBpb21tdV91bm1hcF9wYWdlKHN0cnVjdCBk b21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuKTsKK2ludCBfX211c3RfY2hlY2sgaW9tbXVfbWFw X3BhZ2VzKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBtZm4sIHVuc2lnbmVkIGludCBvcmRl ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBmbGFncyk7 CitpbnQgX19tdXN0X2NoZWNrIGlvbW11X3VubWFwX3BhZ2VzKHN0cnVjdCBkb21haW4gKmQsIHVu c2lnbmVkIGxvbmcgZ2ZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp Z25lZCBpbnQgb3JkZXIpOwogCiBlbnVtIGlvbW11X2ZlYXR1cmUKIHsKQEAgLTE2OCw5ICsxNzAs MTEgQEAgc3RydWN0IGlvbW11X29wcyB7CiAjZW5kaWYgLyogSEFTX1BDSSAqLwogCiAgICAgdm9p ZCAoKnRlYXJkb3duKShzdHJ1Y3QgZG9tYWluICpkKTsKLSAgICBpbnQgX19tdXN0X2NoZWNrICgq bWFwX3BhZ2UpKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBtZm4sIHVuc2lnbmVkIGludCBm bGFncyk7Ci0gICAgaW50IF9fbXVzdF9jaGVjayAoKnVubWFwX3BhZ2UpKHN0cnVjdCBkb21haW4g KmQsIHVuc2lnbmVkIGxvbmcgZ2ZuKTsKKyAgICBpbnQgX19tdXN0X2NoZWNrICgqbWFwX3BhZ2Vz KShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbiwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIG1mbiwgdW5zaWduZWQgaW50IG9yZGVyLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBmbGFncyk7Cisg ICAgaW50IF9fbXVzdF9jaGVjayAoKnVubWFwX3BhZ2VzKShzdHJ1Y3QgZG9tYWluICpkLCB1bnNp Z25lZCBsb25nIGdmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln bmVkIGludCBvcmRlcik7CiAgICAgdm9pZCAoKmZyZWVfcGFnZV90YWJsZSkoc3RydWN0IHBhZ2Vf aW5mbyAqKTsKICNpZmRlZiBDT05GSUdfWDg2CiAgICAgdm9pZCAoKnVwZGF0ZV9pcmVfZnJvbV9h cGljKSh1bnNpZ25lZCBpbnQgYXBpYywgdW5zaWduZWQgaW50IHJlZywgdW5zaWduZWQgaW50IHZh bHVlKTsKQEAgLTIxMyw3ICsyMTcsNyBAQCB2b2lkIGlvbW11X2Rldl9pb3RsYl9mbHVzaF90aW1l b3V0KHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBwY2lfZGV2ICpwZGV2KTsKICAqIFRoZSBwdXJw b3NlIG9mIHRoZSBpb21tdV9kb250X2ZsdXNoX2lvdGxiIG9wdGlvbmFsIGNwdSBmbGFnIGlzIHRv CiAgKiBhdm9pZCB1bmVjZXNzYXJ5IGlvdGxiX2ZsdXNoIGluIHRoZSBsb3cgbGV2ZWwgSU9NTVUg Y29kZS4KICAqCi0gKiBpb21tdV9tYXBfcGFnZS9pb21tdV91bm1hcF9wYWdlIG11c3QgZmx1c2gg dGhlIGlvdGxiIGJ1dCBzb21ldGhpbWVzCisgKiBpb21tdV9tYXBfcGFnZXMvaW9tbXVfdW5tYXBf cGFnZXMgbXVzdCBmbHVzaCB0aGUgaW90bGIgYnV0IHNvbWV0aGltZXMKICAqIHRoaXMgb3BlcmF0 aW9uIGNhbiBiZSByZWFsbHkgZXhwZW5zaXZlLiBUaGlzIGZsYWcgd2lsbCBiZSBzZXQgYnkgdGhl CiAgKiBjYWxsZXIgdG8gbm90aWZ5IHRoZSBsb3cgbGV2ZWwgSU9NTVUgY29kZSB0byBhdm9pZCB0 aGUgaW90bGIgZmx1c2hlcy4KICAqIGlvbW11X2lvdGxiX2ZsdXNoL2lvbW11X2lvdGxiX2ZsdXNo X2FsbCB3aWxsIGJlIGV4cGxpY2l0bHkgY2FsbGVkIGJ5Ci0tIAoyLjcuNAoKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxp c3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZl bAo=