From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v8 5/7] memory: add check_get_page_from_gfn() as a wrapper... Date: Thu, 13 Sep 2018 11:31:50 +0100 Message-ID: <20180913103153.33377-6-paul.durrant@citrix.com> References: <20180913103153.33377-1-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1g0Oun-0007ev-3Y for xen-devel@lists.xenproject.org; Thu, 13 Sep 2018 10:32:01 +0000 In-Reply-To: <20180913103153.33377-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 , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Julien Grall , Paul Durrant , Jan Beulich List-Id: xen-devel@lists.xenproject.org Li4uZm9yIHNvbWUgdXNlcyBvZiBnZXRfcGFnZV9mcm9tX2dmbigpLgoKVGhlcmUgYXJlIG1hbnkg b2NjdXJyZW5jZXMgb2YgdGhlIGZvbGxvd2luZyBwYXR0ZXJuIGluIHRoZSBjb2RlOgoKICAgIHEg PSA8cmVhZG9ubHkgbG9vay11cD4gPyBQMk1fQUxMT0MgOiBQMk1fVU5TSEFSRTsKICAgIHBhZ2Ug PSBnZXRfcGFnZV9mcm9tX2dmbihkLCBnZm4sICZwMm10LCBxKTsKCiAgICBpZiAoIHAybV9pc19w YWdpbmcocDJtdCkgKQogICAgewogICAgICAgIGlmICggcGFnZSApCiAgICAgICAgICAgIHB1dF9w YWdlKHBhZ2UpOwoKICAgICAgICBwMm1fbWVtX3BhZ2luZ19wb3B1bGF0ZShkLCBnZm4pOwogICAg ICAgIHJldHVybiA8LUVBR0FJTiBvciBlcXVpdmFsZW50PjsKICAgIH0KCiAgICBpZiAoIChxICYg UDJNX1VOU0hBUkUpICYmIHAybV9pc19zaGFyZWQocDJtdCkgKQogICAgewogICAgICAgIGlmICgg cGFnZSApCiAgICAgICAgICAgIHB1dF9wYWdlKHBhZ2UpOwoKICAgICAgICByZXR1cm4gPC1FQUdB SU4gb3IgZXF1aXZhbGVudD47CiAgICB9CgogICAgaWYgKCAhcGFnZSApCiAgICAgICAgcmV0dXJu IDwtRUlOVkFMIG9yIGVxdWl2YWxlbnQ+OwoKICAgIGlmICggIXAybV9pc19yYW0ocDJtdCkgfHwK ICAgICAgICAgKCE8cmVhZG9ubHkgbG9vay11cD4gJiYgcDJtX2lzX3JlYWRvbmx5KHAybXQpKSAp CiAgICB7CiAgICAgICAgcHV0X3BhZ2UocGFnZSk7CiAgICAgICAgcmV0dXJuIDwtRUlOVkFMIG9y IGVxdWl2YWxlbnQ+OwogICAgfQoKVGhlcmUgYXJlIHNvbWUgc21hbGwgZGlmZmVyZW5jZXMgYmV0 d2VlbiB0aGUgZXhhY3Qgd2F5IHRoZSBvY2N1cnJlbmNlcwphcmUgY29kZWQgYnV0IHRoZSBkZXNp cmVkIHNlbWFudGljIGlzIHRoZSBzYW1lLgoKVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgbmV3IGNv bW1vbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGNvZGUgaW4KY2hlY2tfZ2V0X3BhZ2VfZnJvbV9n Zm4oKSBhbmQgdGhlbiBjb252ZXJ0cyB0aGUgdmFyaW91cyBvcGVuLWNvZGVkIHBhdHRlcm5zCmlu dG8gY2FsbHMgdG8gdGhpcyBuZXcgZnVuY3Rpb24uCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJh bnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgpSZXZpZXdlZC1ieTogUm9nZXIgUGF1IE1vbm5l IDxyb2dlci5wYXVAY2l0cml4LmNvbT4KLS0tCkNjOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3Vz ZS5jb20+CkNjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpDYzog R2VvcmdlIER1bmxhcCA8R2VvcmdlLkR1bmxhcEBldS5jaXRyaXguY29tPgpDYzogSWFuIEphY2tz b24gPGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20+CkNjOiBKdWxpZW4gR3JhbGwgPGp1bGllbi5n cmFsbEBhcm0uY29tPgpDYzogS29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQud2lsa0BvcmFj bGUuY29tPgpDYzogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPgpD YzogVGltIERlZWdhbiA8dGltQHhlbi5vcmc+CkNjOiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXgu Y29tPgoKdjc6CiAtIEZpeCBBUk0gYnVpbGQgYnkgaW50cm9kdWNpbmcgcDJtX2lzX3JlYWRvbmx5 KCkgcHJlZGljYXRlLgogLSBSZS1uYW1lIGdldF9wYWdlZF9mcmFtZSgpIC0+IGNoZWNrX2dldF9w YWdlX2Zyb21fZ2ZuKCkuCiAtIEFkanVzdCBkZWZhdWx0IGNhc2VzIG9mIGNhbGxlcnMgc3dpdGNo LWluZyBvbiByZXR1cm4gdmFsdWUuCgp2MzoKIC0gQWRkcmVzc2VkIGNvbW1lbnRzIGZyb20gR2Vv cmdlLgoKdjI6CiAtIE5ldyBpbiB2Mi4KLS0tCiB4ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYyB8 IDMxICsrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9odm0vaHZtLmMgICAg IHwgMTYgKystLS0tLS0tLS0tLQogeGVuL2NvbW1vbi9ncmFudF90YWJsZS5jICAgfCAzOCArKysr KysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tCiB4ZW4vY29tbW9uL21lbW9yeS5jICAgICAgICB8 IDU2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KIHhlbi9p bmNsdWRlL2FzbS1hcm0vcDJtLmggIHwgIDkgKysrKysrKysKIHhlbi9pbmNsdWRlL2FzbS14ODYv cDJtLmggIHwgIDMgKysrCiA2IGZpbGVzIGNoYW5nZWQsIDgyIGluc2VydGlvbnMoKyksIDcxIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5jIGIveGVu L2FyY2gveDg2L2h2bS9lbXVsYXRlLmMKaW5kZXggYTU3NzY4NWRjNi4uNWFiM2I4MTEwYSAxMDA2 NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9lbXVsYXRlLmMKKysrIGIveGVuL2FyY2gveDg2L2h2 bS9lbXVsYXRlLmMKQEAgLTM1MywzMyArMzUzLDIwIEBAIHN0YXRpYyBpbnQgaHZtZW11bF9kb19p b19idWZmZXIoCiAKIHN0YXRpYyBpbnQgaHZtZW11bF9hY3F1aXJlX3BhZ2UodW5zaWduZWQgbG9u ZyBnbWZuLCBzdHJ1Y3QgcGFnZV9pbmZvICoqcGFnZSkKIHsKLSAgICBzdHJ1Y3QgZG9tYWluICpj dXJyX2QgPSBjdXJyZW50LT5kb21haW47Ci0gICAgcDJtX3R5cGVfdCBwMm10OwotCi0gICAgKnBh Z2UgPSBnZXRfcGFnZV9mcm9tX2dmbihjdXJyX2QsIGdtZm4sICZwMm10LCBQMk1fVU5TSEFSRSk7 Ci0KLSAgICBpZiAoICpwYWdlID09IE5VTEwgKQotICAgICAgICByZXR1cm4gWDg2RU1VTF9VTkhB TkRMRUFCTEU7Ci0KLSAgICBpZiAoIHAybV9pc19wYWdpbmcocDJtdCkgKQorICAgIHN3aXRjaCAo IGNoZWNrX2dldF9wYWdlX2Zyb21fZ2ZuKGN1cnJlbnQtPmRvbWFpbiwgX2dmbihnbWZuKSwgZmFs c2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgcGFnZSkgKQog ICAgIHsKLSAgICAgICAgcHV0X3BhZ2UoKnBhZ2UpOwotICAgICAgICBwMm1fbWVtX3BhZ2luZ19w b3B1bGF0ZShjdXJyX2QsIGdtZm4pOwotICAgICAgICByZXR1cm4gWDg2RU1VTF9SRVRSWTsKLSAg ICB9CisgICAgY2FzZSAwOgorICAgICAgICBicmVhazsKIAotICAgIGlmICggcDJtX2lzX3NoYXJl ZChwMm10KSApCi0gICAgewotICAgICAgICBwdXRfcGFnZSgqcGFnZSk7CisgICAgY2FzZSAtRUFH QUlOOgogICAgICAgICByZXR1cm4gWDg2RU1VTF9SRVRSWTsKLSAgICB9CiAKLSAgICAvKiBUaGlz IGNvZGUgc2hvdWxkIG5vdCBiZSByZWFjaGVkIGlmIHRoZSBnbWZuIGlzIG5vdCBSQU0gKi8KLSAg ICBpZiAoIHAybV9pc19tbWlvKHAybXQpICkKLSAgICB7Ci0gICAgICAgIGRvbWFpbl9jcmFzaChj dXJyX2QpOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9VTlJFQUNIQUJMRSgpOworICAg ICAgICAvKiBGYWxsdGhyb3VnaCAqLwogCi0gICAgICAgIHB1dF9wYWdlKCpwYWdlKTsKKyAgICBj YXNlIC1FSU5WQUw6CiAgICAgICAgIHJldHVybiBYODZFTVVMX1VOSEFORExFQUJMRTsKICAgICB9 CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMgYi94ZW4vYXJjaC94ODYvaHZt L2h2bS5jCmluZGV4IDA2Mjg3MmNiNzEuLjY5NWQyMzUxNmEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L3g4Ni9odm0vaHZtLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9odm0uYwpAQCAtMjU1NSwyNCAr MjU1NSwxMiBAQCBzdGF0aWMgdm9pZCAqX2h2bV9tYXBfZ3Vlc3RfZnJhbWUodW5zaWduZWQgbG9u ZyBnZm4sIGJvb2xfdCBwZXJtYW5lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYm9vbF90ICp3cml0YWJsZSkKIHsKICAgICB2b2lkICptYXA7Ci0gICAgcDJtX3R5cGVfdCBw Mm10OwogICAgIHN0cnVjdCBwYWdlX2luZm8gKnBhZ2U7CiAgICAgc3RydWN0IGRvbWFpbiAqZCA9 IGN1cnJlbnQtPmRvbWFpbjsKKyAgICBwMm1fdHlwZV90IHAybXQ7CiAKLSAgICBwYWdlID0gZ2V0 X3BhZ2VfZnJvbV9nZm4oZCwgZ2ZuLCAmcDJtdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgd3JpdGFibGUgPyBQMk1fVU5TSEFSRSA6IFAyTV9BTExPQyk7Ci0gICAgaWYgKCAocDJtX2lz X3NoYXJlZChwMm10KSAmJiB3cml0YWJsZSkgfHwgIXBhZ2UgKQotICAgIHsKLSAgICAgICAgaWYg KCBwYWdlICkKLSAgICAgICAgICAgIHB1dF9wYWdlKHBhZ2UpOwotICAgICAgICByZXR1cm4gTlVM TDsKLSAgICB9Ci0gICAgaWYgKCBwMm1faXNfcGFnaW5nKHAybXQpICkKLSAgICB7Ci0gICAgICAg IHB1dF9wYWdlKHBhZ2UpOwotICAgICAgICBwMm1fbWVtX3BhZ2luZ19wb3B1bGF0ZShkLCBnZm4p OworICAgIGlmICggY2hlY2tfZ2V0X3BhZ2VfZnJvbV9nZm4oZCwgX2dmbihnZm4pLCAhd3JpdGFi bGUsICZwMm10LCAmcGFnZSkgKQogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9CiAKICAgICBp ZiAoIHdyaXRhYmxlICkKICAgICB7CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2dyYW50X3RhYmxl LmMgYi94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMKaW5kZXggMGYwYjdiMWE0OS4uYzhmZDM3M2I0 YyAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jCisrKyBiL3hlbi9jb21tb24v Z3JhbnRfdGFibGUuYwpAQCAtMzc0LDM5ICszNzQsMjcgQEAgc3RhdGljIGludCBnZXRfcGFnZWRf ZnJhbWUodW5zaWduZWQgbG9uZyBnZm4sIG1mbl90ICptZm4sCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgcGFnZV9pbmZvICoqcGFnZSwgYm9vbCByZWFkb25seSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkb21haW4gKnJkKQogewotICAgIGludCByYyA9IEdO VFNUX29rYXk7Ci0gICAgcDJtX3R5cGVfdCBwMm10OworICAgIGludCByYzsKIAotICAgICptZm4g PSBJTlZBTElEX01GTjsKLSAgICAqcGFnZSA9IGdldF9wYWdlX2Zyb21fZ2ZuKHJkLCBnZm4sICZw Mm10LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZG9ubHkgPyBQMk1fQUxMT0Mg OiBQMk1fVU5TSEFSRSk7Ci0gICAgaWYgKCAhKnBhZ2UgKQorICAgIHJjID0gY2hlY2tfZ2V0X3Bh Z2VfZnJvbV9nZm4ocmQsIF9nZm4oZ2ZuKSwgcmVhZG9ubHksIE5VTEwsIHBhZ2UpOworICAgIHN3 aXRjaCAoIHJjICkKICAgICB7Ci0jaWZkZWYgUDJNX1NIQVJFRF9UWVBFUwotICAgICAgICBpZiAo IHAybV9pc19zaGFyZWQocDJtdCkgKQotICAgICAgICAgICAgcmV0dXJuIEdOVFNUX2VhZ2FpbjsK LSNlbmRpZgotI2lmZGVmIFAyTV9QQUdFU19UWVBFUwotICAgICAgICBpZiAoIHAybV9pc19wYWdp bmcocDJtdCkgKQotICAgICAgICB7Ci0gICAgICAgICAgICBwMm1fbWVtX3BhZ2luZ19wb3B1bGF0 ZShyZCwgZ2ZuKTsKLSAgICAgICAgICAgIHJldHVybiBHTlRTVF9lYWdhaW47Ci0gICAgICAgIH0K LSNlbmRpZgotICAgICAgICByZXR1cm4gR05UU1RfYmFkX3BhZ2U7Ci0gICAgfQorICAgIGNhc2Ug MDoKKyAgICAgICAgYnJlYWs7CiAKLSAgICBpZiAoIHAybV9pc19mb3JlaWduKHAybXQpICkKLSAg ICB7Ci0gICAgICAgIHB1dF9wYWdlKCpwYWdlKTsKLSAgICAgICAgKnBhZ2UgPSBOVUxMOworICAg IGNhc2UgLUVBR0FJTjoKKyAgICAgICAgcmV0dXJuIEdOVFNUX2VhZ2FpbjsKKworICAgIGRlZmF1 bHQ6CisgICAgICAgIEFTU0VSVF9VTlJFQUNIQUJMRSgpOworICAgICAgICAvKiBGYWxsdGhyb3Vn aCAqLwogCisgICAgY2FzZSAtRUlOVkFMOgogICAgICAgICByZXR1cm4gR05UU1RfYmFkX3BhZ2U7 CiAgICAgfQogCiAgICAgKm1mbiA9IHBhZ2VfdG9fbWZuKCpwYWdlKTsKLQotICAgIHJldHVybiBy YzsKKyAgICByZXR1cm4gR05UU1Rfb2theTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkCmRpZmYg LS1naXQgYS94ZW4vY29tbW9uL21lbW9yeS5jIGIveGVuL2NvbW1vbi9tZW1vcnkuYwppbmRleCA4 NTYxMWRkYWU0Li5lMjg5YzQxNGY4IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL21lbW9yeS5jCisr KyBiL3hlbi9jb21tb24vbWVtb3J5LmMKQEAgLTE2MjUsMzcgKzE2MjUsNzMgQEAgdm9pZCBkZXN0 cm95X3JpbmdfZm9yX2hlbHBlcigKICAgICB9CiB9CiAKLWludCBwcmVwYXJlX3JpbmdfZm9yX2hl bHBlcigKLSAgICBzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdtZm4sIHN0cnVjdCBw YWdlX2luZm8gKipfcGFnZSwKLSAgICB2b2lkICoqX3ZhKQorLyoKKyAqIEFjcXVpcmUgYSBwb2lu dGVyIHRvIHN0cnVjdCBwYWdlX2luZm8gZm9yIGEgc3BlY2lmaWVkIGRvbWFuIGFuZCBHRk4sCisg KiBjaGVja2luZyB3aGV0aGVyIHRoZSBwYWdlIGhhcyBiZWVuIHBhZ2VkIG91dCwgb3IgbmVlZHMg dW5zaGFyaW5nLgorICogSWYgdGhlIGZ1bmN0aW9uIHN1Y2NlZWRzIHRoZW4gemVybyBpcyByZXR1 cm5lZCBhbmQgcGFnZV9wIGlzIHdyaXR0ZW4KKyAqIHdpdGggYSBwb2ludGVyIHRvIHRoZSBzdHJ1 Y3QgcGFnZV9pbmZvIHdpdGggYSByZWZlcmVuY2UgdGFrZW4uIFRoZQorICogY2FsbGVyIGlzIHJl c3BvbnNpYmxlIGZvciBkcm9wcGluZyB0aGUgcmVmZXJlbmNlLiBJZiBwMm10X3AgaXMgbm9uLU5V TEwKKyAqIHRoZW4gaXQgaXMgYWxzbyB3cml0dGVuIHdpdGggdGhlIFAyTSB0eXBlIG9mIHRoZSBw YWdlLgorICogSWYgdGhlIGZ1bmN0aW9uIGZhaWxzIHRoZW4gYW4gYXBwcm9wcmlhdGUgZXJybm8g aXMgcmV0dXJuZWQgYW5kIHRoZQorICogdmFsdWVzIHJlZmVyZW5jZWQgYnkgcGFnZV9wIGFuZCBw Mm10X3AgYXJlIHVuZGVmaW5lZC4KKyAqLworaW50IGNoZWNrX2dldF9wYWdlX2Zyb21fZ2ZuKHN0 cnVjdCBkb21haW4gKmQsIGdmbl90IGdmbiwgYm9vbCByZWFkb25seSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwMm1fdHlwZV90ICpwMm10X3AsIHN0cnVjdCBwYWdlX2luZm8gKipwYWdl X3ApCiB7Ci0gICAgc3RydWN0IHBhZ2VfaW5mbyAqcGFnZTsKKyAgICBwMm1fcXVlcnlfdCBxID0g cmVhZG9ubHkgPyBQMk1fQUxMT0MgOiBQMk1fVU5TSEFSRTsKICAgICBwMm1fdHlwZV90IHAybXQ7 Ci0gICAgdm9pZCAqdmE7CisgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGFnZTsKIAotICAgIHBhZ2Ug PSBnZXRfcGFnZV9mcm9tX2dmbihkLCBnbWZuLCAmcDJtdCwgUDJNX1VOU0hBUkUpOworICAgIHBh Z2UgPSBnZXRfcGFnZV9mcm9tX2dmbihkLCBnZm5feChnZm4pLCAmcDJtdCwgcSk7CiAKICNpZmRl ZiBDT05GSUdfSEFTX01FTV9QQUdJTkcKICAgICBpZiAoIHAybV9pc19wYWdpbmcocDJtdCkgKQog ICAgIHsKICAgICAgICAgaWYgKCBwYWdlICkKICAgICAgICAgICAgIHB1dF9wYWdlKHBhZ2UpOwot ICAgICAgICBwMm1fbWVtX3BhZ2luZ19wb3B1bGF0ZShkLCBnbWZuKTsKLSAgICAgICAgcmV0dXJu IC1FTk9FTlQ7CisKKyAgICAgICAgcDJtX21lbV9wYWdpbmdfcG9wdWxhdGUoZCwgZ2ZuX3goZ2Zu KSk7CisgICAgICAgIHJldHVybiAtRUFHQUlOOwogICAgIH0KICNlbmRpZgogI2lmZGVmIENPTkZJ R19IQVNfTUVNX1NIQVJJTkcKLSAgICBpZiAoIHAybV9pc19zaGFyZWQocDJtdCkgKQorICAgIGlm ICggKHEgJiBQMk1fVU5TSEFSRSkgJiYgcDJtX2lzX3NoYXJlZChwMm10KSApCiAgICAgewogICAg ICAgICBpZiAoIHBhZ2UgKQogICAgICAgICAgICAgcHV0X3BhZ2UocGFnZSk7Ci0gICAgICAgIHJl dHVybiAtRU5PRU5UOworCisgICAgICAgIHJldHVybiAtRUFHQUlOOwogICAgIH0KICNlbmRpZgog CiAgICAgaWYgKCAhcGFnZSApCiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogCisgICAgaWYgKCAh cDJtX2lzX3JhbShwMm10KSB8fCAoIXJlYWRvbmx5ICYmIHAybV9pc19yZWFkb25seShwMm10KSkg KQorICAgIHsKKyAgICAgICAgcHV0X3BhZ2UocGFnZSk7CisgICAgICAgIHJldHVybiAtRUlOVkFM OworICAgIH0KKworICAgIGlmICggcDJtdF9wICkKKyAgICAgICAgKnAybXRfcCA9IHAybXQ7CisK KyAgICAqcGFnZV9wID0gcGFnZTsKKyAgICByZXR1cm4gMDsKK30KKworaW50IHByZXBhcmVfcmlu Z19mb3JfaGVscGVyKAorICAgIHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ21mbiwg c3RydWN0IHBhZ2VfaW5mbyAqKl9wYWdlLAorICAgIHZvaWQgKipfdmEpCit7CisgICAgc3RydWN0 IHBhZ2VfaW5mbyAqcGFnZTsKKyAgICB2b2lkICp2YTsKKyAgICBpbnQgcmM7CisKKyAgICByYyA9 IGNoZWNrX2dldF9wYWdlX2Zyb21fZ2ZuKGQsIF9nZm4oZ21mbiksIGZhbHNlLCBOVUxMLCAmcGFn ZSk7CisgICAgaWYgKCByYyApCisgICAgICAgIHJldHVybiAocmMgPT0gLUVBR0FJTikgPyAtRU5P RU5UIDogcmM7CisKICAgICBpZiAoICFnZXRfcGFnZV90eXBlKHBhZ2UsIFBHVF93cml0YWJsZV9w YWdlKSApCiAgICAgewogICAgICAgICBwdXRfcGFnZShwYWdlKTsKZGlmZiAtLWdpdCBhL3hlbi9p bmNsdWRlL2FzbS1hcm0vcDJtLmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL3AybS5oCmluZGV4IDg4 MjM3MDdjMTcuLjc2M2ZlNTQ1MGEgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vcDJt LmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLWFybS9wMm0uaApAQCAtMTM3LDEyICsxMzcsMTcgQEAg dHlwZWRlZiBlbnVtIHsKICNkZWZpbmUgUDJNX0dSQU5UX1RZUEVTIChwMm1fdG9fbWFzayhwMm1f Z3JhbnRfbWFwX3J3KSB8ICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgcDJtX3RvX21hc2so cDJtX2dyYW50X21hcF9ybykpCiAKKy8qIFJlYWQtb25seSB0eXBlcyAqLworI2RlZmluZSBQMk1f Uk9fVFlQRVMgKHAybV90b19tYXNrKHAybV9yYW1fcm8pIHwgICAgICAgICBcCisgICAgICAgICAg ICAgICAgICAgICAgcDJtX3RvX21hc2socDJtX2dyYW50X21hcF9ybykpCisKIC8qIFVzZWZ1bCBw cmVkaWNhdGVzICovCiAjZGVmaW5lIHAybV9pc19yYW0oX3QpIChwMm1fdG9fbWFzayhfdCkgJiBQ Mk1fUkFNX1RZUEVTKQogI2RlZmluZSBwMm1faXNfZm9yZWlnbihfdCkgKHAybV90b19tYXNrKF90 KSAmIHAybV90b19tYXNrKHAybV9tYXBfZm9yZWlnbikpCiAjZGVmaW5lIHAybV9pc19hbnlfcmFt KF90KSAocDJtX3RvX21hc2soX3QpICYgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChQMk1fUkFNX1RZUEVTIHwgUDJNX0dSQU5UX1RZUEVTIHwgIFwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcDJtX3RvX21hc2socDJtX21hcF9mb3JlaWduKSkp CisjZGVmaW5lIHAybV9pc19yZWFkb25seShfdCkgKHAybV90b19tYXNrKF90KSAmIFAyTV9ST19U WVBFUykKIAogc3RhdGljIGlubGluZQogdm9pZCBwMm1fYWx0cDJtX2NoZWNrKHN0cnVjdCB2Y3B1 ICp2LCB1aW50MTZfdCBpZHgpCkBAIC0zMDMsNiArMzA4LDEwIEBAIHN0YXRpYyBpbmxpbmUgc3Ry dWN0IHBhZ2VfaW5mbyAqZ2V0X3BhZ2VfZnJvbV9nZm4oCiAgICAgcmV0dXJuIHBhZ2U7CiB9CiAK K2ludCBfX211c3RfY2hlY2sgY2hlY2tfZ2V0X3BhZ2VfZnJvbV9nZm4oc3RydWN0IGRvbWFpbiAq ZCwgZ2ZuX3QgZ2ZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi b29sIHJlYWRvbmx5LCBwMm1fdHlwZV90ICpwMm10X3AsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCBwYWdlX2luZm8gKipwYWdlX3ApOworCiBpbnQgZ2V0 X3BhZ2VfdHlwZShzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlLCB1bnNpZ25lZCBsb25nIHR5cGUpOwog Ym9vbCBpc19pb21lbV9wYWdlKG1mbl90IG1mbik7CiBzdGF0aWMgaW5saW5lIGludCBnZXRfcGFn ZV9hbmRfdHlwZShzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlLApkaWZmIC0tZ2l0IGEveGVuL2luY2x1 ZGUvYXNtLXg4Ni9wMm0uaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvcDJtLmgKaW5kZXggZDRiM2Nm Y2I2ZS4uODYxM2RmNDJjZSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9wMm0uaAor KysgYi94ZW4vaW5jbHVkZS9hc20teDg2L3AybS5oCkBAIC00OTIsNiArNDkyLDkgQEAgc3RhdGlj IGlubGluZSBzdHJ1Y3QgcGFnZV9pbmZvICpnZXRfcGFnZV9mcm9tX2dmbigKICAgICByZXR1cm4g bWZuX3ZhbGlkKF9tZm4oZ2ZuKSkgJiYgZ2V0X3BhZ2UocGFnZSwgZCkgPyBwYWdlIDogTlVMTDsK IH0KIAoraW50IF9fbXVzdF9jaGVjayBjaGVja19nZXRfcGFnZV9mcm9tX2dmbihzdHJ1Y3QgZG9t YWluICpkLCBnZm5fdCBnZm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGJvb2wgcmVhZG9ubHksIHAybV90eXBlX3QgKnAybXRfcCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHBhZ2VfaW5mbyAqKnBhZ2VfcCk7CiAKIC8q IEdlbmVyYWwgY29udmVyc2lvbiBmdW5jdGlvbiBmcm9tIG1mbiB0byBnZm4gKi8KIHN0YXRpYyBp bmxpbmUgdW5zaWduZWQgbG9uZyBtZm5fdG9fZ2ZuKHN0cnVjdCBkb21haW4gKmQsIG1mbl90IG1m bikKLS0gCjIuMTEuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qu b3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2 ZWw=