From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v3 01/13] grant_table: use term 'mfn' for machine frame numbers... Date: Tue, 17 Jul 2018 14:38:04 +0100 Message-ID: <20180717133816.37958-2-paul.durrant@citrix.com> References: <20180717133816.37958-1-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1ffQBL-0005lC-Mk for xen-devel@lists.xenproject.org; Tue, 17 Jul 2018 13:38:23 +0000 In-Reply-To: <20180717133816.37958-1-paul.durrant@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Stefano Stabellini , Wei Liu , Andrew Cooper , Ian Jackson , Tim Deegan , Julien Grall , Paul Durrant , Jan Beulich List-Id: xen-devel@lists.xenproject.org Li4ucmF0aGVyIHRoYW4gbW9yZSBhbWJpZ3VvdXMgdGVybSAnZnJhbWUnLgoKVGhlcmUgYXJlIG1h bnkgcGxhY2VzIGluIHRoZSBncmFudCB0YWJsZSBjb2RlIHRoYXQgdXNlIGEgdmFyaWFibGUgb3IK ZmllbGQgbmFtZSAnLipmcmFtZScgdG8gcmVmZXIgdG8gYSBxdWFudGl0eSB0aGF0IGlzIHN0cmlj dGx5IGFuIE1GTiwgYW5kCmV2ZW4gaGFzIHR5cGUgbWZuX3QuClRoaXMgcGF0Y2ggaXMgYSBwdXJl bHkgY29zbWV0aWMgcGF0Y2ggdGhhdCBzdWJzdGl0dXRlcyAnZnJhbWUnIHdpdGggJ21mbicKaW4g dGhvc2UgcGxhY2VzIHRvIG1ha2UgdGhlIHB1cnBvc2Ugb2YgdGhlIHZhcmlhYmxlIG9yIGZpZWxk IG5hbWUgbW9yZQpvYnZpb3VzLgoKU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1 cnJhbnRAY2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEdlb3JnZSBEdW5sYXAgPEdlb3JnZS5EdW5s YXBAZXUuY2l0cml4LmNvbT4KLS0tCkNjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0Bj aXRyaXguY29tPgpDYzogSWFuIEphY2tzb24gPGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20+CkNj OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CkNjOiBKdWxpZW4gR3JhbGwgPGp1bGll bi5ncmFsbEBhcm0uY29tPgpDYzogS29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQud2lsa0Bv cmFjbGUuY29tPgpDYzogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3Jn PgpDYzogVGltIERlZWdhbiA8dGltQHhlbi5vcmc+CkNjOiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRy aXguY29tPgoKdjI6CiAtIE5ldyBpbiB2Mi4KLS0tCiB4ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMg fCAxNDIgKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCA3MiBpbnNlcnRpb25zKCspLCA3MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMgYi94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMK aW5kZXggNTFlMWY1Y2E0Yy4uZDI2MTBlMzIwYyAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9ncmFu dF90YWJsZS5jCisrKyBiL3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYwpAQCAtMTY3LDcgKzE2Nyw3 IEBAIHN0cnVjdCBnbnR0YWJfdW5tYXBfY29tbW9uIHsKIAogICAgIC8qIFNoYXJlZCBzdGF0ZSBi ZXRlZW4gKl91bm1hcCBhbmQgKl91bm1hcF9jb21wbGV0ZSAqLwogICAgIHVpbnQxNl90IGRvbmU7 Ci0gICAgbWZuX3QgZnJhbWU7CisgICAgbWZuX3QgbWZuOwogICAgIHN0cnVjdCBkb21haW4gKnJk OwogICAgIGdyYW50X3JlZl90IHJlZjsKIH07CkBAIC0yNjYsNyArMjY2LDcgQEAgc3RydWN0IGFj dGl2ZV9ncmFudF9lbnRyeSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyYW50 LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KICAgICBncmFudF9yZWZfdCAgIHRy YW5zX2dyZWY7CiAgICAgc3RydWN0IGRvbWFpbiAqdHJhbnNfZG9tYWluOwotICAgIG1mbl90ICAg ICAgICAgZnJhbWU7ICAvKiBGcmFtZSBiZWluZyBncmFudGVkLiAgICAgICAgICAgICAgICAgICAg ICovCisgICAgbWZuX3QgICAgICAgICBtZm47ICAgIC8qIE1hY2hpbmUgZnJhbWUgYmVpbmcgZ3Jh bnRlZC4gICAgICAgICAgICAgKi8KICNpZm5kZWYgTkRFQlVHCiAgICAgZ2ZuX3QgICAgICAgICBn Zm47ICAgIC8qIEd1ZXN0J3MgaWRlYSBvZiB0aGUgZnJhbWUgYmVpbmcgZ3JhbnRlZC4gKi8KICNl bmRpZgpAQCAtMzcwLDE1ICszNzAsMTUgQEAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgZ3Jh bnRfdG9fc3RhdHVzX2ZyYW1lcyh1bnNpZ25lZCBpbnQgZ3JhbnRfZnJhbWVzKQogLyogQ2hlY2sg aWYgdGhlIHBhZ2UgaGFzIGJlZW4gcGFnZWQgb3V0LCBvciBuZWVkcyB1bnNoYXJpbmcuCiAgICBJ ZiByYyA9PSBHTlRTVF9va2F5LCAqcGFnZSBjb250YWlucyB0aGUgcGFnZSBzdHJ1Y3Qgd2l0aCBh IHJlZiB0YWtlbi4KICAgIENhbGxlciBtdXN0IGRvIHB1dF9wYWdlKCpwYWdlKS4KLSAgIElmIGFu eSBlcnJvciwgKnBhZ2UgPSBOVUxMLCAqZnJhbWUgPSBJTlZBTElEX01GTiwgbm8gcmVmIHRha2Vu LiAqLwotc3RhdGljIGludCBnZXRfcGFnZWRfZnJhbWUodW5zaWduZWQgbG9uZyBnZm4sIG1mbl90 ICpmcmFtZSwKKyAgIElmIGFueSBlcnJvciwgKnBhZ2UgPSBOVUxMLCAqbWZuID0gSU5WQUxJRF9N Rk4sIG5vIHJlZiB0YWtlbi4gKi8KK3N0YXRpYyBpbnQgZ2V0X3BhZ2VkX2ZyYW1lKHVuc2lnbmVk IGxvbmcgZ2ZuLCBtZm5fdCAqbWZuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IHBhZ2VfaW5mbyAqKnBhZ2UsIGJvb2wgcmVhZG9ubHksCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdHJ1Y3QgZG9tYWluICpyZCkKIHsKICAgICBpbnQgcmMgPSBHTlRTVF9va2F5OwogICAg IHAybV90eXBlX3QgcDJtdDsKIAotICAgICpmcmFtZSA9IElOVkFMSURfTUZOOworICAgICptZm4g PSBJTlZBTElEX01GTjsKICAgICAqcGFnZSA9IGdldF9wYWdlX2Zyb21fZ2ZuKHJkLCBnZm4sICZw Mm10LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZG9ubHkgPyBQMk1fQUxMT0Mg OiBQMk1fVU5TSEFSRSk7CiAgICAgaWYgKCAhKnBhZ2UgKQpAQCAtNDA1LDcgKzQwNSw3IEBAIHN0 YXRpYyBpbnQgZ2V0X3BhZ2VkX2ZyYW1lKHVuc2lnbmVkIGxvbmcgZ2ZuLCBtZm5fdCAqZnJhbWUs CiAgICAgICAgIHJldHVybiBHTlRTVF9iYWRfcGFnZTsKICAgICB9CiAKLSAgICAqZnJhbWUgPSBw YWdlX3RvX21mbigqcGFnZSk7CisgICAgKm1mbiA9IHBhZ2VfdG9fbWZuKCpwYWdlKTsKIAogICAg IHJldHVybiByYzsKIH0KQEAgLTg0Myw3ICs4NDMsNyBAQCBzdGF0aWMgc3RydWN0IGFjdGl2ZV9n cmFudF9lbnRyeSAqZ3JhbnRfbWFwX2V4aXN0cyhjb25zdCBzdHJ1Y3QgZG9tYWluICpsZCwKICAg ICAgICAgc3RydWN0IGFjdGl2ZV9ncmFudF9lbnRyeSAqYWN0ID0gYWN0aXZlX2VudHJ5X2FjcXVp cmUocmd0LCByZWYpOwogCiAgICAgICAgIGlmICggYWN0LT5waW4gJiYgYWN0LT5kb21pZCA9PSBs ZC0+ZG9tYWluX2lkICYmCi0gICAgICAgICAgICAgbWZuX2VxKGFjdC0+ZnJhbWUsIG1mbikgKQor ICAgICAgICAgICAgIG1mbl9lcShhY3QtPm1mbiwgbWZuKSApCiAgICAgICAgICAgICByZXR1cm4g YWN0OwogICAgICAgICBhY3RpdmVfZW50cnlfcmVsZWFzZShhY3QpOwogICAgIH0KQEAgLTg4NSw3 ICs4ODUsNyBAQCBzdGF0aWMgdW5zaWduZWQgaW50IG1hcGtpbmQoCiAgICAgICAgIGlmICggISht YXAtPmZsYWdzICYgKEdOVE1BUF9kZXZpY2VfbWFwfEdOVE1BUF9ob3N0X21hcCkpIHx8CiAgICAg ICAgICAgICAgbWFwLT5kb21pZCAhPSByZC0+ZG9tYWluX2lkICkKICAgICAgICAgICAgIGNvbnRp bnVlOwotICAgICAgICBpZiAoIG1mbl9lcShfYWN0aXZlX2VudHJ5KHJkLT5ncmFudF90YWJsZSwg bWFwLT5yZWYpLmZyYW1lLCBtZm4pICkKKyAgICAgICAgaWYgKCBtZm5fZXEoX2FjdGl2ZV9lbnRy eShyZC0+Z3JhbnRfdGFibGUsIG1hcC0+cmVmKS5tZm4sIG1mbikgKQogICAgICAgICAgICAga2lu ZCB8PSBtYXAtPmZsYWdzICYgR05UTUFQX3JlYWRvbmx5ID8KICAgICAgICAgICAgICAgICAgICAg TUFQS0lORF9SRUFEIDogTUFQS0lORF9XUklURTsKICAgICB9CkBAIC05MDgsNyArOTA4LDcgQEAg bWFwX2dyYW50X3JlZigKICAgICBzdHJ1Y3QgZ3JhbnRfdGFibGUgKmxndCwgKnJndDsKICAgICBz dHJ1Y3QgdmNwdSAgICpsZWQ7CiAgICAgZ3JhbnRfaGFuZGxlX3QgaGFuZGxlOwotICAgIG1mbl90 IGZyYW1lOworICAgIG1mbl90IG1mbjsKICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwZyA9IE5VTEw7 CiAgICAgaW50ICAgICAgICAgICAgcmMgPSBHTlRTVF9va2F5OwogICAgIHUzMiAgICAgICAgICAg IG9sZF9waW47CkBAIC0xMDAxLDEzICsxMDAxLDEzIEBAIG1hcF9ncmFudF9yZWYoCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNoYXJlZF9lbnRyeV92MShyZ3QsIG9wLT5yZWYpLmZy YW1lIDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcmVkX2VudHJ5X3YyKHJn dCwgb3AtPnJlZikuZnVsbF9wYWdlLmZyYW1lOwogCi0gICAgICAgICAgICByYyA9IGdldF9wYWdl ZF9mcmFtZShnZm4sICZmcmFtZSwgJnBnLAorICAgICAgICAgICAgcmMgPSBnZXRfcGFnZWRfZnJh bWUoZ2ZuLCAmbWZuLCAmcGcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcC0+ ZmxhZ3MgJiBHTlRNQVBfcmVhZG9ubHksIHJkKTsKICAgICAgICAgICAgIGlmICggcmMgIT0gR05U U1Rfb2theSApCiAgICAgICAgICAgICAgICAgZ290byB1bmxvY2tfb3V0X2NsZWFyOwogICAgICAg ICAgICAgYWN0X3NldF9nZm4oYWN0LCBfZ2ZuKGdmbikpOwogICAgICAgICAgICAgYWN0LT5kb21p ZCA9IGxkLT5kb21haW5faWQ7Ci0gICAgICAgICAgICBhY3QtPmZyYW1lID0gZnJhbWU7CisgICAg ICAgICAgICBhY3QtPm1mbiA9IG1mbjsKICAgICAgICAgICAgIGFjdC0+c3RhcnQgPSAwOwogICAg ICAgICAgICAgYWN0LT5sZW5ndGggPSBQQUdFX1NJWkU7CiAgICAgICAgICAgICBhY3QtPmlzX3N1 Yl9wYWdlID0gZmFsc2U7CkBAIC0xMDI0LDcgKzEwMjQsNyBAQCBtYXBfZ3JhbnRfcmVmKAogICAg ICAgICBhY3QtPnBpbiArPSAob3AtPmZsYWdzICYgR05UTUFQX3JlYWRvbmx5KSA/CiAgICAgICAg ICAgICBHTlRQSU5faHN0cl9pbmMgOiBHTlRQSU5faHN0d19pbmM7CiAKLSAgICBmcmFtZSA9IGFj dC0+ZnJhbWU7CisgICAgbWZuID0gYWN0LT5tZm47CiAgICAgYWN0X3BpbiA9IGFjdC0+cGluOwog CiAgICAgY2FjaGVfZmxhZ3MgPSAoc2hhaC0+ZmxhZ3MgJiAoR1RGX1BBVCB8IEdURl9QV1QgfCBH VEZfUENEKSApOwpAQCAtMTAzNSw3ICsxMDM1LDcgQEAgbWFwX2dyYW50X3JlZigKICAgICAvKiBw ZyBtYXkgYmUgc2V0LCB3aXRoIGEgcmVmY291bnQgaW5jbHVkZWQsIGZyb20gZ2V0X3BhZ2VkX2Zy YW1lKCkuICovCiAgICAgaWYgKCAhcGcgKQogICAgIHsKLSAgICAgICAgcGcgPSBtZm5fdmFsaWQo ZnJhbWUpID8gbWZuX3RvX3BhZ2UoZnJhbWUpIDogTlVMTDsKKyAgICAgICAgcGcgPSBtZm5fdmFs aWQobWZuKSA/IG1mbl90b19wYWdlKG1mbikgOiBOVUxMOwogICAgICAgICBpZiAoIHBnICkKICAg ICAgICAgICAgIG93bmVyID0gcGFnZV9nZXRfb3duZXJfYW5kX3JlZmVyZW5jZShwZyk7CiAgICAg fQpAQCAtMTA2MSwxOCArMTA2MSwxOCBAQCBtYXBfZ3JhbnRfcmVmKAogICAgICAgICAgICAgZ290 byB1bmRvX291dDsKICAgICAgICAgfQogCi0gICAgICAgIGlmICggIWlvbWVtX2FjY2Vzc19wZXJt aXR0ZWQocmQsIG1mbl94KGZyYW1lKSwgbWZuX3goZnJhbWUpKSApCisgICAgICAgIGlmICggIWlv bWVtX2FjY2Vzc19wZXJtaXR0ZWQocmQsIG1mbl94KG1mbiksIG1mbl94KG1mbikpICkKICAgICAg ICAgewogICAgICAgICAgICAgZ2RwcmludGsoWEVOTE9HX1dBUk5JTkcsCiAgICAgICAgICAgICAg ICAgICAgICAiSW9tZW0gbWFwcGluZyBub3QgcGVybWl0dGVkICUjIlBSSV9tZm4iIChkb21haW4g JWQpXG4iLAotICAgICAgICAgICAgICAgICAgICAgbWZuX3goZnJhbWUpLCByZC0+ZG9tYWluX2lk KTsKKyAgICAgICAgICAgICAgICAgICAgIG1mbl94KG1mbiksIHJkLT5kb21haW5faWQpOwogICAg ICAgICAgICAgcmMgPSBHTlRTVF9nZW5lcmFsX2Vycm9yOwogICAgICAgICAgICAgZ290byB1bmRv X291dDsKICAgICAgICAgfQogCiAgICAgICAgIGlmICggb3AtPmZsYWdzICYgR05UTUFQX2hvc3Rf bWFwICkKICAgICAgICAgewotICAgICAgICAgICAgcmMgPSBjcmVhdGVfZ3JhbnRfaG9zdF9tYXBw aW5nKG9wLT5ob3N0X2FkZHIsIGZyYW1lLCBvcC0+ZmxhZ3MsCisgICAgICAgICAgICByYyA9IGNy ZWF0ZV9ncmFudF9ob3N0X21hcHBpbmcob3AtPmhvc3RfYWRkciwgbWZuLCBvcC0+ZmxhZ3MsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfZmxhZ3MpOwog ICAgICAgICAgICAgaWYgKCByYyAhPSBHTlRTVF9va2F5ICkKICAgICAgICAgICAgICAgICBnb3Rv IHVuZG9fb3V0OwpAQCAtMTExMiw3ICsxMTEyLDcgQEAgbWFwX2dyYW50X3JlZigKICAgICAgICAg ICAgICAgICB0eXBlY250Kys7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIHJjID0gY3Jl YXRlX2dyYW50X2hvc3RfbWFwcGluZyhvcC0+aG9zdF9hZGRyLCBmcmFtZSwgb3AtPmZsYWdzLCAw KTsKKyAgICAgICAgICAgIHJjID0gY3JlYXRlX2dyYW50X2hvc3RfbWFwcGluZyhvcC0+aG9zdF9h ZGRyLCBtZm4sIG9wLT5mbGFncywgMCk7CiAgICAgICAgICAgICBpZiAoIHJjICE9IEdOVFNUX29r YXkgKQogICAgICAgICAgICAgICAgIGdvdG8gdW5kb19vdXQ7CiAKQEAgLTExMjQsNyArMTEyNCw3 IEBAIG1hcF9ncmFudF9yZWYoCiAgICAgY291bGRfbm90X3BpbjoKICAgICAgICAgaWYgKCAhcmQt PmlzX2R5aW5nICkKICAgICAgICAgICAgIGdkcHJpbnRrKFhFTkxPR19XQVJOSU5HLCAiQ291bGQg bm90IHBpbiBncmFudCBmcmFtZSAlIyJQUklfbWZuIlxuIiwKLSAgICAgICAgICAgICAgICAgICAg IG1mbl94KGZyYW1lKSk7CisgICAgICAgICAgICAgICAgICAgICBtZm5feChtZm4pKTsKICAgICAg ICAgcmMgPSBHTlRTVF9nZW5lcmFsX2Vycm9yOwogICAgICAgICBnb3RvIHVuZG9fb3V0OwogICAg IH0KQEAgLTExMzksMTggKzExMzksMTggQEAgbWFwX2dyYW50X3JlZigKIAogICAgICAgICAvKiBX ZSdyZSBub3QgdHJhbnNsYXRlZCwgc28gd2Uga25vdyB0aGF0IGdtZm5zIGFuZCBtZm5zIGFyZQog ICAgICAgICAgICB0aGUgc2FtZSB0aGluZ3MsIHNvIHRoZSBJT01NVSBlbnRyeSBpcyBhbHdheXMg MS10by0xLiAqLwotICAgICAgICBraW5kID0gbWFwa2luZChsZ3QsIHJkLCBmcmFtZSk7CisgICAg ICAgIGtpbmQgPSBtYXBraW5kKGxndCwgcmQsIG1mbik7CiAgICAgICAgIGlmICggKGFjdF9waW4g JiAoR05UUElOX2hzdHdfbWFza3xHTlRQSU5fZGV2d19tYXNrKSkgJiYKICAgICAgICAgICAgICAh KG9sZF9waW4gJiAoR05UUElOX2hzdHdfbWFza3xHTlRQSU5fZGV2d19tYXNrKSkgKQogICAgICAg ICB7CiAgICAgICAgICAgICBpZiAoICEoa2luZCAmIE1BUEtJTkRfV1JJVEUpICkKLSAgICAgICAg ICAgICAgICBlcnIgPSBpb21tdV9tYXBfcGFnZShsZCwgbWZuX3goZnJhbWUpLCBtZm5feChmcmFt ZSksCisgICAgICAgICAgICAgICAgZXJyID0gaW9tbXVfbWFwX3BhZ2UobGQsIG1mbl94KG1mbiks IG1mbl94KG1mbiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVG X3JlYWRhYmxlfElPTU1VRl93cml0YWJsZSk7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSBpZiAo IGFjdF9waW4gJiYgIW9sZF9waW4gKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoICFraW5k ICkKLSAgICAgICAgICAgICAgICBlcnIgPSBpb21tdV9tYXBfcGFnZShsZCwgbWZuX3goZnJhbWUp LCBtZm5feChmcmFtZSksCisgICAgICAgICAgICAgICAgZXJyID0gaW9tbXVfbWFwX3BhZ2UobGQs IG1mbl94KG1mbiksIG1mbl94KG1mbiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgSU9NTVVGX3JlYWRhYmxlKTsKICAgICAgICAgfQogICAgICAgICBpZiAoIGVyciApCkBA IC0xMTgwLDcgKzExODAsNyBAQCBtYXBfZ3JhbnRfcmVmKAogICAgIGlmICggbmVlZF9pb21tdSAp CiAgICAgICAgIGRvdWJsZV9ndF91bmxvY2sobGd0LCByZ3QpOwogCi0gICAgb3AtPmRldl9idXNf YWRkciA9IG1mbl90b19tYWRkcihmcmFtZSk7CisgICAgb3AtPmRldl9idXNfYWRkciA9IG1mbl90 b19tYWRkcihtZm4pOwogICAgIG9wLT5oYW5kbGUgICAgICAgPSBoYW5kbGU7CiAgICAgb3AtPnN0 YXR1cyAgICAgICA9IEdOVFNUX29rYXk7CiAKQEAgLTExOTAsNyArMTE5MCw3IEBAIG1hcF9ncmFu dF9yZWYoCiAgdW5kb19vdXQ6CiAgICAgaWYgKCBob3N0X21hcF9jcmVhdGVkICkKICAgICB7Ci0g ICAgICAgIHJlcGxhY2VfZ3JhbnRfaG9zdF9tYXBwaW5nKG9wLT5ob3N0X2FkZHIsIGZyYW1lLCAw LCBvcC0+ZmxhZ3MpOworICAgICAgICByZXBsYWNlX2dyYW50X2hvc3RfbWFwcGluZyhvcC0+aG9z dF9hZGRyLCBtZm4sIDAsIG9wLT5mbGFncyk7CiAgICAgICAgIGdudHRhYl9mbHVzaF90bGIobGQp OwogICAgIH0KIApAQCAtMTM2NSwxOCArMTM2NSwxOCBAQCB1bm1hcF9jb21tb24oCiAgICAgICAg IGdvdG8gYWN0X3JlbGVhc2Vfb3V0OwogICAgIH0KIAotICAgIG9wLT5mcmFtZSA9IGFjdC0+ZnJh bWU7CisgICAgb3AtPm1mbiA9IGFjdC0+bWZuOwogCiAgICAgaWYgKCBvcC0+ZGV2X2J1c19hZGRy ICYmCi0gICAgICAgICB1bmxpa2VseShvcC0+ZGV2X2J1c19hZGRyICE9IG1mbl90b19tYWRkcihh Y3QtPmZyYW1lKSkgKQorICAgICAgICAgdW5saWtlbHkob3AtPmRldl9idXNfYWRkciAhPSBtZm5f dG9fbWFkZHIoYWN0LT5tZm4pKSApCiAgICAgICAgIFBJTl9GQUlMKGFjdF9yZWxlYXNlX291dCwg R05UU1RfZ2VuZXJhbF9lcnJvciwKICAgICAgICAgICAgICAgICAgIkJ1cyBhZGRyZXNzIGRvZXNu J3QgbWF0Y2ggZ250cmVmICglIlBSSXg2NCIgIT0gJSJQUklwYWRkciIpXG4iLAotICAgICAgICAg ICAgICAgICBvcC0+ZGV2X2J1c19hZGRyLCBtZm5fdG9fbWFkZHIoYWN0LT5mcmFtZSkpOworICAg ICAgICAgICAgICAgICBvcC0+ZGV2X2J1c19hZGRyLCBtZm5fdG9fbWFkZHIoYWN0LT5tZm4pKTsK IAogICAgIGlmICggb3AtPmhvc3RfYWRkciAmJiAoZmxhZ3MgJiBHTlRNQVBfaG9zdF9tYXApICkK ICAgICB7CiAgICAgICAgIGlmICggKHJjID0gcmVwbGFjZV9ncmFudF9ob3N0X21hcHBpbmcob3At Pmhvc3RfYWRkciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBvcC0+ZnJhbWUsIG9wLT5uZXdfYWRkciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBvcC0+bWZuLCBvcC0+bmV3X2FkZHIsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MpKSA8IDAgKQogICAgICAgICAgICAg Z290byBhY3RfcmVsZWFzZV9vdXQ7CiAKQEAgLTE0MTEsMTIgKzE0MTEsMTIgQEAgdW5tYXBfY29t bW9uKAogCiAgICAgICAgIGRvdWJsZV9ndF9sb2NrKGxndCwgcmd0KTsKIAotICAgICAgICBraW5k ID0gbWFwa2luZChsZ3QsIHJkLCBvcC0+ZnJhbWUpOworICAgICAgICBraW5kID0gbWFwa2luZChs Z3QsIHJkLCBvcC0+bWZuKTsKICAgICAgICAgaWYgKCAha2luZCApCi0gICAgICAgICAgICBlcnIg PSBpb21tdV91bm1hcF9wYWdlKGxkLCBtZm5feChvcC0+ZnJhbWUpKTsKKyAgICAgICAgICAgIGVy ciA9IGlvbW11X3VubWFwX3BhZ2UobGQsIG1mbl94KG9wLT5tZm4pKTsKICAgICAgICAgZWxzZSBp ZiAoICEoa2luZCAmIE1BUEtJTkRfV1JJVEUpICkKLSAgICAgICAgICAgIGVyciA9IGlvbW11X21h cF9wYWdlKGxkLCBtZm5feChvcC0+ZnJhbWUpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbWZuX3gob3AtPmZyYW1lKSwgSU9NTVVGX3JlYWRhYmxlKTsKKyAgICAgICAgICAgIGVy ciA9IGlvbW11X21hcF9wYWdlKGxkLCBtZm5feChvcC0+bWZuKSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG1mbl94KG9wLT5tZm4pLCBJT01NVUZfcmVhZGFibGUpOwogCiAgICAg ICAgIGRvdWJsZV9ndF91bmxvY2sobGd0LCByZ3QpOwogCkBAIC0xNDI2LDcgKzE0MjYsNyBAQCB1 bm1hcF9jb21tb24oCiAKICAgICAvKiBJZiBqdXN0IHVubWFwcGVkIGEgd3JpdGFibGUgbWFwcGlu ZywgbWFyayBhcyBkaXJ0aWVkICovCiAgICAgaWYgKCByYyA9PSBHTlRTVF9va2F5ICYmICEoZmxh Z3MgJiBHTlRNQVBfcmVhZG9ubHkpICkKLSAgICAgICAgIGdudHRhYl9tYXJrX2RpcnR5KHJkLCBv cC0+ZnJhbWUpOworICAgICAgICAgZ250dGFiX21hcmtfZGlydHkocmQsIG9wLT5tZm4pOwogCiAg ICAgb3AtPnN0YXR1cyA9IHJjOwogICAgIHJjdV91bmxvY2tfZG9tYWluKHJkKTsKQEAgLTE0NjMs MTEgKzE0NjMsMTEgQEAgdW5tYXBfY29tbW9uX2NvbXBsZXRlKHN0cnVjdCBnbnR0YWJfdW5tYXBf Y29tbW9uICpvcCkKICAgICBlbHNlCiAgICAgICAgIHN0YXR1cyA9ICZzdGF0dXNfZW50cnkocmd0 LCBvcC0+cmVmKTsKIAotICAgIHBnID0gbWZuX3RvX3BhZ2Uob3AtPmZyYW1lKTsKKyAgICBwZyA9 IG1mbl90b19wYWdlKG9wLT5tZm4pOwogCiAgICAgaWYgKCBvcC0+ZG9uZSAmIEdOVE1BUF9kZXZp Y2VfbWFwICkKICAgICB7Ci0gICAgICAgIGlmICggIWlzX2lvbWVtX3BhZ2UoYWN0LT5mcmFtZSkg KQorICAgICAgICBpZiAoICFpc19pb21lbV9wYWdlKGFjdC0+bWZuKSApCiAgICAgICAgIHsKICAg ICAgICAgICAgIGlmICggb3AtPmRvbmUgJiBHTlRNQVBfcmVhZG9ubHkgKQogICAgICAgICAgICAg ICAgIHB1dF9wYWdlKHBnKTsKQEAgLTE0ODQsNyArMTQ4NCw3IEBAIHVubWFwX2NvbW1vbl9jb21w bGV0ZShzdHJ1Y3QgZ250dGFiX3VubWFwX2NvbW1vbiAqb3ApCiAKICAgICBpZiAoIG9wLT5kb25l ICYgR05UTUFQX2hvc3RfbWFwICkKICAgICB7Ci0gICAgICAgIGlmICggIWlzX2lvbWVtX3BhZ2Uo b3AtPmZyYW1lKSApCisgICAgICAgIGlmICggIWlzX2lvbWVtX3BhZ2Uob3AtPm1mbikgKQogICAg ICAgICB7CiAgICAgICAgICAgICBpZiAoIGdudHRhYl9ob3N0X21hcHBpbmdfZ2V0X3BhZ2VfdHlw ZShvcC0+ZG9uZSAmIEdOVE1BUF9yZWFkb25seSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxkLCByZCkgKQpAQCAtMTUyNSw3ICsxNTI1LDcgQEAg dW5tYXBfZ3JhbnRfcmVmKAogICAgIGNvbW1vbi0+ZG9uZSA9IDA7CiAgICAgY29tbW9uLT5uZXdf YWRkciA9IDA7CiAgICAgY29tbW9uLT5yZCA9IE5VTEw7Ci0gICAgY29tbW9uLT5mcmFtZSA9IElO VkFMSURfTUZOOworICAgIGNvbW1vbi0+bWZuID0gSU5WQUxJRF9NRk47CiAKICAgICB1bm1hcF9j b21tb24oY29tbW9uKTsKICAgICBvcC0+c3RhdHVzID0gY29tbW9uLT5zdGF0dXM7CkBAIC0xNTkx LDcgKzE1OTEsNyBAQCB1bm1hcF9hbmRfcmVwbGFjZSgKICAgICBjb21tb24tPmRvbmUgPSAwOwog ICAgIGNvbW1vbi0+ZGV2X2J1c19hZGRyID0gMDsKICAgICBjb21tb24tPnJkID0gTlVMTDsKLSAg ICBjb21tb24tPmZyYW1lID0gSU5WQUxJRF9NRk47CisgICAgY29tbW9uLT5tZm4gPSBJTlZBTElE X01GTjsKIAogICAgIHVubWFwX2NvbW1vbihjb21tb24pOwogICAgIG9wLT5zdGF0dXMgPSBjb21t b24tPnN0YXR1czsKQEAgLTIzMjAsNyArMjMyMCw3IEBAIHJlbGVhc2VfZ3JhbnRfZm9yX2NvcHko CiAgICAgc3RydWN0IGdyYW50X3RhYmxlICpyZ3QgPSByZC0+Z3JhbnRfdGFibGU7CiAgICAgZ3Jh bnRfZW50cnlfaGVhZGVyX3QgKnNoYTsKICAgICBzdHJ1Y3QgYWN0aXZlX2dyYW50X2VudHJ5ICph Y3Q7Ci0gICAgbWZuX3Qgcl9mcmFtZTsKKyAgICBtZm5fdCBtZm47CiAgICAgdWludDE2X3QgKnN0 YXR1czsKICAgICBncmFudF9yZWZfdCB0cmFuc19ncmVmOwogICAgIHN0cnVjdCBkb21haW4gKnRk OwpAQCAtMjMyOSw3ICsyMzI5LDcgQEAgcmVsZWFzZV9ncmFudF9mb3JfY29weSgKIAogICAgIGFj dCA9IGFjdGl2ZV9lbnRyeV9hY3F1aXJlKHJndCwgZ3JlZik7CiAgICAgc2hhID0gc2hhcmVkX2Vu dHJ5X2hlYWRlcihyZ3QsIGdyZWYpOwotICAgIHJfZnJhbWUgPSBhY3QtPmZyYW1lOworICAgIG1m biA9IGFjdC0+bWZuOwogCiAgICAgaWYgKCByZ3QtPmd0X3ZlcnNpb24gPT0gMSApCiAgICAgewpA QCAtMjM1MCw3ICsyMzUwLDcgQEAgcmVsZWFzZV9ncmFudF9mb3JfY29weSgKICAgICB9CiAgICAg ZWxzZQogICAgIHsKLSAgICAgICAgZ250dGFiX21hcmtfZGlydHkocmQsIHJfZnJhbWUpOworICAg ICAgICBnbnR0YWJfbWFya19kaXJ0eShyZCwgbWZuKTsKIAogICAgICAgICBhY3QtPnBpbiAtPSBH TlRQSU5faHN0d19pbmM7CiAgICAgICAgIGlmICggIShhY3QtPnBpbiAmIChHTlRQSU5fZGV2d19t YXNrfEdOVFBJTl9oc3R3X21hc2spKSApCkBAIC0yMzkwLDE1ICsyMzkwLDE3IEBAIHN0YXRpYyB2 b2lkIGZpeHVwX3N0YXR1c19mb3JfY29weV9waW4oY29uc3Qgc3RydWN0IGFjdGl2ZV9ncmFudF9l bnRyeSAqYWN0LAogICAgICAgICBnbnR0YWJfY2xlYXJfZmxhZyhfR1RGX3JlYWRpbmcsIHN0YXR1 cyk7CiB9CiAKLS8qIEdyYWIgYSBmcmFtZSBudW1iZXIgZnJvbSBhIGdyYW50IGVudHJ5IGFuZCB1 cGRhdGUgdGhlIGZsYWdzIGFuZCBwaW4KLSAgIGNvdW50IGFzIGFwcHJvcHJpYXRlLiBJZiByYyA9 PSBHTlRTVF9va2F5LCBub3RlIHRoYXQgdGhpcyAqZG9lcyoKLSAgIHRha2Ugb25lIHJlZiBjb3Vu dCBvbiB0aGUgdGFyZ2V0IHBhZ2UsIHN0b3JlZCBpbiAqcGFnZS4KLSAgIElmIHRoZXJlIGlzIGFu eSBlcnJvciwgKnBhZ2UgPSBOVUxMLCBubyByZWYgdGFrZW4uICovCisvKgorICogR3JhYiBhIG1h Y2hpbmUgZnJhbWUgbnVtYmVyIGZyb20gYSBncmFudCBlbnRyeSBhbmQgdXBkYXRlIHRoZSBmbGFn cworICogYW5kIHBpbiBjb3VudCBhcyBhcHByb3ByaWF0ZS4gSWYgcmMgPT0gR05UU1Rfb2theSwg bm90ZSB0aGF0IHRoaXMgKmRvZXMqCisgKiB0YWtlIG9uZSByZWYgY291bnQgb24gdGhlIHRhcmdl dCBwYWdlLCBzdG9yZWQgaW4gKnBhZ2UuCisgKiBJZiB0aGVyZSBpcyBhbnkgZXJyb3IsICpwYWdl ID0gTlVMTCwgbm8gcmVmIHRha2VuLgorICovCiBzdGF0aWMgaW50CiBhY3F1aXJlX2dyYW50X2Zv cl9jb3B5KAogICAgIHN0cnVjdCBkb21haW4gKnJkLCBncmFudF9yZWZfdCBncmVmLCBkb21pZF90 IGxkb20sIGJvb2wgcmVhZG9ubHksCi0gICAgbWZuX3QgKmZyYW1lLCBzdHJ1Y3QgcGFnZV9pbmZv ICoqcGFnZSwKLSAgICB1aW50MTZfdCAqcGFnZV9vZmYsIHVpbnQxNl90ICpsZW5ndGgsIGJvb2wg YWxsb3dfdHJhbnNpdGl2ZSkKKyAgICBtZm5fdCAqbWZuLCBzdHJ1Y3QgcGFnZV9pbmZvICoqcGFn ZSwgdWludDE2X3QgKnBhZ2Vfb2ZmLAorICAgIHVpbnQxNl90ICpsZW5ndGgsIGJvb2wgYWxsb3df dHJhbnNpdGl2ZSkKIHsKICAgICBzdHJ1Y3QgZ3JhbnRfdGFibGUgKnJndCA9IHJkLT5ncmFudF90 YWJsZTsKICAgICBncmFudF9lbnRyeV92Ml90ICpzaGEyOwpAQCAtMjQwOSw3ICsyNDExLDcgQEAg YWNxdWlyZV9ncmFudF9mb3JfY29weSgKICAgICBkb21pZF90IHRyYW5zX2RvbWlkOwogICAgIGdy YW50X3JlZl90IHRyYW5zX2dyZWY7CiAgICAgc3RydWN0IGRvbWFpbiAqdGQ7Ci0gICAgbWZuX3Qg Z3JhbnRfZnJhbWU7CisgICAgbWZuX3QgZ3JhbnRfbWZuOwogICAgIHVpbnQxNl90IHRyYW5zX3Bh Z2Vfb2ZmOwogICAgIHVpbnQxNl90IHRyYW5zX2xlbmd0aDsKICAgICBib29sIGlzX3N1Yl9wYWdl OwpAQCAtMjQ4Nyw3ICsyNDg5LDcgQEAgYWNxdWlyZV9ncmFudF9mb3JfY29weSgKICAgICAgICAg Z3JhbnRfcmVhZF91bmxvY2socmd0KTsKIAogICAgICAgICByYyA9IGFjcXVpcmVfZ3JhbnRfZm9y X2NvcHkodGQsIHRyYW5zX2dyZWYsIHJkLT5kb21haW5faWQsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByZWFkb25seSwgJmdyYW50X2ZyYW1lLCBwYWdlLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZG9ubHksICZncmFudF9tZm4sIHBhZ2UsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdHJhbnNfcGFnZV9vZmYsICZ0cmFu c19sZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSk7CiAK QEAgLTI1MTEsNyArMjUxMyw3IEBAIGFjcXVpcmVfZ3JhbnRfZm9yX2NvcHkoCiAgICAgICAgIGlm ICggcmd0LT5ndF92ZXJzaW9uICE9IDIgfHwKICAgICAgICAgICAgICBhY3QtPnBpbiAhPSBvbGRf cGluIHx8CiAgICAgICAgICAgICAgKG9sZF9waW4gJiYgKGFjdC0+ZG9taWQgIT0gbGRvbSB8fAot ICAgICAgICAgICAgICAgICAgICAgICAgICAhbWZuX2VxKGFjdC0+ZnJhbWUsIGdyYW50X2ZyYW1l KSB8fAorICAgICAgICAgICAgICAgICAgICAgICAgICAhbWZuX2VxKGFjdC0+bWZuLCBncmFudF9t Zm4pIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdC0+c3RhcnQgIT0gdHJhbnNfcGFn ZV9vZmYgfHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0LT5sZW5ndGggIT0gdHJhbnNf bGVuZ3RoIHx8CiAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdC0+dHJhbnNfZG9tYWluICE9 IHRkIHx8CkBAIC0yNTM1LDcgKzI1MzcsNyBAQCBhY3F1aXJlX2dyYW50X2Zvcl9jb3B5KAogICAg ICAgICAgICAgYWN0LT5sZW5ndGggPSB0cmFuc19sZW5ndGg7CiAgICAgICAgICAgICBhY3QtPnRy YW5zX2RvbWFpbiA9IHRkOwogICAgICAgICAgICAgYWN0LT50cmFuc19ncmVmID0gdHJhbnNfZ3Jl ZjsKLSAgICAgICAgICAgIGFjdC0+ZnJhbWUgPSBncmFudF9mcmFtZTsKKyAgICAgICAgICAgIGFj dC0+bWZuID0gZ3JhbnRfbWZuOwogICAgICAgICAgICAgYWN0X3NldF9nZm4oYWN0LCBJTlZBTElE X0dGTik7CiAgICAgICAgICAgICAvKgogICAgICAgICAgICAgICogVGhlIGFjdHVhbCByZW1vdGUg cmVtb3RlIGdyYW50IG1heSBvciBtYXkgbm90IGJlIGEgc3ViLXBhZ2UsCkBAIC0yNTU5LDcgKzI1 NjEsNyBAQCBhY3F1aXJlX2dyYW50X2Zvcl9jb3B5KAogICAgICAgICB7CiAgICAgICAgICAgICB1 bnNpZ25lZCBsb25nIGdmbiA9IHNoYXJlZF9lbnRyeV92MShyZ3QsIGdyZWYpLmZyYW1lOwogCi0g ICAgICAgICAgICByYyA9IGdldF9wYWdlZF9mcmFtZShnZm4sICZncmFudF9mcmFtZSwgcGFnZSwg cmVhZG9ubHksIHJkKTsKKyAgICAgICAgICAgIHJjID0gZ2V0X3BhZ2VkX2ZyYW1lKGdmbiwgJmdy YW50X21mbiwgcGFnZSwgcmVhZG9ubHksIHJkKTsKICAgICAgICAgICAgIGlmICggcmMgIT0gR05U U1Rfb2theSApCiAgICAgICAgICAgICAgICAgZ290byB1bmxvY2tfb3V0X2NsZWFyOwogICAgICAg ICAgICAgYWN0X3NldF9nZm4oYWN0LCBfZ2ZuKGdmbikpOwpAQCAtMjU2OSw3ICsyNTcxLDcgQEAg YWNxdWlyZV9ncmFudF9mb3JfY29weSgKICAgICAgICAgfQogICAgICAgICBlbHNlIGlmICggIShz aGEyLT5oZHIuZmxhZ3MgJiBHVEZfc3ViX3BhZ2UpICkKICAgICAgICAgewotICAgICAgICAgICAg cmMgPSBnZXRfcGFnZWRfZnJhbWUoc2hhMi0+ZnVsbF9wYWdlLmZyYW1lLCAmZ3JhbnRfZnJhbWUs IHBhZ2UsCisgICAgICAgICAgICByYyA9IGdldF9wYWdlZF9mcmFtZShzaGEyLT5mdWxsX3BhZ2Uu ZnJhbWUsICZncmFudF9tZm4sIHBhZ2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICByZWFkb25seSwgcmQpOwogICAgICAgICAgICAgaWYgKCByYyAhPSBHTlRTVF9va2F5ICkKICAg ICAgICAgICAgICAgICBnb3RvIHVubG9ja19vdXRfY2xlYXI7CkBAIC0yNTgwLDcgKzI1ODIsNyBA QCBhY3F1aXJlX2dyYW50X2Zvcl9jb3B5KAogICAgICAgICB9CiAgICAgICAgIGVsc2UKICAgICAg ICAgewotICAgICAgICAgICAgcmMgPSBnZXRfcGFnZWRfZnJhbWUoc2hhMi0+c3ViX3BhZ2UuZnJh bWUsICZncmFudF9mcmFtZSwgcGFnZSwKKyAgICAgICAgICAgIHJjID0gZ2V0X3BhZ2VkX2ZyYW1l KHNoYTItPnN1Yl9wYWdlLmZyYW1lLCAmZ3JhbnRfbWZuLCBwYWdlLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmVhZG9ubHksIHJkKTsKICAgICAgICAgICAgIGlmICggcmMgIT0g R05UU1Rfb2theSApCiAgICAgICAgICAgICAgICAgZ290byB1bmxvY2tfb3V0X2NsZWFyOwpAQCAt MjU5OCwxMyArMjYwMCwxMyBAQCBhY3F1aXJlX2dyYW50X2Zvcl9jb3B5KAogICAgICAgICAgICAg YWN0LT5sZW5ndGggPSB0cmFuc19sZW5ndGg7CiAgICAgICAgICAgICBhY3QtPnRyYW5zX2RvbWFp biA9IHRkOwogICAgICAgICAgICAgYWN0LT50cmFuc19ncmVmID0gdHJhbnNfZ3JlZjsKLSAgICAg ICAgICAgIGFjdC0+ZnJhbWUgPSBncmFudF9mcmFtZTsKKyAgICAgICAgICAgIGFjdC0+bWZuID0g Z3JhbnRfbWZuOwogICAgICAgICB9CiAgICAgfQogICAgIGVsc2UKICAgICB7Ci0gICAgICAgIEFT U0VSVChtZm5fdmFsaWQoYWN0LT5mcmFtZSkpOwotICAgICAgICAqcGFnZSA9IG1mbl90b19wYWdl KGFjdC0+ZnJhbWUpOworICAgICAgICBBU1NFUlQobWZuX3ZhbGlkKGFjdC0+bWZuKSk7CisgICAg ICAgICpwYWdlID0gbWZuX3RvX3BhZ2UoYWN0LT5tZm4pOwogICAgICAgICB0ZCA9IHBhZ2VfZ2V0 X293bmVyX2FuZF9yZWZlcmVuY2UoKnBhZ2UpOwogICAgICAgICAvKgogICAgICAgICAgKiBhY3Qt PnBpbiBiZWluZyBub24temVybyBzaG91bGQgZ3VhcmFudGVlIHRoZSBwYWdlIHRvIGhhdmUgYQpA QCAtMjYyOCw3ICsyNjMwLDcgQEAgYWNxdWlyZV9ncmFudF9mb3JfY29weSgKIAogICAgICpwYWdl X29mZiA9IGFjdC0+c3RhcnQ7CiAgICAgKmxlbmd0aCA9IGFjdC0+bGVuZ3RoOwotICAgICpmcmFt ZSA9IGFjdC0+ZnJhbWU7CisgICAgKm1mbiA9IGFjdC0+bWZuOwogCiAgICAgYWN0aXZlX2VudHJ5 X3JlbGVhc2UoYWN0KTsKICAgICBncmFudF9yZWFkX3VubG9jayhyZ3QpOwpAQCAtMjY1OCw3ICsy NjYwLDcgQEAgc3RydWN0IGdudHRhYl9jb3B5X2J1ZiB7CiAKICAgICAvKiBNYXBwZWQgZXRjLiAq LwogICAgIHN0cnVjdCBkb21haW4gKmRvbWFpbjsKLSAgICBtZm5fdCBmcmFtZTsKKyAgICBtZm5f dCBtZm47CiAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGFnZTsKICAgICB2b2lkICp2aXJ0OwogICAg IGJvb2xfdCByZWFkX29ubHk7CkBAIC0yNzY0LDcgKzI3NjYsNyBAQCBzdGF0aWMgaW50IGdudHRh Yl9jb3B5X2NsYWltX2J1Zihjb25zdCBzdHJ1Y3QgZ250dGFiX2NvcHkgKm9wLAogICAgICAgICBy YyA9IGFjcXVpcmVfZ3JhbnRfZm9yX2NvcHkoYnVmLT5kb21haW4sIHB0ci0+dS5yZWYsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50LT5kb21haW4tPmRvbWFpbl9p ZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi0+cmVhZF9vbmx5LAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmJ1Zi0+ZnJhbWUsICZidWYtPnBh Z2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYnVmLT5tZm4sICZidWYt PnBhZ2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYnVmLT5wdHIub2Zm c2V0LCAmYnVmLT5sZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRf dHJhbnNpdGl2ZV9ncmFudHMpOwogICAgICAgICBpZiAoIHJjICE9IEdOVFNUX29rYXkgKQpAQCAt Mjc3NCw3ICsyNzc2LDcgQEAgc3RhdGljIGludCBnbnR0YWJfY29weV9jbGFpbV9idWYoY29uc3Qg c3RydWN0IGdudHRhYl9jb3B5ICpvcCwKICAgICB9CiAgICAgZWxzZQogICAgIHsKLSAgICAgICAg cmMgPSBnZXRfcGFnZWRfZnJhbWUocHRyLT51LmdtZm4sICZidWYtPmZyYW1lLCAmYnVmLT5wYWdl LAorICAgICAgICByYyA9IGdldF9wYWdlZF9mcmFtZShwdHItPnUuZ21mbiwgJmJ1Zi0+bWZuLCAm YnVmLT5wYWdlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYtPnJlYWRfb25seSwg YnVmLT5kb21haW4pOwogICAgICAgICBpZiAoIHJjICE9IEdOVFNUX29rYXkgKQogICAgICAgICAg ICAgUElOX0ZBSUwob3V0LCByYywKQEAgLTI3OTIsMTQgKzI3OTQsMTQgQEAgc3RhdGljIGludCBn bnR0YWJfY29weV9jbGFpbV9idWYoY29uc3Qgc3RydWN0IGdudHRhYl9jb3B5ICpvcCwKICAgICAg ICAgICAgIGlmICggIWJ1Zi0+ZG9tYWluLT5pc19keWluZyApCiAgICAgICAgICAgICAgICAgZ2Rw cmludGsoWEVOTE9HX1dBUk5JTkcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIkNvdWxkIG5v dCBnZXQgd3JpdGFibGUgZnJhbWUgJSMiUFJJX21mbiJcbiIsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgbWZuX3goYnVmLT5mcmFtZSkpOworICAgICAgICAgICAgICAgICAgICAgICAgIG1mbl94 KGJ1Zi0+bWZuKSk7CiAgICAgICAgICAgICByYyA9IEdOVFNUX2dlbmVyYWxfZXJyb3I7CiAgICAg ICAgICAgICBnb3RvIG91dDsKICAgICAgICAgfQogICAgICAgICBidWYtPmhhdmVfdHlwZSA9IDE7 CiAgICAgfQogCi0gICAgYnVmLT52aXJ0ID0gbWFwX2RvbWFpbl9wYWdlKGJ1Zi0+ZnJhbWUpOwor ICAgIGJ1Zi0+dmlydCA9IG1hcF9kb21haW5fcGFnZShidWYtPm1mbik7CiAgICAgcmMgPSBHTlRT VF9va2F5OwogCiAgb3V0OgpAQCAtMjg0Myw3ICsyODQ1LDcgQEAgc3RhdGljIGludCBnbnR0YWJf Y29weV9idWYoY29uc3Qgc3RydWN0IGdudHRhYl9jb3B5ICpvcCwKIAogICAgIG1lbWNweShkZXN0 LT52aXJ0ICsgb3AtPmRlc3Qub2Zmc2V0LCBzcmMtPnZpcnQgKyBvcC0+c291cmNlLm9mZnNldCwK ICAgICAgICAgICAgb3AtPmxlbik7Ci0gICAgZ250dGFiX21hcmtfZGlydHkoZGVzdC0+ZG9tYWlu LCBkZXN0LT5mcmFtZSk7CisgICAgZ250dGFiX21hcmtfZGlydHkoZGVzdC0+ZG9tYWluLCBkZXN0 LT5tZm4pOwogICAgIHJjID0gR05UU1Rfb2theTsKICBvdXQ6CiAgICAgcmV0dXJuIHJjOwpAQCAt MzY2MSw3ICszNjYzLDcgQEAgZ250dGFiX3JlbGVhc2VfbWFwcGluZ3MoCiAgICAgICAgIGVsc2UK ICAgICAgICAgICAgIHN0YXR1cyA9ICZzdGF0dXNfZW50cnkocmd0LCByZWYpOwogCi0gICAgICAg IHBnID0gbWZuX3RvX3BhZ2UoYWN0LT5mcmFtZSk7CisgICAgICAgIHBnID0gbWZuX3RvX3BhZ2Uo YWN0LT5tZm4pOwogCiAgICAgICAgIGlmICggbWFwLT5mbGFncyAmIEdOVE1BUF9yZWFkb25seSAp CiAgICAgICAgIHsKQEAgLTM2NjksNyArMzY3MSw3IEBAIGdudHRhYl9yZWxlYXNlX21hcHBpbmdz KAogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIEJVR19PTighKGFjdC0+cGluICYgR05U UElOX2RldnJfbWFzaykpOwogICAgICAgICAgICAgICAgIGFjdC0+cGluIC09IEdOVFBJTl9kZXZy X2luYzsKLSAgICAgICAgICAgICAgICBpZiAoICFpc19pb21lbV9wYWdlKGFjdC0+ZnJhbWUpICkK KyAgICAgICAgICAgICAgICBpZiAoICFpc19pb21lbV9wYWdlKGFjdC0+bWZuKSApCiAgICAgICAg ICAgICAgICAgICAgIHB1dF9wYWdlKHBnKTsKICAgICAgICAgICAgIH0KIApAQCAtMzY3OCw3ICsz NjgwLDcgQEAgZ250dGFiX3JlbGVhc2VfbWFwcGluZ3MoCiAgICAgICAgICAgICAgICAgQlVHX09O KCEoYWN0LT5waW4gJiBHTlRQSU5faHN0cl9tYXNrKSk7CiAgICAgICAgICAgICAgICAgYWN0LT5w aW4gLT0gR05UUElOX2hzdHJfaW5jOwogICAgICAgICAgICAgICAgIGlmICggZ250dGFiX3JlbGVh c2VfaG9zdF9tYXBwaW5ncyhkKSAmJgotICAgICAgICAgICAgICAgICAgICAgIWlzX2lvbWVtX3Bh Z2UoYWN0LT5mcmFtZSkgKQorICAgICAgICAgICAgICAgICAgICAgIWlzX2lvbWVtX3BhZ2UoYWN0 LT5tZm4pICkKICAgICAgICAgICAgICAgICAgICAgcHV0X3BhZ2UocGcpOwogICAgICAgICAgICAg fQogICAgICAgICB9CkBAIC0zNjg4LDcgKzM2OTAsNyBAQCBnbnR0YWJfcmVsZWFzZV9tYXBwaW5n cygKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBCVUdfT04oIShhY3QtPnBpbiAmIEdO VFBJTl9kZXZ3X21hc2spKTsKICAgICAgICAgICAgICAgICBhY3QtPnBpbiAtPSBHTlRQSU5fZGV2 d19pbmM7Ci0gICAgICAgICAgICAgICAgaWYgKCAhaXNfaW9tZW1fcGFnZShhY3QtPmZyYW1lKSAp CisgICAgICAgICAgICAgICAgaWYgKCAhaXNfaW9tZW1fcGFnZShhY3QtPm1mbikgKQogICAgICAg ICAgICAgICAgICAgICBwdXRfcGFnZV9hbmRfdHlwZShwZyk7CiAgICAgICAgICAgICB9CiAKQEAg LTM2OTcsNyArMzY5OSw3IEBAIGdudHRhYl9yZWxlYXNlX21hcHBpbmdzKAogICAgICAgICAgICAg ICAgIEJVR19PTighKGFjdC0+cGluICYgR05UUElOX2hzdHdfbWFzaykpOwogICAgICAgICAgICAg ICAgIGFjdC0+cGluIC09IEdOVFBJTl9oc3R3X2luYzsKICAgICAgICAgICAgICAgICBpZiAoIGdu dHRhYl9yZWxlYXNlX2hvc3RfbWFwcGluZ3MoZCkgJiYKLSAgICAgICAgICAgICAgICAgICAgICFp c19pb21lbV9wYWdlKGFjdC0+ZnJhbWUpICkKKyAgICAgICAgICAgICAgICAgICAgICFpc19pb21l bV9wYWdlKGFjdC0+bWZuKSApCiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAg ICBpZiAoIGdudHRhYl9ob3N0X21hcHBpbmdfZ2V0X3BhZ2VfdHlwZSgobWFwLT5mbGFncyAmCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBHTlRNQVBfcmVhZG9ubHkpLApAQCAtMzc1NCw3ICszNzU2LDcgQEAgdm9pZCBncmFudF90YWJs ZV93YXJuX2FjdGl2ZV9ncmFudHMoc3RydWN0IGRvbWFpbiAqZCkKICNpZm5kZWYgTkRFQlVHCiAg ICAgICAgICAgICAgICAgICAgZ2ZuX3goYWN0LT5nZm4pLAogI2VuZGlmCi0gICAgICAgICAgICAg ICAgICAgbWZuX3goYWN0LT5mcmFtZSkpOworICAgICAgICAgICAgICAgICAgIG1mbl94KGFjdC0+ bWZuKSk7CiAgICAgICAgIGFjdGl2ZV9lbnRyeV9yZWxlYXNlKGFjdCk7CiAgICAgfQogCkBAIC0z OTYzLDcgKzM5NjUsNyBAQCBzdGF0aWMgdm9pZCBnbnR0YWJfdXNhZ2VfcHJpbnQoc3RydWN0IGRv bWFpbiAqcmQpCiAKICAgICAgICAgLyogICAgICBbMHhYWFhdICBkZGRkZCAweFhYWFhYIDB4WFhY WFhYWFggICAgICBkZGRkZCAweFhYWFhYWCAweFhYICovCiAgICAgICAgIHByaW50aygiWzB4JTAz eF0gICU1ZCAweCUiUFJJX21mbiIgMHglMDh4ICAgICAgJTVkIDB4JTA2IlBSSXg2NCIgMHglMDJ4 XG4iLAotICAgICAgICAgICAgICAgcmVmLCBhY3QtPmRvbWlkLCBtZm5feChhY3QtPmZyYW1lKSwg YWN0LT5waW4sCisgICAgICAgICAgICAgICByZWYsIGFjdC0+ZG9taWQsIG1mbl94KGFjdC0+bWZu KSwgYWN0LT5waW4sCiAgICAgICAgICAgICAgICBzaGEtPmRvbWlkLCBmcmFtZSwgc3RhdHVzKTsK ICAgICAgICAgYWN0aXZlX2VudHJ5X3JlbGVhc2UoYWN0KTsKICAgICB9Ci0tIAoyLjExLjAKCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwg bWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3Rz LnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs