From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 1/2] x86/mm: Override mfn_to_page() and page_to_mfn() to use mfn_t Date: Fri, 18 Aug 2017 11:27:26 +0100 Message-ID: <1503052047-14722-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: George Dunlap , Andrew Cooper , Wei Liu , Jan Beulich , Tim Deegan List-Id: xen-devel@lists.xenproject.org VG8gYXZvaWQgYnJlYWtpbmcgdGhlIGJ1aWxkIGVsc2V3aGVyZSwgdGhlIGx7MS4uNH1lX3tmcm9t LGdldH1fcGFnZSgpIG1hY3JvcwphcmUgc3dpdGNoZWQgdG8gdXNpbmcgX19tZm5fdG9fcGFnZSgp IGFuZCBfX3BhZ2VfdG9fbWZuKCkuCgpNb3N0IGNoYW5nZXMgYXJlIHdyYXBwaW5nIG9yIHJlbW92 aW5nIF9tZm4oKS9tZm5feCgpIGZyb20gZXhpc3RpbmcgY2FsbHNpdGVzLgoKSG93ZXZlciwge2Fs bG9jLGZyZWV9X2wxX3RhYmxlKCkgYXJlIHN3aXRjaGVkIHRvIHVzaW5nIF9fbWFwX2RvbWFpbl9w YWdlKCksIGFzCnRoZWlyIHBmbiBwYXJhbWV0ZXJzIGFyZSBvdGhlcndpc2UgdW51c2VkLiAgZ2V0 X3BhZ2UoKSBoYXMgb25lIHBmbi0+bWZuCmNvcnJlY3Rpb24gaW4gYSBwcmludGsoKSwgYW5kIF9f Z2V0X3BhZ2VfdHlwZSgpJ3MgSU9NTVUgaGFuZGxpbmcgaGFzIGl0cyBnZm4KY2FsY3VsYXRpb24g YnJva2VuIG91dCBmb3IgY2xhcml0eS4KCk5vIGZ1bmN0aW9uYWwgY2hhbmdlLgoKU2lnbmVkLW9m Zi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KLS0tCkNDOiBK YW4gQmV1bGljaCA8SkJldWxpY2hAc3VzZS5jb20+CkNDOiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRy aXguY29tPgpDQzogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBldS5jaXRyaXguY29tPgpD QzogVGltIERlZWdhbiA8dGltQHhlbi5vcmc+Ci0tLQogeGVuL2FyY2gveDg2L21tLmMgICAgICAg ICAgfCAxNTEgKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiB4 ZW4vaW5jbHVkZS9hc20teDg2L3BhZ2UuaCB8ICAxNiArKy0tLQogMiBmaWxlcyBjaGFuZ2VkLCA4 OCBpbnNlcnRpb25zKCspLCA3OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94 ODYvbW0uYyBiL3hlbi9hcmNoL3g4Ni9tbS5jCmluZGV4IDMxZmU4YTEuLmU4NjIzODAgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS5jCkBAIC0xMjMs NiArMTIzLDEyIEBACiAjaW5jbHVkZSA8YXNtL2lvX2FwaWMuaD4KICNpbmNsdWRlIDxhc20vcGNp Lmg+CiAKKy8qIE92ZXJyaWRlIG1hY3JvcyBmcm9tIGFzbS9tbS5oIHRvIG1ha2UgdGhlbSB3b3Jr IHdpdGggbWZuX3QgKi8KKyN1bmRlZiBtZm5fdG9fcGFnZQorI2RlZmluZSBtZm5fdG9fcGFnZSht Zm4pIF9fbWZuX3RvX3BhZ2UobWZuX3gobWZuKSkKKyN1bmRlZiBwYWdlX3RvX21mbgorI2RlZmlu ZSBwYWdlX3RvX21mbihwZykgX21mbihfX3BhZ2VfdG9fbWZuKHBnKSkKKwogLyogTWFwcGluZyBv ZiB0aGUgZml4bWFwIHNwYWNlIG5lZWRlZCBlYXJseS4gKi8KIGwxX3BnZW50cnlfdCBfX3NlY3Rp b24oIi5ic3MucGFnZV9hbGlnbmVkIikgX19hbGlnbmVkKFBBR0VfU0laRSkKICAgICBsMV9maXht YXBbTDFfUEFHRVRBQkxFX0VOVFJJRVNdOwpAQCAtMjgyLDcgKzI4OCw4IEBAIHZvaWQgX19pbml0 IGFyY2hfaW5pdF9tZW1vcnkodm9pZCkKIAogICAgIC8qIEZpcnN0IDFNQiBvZiBSQU0gaXMgaGlz dG9yaWNhbGx5IG1hcmtlZCBhcyBJL08uICovCiAgICAgZm9yICggaSA9IDA7IGkgPCAweDEwMDsg aSsrICkKLSAgICAgICAgc2hhcmVfeGVuX3BhZ2Vfd2l0aF9ndWVzdChtZm5fdG9fcGFnZShpKSwg ZG9tX2lvLCBYRU5TSEFSRV93cml0YWJsZSk7CisgICAgICAgIHNoYXJlX3hlbl9wYWdlX3dpdGhf Z3Vlc3QobWZuX3RvX3BhZ2UoX21mbihpKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZG9tX2lvLCBYRU5TSEFSRV93cml0YWJsZSk7CiAKICAgICAvKiBBbnkgYXJlYXMgbm90 IHNwZWNpZmllZCBhcyBSQU0gYnkgdGhlIGU4MjAgbWFwIGFyZSBjb25zaWRlcmVkIEkvTy4gKi8K ICAgICBmb3IgKCBpID0gMCwgcGZuID0gMDsgcGZuIDwgbWF4X3BhZ2U7IGkrKyApCkBAIC0zMjMs NyArMzMwLDcgQEAgdm9pZCBfX2luaXQgYXJjaF9pbml0X21lbW9yeSh2b2lkKQogICAgICAgICAg ICAgaWYgKCAhbWZuX3ZhbGlkKF9tZm4ocGZuKSkgKQogICAgICAgICAgICAgICAgIGNvbnRpbnVl OwogICAgICAgICAgICAgc2hhcmVfeGVuX3BhZ2Vfd2l0aF9ndWVzdCgKLSAgICAgICAgICAgICAg ICBtZm5fdG9fcGFnZShwZm4pLCBkb21faW8sIFhFTlNIQVJFX3dyaXRhYmxlKTsKKyAgICAgICAg ICAgICAgICBtZm5fdG9fcGFnZShfbWZuKHBmbikpLCBkb21faW8sIFhFTlNIQVJFX3dyaXRhYmxl KTsKICAgICAgICAgfQogCiAgICAgICAgIC8qIFNraXAgdGhlIFJBTSByZWdpb24uICovCkBAIC00 MjUsNyArNDMyLDcgQEAgdm9pZCBzaGFyZV94ZW5fcGFnZV93aXRoX2d1ZXN0KAogICAgIGlmICgg cGFnZV9nZXRfb3duZXIocGFnZSkgPT0gZCApCiAgICAgICAgIHJldHVybjsKIAotICAgIHNldF9n cGZuX2Zyb21fbWZuKHBhZ2VfdG9fbWZuKHBhZ2UpLCBJTlZBTElEX00yUF9FTlRSWSk7CisgICAg c2V0X2dwZm5fZnJvbV9tZm4obWZuX3gocGFnZV90b19tZm4ocGFnZSkpLCBJTlZBTElEX00yUF9F TlRSWSk7CiAKICAgICBzcGluX2xvY2soJmQtPnBhZ2VfYWxsb2NfbG9jayk7CiAKQEAgLTY4Miw3 ICs2ODksOCBAQCBpbnQgbWFwX2xkdF9zaGFkb3dfcGFnZSh1bnNpZ25lZCBpbnQgb2ZmKQogICAg ICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBubDFlID0gbDFlX2Zyb21fcGZuKHBhZ2VfdG9f bWZuKHBhZ2UpLCBsMWVfZ2V0X2ZsYWdzKGwxZSkgfCBfUEFHRV9SVyk7CisgICAgbmwxZSA9IGwx ZV9mcm9tX3BmbihtZm5feChwYWdlX3RvX21mbihwYWdlKSksCisgICAgICAgICAgICAgICAgICAg ICAgICBsMWVfZ2V0X2ZsYWdzKGwxZSkgfCBfUEFHRV9SVyk7CiAKICAgICBzcGluX2xvY2soJnYt PmFyY2gucHZfdmNwdS5zaGFkb3dfbGR0X2xvY2spOwogICAgIGwxZV93cml0ZSgmZ2R0X2xkdF9w dGVzKGQsIHYpW29mZiArIDE2XSwgbmwxZSk7CkBAIC02OTUsNyArNzAzLDcgQEAgaW50IG1hcF9s ZHRfc2hhZG93X3BhZ2UodW5zaWduZWQgaW50IG9mZikKIAogc3RhdGljIGJvb2wgZ2V0X3BhZ2Vf ZnJvbV9tZm4obWZuX3QgbWZuLCBzdHJ1Y3QgZG9tYWluICpkKQogewotICAgIHN0cnVjdCBwYWdl X2luZm8gKnBhZ2UgPSBtZm5fdG9fcGFnZShtZm5feChtZm4pKTsKKyAgICBzdHJ1Y3QgcGFnZV9p bmZvICpwYWdlID0gbWZuX3RvX3BhZ2UobWZuKTsKIAogICAgIGlmICggdW5saWtlbHkoIW1mbl92 YWxpZChtZm4pKSB8fCB1bmxpa2VseSghZ2V0X3BhZ2UocGFnZSwgZCkpICkKICAgICB7CkBAIC03 MTIsNyArNzIwLDcgQEAgc3RhdGljIGludCBnZXRfcGFnZV9hbmRfdHlwZV9mcm9tX21mbigKICAg ICBtZm5fdCBtZm4sIHVuc2lnbmVkIGxvbmcgdHlwZSwgc3RydWN0IGRvbWFpbiAqZCwKICAgICBp bnQgcGFydGlhbCwgaW50IHByZWVtcHRpYmxlKQogewotICAgIHN0cnVjdCBwYWdlX2luZm8gKnBh Z2UgPSBtZm5fdG9fcGFnZShtZm5feChtZm4pKTsKKyAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwYWdl ID0gbWZuX3RvX3BhZ2UobWZuKTsKICAgICBpbnQgcmM7CiAKICAgICBpZiAoIGxpa2VseShwYXJ0 aWFsID49IDApICYmCkBAIC03NzcsNyArNzg1LDcgQEAgZ2V0XyMjbGV2ZWwjI19saW5lYXJfcGFn ZXRhYmxlKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAg ICAgICAgICogRW5zdXJlIHRoYXQgdGhlIG1hcHBlZCBmcmFtZSBpcyBhbiBhbHJlYWR5LXZhbGlk YXRlZCBwYWdlIHRhYmxlLiBcCiAgICAgICAgICAqIElmIHNvLCBhdG9taWNhbGx5IGluY3JlbWVu dCB0aGUgY291bnQgKGNoZWNraW5nIGZvciBvdmVyZmxvdykuICAgXAogICAgICAgICAgKi8gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKLSAgICAgICAgcGFnZSA9IG1mbl90b19wYWdlKHBmbik7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHBhZ2UgPSBtZm5fdG9fcGFnZShf bWZuKHBmbikpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAg ICB5ID0gcGFnZS0+dS5pbnVzZS50eXBlX2luZm87ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKICAgICAgICAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICB4ID0geTsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XApAQCAtODA0LDcgKzgxMiw3IEBAIGJvb2wgaXNfaW9tZW1fcGFnZShtZm5fdCBtZm4pCiAgICAg ICAgIHJldHVybiB0cnVlOwogCiAgICAgLyogQ2FsbGVyIG11c3Qga25vdyB0aGF0IGl0IGlzIGFu IGlvbWVtIHBhZ2UsIG9yIGEgcmVmZXJlbmNlIGlzIGhlbGQuICovCi0gICAgcGFnZSA9IG1mbl90 b19wYWdlKG1mbl94KG1mbikpOworICAgIHBhZ2UgPSBtZm5fdG9fcGFnZShtZm4pOwogICAgIEFT U0VSVCgocGFnZS0+Y291bnRfaW5mbyAmIFBHQ19jb3VudF9tYXNrKSAhPSAwKTsKIAogICAgIHJl dHVybiAocGFnZV9nZXRfb3duZXIocGFnZSkgPT0gZG9tX2lvKTsKQEAgLTg3Myw3ICs4ODEsNyBA QCBnZXRfcGFnZV9mcm9tX2wxZSgKICAgICBsMV9wZ2VudHJ5X3QgbDFlLCBzdHJ1Y3QgZG9tYWlu ICpsMWVfb3duZXIsIHN0cnVjdCBkb21haW4gKnBnX293bmVyKQogewogICAgIHVuc2lnbmVkIGxv bmcgbWZuID0gbDFlX2dldF9wZm4obDFlKTsKLSAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlID0g bWZuX3RvX3BhZ2UobWZuKTsKKyAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlID0gbWZuX3RvX3Bh Z2UoX21mbihtZm4pKTsKICAgICB1aW50MzJfdCBsMWYgPSBsMWVfZ2V0X2ZsYWdzKGwxZSk7CiAg ICAgc3RydWN0IHZjcHUgKmN1cnIgPSBjdXJyZW50OwogICAgIHN0cnVjdCBkb21haW4gKnJlYWxf cGdfb3duZXI7CkBAIC0xMjE5LDcgKzEyMjcsNyBAQCB2b2lkIHB1dF9wYWdlX2Zyb21fbDFlKGwx X3BnZW50cnlfdCBsMWUsIHN0cnVjdCBkb21haW4gKmwxZV9vd25lcikKICAgICBpZiAoICEobDFl X2dldF9mbGFncyhsMWUpICYgX1BBR0VfUFJFU0VOVCkgfHwgaXNfaW9tZW1fcGFnZShfbWZuKHBm bikpICkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcGFnZSA9IG1mbl90b19wYWdlKHBmbik7Cisg ICAgcGFnZSA9IG1mbl90b19wYWdlKF9tZm4ocGZuKSk7CiAgICAgcGdfb3duZXIgPSBwYWdlX2dl dF9vd25lcihwYWdlKTsKIAogICAgIC8qCkBAIC0xMjgwLDcgKzEyODgsNyBAQCBzdGF0aWMgaW50 IHB1dF9wYWdlX2Zyb21fbDJlKGwyX3BnZW50cnlfdCBsMmUsIHVuc2lnbmVkIGxvbmcgcGZuKQog CiAgICAgaWYgKCBsMmVfZ2V0X2ZsYWdzKGwyZSkgJiBfUEFHRV9QU0UgKQogICAgIHsKLSAgICAg ICAgc3RydWN0IHBhZ2VfaW5mbyAqcGFnZSA9IG1mbl90b19wYWdlKGwyZV9nZXRfcGZuKGwyZSkp OworICAgICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlID0gbWZuX3RvX3BhZ2UoX21mbihsMmVf Z2V0X3BmbihsMmUpKSk7CiAgICAgICAgIHVuc2lnbmVkIGludCBpOwogCiAgICAgICAgIGZvciAo IGkgPSAwOyBpIDwgKDF1IDw8IFBBR0VUQUJMRV9PUkRFUik7IGkrKywgcGFnZSsrICkKQEAgLTEz MDgsNyArMTMxNiw3IEBAIHN0YXRpYyBpbnQgcHV0X3BhZ2VfZnJvbV9sM2UobDNfcGdlbnRyeV90 IGwzZSwgdW5zaWduZWQgbG9uZyBwZm4sCiAKICAgICAgICAgQVNTRVJUKCEobWZuICYgKCgxVUwg PDwgKEwzX1BBR0VUQUJMRV9TSElGVCAtIFBBR0VfU0hJRlQpKSAtIDEpKSk7CiAgICAgICAgIGRv IHsKLSAgICAgICAgICAgIHB1dF9kYXRhX3BhZ2UobWZuX3RvX3BhZ2UobWZuKSwgd3JpdGVhYmxl KTsKKyAgICAgICAgICAgIHB1dF9kYXRhX3BhZ2UobWZuX3RvX3BhZ2UoX21mbihtZm4pKSwgd3Jp dGVhYmxlKTsKICAgICAgICAgfSB3aGlsZSAoICsrbWZuICYgKCgxVUwgPDwgKEwzX1BBR0VUQUJM RV9TSElGVCAtIFBBR0VfU0hJRlQpKSAtIDEpICk7CiAKICAgICAgICAgcmV0dXJuIDA7CkBAIC0x MzU5LDEyICsxMzY3LDExIEBAIHN0YXRpYyBpbnQgcHV0X3BhZ2VfZnJvbV9sNGUobDRfcGdlbnRy eV90IGw0ZSwgdW5zaWduZWQgbG9uZyBwZm4sCiBzdGF0aWMgaW50IGFsbG9jX2wxX3RhYmxlKHN0 cnVjdCBwYWdlX2luZm8gKnBhZ2UpCiB7CiAgICAgc3RydWN0IGRvbWFpbiAqZCA9IHBhZ2VfZ2V0 X293bmVyKHBhZ2UpOwotICAgIHVuc2lnbmVkIGxvbmcgIHBmbiA9IHBhZ2VfdG9fbWZuKHBhZ2Up OwogICAgIGwxX3BnZW50cnlfdCAgKnBsMWU7CiAgICAgdW5zaWduZWQgaW50ICAgaTsKICAgICBp bnQgICAgICAgICAgICByZXQgPSAwOwogCi0gICAgcGwxZSA9IG1hcF9kb21haW5fcGFnZShfbWZu KHBmbikpOworICAgIHBsMWUgPSBfX21hcF9kb21haW5fcGFnZShwYWdlKTsKIAogICAgIGZvciAo IGkgPSAwOyBpIDwgTDFfUEFHRVRBQkxFX0VOVFJJRVM7IGkrKyApCiAgICAgewpAQCAtMTQzOSw3 ICsxNDQ2LDcgQEAgc3RhdGljIGludCBhbGxvY19sMl90YWJsZShzdHJ1Y3QgcGFnZV9pbmZvICpw YWdlLCB1bnNpZ25lZCBsb25nIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBw cmVlbXB0aWJsZSkKIHsKICAgICBzdHJ1Y3QgZG9tYWluICpkID0gcGFnZV9nZXRfb3duZXIocGFn ZSk7Ci0gICAgdW5zaWduZWQgbG9uZyAgcGZuID0gcGFnZV90b19tZm4ocGFnZSk7CisgICAgdW5z aWduZWQgbG9uZyAgcGZuID0gbWZuX3gocGFnZV90b19tZm4ocGFnZSkpOwogICAgIGwyX3BnZW50 cnlfdCAgKnBsMmU7CiAgICAgdW5zaWduZWQgaW50ICAgaTsKICAgICBpbnQgICAgICAgICAgICBy YyA9IDA7CkBAIC0xNDg4LDcgKzE0OTUsNyBAQCBzdGF0aWMgaW50IGFsbG9jX2wyX3RhYmxlKHN0 cnVjdCBwYWdlX2luZm8gKnBhZ2UsIHVuc2lnbmVkIGxvbmcgdHlwZSwKIHN0YXRpYyBpbnQgYWxs b2NfbDNfdGFibGUoc3RydWN0IHBhZ2VfaW5mbyAqcGFnZSkKIHsKICAgICBzdHJ1Y3QgZG9tYWlu ICpkID0gcGFnZV9nZXRfb3duZXIocGFnZSk7Ci0gICAgdW5zaWduZWQgbG9uZyAgcGZuID0gcGFn ZV90b19tZm4ocGFnZSk7CisgICAgdW5zaWduZWQgbG9uZyAgcGZuID0gbWZuX3gocGFnZV90b19t Zm4ocGFnZSkpOwogICAgIGwzX3BnZW50cnlfdCAgKnBsM2U7CiAgICAgdW5zaWduZWQgaW50ICAg aTsKICAgICBpbnQgICAgICAgICAgICByYyA9IDAsIHBhcnRpYWwgPSBwYWdlLT5wYXJ0aWFsX3B0 ZTsKQEAgLTE2MDksNyArMTYxNiw3IEBAIHZvaWQgemFwX3JvX21wdCh1bnNpZ25lZCBsb25nIG1m bikKIHN0YXRpYyBpbnQgYWxsb2NfbDRfdGFibGUoc3RydWN0IHBhZ2VfaW5mbyAqcGFnZSkKIHsK ICAgICBzdHJ1Y3QgZG9tYWluICpkID0gcGFnZV9nZXRfb3duZXIocGFnZSk7Ci0gICAgdW5zaWdu ZWQgbG9uZyAgcGZuID0gcGFnZV90b19tZm4ocGFnZSk7CisgICAgdW5zaWduZWQgbG9uZyAgcGZu ID0gbWZuX3gocGFnZV90b19tZm4ocGFnZSkpOwogICAgIGw0X3BnZW50cnlfdCAgKnBsNGUgPSBt YXBfZG9tYWluX3BhZ2UoX21mbihwZm4pKTsKICAgICB1bnNpZ25lZCBpbnQgICBpOwogICAgIGlu dCAgICAgICAgICAgIHJjID0gMCwgcGFydGlhbCA9IHBhZ2UtPnBhcnRpYWxfcHRlOwpAQCAtMTY2 OCwxMSArMTY3NSwxMCBAQCBzdGF0aWMgaW50IGFsbG9jX2w0X3RhYmxlKHN0cnVjdCBwYWdlX2lu Zm8gKnBhZ2UpCiBzdGF0aWMgdm9pZCBmcmVlX2wxX3RhYmxlKHN0cnVjdCBwYWdlX2luZm8gKnBh Z2UpCiB7CiAgICAgc3RydWN0IGRvbWFpbiAqZCA9IHBhZ2VfZ2V0X293bmVyKHBhZ2UpOwotICAg IHVuc2lnbmVkIGxvbmcgcGZuID0gcGFnZV90b19tZm4ocGFnZSk7CiAgICAgbDFfcGdlbnRyeV90 ICpwbDFlOwogICAgIHVuc2lnbmVkIGludCAgaTsKIAotICAgIHBsMWUgPSBtYXBfZG9tYWluX3Bh Z2UoX21mbihwZm4pKTsKKyAgICBwbDFlID0gX19tYXBfZG9tYWluX3BhZ2UocGFnZSk7CiAKICAg ICBmb3IgKCBpID0gMDsgaSA8IEwxX1BBR0VUQUJMRV9FTlRSSUVTOyBpKysgKQogICAgICAgICBw dXRfcGFnZV9mcm9tX2wxZShwbDFlW2ldLCBkKTsKQEAgLTE2ODQsNyArMTY5MCw3IEBAIHN0YXRp YyB2b2lkIGZyZWVfbDFfdGFibGUoc3RydWN0IHBhZ2VfaW5mbyAqcGFnZSkKIHN0YXRpYyBpbnQg ZnJlZV9sMl90YWJsZShzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlLCBpbnQgcHJlZW1wdGlibGUpCiB7 CiAgICAgc3RydWN0IGRvbWFpbiAqZCA9IHBhZ2VfZ2V0X293bmVyKHBhZ2UpOwotICAgIHVuc2ln bmVkIGxvbmcgcGZuID0gcGFnZV90b19tZm4ocGFnZSk7CisgICAgdW5zaWduZWQgbG9uZyBwZm4g PSBtZm5feChwYWdlX3RvX21mbihwYWdlKSk7CiAgICAgbDJfcGdlbnRyeV90ICpwbDJlOwogICAg IHVuc2lnbmVkIGludCAgaSA9IHBhZ2UtPm5yX3ZhbGlkYXRlZF9wdGVzIC0gMTsKICAgICBpbnQg ZXJyID0gMDsKQEAgLTE3MTMsNyArMTcxOSw3IEBAIHN0YXRpYyBpbnQgZnJlZV9sMl90YWJsZShz dHJ1Y3QgcGFnZV9pbmZvICpwYWdlLCBpbnQgcHJlZW1wdGlibGUpCiBzdGF0aWMgaW50IGZyZWVf bDNfdGFibGUoc3RydWN0IHBhZ2VfaW5mbyAqcGFnZSkKIHsKICAgICBzdHJ1Y3QgZG9tYWluICpk ID0gcGFnZV9nZXRfb3duZXIocGFnZSk7Ci0gICAgdW5zaWduZWQgbG9uZyBwZm4gPSBwYWdlX3Rv X21mbihwYWdlKTsKKyAgICB1bnNpZ25lZCBsb25nIHBmbiA9IG1mbl94KHBhZ2VfdG9fbWZuKHBh Z2UpKTsKICAgICBsM19wZ2VudHJ5X3QgKnBsM2U7CiAgICAgaW50IHJjID0gMCwgcGFydGlhbCA9 IHBhZ2UtPnBhcnRpYWxfcHRlOwogICAgIHVuc2lnbmVkIGludCAgaSA9IHBhZ2UtPm5yX3ZhbGlk YXRlZF9wdGVzIC0gIXBhcnRpYWw7CkBAIC0xNzUyLDcgKzE3NTgsNyBAQCBzdGF0aWMgaW50IGZy ZWVfbDNfdGFibGUoc3RydWN0IHBhZ2VfaW5mbyAqcGFnZSkKIHN0YXRpYyBpbnQgZnJlZV9sNF90 YWJsZShzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlKQogewogICAgIHN0cnVjdCBkb21haW4gKmQgPSBw YWdlX2dldF9vd25lcihwYWdlKTsKLSAgICB1bnNpZ25lZCBsb25nIHBmbiA9IHBhZ2VfdG9fbWZu KHBhZ2UpOworICAgIHVuc2lnbmVkIGxvbmcgcGZuID0gbWZuX3gocGFnZV90b19tZm4ocGFnZSkp OwogICAgIGw0X3BnZW50cnlfdCAqcGw0ZSA9IG1hcF9kb21haW5fcGFnZShfbWZuKHBmbikpOwog ICAgIGludCByYyA9IDAsIHBhcnRpYWwgPSBwYWdlLT5wYXJ0aWFsX3B0ZTsKICAgICB1bnNpZ25l ZCBpbnQgIGkgPSBwYWdlLT5ucl92YWxpZGF0ZWRfcHRlcyAtICFwYXJ0aWFsOwpAQCAtMTkxMSw3 ICsxOTE3LDcgQEAgc3RhdGljIGludCBtb2RfbDFfZW50cnkobDFfcGdlbnRyeV90ICpwbDFlLCBs MV9wZ2VudHJ5X3QgbmwxZSwKICAgICAgICAgICAgIHBhZ2UgPSBnZXRfcGFnZV9mcm9tX2dmbihw Z19kb20sIGwxZV9nZXRfcGZuKG5sMWUpLCBOVUxMLCBQMk1fQUxMT0MpOwogICAgICAgICAgICAg aWYgKCAhcGFnZSApCiAgICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Ci0gICAgICAgICAg ICBubDFlID0gbDFlX2Zyb21fcGZuKHBhZ2VfdG9fbWZuKHBhZ2UpLCBsMWVfZ2V0X2ZsYWdzKG5s MWUpKTsKKyAgICAgICAgICAgIG5sMWUgPSBsMWVfZnJvbV9wZm4obWZuX3gocGFnZV90b19tZm4o cGFnZSkpLCBsMWVfZ2V0X2ZsYWdzKG5sMWUpKTsKICAgICAgICAgfQogCiAgICAgICAgIC8qIEZh c3QgcGF0aCBmb3Igc3VmZmljaWVudGx5LXNpbWlsYXIgbWFwcGluZ3MuICovCkBAIC0xOTcwLDcg KzE5NzYsNyBAQCBzdGF0aWMgaW50IG1vZF9sMl9lbnRyeShsMl9wZ2VudHJ5X3QgKnBsMmUsCiB7 CiAgICAgbDJfcGdlbnRyeV90IG9sMmU7CiAgICAgc3RydWN0IGRvbWFpbiAqZCA9IHZjcHUtPmRv bWFpbjsKLSAgICBzdHJ1Y3QgcGFnZV9pbmZvICpsMnBnID0gbWZuX3RvX3BhZ2UocGZuKTsKKyAg ICBzdHJ1Y3QgcGFnZV9pbmZvICpsMnBnID0gbWZuX3RvX3BhZ2UoX21mbihwZm4pKTsKICAgICB1 bnNpZ25lZCBsb25nIHR5cGUgPSBsMnBnLT51LmludXNlLnR5cGVfaW5mbzsKICAgICBpbnQgcmMg PSAwOwogCkBAIC0yMTY4LDcgKzIxNzQsNyBAQCBzdGF0aWMgaW50IGNsZWFudXBfcGFnZV9jYWNo ZWF0dHIoc3RydWN0IHBhZ2VfaW5mbyAqcGFnZSkKIAogICAgIEJVR19PTihpc194ZW5faGVhcF9w YWdlKHBhZ2UpKTsKIAotICAgIHJldHVybiB1cGRhdGVfeGVuX21hcHBpbmdzKHBhZ2VfdG9fbWZu KHBhZ2UpLCAwKTsKKyAgICByZXR1cm4gdXBkYXRlX3hlbl9tYXBwaW5ncyhtZm5feChwYWdlX3Rv X21mbihwYWdlKSksIDApOwogfQogCiB2b2lkIHB1dF9wYWdlKHN0cnVjdCBwYWdlX2luZm8gKnBh Z2UpCkBAIC0yMTg4LDcgKzIxOTQsNyBAQCB2b2lkIHB1dF9wYWdlKHN0cnVjdCBwYWdlX2luZm8g KnBhZ2UpCiAgICAgICAgICAgICBmcmVlX2RvbWhlYXBfcGFnZShwYWdlKTsKICAgICAgICAgZWxz ZQogICAgICAgICAgICAgZ2RwcmludGsoWEVOTE9HX1dBUk5JTkcsCi0gICAgICAgICAgICAgICAg ICAgICAiTGVha2luZyBtZm4gJSIgUFJJX3BmbiAiXG4iLCBwYWdlX3RvX21mbihwYWdlKSk7Cisg ICAgICAgICAgICAgICAgICAgICAiTGVha2luZyBtZm4gJSIgUFJJX21mbiAiXG4iLCBtZm5feChw YWdlX3RvX21mbihwYWdlKSkpOwogICAgIH0KIH0KIApAQCAtMjIyNiw4ICsyMjMyLDggQEAgaW50 IGdldF9wYWdlKHN0cnVjdCBwYWdlX2luZm8gKnBhZ2UsIHN0cnVjdCBkb21haW4gKmRvbWFpbikK IAogICAgIGlmICggIXBhZ2luZ19tb2RlX3JlZmNvdW50cyhkb21haW4pICYmICFkb21haW4tPmlz X2R5aW5nICkKICAgICAgICAgZ3ByaW50ayhYRU5MT0dfSU5GTywKLSAgICAgICAgICAgICAgICAi RXJyb3IgcGZuICVseDogcmQ9JWQgb2Q9JWQgY2FmPSUwOGx4IHRhZj0lIiBQUnR5cGVfaW5mbyAi XG4iLAotICAgICAgICAgICAgICAgIHBhZ2VfdG9fbWZuKHBhZ2UpLCBkb21haW4tPmRvbWFpbl9p ZCwKKyAgICAgICAgICAgICAgICAiRXJyb3IgbWZuICUiUFJJX21mbiI6IHJkPSVkIG9kPSVkIGNh Zj0lMDhseCB0YWY9JSIgUFJ0eXBlX2luZm8gIlxuIiwKKyAgICAgICAgICAgICAgICBtZm5feChw YWdlX3RvX21mbihwYWdlKSksIGRvbWFpbi0+ZG9tYWluX2lkLAogICAgICAgICAgICAgICAgIG93 bmVyID8gb3duZXItPmRvbWFpbl9pZCA6IERPTUlEX0lOVkFMSUQsCiAgICAgICAgICAgICAgICAg cGFnZS0+Y291bnRfaW5mbyAtICEhb3duZXIsIHBhZ2UtPnUuaW51c2UudHlwZV9pbmZvKTsKIApA QCAtMjI2Nyw3ICsyMjczLDcgQEAgc3RhdGljIGludCBhbGxvY19wYWdlX3R5cGUoc3RydWN0IHBh Z2VfaW5mbyAqcGFnZSwgdW5zaWduZWQgbG9uZyB0eXBlLAogCiAgICAgLyogQSBwYWdlIHRhYmxl IGlzIGRpcnRpZWQgd2hlbiBpdHMgdHlwZSBjb3VudCBiZWNvbWVzIG5vbi16ZXJvLiAqLwogICAg IGlmICggbGlrZWx5KG93bmVyICE9IE5VTEwpICkKLSAgICAgICAgcGFnaW5nX21hcmtfZGlydHko b3duZXIsIF9tZm4ocGFnZV90b19tZm4ocGFnZSkpKTsKKyAgICAgICAgcGFnaW5nX21hcmtfZGly dHkob3duZXIsIHBhZ2VfdG9fbWZuKHBhZ2UpKTsKIAogICAgIHN3aXRjaCAoIHR5cGUgJiBQR1Rf dHlwZV9tYXNrICkKICAgICB7CkBAIC0yMzEzLDcgKzIzMTksOCBAQCBzdGF0aWMgaW50IGFsbG9j X3BhZ2VfdHlwZShzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlLCB1bnNpZ25lZCBsb25nIHR5cGUsCiAg ICAgICAgIGdkcHJpbnRrKFhFTkxPR19XQVJOSU5HLCAiRXJyb3Igd2hpbGUgdmFsaWRhdGluZyBt Zm4gJSIgUFJJX21mbgogICAgICAgICAgICAgICAgICAiIChwZm4gJSIgUFJJX3BmbiAiKSBmb3Ig dHlwZSAlIiBQUnR5cGVfaW5mbwogICAgICAgICAgICAgICAgICAiOiBjYWY9JTA4bHggdGFmPSUi IFBSdHlwZV9pbmZvICJcbiIsCi0gICAgICAgICAgICAgICAgIHBhZ2VfdG9fbWZuKHBhZ2UpLCBn ZXRfZ3Bmbl9mcm9tX21mbihwYWdlX3RvX21mbihwYWdlKSksCisgICAgICAgICAgICAgICAgIG1m bl94KHBhZ2VfdG9fbWZuKHBhZ2UpKSwKKyAgICAgICAgICAgICAgICAgZ2V0X2dwZm5fZnJvbV9t Zm4obWZuX3gocGFnZV90b19tZm4ocGFnZSkpKSwKICAgICAgICAgICAgICAgICAgdHlwZSwgcGFn ZS0+Y291bnRfaW5mbywgcGFnZS0+dS5pbnVzZS50eXBlX2luZm8pOwogICAgICAgICBpZiAoIHBh Z2UgIT0gY3VycmVudC0+YXJjaC5vbGRfZ3Vlc3RfdGFibGUgKQogICAgICAgICAgICAgcGFnZS0+ dS5pbnVzZS50eXBlX2luZm8gPSAwOwpAQCAtMjM0MiwxMSArMjM0OSwxMSBAQCBpbnQgZnJlZV9w YWdlX3R5cGUoc3RydWN0IHBhZ2VfaW5mbyAqcGFnZSwgdW5zaWduZWQgbG9uZyB0eXBlLAogICAg IGlmICggbGlrZWx5KG93bmVyICE9IE5VTEwpICYmIHVubGlrZWx5KHBhZ2luZ19tb2RlX2VuYWJs ZWQob3duZXIpKSApCiAgICAgewogICAgICAgICAvKiBBIHBhZ2UgdGFibGUgaXMgZGlydGllZCB3 aGVuIGl0cyB0eXBlIGNvdW50IGJlY29tZXMgemVyby4gKi8KLSAgICAgICAgcGFnaW5nX21hcmtf ZGlydHkob3duZXIsIF9tZm4ocGFnZV90b19tZm4ocGFnZSkpKTsKKyAgICAgICAgcGFnaW5nX21h cmtfZGlydHkob3duZXIsIHBhZ2VfdG9fbWZuKHBhZ2UpKTsKIAogICAgICAgICBBU1NFUlQoIXNo YWRvd19tb2RlX3JlZmNvdW50cyhvd25lcikpOwogCi0gICAgICAgIGdtZm4gPSBtZm5fdG9fZ21m bihvd25lciwgcGFnZV90b19tZm4ocGFnZSkpOworICAgICAgICBnbWZuID0gbWZuX3RvX2dtZm4o b3duZXIsIG1mbl94KHBhZ2VfdG9fbWZuKHBhZ2UpKSk7CiAgICAgICAgIEFTU0VSVChWQUxJRF9N MlAoZ21mbikpOwogICAgICAgICAvKiBQYWdlIHNoYXJpbmcgbm90IHN1cHBvcnRlZCBmb3Igc2hh ZG93ZWQgZG9tYWlucyAqLwogICAgICAgICBpZighU0hBUkVEX00yUChnbWZuKSkKQEAgLTIzNzgs NyArMjM4NSw3IEBAIGludCBmcmVlX3BhZ2VfdHlwZShzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlLCB1 bnNpZ25lZCBsb25nIHR5cGUsCiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAg IGdkcHJpbnRrKFhFTkxPR19XQVJOSU5HLCAidHlwZSAlIiBQUnR5cGVfaW5mbyAiIG1mbiAlIiBQ UklfbWZuICJcbiIsCi0gICAgICAgICAgICAgICAgIHR5cGUsIHBhZ2VfdG9fbWZuKHBhZ2UpKTsK KyAgICAgICAgICAgICAgICAgdHlwZSwgbWZuX3gocGFnZV90b19tZm4ocGFnZSkpKTsKICAgICAg ICAgcmMgPSAtRUlOVkFMOwogICAgICAgICBCVUcoKTsKICAgICB9CkBAIC0yNDg0LDcgKzI0OTEs NyBAQCBzdGF0aWMgaW50IF9fZ2V0X3BhZ2VfdHlwZShzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlLCB1 bnNpZ25lZCBsb25nIHR5cGUsCiAgICAgICAgIHsKICAgICAgICAgICAgIGdkcHJpbnRrKFhFTkxP R19XQVJOSU5HLAogICAgICAgICAgICAgICAgICAgICAgIlR5cGUgY291bnQgb3ZlcmZsb3cgb24g bWZuICUiUFJJX21mbiJcbiIsCi0gICAgICAgICAgICAgICAgICAgICBwYWdlX3RvX21mbihwYWdl KSk7CisgICAgICAgICAgICAgICAgICAgICBtZm5feChwYWdlX3RvX21mbihwYWdlKSkpOwogICAg ICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSBpZiAoIHVu bGlrZWx5KCh4ICYgUEdUX2NvdW50X21hc2spID09IDApICkKQEAgLTI1MDEsNyArMjUwOCw3IEBA IHN0YXRpYyBpbnQgX19nZXRfcGFnZV90eXBlKHN0cnVjdCBwYWdlX2luZm8gKnBhZ2UsIHVuc2ln bmVkIGxvbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgJiYgKHBhZ2UtPmNvdW50X2luZm8gJiBQ R0NfcGFnZV90YWJsZSkKICAgICAgICAgICAgICAgICAgJiYgISgocGFnZS0+c2hhZG93X2ZsYWdz ICYgKDF1PDwyOSkpCiAgICAgICAgICAgICAgICAgICAgICAgJiYgdHlwZSA9PSBQR1Rfd3JpdGFi bGVfcGFnZSkgKQotICAgICAgICAgICAgICAgc2hhZG93X3JlbW92ZV9hbGxfc2hhZG93cyhkLCBf bWZuKHBhZ2VfdG9fbWZuKHBhZ2UpKSk7CisgICAgICAgICAgICAgICBzaGFkb3dfcmVtb3ZlX2Fs bF9zaGFkb3dzKGQsIHBhZ2VfdG9fbWZuKHBhZ2UpKTsKIAogICAgICAgICAgICAgQVNTRVJUKCEo eCAmIFBHVF9wYWVfeGVuX2wyKSk7CiAgICAgICAgICAgICBpZiAoICh4ICYgUEdUX3R5cGVfbWFz aykgIT0gdHlwZSApCkBAIC0yNTU1LDggKzI1NjIsOCBAQCBzdGF0aWMgaW50IF9fZ2V0X3BhZ2Vf dHlwZShzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlLCB1bnNpZ25lZCBsb25nIHR5cGUsCiAgICAgICAg ICAgICBnZHByaW50ayhYRU5MT0dfV0FSTklORywKICAgICAgICAgICAgICAgICAgICAgICJCYWQg dHlwZSAoc2F3ICUiIFBSdHlwZV9pbmZvICIgIT0gZXhwICUiIFBSdHlwZV9pbmZvICIpICIKICAg ICAgICAgICAgICAgICAgICAgICJmb3IgbWZuICUiIFBSSV9tZm4gIiAocGZuICUiIFBSSV9wZm4g IilcbiIsCi0gICAgICAgICAgICAgICAgICAgICB4LCB0eXBlLCBwYWdlX3RvX21mbihwYWdlKSwK LSAgICAgICAgICAgICAgICAgICAgIGdldF9ncGZuX2Zyb21fbWZuKHBhZ2VfdG9fbWZuKHBhZ2Up KSk7CisgICAgICAgICAgICAgICAgICAgICB4LCB0eXBlLCBtZm5feChwYWdlX3RvX21mbihwYWdl KSksCisgICAgICAgICAgICAgICAgICAgICBnZXRfZ3Bmbl9mcm9tX21mbihtZm5feChwYWdlX3Rv X21mbihwYWdlKSkpKTsKICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwogICAgICAgICB9CiAg ICAgICAgIGVsc2UgaWYgKCB1bmxpa2VseSghKHggJiBQR1RfdmFsaWRhdGVkKSkgKQpAQCAtMjU5 MCwxMSArMjU5NywxMyBAQCBzdGF0aWMgaW50IF9fZ2V0X3BhZ2VfdHlwZShzdHJ1Y3QgcGFnZV9p bmZvICpwYWdlLCB1bnNpZ25lZCBsb25nIHR5cGUsCiAgICAgICAgIHN0cnVjdCBkb21haW4gKmQg PSBwYWdlX2dldF9vd25lcihwYWdlKTsKICAgICAgICAgaWYgKCBkICYmIGlzX3B2X2RvbWFpbihk KSAmJiB1bmxpa2VseShuZWVkX2lvbW11KGQpKSApCiAgICAgICAgIHsKKyAgICAgICAgICAgIGdm bl90IGdmbiA9IF9nZm4obWZuX3RvX2dtZm4oZCwgbWZuX3gocGFnZV90b19tZm4ocGFnZSkpKSk7 CisKICAgICAgICAgICAgIGlmICggKHggJiBQR1RfdHlwZV9tYXNrKSA9PSBQR1Rfd3JpdGFibGVf cGFnZSApCi0gICAgICAgICAgICAgICAgaW9tbXVfcmV0ID0gaW9tbXVfdW5tYXBfcGFnZShkLCBt Zm5fdG9fZ21mbihkLCBwYWdlX3RvX21mbihwYWdlKSkpOworICAgICAgICAgICAgICAgIGlvbW11 X3JldCA9IGlvbW11X3VubWFwX3BhZ2UoZCwgZ2ZuX3goZ2ZuKSk7CiAgICAgICAgICAgICBlbHNl IGlmICggdHlwZSA9PSBQR1Rfd3JpdGFibGVfcGFnZSApCi0gICAgICAgICAgICAgICAgaW9tbXVf cmV0ID0gaW9tbXVfbWFwX3BhZ2UoZCwgbWZuX3RvX2dtZm4oZCwgcGFnZV90b19tZm4ocGFnZSkp LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VfdG9fbWZu KHBhZ2UpLAorICAgICAgICAgICAgICAgIGlvbW11X3JldCA9IGlvbW11X21hcF9wYWdlKGQsIGdm bl94KGdmbiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWZu X3gocGFnZV90b19tZm4ocGFnZSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElPTU1VRl9yZWFkYWJsZXxJT01NVUZfd3JpdGFibGUpOwogICAgICAgICB9CiAg ICAgfQpAQCAtMjY4Miw3ICsyNjkxLDcgQEAgaW50IHZjcHVfZGVzdHJveV9wYWdldGFibGVzKHN0 cnVjdCB2Y3B1ICp2KQogCiAgICAgaWYgKCBtZm4gKQogICAgIHsKLSAgICAgICAgcGFnZSA9IG1m bl90b19wYWdlKG1mbik7CisgICAgICAgIHBhZ2UgPSBtZm5fdG9fcGFnZShfbWZuKG1mbikpOwog ICAgICAgICBpZiAoIHBhZ2luZ19tb2RlX3JlZmNvdW50cyh2LT5kb21haW4pICkKICAgICAgICAg ICAgIHB1dF9wYWdlKHBhZ2UpOwogICAgICAgICBlbHNlCkBAIC0yNzAzLDcgKzI3MTIsNyBAQCBp bnQgdmNwdV9kZXN0cm95X3BhZ2V0YWJsZXMoc3RydWN0IHZjcHUgKnYpCiAgICAgICAgIG1mbiA9 IHBhZ2V0YWJsZV9nZXRfcGZuKHYtPmFyY2guZ3Vlc3RfdGFibGVfdXNlcik7CiAgICAgICAgIGlm ICggbWZuICkKICAgICAgICAgewotICAgICAgICAgICAgcGFnZSA9IG1mbl90b19wYWdlKG1mbik7 CisgICAgICAgICAgICBwYWdlID0gbWZuX3RvX3BhZ2UoX21mbihtZm4pKTsKICAgICAgICAgICAg IGlmICggcGFnaW5nX21vZGVfcmVmY291bnRzKHYtPmRvbWFpbikgKQogICAgICAgICAgICAgICAg IHB1dF9wYWdlKHBhZ2UpOwogICAgICAgICAgICAgZWxzZQpAQCAtMjgwMiw3ICsyODExLDcgQEAg aW50IG5ld19ndWVzdF9jcjModW5zaWduZWQgbG9uZyBtZm4pCiAKICAgICBpZiAoIGxpa2VseShv bGRfYmFzZV9tZm4gIT0gMCkgKQogICAgIHsKLSAgICAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGFn ZSA9IG1mbl90b19wYWdlKG9sZF9iYXNlX21mbik7CisgICAgICAgIHN0cnVjdCBwYWdlX2luZm8g KnBhZ2UgPSBtZm5fdG9fcGFnZShfbWZuKG9sZF9iYXNlX21mbikpOwogCiAgICAgICAgIGlmICgg cGFnaW5nX21vZGVfcmVmY291bnRzKGQpICkKICAgICAgICAgICAgIHB1dF9wYWdlKHBhZ2UpOwpA QCAtMzA0MSw3ICszMDUwLDcgQEAgbG9uZyBkb19tbXVleHRfb3AoCiAgICAgICAgICAgICAgICAg ZWxzZSBpZiAoIHJjICE9IC1FUkVTVEFSVCApCiAgICAgICAgICAgICAgICAgICAgIGdkcHJpbnRr KFhFTkxPR19XQVJOSU5HLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXJyb3IgJWQg d2hpbGUgcGlubmluZyBtZm4gJSIgUFJJX21mbiAiXG4iLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJjLCBwYWdlX3RvX21mbihwYWdlKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHJjLCBtZm5feChwYWdlX3RvX21mbihwYWdlKSkpOwogICAgICAgICAgICAgICAgIGlmICgg cGFnZSAhPSBjdXJyLT5hcmNoLm9sZF9ndWVzdF90YWJsZSApCiAgICAgICAgICAgICAgICAgICAg IHB1dF9wYWdlKHBhZ2UpOwogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzA1Miw3ICszMDYx LDggQEAgbG9uZyBkb19tbXVleHRfb3AoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICZwYWdlLT51LmludXNlLnR5cGVfaW5mbykpICkKICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICBnZHByaW50ayhYRU5MT0dfV0FSTklORywKLSAgICAgICAg ICAgICAgICAgICAgICAgICAibWZuICUiIFBSSV9tZm4gIiBhbHJlYWR5IHBpbm5lZFxuIiwgcGFn ZV90b19tZm4ocGFnZSkpOworICAgICAgICAgICAgICAgICAgICAgICAgICJtZm4gJSIgUFJJX21m biAiIGFscmVhZHkgcGlubmVkXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgIG1mbl94KHBh Z2VfdG9fbWZuKHBhZ2UpKSk7CiAgICAgICAgICAgICAgICAgcmMgPSAtRUlOVkFMOwogICAgICAg ICAgICAgfQogCkBAIC0zMDYwLDcgKzMwNzAsNyBAQCBsb25nIGRvX21tdWV4dF9vcCgKICAgICAg ICAgICAgICAgICBnb3RvIHBpbl9kcm9wOwogCiAgICAgICAgICAgICAvKiBBIHBhZ2UgaXMgZGly dGllZCB3aGVuIGl0cyBwaW4gc3RhdHVzIGlzIHNldC4gKi8KLSAgICAgICAgICAgIHBhZ2luZ19t YXJrX2RpcnR5KHBnX293bmVyLCBfbWZuKHBhZ2VfdG9fbWZuKHBhZ2UpKSk7CisgICAgICAgICAg ICBwYWdpbmdfbWFya19kaXJ0eShwZ19vd25lciwgcGFnZV90b19tZm4ocGFnZSkpOwogCiAgICAg ICAgICAgICAvKiBXZSBjYW4gcmFjZSBkb21haW4gZGVzdHJ1Y3Rpb24gKGRvbWFpbl9yZWxpbnF1 aXNoX3Jlc291cmNlcykuICovCiAgICAgICAgICAgICBpZiAoIHVubGlrZWx5KHBnX293bmVyICE9 IGN1cnJkKSApCkBAIC0zMTIwLDcgKzMxMzAsNyBAQCBsb25nIGRvX21tdWV4dF9vcCgKICAgICAg ICAgICAgIHB1dF9wYWdlKHBhZ2UpOwogCiAgICAgICAgICAgICAvKiBBIHBhZ2UgaXMgZGlydGll ZCB3aGVuIGl0cyBwaW4gc3RhdHVzIGlzIGNsZWFyZWQuICovCi0gICAgICAgICAgICBwYWdpbmdf bWFya19kaXJ0eShwZ19vd25lciwgX21mbihwYWdlX3RvX21mbihwYWdlKSkpOworICAgICAgICAg ICAgcGFnaW5nX21hcmtfZGlydHkocGdfb3duZXIsIHBhZ2VfdG9fbWZuKHBhZ2UpKTsKICAgICAg ICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2UgTU1VRVhUX05FV19CQVNFUFRSOgpAQCAtMzE3 NCw3ICszMTg0LDcgQEAgbG9uZyBkb19tbXVleHRfb3AoCiAKICAgICAgICAgICAgIGlmICggb2xk X21mbiAhPSAwICkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBwYWdlID0gbWZuX3Rv X3BhZ2Uob2xkX21mbik7CisgICAgICAgICAgICAgICAgcGFnZSA9IG1mbl90b19wYWdlKF9tZm4o b2xkX21mbikpOwogCiAgICAgICAgICAgICAgICAgc3dpdGNoICggcmMgPSBwdXRfcGFnZV9hbmRf dHlwZV9wcmVlbXB0aWJsZShwYWdlKSApCiAgICAgICAgICAgICAgICAgewpAQCAtMzMxOCw5ICsz MzI4LDkgQEAgbG9uZyBkb19tbXVleHRfb3AoCiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAg IC8qIEEgcGFnZSBpcyBkaXJ0aWVkIHdoZW4gaXQncyBiZWluZyBjbGVhcmVkLiAqLwotICAgICAg ICAgICAgcGFnaW5nX21hcmtfZGlydHkocGdfb3duZXIsIF9tZm4ocGFnZV90b19tZm4ocGFnZSkp KTsKKyAgICAgICAgICAgIHBhZ2luZ19tYXJrX2RpcnR5KHBnX293bmVyLCBwYWdlX3RvX21mbihw YWdlKSk7CiAKLSAgICAgICAgICAgIGNsZWFyX2RvbWFpbl9wYWdlKF9tZm4ocGFnZV90b19tZm4o cGFnZSkpKTsKKyAgICAgICAgICAgIGNsZWFyX2RvbWFpbl9wYWdlKHBhZ2VfdG9fbWZuKHBhZ2Up KTsKIAogICAgICAgICAgICAgcHV0X3BhZ2VfYW5kX3R5cGUocGFnZSk7CiAgICAgICAgICAgICBi cmVhazsKQEAgLTMzNjUsMTAgKzMzNzUsOSBAQCBsb25nIGRvX21tdWV4dF9vcCgKICAgICAgICAg ICAgIH0KIAogICAgICAgICAgICAgLyogQSBwYWdlIGlzIGRpcnRpZWQgd2hlbiBpdCdzIGJlaW5n IGNvcGllZCB0by4gKi8KLSAgICAgICAgICAgIHBhZ2luZ19tYXJrX2RpcnR5KHBnX293bmVyLCBf bWZuKHBhZ2VfdG9fbWZuKGRzdF9wYWdlKSkpOworICAgICAgICAgICAgcGFnaW5nX21hcmtfZGly dHkocGdfb3duZXIsIHBhZ2VfdG9fbWZuKGRzdF9wYWdlKSk7CiAKLSAgICAgICAgICAgIGNvcHlf ZG9tYWluX3BhZ2UoX21mbihwYWdlX3RvX21mbihkc3RfcGFnZSkpLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBfbWZuKHBhZ2VfdG9fbWZuKHNyY19wYWdlKSkpOworICAgICAgICAgICAg Y29weV9kb21haW5fcGFnZShwYWdlX3RvX21mbihkc3RfcGFnZSksIHBhZ2VfdG9fbWZuKHNyY19w YWdlKSk7CiAKICAgICAgICAgICAgIHB1dF9wYWdlX2FuZF90eXBlKGRzdF9wYWdlKTsKICAgICAg ICAgICAgIHB1dF9wYWdlKHNyY19wYWdlKTsKQEAgLTM1NjYsNyArMzU3NSw3IEBAIGxvbmcgZG9f bW11X3VwZGF0ZSgKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KIAotICAg ICAgICAgICAgbWZuID0gcGFnZV90b19tZm4ocGFnZSk7CisgICAgICAgICAgICBtZm4gPSBtZm5f eChwYWdlX3RvX21mbihwYWdlKSk7CiAKICAgICAgICAgICAgIGlmICggIW1mbl9lcShfbWZuKG1m biksIG1hcF9tZm4pICkKICAgICAgICAgICAgIHsKQEAgLTM2OTQsNyArMzcwMyw3IEBAIGxvbmcg ZG9fbW11X3VwZGF0ZSgKIAogICAgICAgICAgICAgcGFnaW5nX21hcmtfZGlydHkocGdfb3duZXIs IF9tZm4obWZuKSk7CiAKLSAgICAgICAgICAgIHB1dF9wYWdlKG1mbl90b19wYWdlKG1mbikpOwor ICAgICAgICAgICAgcHV0X3BhZ2UobWZuX3RvX3BhZ2UoX21mbihtZm4pKSk7CiAgICAgICAgICAg ICBicmVhazsKIAogICAgICAgICBkZWZhdWx0OgpAQCAtMzc3Nyw3ICszNzg2LDcgQEAgc3RhdGlj IGludCBjcmVhdGVfZ3JhbnRfcHRlX21hcHBpbmcoCiAgICAgICAgIHJldHVybiBHTlRTVF9nZW5l cmFsX2Vycm9yOwogICAgIH0KIAotICAgIG1mbiA9IHBhZ2VfdG9fbWZuKHBhZ2UpOworICAgIG1m biA9IG1mbl94KHBhZ2VfdG9fbWZuKHBhZ2UpKTsKICAgICB2YSA9IG1hcF9kb21haW5fcGFnZShf bWZuKG1mbikpOwogICAgIHZhID0gKHZvaWQgKikoKHVuc2lnbmVkIGxvbmcpdmEgKyAoKHVuc2ln bmVkIGxvbmcpcHRlX2FkZHIgJiB+UEFHRV9NQVNLKSk7CiAKQEAgLTM4NDEsNyArMzg1MCw3IEBA IHN0YXRpYyBpbnQgZGVzdHJveV9ncmFudF9wdGVfbWFwcGluZygKICAgICAgICAgcmV0dXJuIEdO VFNUX2dlbmVyYWxfZXJyb3I7CiAgICAgfQogCi0gICAgbWZuID0gcGFnZV90b19tZm4ocGFnZSk7 CisgICAgbWZuID0gbWZuX3gocGFnZV90b19tZm4ocGFnZSkpOwogICAgIHZhID0gbWFwX2RvbWFp bl9wYWdlKF9tZm4obWZuKSk7CiAgICAgdmEgPSAodm9pZCAqKSgodW5zaWduZWQgbG9uZyl2YSAr ICgodW5zaWduZWQgbG9uZylhZGRyICYgflBBR0VfTUFTSykpOwogCkBAIC0zOTE2LDcgKzM5MjUs NyBAQCBzdGF0aWMgaW50IGNyZWF0ZV9ncmFudF92YV9tYXBwaW5nKAogICAgICAgICByZXR1cm4g R05UU1RfZ2VuZXJhbF9lcnJvcjsKICAgICB9CiAKLSAgICBsMXBnID0gbWZuX3RvX3BhZ2UoZ2wx bWZuKTsKKyAgICBsMXBnID0gbWZuX3RvX3BhZ2UoX21mbihnbDFtZm4pKTsKICAgICBpZiAoICFw YWdlX2xvY2sobDFwZykgKQogICAgIHsKICAgICAgICAgcHV0X3BhZ2UobDFwZyk7CkBAIC0zOTY2 LDcgKzM5NzUsNyBAQCBzdGF0aWMgaW50IHJlcGxhY2VfZ3JhbnRfdmFfbWFwcGluZygKICAgICAg ICAgZ290byBvdXQ7CiAgICAgfQogCi0gICAgbDFwZyA9IG1mbl90b19wYWdlKGdsMW1mbik7Cisg ICAgbDFwZyA9IG1mbl90b19wYWdlKF9tZm4oZ2wxbWZuKSk7CiAgICAgaWYgKCAhcGFnZV9sb2Nr KGwxcGcpICkKICAgICB7CiAgICAgICAgIHJjID0gR05UU1RfZ2VuZXJhbF9lcnJvcjsKQEAgLTQx MzUsNyArNDE0NCw3IEBAIGludCByZXBsYWNlX2dyYW50X2hvc3RfbWFwcGluZygKICAgICAgICAg cmV0dXJuIEdOVFNUX2dlbmVyYWxfZXJyb3I7CiAgICAgfQogCi0gICAgbDFwZyA9IG1mbl90b19w YWdlKGdsMW1mbik7CisgICAgbDFwZyA9IG1mbl90b19wYWdlKF9tZm4oZ2wxbWZuKSk7CiAgICAg aWYgKCAhcGFnZV9sb2NrKGwxcGcpICkKICAgICB7CiAgICAgICAgIHB1dF9wYWdlKGwxcGcpOwpA QCAtNDIwOCw3ICs0MjE3LDcgQEAgaW50IGRvbmF0ZV9wYWdlKAogICAgIHNwaW5fdW5sb2NrKCZk LT5wYWdlX2FsbG9jX2xvY2spOwogICAgIGdkcHJpbnRrKFhFTkxPR19XQVJOSU5HLCAiQmFkIGRv bmF0ZSBtZm4gJSIgUFJJX21mbgogICAgICAgICAgICAgICIgdG8gZCVkIChvd25lciBkJWQpIGNh Zj0lMDhseCB0YWY9JSIgUFJ0eXBlX2luZm8gIlxuIiwKLSAgICAgICAgICAgICBwYWdlX3RvX21m bihwYWdlKSwgZC0+ZG9tYWluX2lkLAorICAgICAgICAgICAgIG1mbl94KHBhZ2VfdG9fbWZuKHBh Z2UpKSwgZC0+ZG9tYWluX2lkLAogICAgICAgICAgICAgIG93bmVyID8gb3duZXItPmRvbWFpbl9p ZCA6IERPTUlEX0lOVkFMSUQsCiAgICAgICAgICAgICAgcGFnZS0+Y291bnRfaW5mbywgcGFnZS0+ dS5pbnVzZS50eXBlX2luZm8pOwogICAgIHJldHVybiAtRUlOVkFMOwpAQCAtNDI3NCw3ICs0Mjgz LDcgQEAgaW50IHN0ZWFsX3BhZ2UoCiAgICAgc3Bpbl91bmxvY2soJmQtPnBhZ2VfYWxsb2NfbG9j ayk7CiAgICAgZ2RwcmludGsoWEVOTE9HX1dBUk5JTkcsICJCYWQgc3RlYWwgbWZuICUiIFBSSV9t Zm4KICAgICAgICAgICAgICAiIGZyb20gZCVkIChvd25lciBkJWQpIGNhZj0lMDhseCB0YWY9JSIg UFJ0eXBlX2luZm8gIlxuIiwKLSAgICAgICAgICAgICBwYWdlX3RvX21mbihwYWdlKSwgZC0+ZG9t YWluX2lkLAorICAgICAgICAgICAgIG1mbl94KHBhZ2VfdG9fbWZuKHBhZ2UpKSwgZC0+ZG9tYWlu X2lkLAogICAgICAgICAgICAgIG93bmVyID8gb3duZXItPmRvbWFpbl9pZCA6IERPTUlEX0lOVkFM SUQsCiAgICAgICAgICAgICAgcGFnZS0+Y291bnRfaW5mbywgcGFnZS0+dS5pbnVzZS50eXBlX2lu Zm8pOwogICAgIHJldHVybiAtRUlOVkFMOwpAQCAtNDMwMyw3ICs0MzEyLDcgQEAgc3RhdGljIGlu dCBfX2RvX3VwZGF0ZV92YV9tYXBwaW5nKAogICAgIGlmICggdW5saWtlbHkoIXBsMWUgfHwgIWdl dF9wYWdlX2Zyb21fbWZuKF9tZm4oZ2wxbWZuKSwgZCkpICkKICAgICAgICAgZ290byBvdXQ7CiAK LSAgICBnbDFwZyA9IG1mbl90b19wYWdlKGdsMW1mbik7CisgICAgZ2wxcGcgPSBtZm5fdG9fcGFn ZShfbWZuKGdsMW1mbikpOwogICAgIGlmICggIXBhZ2VfbG9jayhnbDFwZykgKQogICAgIHsKICAg ICAgICAgcHV0X3BhZ2UoZ2wxcGcpOwpAQCAtNDQxMyw3ICs0NDIyLDcgQEAgdm9pZCBkZXN0cm95 X2dkdChzdHJ1Y3QgdmNwdSAqdikKICAgICB7CiAgICAgICAgIHBmbiA9IGwxZV9nZXRfcGZuKHBs MWVbaV0pOwogICAgICAgICBpZiAoIChsMWVfZ2V0X2ZsYWdzKHBsMWVbaV0pICYgX1BBR0VfUFJF U0VOVCkgJiYgcGZuICE9IHplcm9fcGZuICkKLSAgICAgICAgICAgIHB1dF9wYWdlX2FuZF90eXBl KG1mbl90b19wYWdlKHBmbikpOworICAgICAgICAgICAgcHV0X3BhZ2VfYW5kX3R5cGUobWZuX3Rv X3BhZ2UoX21mbihwZm4pKSk7CiAgICAgICAgIGwxZV93cml0ZSgmcGwxZVtpXSwgbDFlX2Zyb21f cGZuKHplcm9fcGZuLCBfX1BBR0VfSFlQRVJWSVNPUl9STykpOwogICAgICAgICB2LT5hcmNoLnB2 X3ZjcHUuZ2R0X2ZyYW1lc1tpXSA9IDA7CiAgICAgfQpAQCAtNDQ0NSw3ICs0NDU0LDcgQEAgbG9u ZyBzZXRfZ2R0KHN0cnVjdCB2Y3B1ICp2LAogICAgICAgICAgICAgcHV0X3BhZ2UocGFnZSk7CiAg ICAgICAgICAgICBnb3RvIGZhaWw7CiAgICAgICAgIH0KLSAgICAgICAgZnJhbWVzW2ldID0gcGFn ZV90b19tZm4ocGFnZSk7CisgICAgICAgIGZyYW1lc1tpXSA9IG1mbl94KHBhZ2VfdG9fbWZuKHBh Z2UpKTsKICAgICB9CiAKICAgICAvKiBUZWFyIGRvd24gdGhlIG9sZCBHRFQuICovCkBAIC00NDY1 LDcgKzQ0NzQsNyBAQCBsb25nIHNldF9nZHQoc3RydWN0IHZjcHUgKnYsCiAgZmFpbDoKICAgICB3 aGlsZSAoIGktLSA+IDAgKQogICAgIHsKLSAgICAgICAgcHV0X3BhZ2VfYW5kX3R5cGUobWZuX3Rv X3BhZ2UoZnJhbWVzW2ldKSk7CisgICAgICAgIHB1dF9wYWdlX2FuZF90eXBlKG1mbl90b19wYWdl KF9tZm4oZnJhbWVzW2ldKSkpOwogICAgIH0KICAgICByZXR1cm4gLUVJTlZBTDsKIH0KQEAgLTQ1 MjAsNyArNDUyOSw3IEBAIGxvbmcgZG9fdXBkYXRlX2Rlc2NyaXB0b3IodTY0IHBhLCB1NjQgZGVz YykKICAgICAgICAgICAgIHB1dF9wYWdlKHBhZ2UpOwogICAgICAgICByZXR1cm4gLUVJTlZBTDsK ICAgICB9Ci0gICAgbWZuID0gcGFnZV90b19tZm4ocGFnZSk7CisgICAgbWZuID0gbWZuX3gocGFn ZV90b19tZm4ocGFnZSkpOwogCiAgICAgLyogQ2hlY2sgaWYgdGhlIGdpdmVuIGZyYW1lIGlzIGlu IHVzZSBpbiBhbiB1bnNhZmUgY29udGV4dC4gKi8KICAgICBzd2l0Y2ggKCBwYWdlLT51LmludXNl LnR5cGVfaW5mbyAmIFBHVF90eXBlX21hc2sgKQpAQCAtNDY3NSw3ICs0Njg0LDcgQEAgaW50IHhl bm1lbV9hZGRfdG9fcGh5c21hcF9vbmUoCiAgICAgICAgICAgICBpZiAoICFnZXRfcGFnZV9mcm9t X21mbihfbWZuKGlkeCksIGQpICkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg IG1mbiA9IGlkeDsKLSAgICAgICAgICAgIHBhZ2UgPSBtZm5fdG9fcGFnZShtZm4pOworICAgICAg ICAgICAgcGFnZSA9IG1mbl90b19wYWdlKF9tZm4obWZuKSk7CiAgICAgICAgICAgICBicmVhazsK ICAgICAgICAgfQogICAgICAgICBjYXNlIFhFTk1BUFNQQUNFX2dtZm5fZm9yZWlnbjoKQEAgLTUw NDQsNyArNTA1Myw3IEBAIHN0YXRpYyBpbnQgcHR3cl9lbXVsYXRlZF91cGRhdGUoCiAKICAgICBw dGUgID0gcHR3cl9jdHh0LT5wdGU7CiAgICAgbWZuICA9IGwxZV9nZXRfcGZuKHB0ZSk7Ci0gICAg cGFnZSA9IG1mbl90b19wYWdlKG1mbik7CisgICAgcGFnZSA9IG1mbl90b19wYWdlKF9tZm4obWZu KSk7CiAKICAgICAvKiBXZSBhcmUgbG9va2luZyBvbmx5IGZvciByZWFkLW9ubHkgbWFwcGluZ3Mg b2YgcC50LiBwYWdlcy4gKi8KICAgICBBU1NFUlQoKGwxZV9nZXRfZmxhZ3MocHRlKSAmIChfUEFH RV9SV3xfUEFHRV9QUkVTRU5UKSkgPT0gX1BBR0VfUFJFU0VOVCk7CkBAIC01MzcxLDcgKzUzODAs NyBAQCBpbnQgbW1pb19yb19kb19wYWdlX2ZhdWx0KHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBs b25nIGFkZHIsCiAgICAgbWZuID0gbDFlX2dldF9wZm4ocHRlKTsKICAgICBpZiAoIG1mbl92YWxp ZChfbWZuKG1mbikpICkKICAgICB7Ci0gICAgICAgIHN0cnVjdCBwYWdlX2luZm8gKnBhZ2UgPSBt Zm5fdG9fcGFnZShtZm4pOworICAgICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlID0gbWZuX3Rv X3BhZ2UoX21mbihtZm4pKTsKICAgICAgICAgc3RydWN0IGRvbWFpbiAqb3duZXIgPSBwYWdlX2dl dF9vd25lcl9hbmRfcmVmZXJlbmNlKHBhZ2UpOwogCiAgICAgICAgIGlmICggb3duZXIgKQpAQCAt NjIxMiw3ICs2MjIxLDcgQEAgaW50IGNyZWF0ZV9wZXJkb21haW5fbWFwcGluZyhzdHJ1Y3QgZG9t YWluICpkLCB1bnNpZ25lZCBsb25nIHZhLAogICAgICAgICAgICAgcGcgPSBhbGxvY19kb21oZWFw X3BhZ2UoZCwgTUVNRl9ub19vd25lcik7CiAgICAgICAgICAgICBpZiAoIHBnICkKICAgICAgICAg ICAgIHsKLSAgICAgICAgICAgICAgICBjbGVhcl9kb21haW5fcGFnZShfbWZuKHBhZ2VfdG9fbWZu KHBnKSkpOworICAgICAgICAgICAgICAgIGNsZWFyX2RvbWFpbl9wYWdlKHBhZ2VfdG9fbWZuKHBn KSk7CiAgICAgICAgICAgICAgICAgaWYgKCAhSVNfTklMKHBwZykgKQogICAgICAgICAgICAgICAg ICAgICAqcHBnKysgPSBwZzsKICAgICAgICAgICAgICAgICBsMXRhYltsMV90YWJsZV9vZmZzZXQo dmEpXSA9CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L3BhZ2UuaCBiL3hlbi9pbmNs dWRlL2FzbS14ODYvcGFnZS5oCmluZGV4IDI2M2NhNWIuLjMzZGYyMTkgMTAwNjQ0Ci0tLSBhL3hl bi9pbmNsdWRlL2FzbS14ODYvcGFnZS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvcGFnZS5o CkBAIC04MiwxMCArODIsMTAgQEAKICAgICAoKHBhZGRyX3QpKCgoeCkubDQgJiAoUEFERFJfTUFT SyZQQUdFX01BU0spKSkpCiAKIC8qIEdldCBwb2ludGVyIHRvIGluZm8gc3RydWN0dXJlIG9mIHBh Z2UgbWFwcGVkIGJ5IHB0ZSAoc3RydWN0IHBhZ2VfaW5mbyAqKS4gKi8KLSNkZWZpbmUgbDFlX2dl dF9wYWdlKHgpICAgICAgICAgICAobWZuX3RvX3BhZ2UobDFlX2dldF9wZm4oeCkpKQotI2RlZmlu ZSBsMmVfZ2V0X3BhZ2UoeCkgICAgICAgICAgIChtZm5fdG9fcGFnZShsMmVfZ2V0X3Bmbih4KSkp Ci0jZGVmaW5lIGwzZV9nZXRfcGFnZSh4KSAgICAgICAgICAgKG1mbl90b19wYWdlKGwzZV9nZXRf cGZuKHgpKSkKLSNkZWZpbmUgbDRlX2dldF9wYWdlKHgpICAgICAgICAgICAobWZuX3RvX3BhZ2Uo bDRlX2dldF9wZm4oeCkpKQorI2RlZmluZSBsMWVfZ2V0X3BhZ2UoeCkgICAgICAgICAgIChfX21m bl90b19wYWdlKGwxZV9nZXRfcGZuKHgpKSkKKyNkZWZpbmUgbDJlX2dldF9wYWdlKHgpICAgICAg ICAgICAoX19tZm5fdG9fcGFnZShsMmVfZ2V0X3Bmbih4KSkpCisjZGVmaW5lIGwzZV9nZXRfcGFn ZSh4KSAgICAgICAgICAgKF9fbWZuX3RvX3BhZ2UobDNlX2dldF9wZm4oeCkpKQorI2RlZmluZSBs NGVfZ2V0X3BhZ2UoeCkgICAgICAgICAgIChfX21mbl90b19wYWdlKGw0ZV9nZXRfcGZuKHgpKSkK IAogLyogR2V0IHB0ZSBhY2Nlc3MgZmxhZ3MgKHVuc2lnbmVkIGludCkuICovCiAjZGVmaW5lIGwx ZV9nZXRfZmxhZ3MoeCkgICAgICAgICAgIChnZXRfcHRlX2ZsYWdzKCh4KS5sMSkpCkBAIC0xNDUs MTAgKzE0NSwxMCBAQCBzdGF0aWMgaW5saW5lIGw0X3BnZW50cnlfdCBsNGVfZnJvbV9wYWRkcihw YWRkcl90IHBhLCB1bnNpZ25lZCBpbnQgZmxhZ3MpCiAjZGVmaW5lIGw0ZV9mcm9tX2ludHB0ZShp bnRwdGUpICAgICgobDRfcGdlbnRyeV90KSB7IChpbnRwdGVfdCkoaW50cHRlKSB9KQogCiAvKiBD b25zdHJ1Y3QgYSBwdGUgZnJvbSBhIHBhZ2UgcG9pbnRlciBhbmQgYWNjZXNzIGZsYWdzLiAqLwot I2RlZmluZSBsMWVfZnJvbV9wYWdlKHBhZ2UsIGZsYWdzKSAobDFlX2Zyb21fcGZuKHBhZ2VfdG9f bWZuKHBhZ2UpLChmbGFncykpKQotI2RlZmluZSBsMmVfZnJvbV9wYWdlKHBhZ2UsIGZsYWdzKSAo bDJlX2Zyb21fcGZuKHBhZ2VfdG9fbWZuKHBhZ2UpLChmbGFncykpKQotI2RlZmluZSBsM2VfZnJv bV9wYWdlKHBhZ2UsIGZsYWdzKSAobDNlX2Zyb21fcGZuKHBhZ2VfdG9fbWZuKHBhZ2UpLChmbGFn cykpKQotI2RlZmluZSBsNGVfZnJvbV9wYWdlKHBhZ2UsIGZsYWdzKSAobDRlX2Zyb21fcGZuKHBh Z2VfdG9fbWZuKHBhZ2UpLChmbGFncykpKQorI2RlZmluZSBsMWVfZnJvbV9wYWdlKHBhZ2UsIGZs YWdzKSAobDFlX2Zyb21fcGZuKF9fcGFnZV90b19tZm4ocGFnZSksIChmbGFncykpKQorI2RlZmlu ZSBsMmVfZnJvbV9wYWdlKHBhZ2UsIGZsYWdzKSAobDJlX2Zyb21fcGZuKF9fcGFnZV90b19tZm4o cGFnZSksIChmbGFncykpKQorI2RlZmluZSBsM2VfZnJvbV9wYWdlKHBhZ2UsIGZsYWdzKSAobDNl X2Zyb21fcGZuKF9fcGFnZV90b19tZm4ocGFnZSksIChmbGFncykpKQorI2RlZmluZSBsNGVfZnJv bV9wYWdlKHBhZ2UsIGZsYWdzKSAobDRlX2Zyb21fcGZuKF9fcGFnZV90b19tZm4ocGFnZSksIChm bGFncykpKQogCiAvKiBBZGQgZXh0cmEgZmxhZ3MgdG8gYW4gZXhpc3RpbmcgcHRlLiAqLwogI2Rl ZmluZSBsMWVfYWRkX2ZsYWdzKHgsIGZsYWdzKSAgICAoKHgpLmwxIHw9IHB1dF9wdGVfZmxhZ3Mo ZmxhZ3MpKQotLSAKMi4xLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3Jn Cmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK