From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v7 5/6] memory: add check_get_page_from_gfn() as a wrapper... Date: Wed, 12 Sep 2018 12:30:27 +0100 Message-ID: <20180912113028.19610-6-paul.durrant@citrix.com> References: <20180912113028.19610-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 1g03Lw-0005kg-Nw for xen-devel@lists.xenproject.org; Wed, 12 Sep 2018 11:30:36 +0000 In-Reply-To: <20180912113028.19610-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 b2NjdXJlbmNlcyBvZiB0aGUgZm9sbG93aW5nIHBhdHRlcm4gaW4gdGhlIGNvZGU6CgogICAgcSA9 IDxyZWFkb25seSBsb29rLXVwPiA/IFAyTV9BTExPQyA6IFAyTV9VTlNIQVJFOwogICAgcGFnZSA9 IGdldF9wYWdlX2Zyb21fZ2ZuKGQsIGdmbiwgJnAybXQsIHEpOwoKICAgIGlmICggcDJtX2lzX3Bh Z2luZyhwMm10KSApCiAgICB7CiAgICAgICAgaWYgKCBwYWdlICkKICAgICAgICAgICAgcHV0X3Bh Z2UocGFnZSk7CgogICAgICAgIHAybV9tZW1fcGFnaW5nX3BvcHVsYXRlKGQsIGdmbik7CiAgICAg ICAgcmV0dXJuIDwtRUFHQUlOIG9yIGVxdWl2YWxlbnQ+OwogICAgfQoKICAgIGlmICggKHEgJiBQ Mk1fVU5TSEFSRSkgJiYgcDJtX2lzX3NoYXJlZChwMm10KSApCiAgICB7CiAgICAgICAgaWYgKCBw YWdlICkKICAgICAgICAgICAgcHV0X3BhZ2UocGFnZSk7CgogICAgICAgIHJldHVybiA8LUVBR0FJ TiBvciBlcXVpdmFsZW50PjsKICAgIH0KCiAgICBpZiAoICFwYWdlICkKICAgICAgICByZXR1cm4g PC1FSU5WQUwgb3IgZXF1aXZhbGVudD47CgogICAgaWYgKCAhcDJtX2lzX3JhbShwMm10KSB8fAog ICAgICAgICAoITxyZWFkb25seSBsb29rLXVwPiAmJiBwMm1faXNfcmVhZG9ubHkocDJtdCkpICkK ICAgIHsKICAgICAgICBwdXRfcGFnZShwYWdlKTsKICAgICAgICByZXR1cm4gPC1FSU5WQUwgb3Ig ZXF1aXZhbGVudD47CiAgICB9CgpUaGVyZSBhcmUgc29tZSBzbWFsbCBkaWZmZXJlbmNlcyBiZXR3 ZWVuIHRoZSBleGFjdCB3YXkgdGhlIG9jY3VyZW5jZXMKYXJlIGNvZGVkIGJ1dCB0aGUgZGVzaXJl ZCBzZW1hbnRpYyBpcyB0aGUgc2FtZS4KClRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIG5ldyBjb21t b24gaW1wbGVtZW50YXRpb24gb2YgdGhpcyBjb2RlIGluCmNoZWNrX2dldF9wYWdlX2Zyb21fZ2Zu KCkgYW5kIHRoZW4gY29udmVydHMgdGhlIHZhcmlvdXMgb3Blbi1jb2RlZCBwYXR0ZXJucwppbnRv IGNhbGxzIHRvIHRoaXMgbmV3IGZ1bmN0aW9uLgoKU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50 IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KLS0tCkNjOiBKYW4gQmV1bGljaCA8amJldWxpY2hA c3VzZS5jb20+CkNjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpD YzogR2VvcmdlIER1bmxhcCA8R2VvcmdlLkR1bmxhcEBldS5jaXRyaXguY29tPgpDYzogSWFuIEph Y2tzb24gPGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20+CkNjOiBKdWxpZW4gR3JhbGwgPGp1bGll bi5ncmFsbEBhcm0uY29tPgpDYzogS29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQud2lsa0Bv cmFjbGUuY29tPgpDYzogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3Jn PgpDYzogVGltIERlZWdhbiA8dGltQHhlbi5vcmc+CkNjOiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRy aXguY29tPgoKdjc6CiAtIEZpeCBBUk0gYnVpbGQgYnkgaW50cm9kdWNpbmcgcDJtX2lzX3JlYWRv bmx5KCkgcHJlZGljYXRlLgogLSBSZS1uYW1lIGdldF9wYWdlZF9mcmFtZSgpIC0+IGNoZWNrX2dl dF9wYWdlX2Zyb21fZ2ZuKCkuCiAtIEFkanVzdCBkZWZhdWx0IGNhc2VzIG9mIGNhbGxlcnMgc3dp dGNoLWluZyBvbiByZXR1cm4gdmFsdWUuCgp2MzoKIC0gQWRkcmVzc2VkIGNvbW1lbnRzIGZyb20g R2VvcmdlLgoKdjI6CiAtIE5ldyBpbiB2Mi4KLS0tCiB4ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUu YyB8IDM0ICsrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9odm0vaHZt LmMgICAgIHwgMTYgKystLS0tLS0tLS0tLQogeGVuL2NvbW1vbi9ncmFudF90YWJsZS5jICAgfCAz OSArKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogeGVuL2NvbW1vbi9tZW1vcnkuYyAg ICAgICAgfCA1NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0t CiB4ZW4vaW5jbHVkZS9hc20tYXJtL3AybS5oICB8ICA4ICsrKysrKysKIHhlbi9pbmNsdWRlL2Fz bS14ODYvcDJtLmggIHwgIDIgKysKIDYgZmlsZXMgY2hhbmdlZCwgNzkgaW5zZXJ0aW9ucygrKSwg NzYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9lbXVsYXRlLmMg Yi94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYwppbmRleCBhNTc3Njg1ZGM2Li4wMTM1MjcyYmY0 IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYworKysgYi94ZW4vYXJjaC94 ODYvaHZtL2VtdWxhdGUuYwpAQCAtMzUzLDMzICszNTMsMTcgQEAgc3RhdGljIGludCBodm1lbXVs X2RvX2lvX2J1ZmZlcigKIAogc3RhdGljIGludCBodm1lbXVsX2FjcXVpcmVfcGFnZSh1bnNpZ25l ZCBsb25nIGdtZm4sIHN0cnVjdCBwYWdlX2luZm8gKipwYWdlKQogewotICAgIHN0cnVjdCBkb21h aW4gKmN1cnJfZCA9IGN1cnJlbnQtPmRvbWFpbjsKLSAgICBwMm1fdHlwZV90IHAybXQ7Ci0KLSAg ICAqcGFnZSA9IGdldF9wYWdlX2Zyb21fZ2ZuKGN1cnJfZCwgZ21mbiwgJnAybXQsIFAyTV9VTlNI QVJFKTsKLQotICAgIGlmICggKnBhZ2UgPT0gTlVMTCApCi0gICAgICAgIHJldHVybiBYODZFTVVM X1VOSEFORExFQUJMRTsKLQotICAgIGlmICggcDJtX2lzX3BhZ2luZyhwMm10KSApCi0gICAgewot ICAgICAgICBwdXRfcGFnZSgqcGFnZSk7Ci0gICAgICAgIHAybV9tZW1fcGFnaW5nX3BvcHVsYXRl KGN1cnJfZCwgZ21mbik7Ci0gICAgICAgIHJldHVybiBYODZFTVVMX1JFVFJZOwotICAgIH0KLQot ICAgIGlmICggcDJtX2lzX3NoYXJlZChwMm10KSApCisgICAgc3dpdGNoICggY2hlY2tfZ2V0X3Bh Z2VfZnJvbV9nZm4oY3VycmVudC0+ZG9tYWluLCBfZ2ZuKGdtZm4pLCBmYWxzZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBwYWdlKSApCiAgICAgewotICAgICAg ICBwdXRfcGFnZSgqcGFnZSk7CisgICAgY2FzZSAwOgorICAgICAgICBicmVhazsKKyAgICBjYXNl IC1FQUdBSU46CiAgICAgICAgIHJldHVybiBYODZFTVVMX1JFVFJZOwotICAgIH0KLQotICAgIC8q IFRoaXMgY29kZSBzaG91bGQgbm90IGJlIHJlYWNoZWQgaWYgdGhlIGdtZm4gaXMgbm90IFJBTSAq LwotICAgIGlmICggcDJtX2lzX21taW8ocDJtdCkgKQotICAgIHsKLSAgICAgICAgZG9tYWluX2Ny YXNoKGN1cnJfZCk7Ci0KLSAgICAgICAgcHV0X3BhZ2UoKnBhZ2UpOworICAgIGRlZmF1bHQ6Cisg ICAgICAgIEFTU0VSVF9VTlJFQUNIQUJMRSgpOworICAgICAgICAvKiBGYWxsdGhyb3VnaCAqLwor ICAgIGNhc2UgLUVJTlZBTDoKICAgICAgICAgcmV0dXJuIFg4NkVNVUxfVU5IQU5ETEVBQkxFOwog ICAgIH0KIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9odm0uYyBiL3hlbi9hcmNoL3g4 Ni9odm0vaHZtLmMKaW5kZXggMDYyODcyY2I3MS4uNjk1ZDIzNTE2YSAxMDA2NDQKLS0tIGEveGVu L2FyY2gveDg2L2h2bS9odm0uYworKysgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCkBAIC0yNTU1 LDI0ICsyNTU1LDEyIEBAIHN0YXRpYyB2b2lkICpfaHZtX21hcF9ndWVzdF9mcmFtZSh1bnNpZ25l ZCBsb25nIGdmbiwgYm9vbF90IHBlcm1hbmVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBib29sX3QgKndyaXRhYmxlKQogewogICAgIHZvaWQgKm1hcDsKLSAgICBwMm1fdHlw ZV90IHAybXQ7CiAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGFnZTsKICAgICBzdHJ1Y3QgZG9tYWlu ICpkID0gY3VycmVudC0+ZG9tYWluOworICAgIHAybV90eXBlX3QgcDJtdDsKIAotICAgIHBhZ2Ug PSBnZXRfcGFnZV9mcm9tX2dmbihkLCBnZm4sICZwMm10LAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB3cml0YWJsZSA/IFAyTV9VTlNIQVJFIDogUDJNX0FMTE9DKTsKLSAgICBpZiAoIChw Mm1faXNfc2hhcmVkKHAybXQpICYmIHdyaXRhYmxlKSB8fCAhcGFnZSApCi0gICAgewotICAgICAg ICBpZiAoIHBhZ2UgKQotICAgICAgICAgICAgcHV0X3BhZ2UocGFnZSk7Ci0gICAgICAgIHJldHVy biBOVUxMOwotICAgIH0KLSAgICBpZiAoIHAybV9pc19wYWdpbmcocDJtdCkgKQotICAgIHsKLSAg ICAgICAgcHV0X3BhZ2UocGFnZSk7Ci0gICAgICAgIHAybV9tZW1fcGFnaW5nX3BvcHVsYXRlKGQs IGdmbik7CisgICAgaWYgKCBjaGVja19nZXRfcGFnZV9mcm9tX2dmbihkLCBfZ2ZuKGdmbiksICF3 cml0YWJsZSwgJnAybXQsICZwYWdlKSApCiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KIAog ICAgIGlmICggd3JpdGFibGUgKQogICAgIHsKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vZ3JhbnRf dGFibGUuYyBiL3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYwppbmRleCAwZjBiN2IxYTQ5Li44Zjg4 ODA1NmZmIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMKKysrIGIveGVuL2Nv bW1vbi9ncmFudF90YWJsZS5jCkBAIC0zNzQsMzkgKzM3NCwyNCBAQCBzdGF0aWMgaW50IGdldF9w YWdlZF9mcmFtZSh1bnNpZ25lZCBsb25nIGdmbiwgbWZuX3QgKm1mbiwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cnVjdCBwYWdlX2luZm8gKipwYWdlLCBib29sIHJlYWRvbmx5LAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRvbWFpbiAqcmQpCiB7Ci0gICAgaW50IHJj ID0gR05UU1Rfb2theTsKLSAgICBwMm1fdHlwZV90IHAybXQ7Ci0KLSAgICAqbWZuID0gSU5WQUxJ RF9NRk47Ci0gICAgKnBhZ2UgPSBnZXRfcGFnZV9mcm9tX2dmbihyZCwgZ2ZuLCAmcDJtdCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRvbmx5ID8gUDJNX0FMTE9DIDogUDJNX1VO U0hBUkUpOwotICAgIGlmICggISpwYWdlICkKLSAgICB7Ci0jaWZkZWYgUDJNX1NIQVJFRF9UWVBF UwotICAgICAgICBpZiAoIHAybV9pc19zaGFyZWQocDJtdCkgKQotICAgICAgICAgICAgcmV0dXJu IEdOVFNUX2VhZ2FpbjsKLSNlbmRpZgotI2lmZGVmIFAyTV9QQUdFU19UWVBFUwotICAgICAgICBp ZiAoIHAybV9pc19wYWdpbmcocDJtdCkgKQotICAgICAgICB7Ci0gICAgICAgICAgICBwMm1fbWVt X3BhZ2luZ19wb3B1bGF0ZShyZCwgZ2ZuKTsKLSAgICAgICAgICAgIHJldHVybiBHTlRTVF9lYWdh aW47Ci0gICAgICAgIH0KLSNlbmRpZgotICAgICAgICByZXR1cm4gR05UU1RfYmFkX3BhZ2U7Ci0g ICAgfQorICAgIGludCByYzsKIAotICAgIGlmICggcDJtX2lzX2ZvcmVpZ24ocDJtdCkgKQorICAg IHJjID0gY2hlY2tfZ2V0X3BhZ2VfZnJvbV9nZm4ocmQsIF9nZm4oZ2ZuKSwgcmVhZG9ubHksIE5V TEwsIHBhZ2UpOworICAgIHN3aXRjaCAoIHJjICkKICAgICB7Ci0gICAgICAgIHB1dF9wYWdlKCpw YWdlKTsKLSAgICAgICAgKnBhZ2UgPSBOVUxMOwotCisgICAgY2FzZSAwOgorICAgICAgICBicmVh azsKKyAgICBjYXNlIC1FQUdBSU46CisgICAgICAgIHJldHVybiBHTlRTVF9lYWdhaW47CisgICAg ZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX1VOUkVBQ0hBQkxFKCk7CisgICAgICAgIC8qIEZhbGx0 aHJvdWdoICovCisgICAgY2FzZSAtRUlOVkFMOgogICAgICAgICByZXR1cm4gR05UU1RfYmFkX3Bh Z2U7CiAgICAgfQogCiAgICAgKm1mbiA9IHBhZ2VfdG9fbWZuKCpwYWdlKTsKLQotICAgIHJldHVy biByYzsKKyAgICByZXR1cm4gR05UU1Rfb2theTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkCmRp ZmYgLS1naXQgYS94ZW4vY29tbW9uL21lbW9yeS5jIGIveGVuL2NvbW1vbi9tZW1vcnkuYwppbmRl eCA4NTYxMWRkYWU0Li5lMjg5YzQxNGY4IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL21lbW9yeS5j CisrKyBiL3hlbi9jb21tb24vbWVtb3J5LmMKQEAgLTE2MjUsMzcgKzE2MjUsNzMgQEAgdm9pZCBk ZXN0cm95X3JpbmdfZm9yX2hlbHBlcigKICAgICB9CiB9CiAKLWludCBwcmVwYXJlX3JpbmdfZm9y X2hlbHBlcigKLSAgICBzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdtZm4sIHN0cnVj dCBwYWdlX2luZm8gKipfcGFnZSwKLSAgICB2b2lkICoqX3ZhKQorLyoKKyAqIEFjcXVpcmUgYSBw b2ludGVyIHRvIHN0cnVjdCBwYWdlX2luZm8gZm9yIGEgc3BlY2lmaWVkIGRvbWFuIGFuZCBHRk4s CisgKiBjaGVja2luZyB3aGV0aGVyIHRoZSBwYWdlIGhhcyBiZWVuIHBhZ2VkIG91dCwgb3IgbmVl ZHMgdW5zaGFyaW5nLgorICogSWYgdGhlIGZ1bmN0aW9uIHN1Y2NlZWRzIHRoZW4gemVybyBpcyBy ZXR1cm5lZCBhbmQgcGFnZV9wIGlzIHdyaXR0ZW4KKyAqIHdpdGggYSBwb2ludGVyIHRvIHRoZSBz dHJ1Y3QgcGFnZV9pbmZvIHdpdGggYSByZWZlcmVuY2UgdGFrZW4uIFRoZQorICogY2FsbGVyIGlz IHJlc3BvbnNpYmxlIGZvciBkcm9wcGluZyB0aGUgcmVmZXJlbmNlLiBJZiBwMm10X3AgaXMgbm9u LU5VTEwKKyAqIHRoZW4gaXQgaXMgYWxzbyB3cml0dGVuIHdpdGggdGhlIFAyTSB0eXBlIG9mIHRo ZSBwYWdlLgorICogSWYgdGhlIGZ1bmN0aW9uIGZhaWxzIHRoZW4gYW4gYXBwcm9wcmlhdGUgZXJy bm8gaXMgcmV0dXJuZWQgYW5kIHRoZQorICogdmFsdWVzIHJlZmVyZW5jZWQgYnkgcGFnZV9wIGFu ZCBwMm10X3AgYXJlIHVuZGVmaW5lZC4KKyAqLworaW50IGNoZWNrX2dldF9wYWdlX2Zyb21fZ2Zu KHN0cnVjdCBkb21haW4gKmQsIGdmbl90IGdmbiwgYm9vbCByZWFkb25seSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBwMm1fdHlwZV90ICpwMm10X3AsIHN0cnVjdCBwYWdlX2luZm8gKipw YWdlX3ApCiB7Ci0gICAgc3RydWN0IHBhZ2VfaW5mbyAqcGFnZTsKKyAgICBwMm1fcXVlcnlfdCBx ID0gcmVhZG9ubHkgPyBQMk1fQUxMT0MgOiBQMk1fVU5TSEFSRTsKICAgICBwMm1fdHlwZV90IHAy bXQ7Ci0gICAgdm9pZCAqdmE7CisgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGFnZTsKIAotICAgIHBh Z2UgPSBnZXRfcGFnZV9mcm9tX2dmbihkLCBnbWZuLCAmcDJtdCwgUDJNX1VOU0hBUkUpOworICAg IHBhZ2UgPSBnZXRfcGFnZV9mcm9tX2dmbihkLCBnZm5feChnZm4pLCAmcDJtdCwgcSk7CiAKICNp ZmRlZiBDT05GSUdfSEFTX01FTV9QQUdJTkcKICAgICBpZiAoIHAybV9pc19wYWdpbmcocDJtdCkg KQogICAgIHsKICAgICAgICAgaWYgKCBwYWdlICkKICAgICAgICAgICAgIHB1dF9wYWdlKHBhZ2Up OwotICAgICAgICBwMm1fbWVtX3BhZ2luZ19wb3B1bGF0ZShkLCBnbWZuKTsKLSAgICAgICAgcmV0 dXJuIC1FTk9FTlQ7CisKKyAgICAgICAgcDJtX21lbV9wYWdpbmdfcG9wdWxhdGUoZCwgZ2ZuX3go Z2ZuKSk7CisgICAgICAgIHJldHVybiAtRUFHQUlOOwogICAgIH0KICNlbmRpZgogI2lmZGVmIENP TkZJR19IQVNfTUVNX1NIQVJJTkcKLSAgICBpZiAoIHAybV9pc19zaGFyZWQocDJtdCkgKQorICAg IGlmICggKHEgJiBQMk1fVU5TSEFSRSkgJiYgcDJtX2lzX3NoYXJlZChwMm10KSApCiAgICAgewog ICAgICAgICBpZiAoIHBhZ2UgKQogICAgICAgICAgICAgcHV0X3BhZ2UocGFnZSk7Ci0gICAgICAg IHJldHVybiAtRU5PRU5UOworCisgICAgICAgIHJldHVybiAtRUFHQUlOOwogICAgIH0KICNlbmRp ZgogCiAgICAgaWYgKCAhcGFnZSApCiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogCisgICAgaWYg KCAhcDJtX2lzX3JhbShwMm10KSB8fCAoIXJlYWRvbmx5ICYmIHAybV9pc19yZWFkb25seShwMm10 KSkgKQorICAgIHsKKyAgICAgICAgcHV0X3BhZ2UocGFnZSk7CisgICAgICAgIHJldHVybiAtRUlO VkFMOworICAgIH0KKworICAgIGlmICggcDJtdF9wICkKKyAgICAgICAgKnAybXRfcCA9IHAybXQ7 CisKKyAgICAqcGFnZV9wID0gcGFnZTsKKyAgICByZXR1cm4gMDsKK30KKworaW50IHByZXBhcmVf cmluZ19mb3JfaGVscGVyKAorICAgIHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ21m biwgc3RydWN0IHBhZ2VfaW5mbyAqKl9wYWdlLAorICAgIHZvaWQgKipfdmEpCit7CisgICAgc3Ry dWN0IHBhZ2VfaW5mbyAqcGFnZTsKKyAgICB2b2lkICp2YTsKKyAgICBpbnQgcmM7CisKKyAgICBy YyA9IGNoZWNrX2dldF9wYWdlX2Zyb21fZ2ZuKGQsIF9nZm4oZ21mbiksIGZhbHNlLCBOVUxMLCAm cGFnZSk7CisgICAgaWYgKCByYyApCisgICAgICAgIHJldHVybiAocmMgPT0gLUVBR0FJTikgPyAt RU5PRU5UIDogcmM7CisKICAgICBpZiAoICFnZXRfcGFnZV90eXBlKHBhZ2UsIFBHVF93cml0YWJs ZV9wYWdlKSApCiAgICAgewogICAgICAgICBwdXRfcGFnZShwYWdlKTsKZGlmZiAtLWdpdCBhL3hl bi9pbmNsdWRlL2FzbS1hcm0vcDJtLmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL3AybS5oCmluZGV4 IDg4MjM3MDdjMTcuLjA0ZjlhN2I4NmIgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS1hcm0v cDJtLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLWFybS9wMm0uaApAQCAtMTM3LDEyICsxMzcsMTcg QEAgdHlwZWRlZiBlbnVtIHsKICNkZWZpbmUgUDJNX0dSQU5UX1RZUEVTIChwMm1fdG9fbWFzayhw Mm1fZ3JhbnRfbWFwX3J3KSB8ICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgcDJtX3RvX21h c2socDJtX2dyYW50X21hcF9ybykpCiAKKy8qIFJlYWQtb25seSB0eXBlcyAqLworI2RlZmluZSBQ Mk1fUk9fVFlQRVMgKHAybV90b19tYXNrKHAybV9yYW1fcm8pIHwgICAgICAgICBcCisgICAgICAg ICAgICAgICAgICAgICAgcDJtX3RvX21hc2socDJtX2dyYW50X21hcF9ybykpCisKIC8qIFVzZWZ1 bCBwcmVkaWNhdGVzICovCiAjZGVmaW5lIHAybV9pc19yYW0oX3QpIChwMm1fdG9fbWFzayhfdCkg JiBQMk1fUkFNX1RZUEVTKQogI2RlZmluZSBwMm1faXNfZm9yZWlnbihfdCkgKHAybV90b19tYXNr KF90KSAmIHAybV90b19tYXNrKHAybV9tYXBfZm9yZWlnbikpCiAjZGVmaW5lIHAybV9pc19hbnlf cmFtKF90KSAocDJtX3RvX21hc2soX3QpICYgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChQMk1fUkFNX1RZUEVTIHwgUDJNX0dSQU5UX1RZUEVTIHwgIFwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcDJtX3RvX21hc2socDJtX21hcF9mb3JlaWdu KSkpCisjZGVmaW5lIHAybV9pc19yZWFkb25seShfdCkgKHAybV90b19tYXNrKF90KSAmIFAyTV9S T19UWVBFUykKIAogc3RhdGljIGlubGluZQogdm9pZCBwMm1fYWx0cDJtX2NoZWNrKHN0cnVjdCB2 Y3B1ICp2LCB1aW50MTZfdCBpZHgpCkBAIC0zMDMsNiArMzA4LDkgQEAgc3RhdGljIGlubGluZSBz dHJ1Y3QgcGFnZV9pbmZvICpnZXRfcGFnZV9mcm9tX2dmbigKICAgICByZXR1cm4gcGFnZTsKIH0K IAoraW50IGNoZWNrX2dldF9wYWdlX2Zyb21fZ2ZuKHN0cnVjdCBkb21haW4gKmQsIGdmbl90IGdm biwgYm9vbCByZWFkb25seSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwMm1fdHlwZV90 ICpwMm10X3AsIHN0cnVjdCBwYWdlX2luZm8gKipwYWdlX3ApOworCiBpbnQgZ2V0X3BhZ2VfdHlw ZShzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlLCB1bnNpZ25lZCBsb25nIHR5cGUpOwogYm9vbCBpc19p b21lbV9wYWdlKG1mbl90IG1mbik7CiBzdGF0aWMgaW5saW5lIGludCBnZXRfcGFnZV9hbmRfdHlw ZShzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlLApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4 Ni9wMm0uaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvcDJtLmgKaW5kZXggZDRiM2NmY2I2ZS4uMDM4 OTdiNDljMyAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9wMm0uaAorKysgYi94ZW4v aW5jbHVkZS9hc20teDg2L3AybS5oCkBAIC00OTIsNiArNDkyLDggQEAgc3RhdGljIGlubGluZSBz dHJ1Y3QgcGFnZV9pbmZvICpnZXRfcGFnZV9mcm9tX2dmbigKICAgICByZXR1cm4gbWZuX3ZhbGlk KF9tZm4oZ2ZuKSkgJiYgZ2V0X3BhZ2UocGFnZSwgZCkgPyBwYWdlIDogTlVMTDsKIH0KIAoraW50 IGNoZWNrX2dldF9wYWdlX2Zyb21fZ2ZuKHN0cnVjdCBkb21haW4gKmQsIGdmbl90IGdmbiwgYm9v bCByZWFkb25seSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwMm1fdHlwZV90ICpwMm10 X3AsIHN0cnVjdCBwYWdlX2luZm8gKipwYWdlX3ApOwogCiAvKiBHZW5lcmFsIGNvbnZlcnNpb24g ZnVuY3Rpb24gZnJvbSBtZm4gdG8gZ2ZuICovCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcg bWZuX3RvX2dmbihzdHJ1Y3QgZG9tYWluICpkLCBtZm5fdCBtZm4pCi0tIAoyLjExLjAKCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFp bGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhl bnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs