From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v5 13/15] memory: add get_paged_gfn() as a wrapper... Date: Fri, 3 Aug 2018 18:22:18 +0100 Message-ID: <20180803172220.1657-14-paul.durrant@citrix.com> References: <20180803172220.1657-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 1fldsh-0008GQ-6h for xen-devel@lists.xenproject.org; Fri, 03 Aug 2018 17:28:51 +0000 In-Reply-To: <20180803172220.1657-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 , 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 ZWVuIHRoZSBleGFjdCB3YXkgdGhlIG9jY3VycmVuY2VzIGFyZQpjb2RlZCBidXQgdGhlIGRlc2ly ZWQgc2VtYW50aWMgaXMgdGhlIHNhbWUuCgpUaGlzIHBhdGNoIGludHJvZHVjZXMgYSBuZXcgY29t bW9uIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgY29kZSBpbgpnZXRfcGFnZWRfZ2ZuKCkgYW5kIHRo ZW4gY29udmVydHMgdGhlIHZhcmlvdXMgb3Blbi1jb2RlZCBwYXR0ZXJucyBpbnRvCmNhbGxzIHRv IHRoaXMgbmV3IGZ1bmN0aW9uLgoKU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1 cnJhbnRAY2l0cml4LmNvbT4KLS0tCkNjOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ CkNjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpDYzogR2Vvcmdl IER1bmxhcCA8R2VvcmdlLkR1bmxhcEBldS5jaXRyaXguY29tPgpDYzogSWFuIEphY2tzb24gPGlh bi5qYWNrc29uQGV1LmNpdHJpeC5jb20+CkNjOiBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBh cm0uY29tPgpDYzogS29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQud2lsa0BvcmFjbGUuY29t PgpDYzogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPgpDYzogVGlt IERlZWdhbiA8dGltQHhlbi5vcmc+CkNjOiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgoK djM6CiAtIEFkZHJlc3NlZCBjb21tZW50cyBmcm9tIEdlb3JnZS4KCnYyOgogLSBOZXcgaW4gdjIu Ci0tLQogeGVuL2FyY2gveDg2L2h2bS9lbXVsYXRlLmMgfCAzMiArKysrKystLS0tLS0tLS0tLS0t LS0tLS0tLQogeGVuL2FyY2gveDg2L2h2bS9odm0uYyAgICAgfCAxNiArKy0tLS0tLS0tLS0tCiB4 ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMgICB8IDM4ICsrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KIHhlbi9jb21tb24vbWVtb3J5LmMgICAgICAgIHwgNTYgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQogeGVuL2luY2x1ZGUvYXNtLWFybS9wMm0uaCAg fCAgMyArKysKIHhlbi9pbmNsdWRlL2FzbS14ODYvcDJtLmggIHwgIDIgKysKIDYgZmlsZXMgY2hh bmdlZCwgNzEgaW5zZXJ0aW9ucygrKSwgNzYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVu L2FyY2gveDg2L2h2bS9lbXVsYXRlLmMgYi94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYwppbmRl eCA4Mzg1YzYyMTQ1Li5jMjYyODFlYTFjIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2Vt dWxhdGUuYworKysgYi94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYwpAQCAtMzMyLDM0ICszMzIs MTYgQEAgc3RhdGljIGludCBodm1lbXVsX2RvX2lvX2J1ZmZlcigKIAogc3RhdGljIGludCBodm1l bXVsX2FjcXVpcmVfcGFnZSh1bnNpZ25lZCBsb25nIGdtZm4sIHN0cnVjdCBwYWdlX2luZm8gKipw YWdlKQogewotICAgIHN0cnVjdCBkb21haW4gKmN1cnJfZCA9IGN1cnJlbnQtPmRvbWFpbjsKLSAg ICBwMm1fdHlwZV90IHAybXQ7Ci0KLSAgICAqcGFnZSA9IGdldF9wYWdlX2Zyb21fZ2ZuKGN1cnJf ZCwgZ21mbiwgJnAybXQsIFAyTV9VTlNIQVJFKTsKLQotICAgIGlmICggKnBhZ2UgPT0gTlVMTCAp Ci0gICAgICAgIHJldHVybiBYODZFTVVMX1VOSEFORExFQUJMRTsKLQotICAgIGlmICggcDJtX2lz X3BhZ2luZyhwMm10KSApCi0gICAgewotICAgICAgICBwdXRfcGFnZSgqcGFnZSk7Ci0gICAgICAg IHAybV9tZW1fcGFnaW5nX3BvcHVsYXRlKGN1cnJfZCwgZ21mbik7Ci0gICAgICAgIHJldHVybiBY ODZFTVVMX1JFVFJZOwotICAgIH0KLQotICAgIGlmICggcDJtX2lzX3NoYXJlZChwMm10KSApCisg ICAgc3dpdGNoICggZ2V0X3BhZ2VkX2dmbihjdXJyZW50LT5kb21haW4sIF9nZm4oZ21mbiksIGZh bHNlLCBOVUxMLCBwYWdlKSApCiAgICAgewotICAgICAgICBwdXRfcGFnZSgqcGFnZSk7CisgICAg Y2FzZSAtRUFHQUlOOgogICAgICAgICByZXR1cm4gWDg2RU1VTF9SRVRSWTsKLSAgICB9Ci0KLSAg ICAvKiBUaGlzIGNvZGUgc2hvdWxkIG5vdCBiZSByZWFjaGVkIGlmIHRoZSBnbWZuIGlzIG5vdCBS QU0gKi8KLSAgICBpZiAoIHAybV9pc19tbWlvKHAybXQpICkKLSAgICB7Ci0gICAgICAgIGRvbWFp bl9jcmFzaChjdXJyX2QpOwotCi0gICAgICAgIHB1dF9wYWdlKCpwYWdlKTsKKyAgICBjYXNlIC1F SU5WQUw6CiAgICAgICAgIHJldHVybiBYODZFTVVMX1VOSEFORExFQUJMRTsKKyAgICBkZWZhdWx0 OgorICAgICAgICBBU1NFUlRfVU5SRUFDSEFCTEUoKTsKKyAgICBjYXNlIDA6CisgICAgICAgIGJy ZWFrOwogICAgIH0KIAogICAgIHJldHVybiBYODZFTVVMX09LQVk7CmRpZmYgLS1naXQgYS94ZW4v YXJjaC94ODYvaHZtL2h2bS5jIGIveGVuL2FyY2gveDg2L2h2bS9odm0uYwppbmRleCA3MmM1MWZh ZWNiLi4wMzQzMGU2ZjA3IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCisrKyBi L3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKQEAgLTI1NTcsMjQgKzI1NTcsMTIgQEAgc3RhdGljIHZv aWQgKl9odm1fbWFwX2d1ZXN0X2ZyYW1lKHVuc2lnbmVkIGxvbmcgZ2ZuLCBib29sX3QgcGVybWFu ZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xfdCAqd3JpdGFibGUp CiB7CiAgICAgdm9pZCAqbWFwOwotICAgIHAybV90eXBlX3QgcDJtdDsKICAgICBzdHJ1Y3QgcGFn ZV9pbmZvICpwYWdlOwogICAgIHN0cnVjdCBkb21haW4gKmQgPSBjdXJyZW50LT5kb21haW47Cisg ICAgcDJtX3R5cGVfdCBwMm10OwogCi0gICAgcGFnZSA9IGdldF9wYWdlX2Zyb21fZ2ZuKGQsIGdm biwgJnAybXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRhYmxlID8gUDJNX1VO U0hBUkUgOiBQMk1fQUxMT0MpOwotICAgIGlmICggKHAybV9pc19zaGFyZWQocDJtdCkgJiYgd3Jp dGFibGUpIHx8ICFwYWdlICkKLSAgICB7Ci0gICAgICAgIGlmICggcGFnZSApCi0gICAgICAgICAg ICBwdXRfcGFnZShwYWdlKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotICAgIGlmICgg cDJtX2lzX3BhZ2luZyhwMm10KSApCi0gICAgewotICAgICAgICBwdXRfcGFnZShwYWdlKTsKLSAg ICAgICAgcDJtX21lbV9wYWdpbmdfcG9wdWxhdGUoZCwgZ2ZuKTsKKyAgICBpZiAoIGdldF9wYWdl ZF9nZm4oZCwgX2dmbihnZm4pLCAhd3JpdGFibGUsICZwMm10LCAmcGFnZSkgKQogICAgICAgICBy ZXR1cm4gTlVMTDsKLSAgICB9CiAKICAgICBpZiAoIHdyaXRhYmxlICkKICAgICB7CmRpZmYgLS1n aXQgYS94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMgYi94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMK aW5kZXggMTg0MGI2NTZjOS4uY2M3MDgwYmM5OCAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9ncmFu dF90YWJsZS5jCisrKyBiL3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYwpAQCAtMzY2LDM5ICszNjYs MjMgQEAgc3RhdGljIGludCBnZXRfcGFnZWRfZnJhbWUodW5zaWduZWQgbG9uZyBnZm4sIG1mbl90 ICptZm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcGFnZV9pbmZvICoqcGFn ZSwgYm9vbCByZWFkb25seSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkb21h aW4gKnJkKQogewotICAgIGludCByYyA9IEdOVFNUX29rYXk7Ci0gICAgcDJtX3R5cGVfdCBwMm10 OwotCi0gICAgKm1mbiA9IElOVkFMSURfTUZOOwotICAgICpwYWdlID0gZ2V0X3BhZ2VfZnJvbV9n Zm4ocmQsIGdmbiwgJnAybXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFkb25s eSA/IFAyTV9BTExPQyA6IFAyTV9VTlNIQVJFKTsKLSAgICBpZiAoICEqcGFnZSApCi0gICAgewot I2lmZGVmIFAyTV9TSEFSRURfVFlQRVMKLSAgICAgICAgaWYgKCBwMm1faXNfc2hhcmVkKHAybXQp ICkKLSAgICAgICAgICAgIHJldHVybiBHTlRTVF9lYWdhaW47Ci0jZW5kaWYKLSNpZmRlZiBQMk1f UEFHRVNfVFlQRVMKLSAgICAgICAgaWYgKCBwMm1faXNfcGFnaW5nKHAybXQpICkKLSAgICAgICAg ewotICAgICAgICAgICAgcDJtX21lbV9wYWdpbmdfcG9wdWxhdGUocmQsIGdmbik7Ci0gICAgICAg ICAgICByZXR1cm4gR05UU1RfZWFnYWluOwotICAgICAgICB9Ci0jZW5kaWYKLSAgICAgICAgcmV0 dXJuIEdOVFNUX2JhZF9wYWdlOwotICAgIH0KKyAgICBpbnQgcmM7CiAKLSAgICBpZiAoIHAybV9p c19mb3JlaWduKHAybXQpICkKKyAgICByYyA9IGdldF9wYWdlZF9nZm4ocmQsIF9nZm4oZ2ZuKSwg cmVhZG9ubHksIE5VTEwsIHBhZ2UpOworICAgIHN3aXRjaCAoIHJjICkKICAgICB7Ci0gICAgICAg IHB1dF9wYWdlKCpwYWdlKTsKLSAgICAgICAgKnBhZ2UgPSBOVUxMOwotCisgICAgY2FzZSAtRUFH QUlOOgorICAgICAgICByZXR1cm4gR05UU1RfZWFnYWluOworICAgIGNhc2UgLUVJTlZBTDoKICAg ICAgICAgcmV0dXJuIEdOVFNUX2JhZF9wYWdlOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VS VF9VTlJFQUNIQUJMRSgpOworICAgIGNhc2UgMDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAg ICAgKm1mbiA9IHBhZ2VfdG9fbWZuKCpwYWdlKTsKLQotICAgIHJldHVybiByYzsKKyAgICByZXR1 cm4gR05UU1Rfb2theTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkCmRpZmYgLS1naXQgYS94ZW4v Y29tbW9uL21lbW9yeS5jIGIveGVuL2NvbW1vbi9tZW1vcnkuYwppbmRleCBhZDdhYTA5YTVjLi40 YzM0ZTZjMmQ5IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL21lbW9yeS5jCisrKyBiL3hlbi9jb21t b24vbWVtb3J5LmMKQEAgLTE1NzEsMzcgKzE1NzEsNzMgQEAgdm9pZCBkZXN0cm95X3JpbmdfZm9y X2hlbHBlcigKICAgICB9CiB9CiAKLWludCBwcmVwYXJlX3JpbmdfZm9yX2hlbHBlcigKLSAgICBz dHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdtZm4sIHN0cnVjdCBwYWdlX2luZm8gKipf cGFnZSwKLSAgICB2b2lkICoqX3ZhKQorLyoKKyAqIEFjcXVpcmUgYSBwb2ludGVyIHRvIHN0cnVj dCBwYWdlX2luZm8gZm9yIGEgc3BlY2lmaWVkIGRvbWFuIGFuZCBHRk4sCisgKiBjaGVja2luZyB3 aGV0aGVyIHRoZSBwYWdlIGhhcyBiZWVuIHBhZ2VkIG91dCwgb3IgbmVlZHMgdW5zaGFyaW5nLgor ICogSWYgdGhlIGZ1bmN0aW9uIHN1Y2NlZWRzIHRoZW4gemVybyBpcyByZXR1cm5lZCBhbmQgcGFn ZV9wIGlzIHdyaXR0ZW4KKyAqIHdpdGggYSBwb2ludGVyIHRvIHRoZSBzdHJ1Y3QgcGFnZV9pbmZv IHdpdGggYSByZWZlcmVuY2UgdGFrZW4uIFRoZQorICogY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZv ciBkcm9wcGluZyB0aGUgcmVmZXJlbmNlLiBJZiBwMm10X3AgaXMgbm9uLU5VTEwKKyAqIHRoZW4g aXQgaXMgYWxzbyB3cml0dGVuIHdpdGggdGhlIFAyTSB0eXBlIG9mIHRoZSBwYWdlLgorICogSWYg dGhlIGZ1bmN0aW9uIGZhaWxzIHRoZW4gYW4gYXBwcm9wcmlhdGUgZXJybm8gaXMgcmV0dXJuZWQg YW5kIHRoZQorICogdmFsdWVzIHJlZmVyZW5jZWQgYnkgcGFnZV9wIGFuZCBwMm10X3AgYXJlIHVu ZGVmaW5lZC4KKyAqLworaW50IGdldF9wYWdlZF9nZm4oc3RydWN0IGRvbWFpbiAqZCwgZ2ZuX3Qg Z2ZuLCBib29sIHJlYWRvbmx5LAorICAgICAgICAgICAgICAgICAgcDJtX3R5cGVfdCAqcDJtdF9w LCBzdHJ1Y3QgcGFnZV9pbmZvICoqcGFnZV9wKQogewotICAgIHN0cnVjdCBwYWdlX2luZm8gKnBh Z2U7CisgICAgcDJtX3F1ZXJ5X3QgcSA9IHJlYWRvbmx5ID8gUDJNX0FMTE9DIDogUDJNX1VOU0hB UkU7CiAgICAgcDJtX3R5cGVfdCBwMm10OwotICAgIHZvaWQgKnZhOworICAgIHN0cnVjdCBwYWdl X2luZm8gKnBhZ2U7CiAKLSAgICBwYWdlID0gZ2V0X3BhZ2VfZnJvbV9nZm4oZCwgZ21mbiwgJnAy bXQsIFAyTV9VTlNIQVJFKTsKKyAgICBwYWdlID0gZ2V0X3BhZ2VfZnJvbV9nZm4oZCwgZ2ZuX3go Z2ZuKSwgJnAybXQsIHEpOwogCiAjaWZkZWYgQ09ORklHX0hBU19NRU1fUEFHSU5HCiAgICAgaWYg KCBwMm1faXNfcGFnaW5nKHAybXQpICkKICAgICB7CiAgICAgICAgIGlmICggcGFnZSApCiAgICAg ICAgICAgICBwdXRfcGFnZShwYWdlKTsKLSAgICAgICAgcDJtX21lbV9wYWdpbmdfcG9wdWxhdGUo ZCwgZ21mbik7Ci0gICAgICAgIHJldHVybiAtRU5PRU5UOworCisgICAgICAgIHAybV9tZW1fcGFn aW5nX3BvcHVsYXRlKGQsIGdmbl94KGdmbikpOworICAgICAgICByZXR1cm4gLUVBR0FJTjsKICAg ICB9CiAjZW5kaWYKICNpZmRlZiBDT05GSUdfSEFTX01FTV9TSEFSSU5HCi0gICAgaWYgKCBwMm1f aXNfc2hhcmVkKHAybXQpICkKKyAgICBpZiAoIChxICYgUDJNX1VOU0hBUkUpICYmIHAybV9pc19z aGFyZWQocDJtdCkgKQogICAgIHsKICAgICAgICAgaWYgKCBwYWdlICkKICAgICAgICAgICAgIHB1 dF9wYWdlKHBhZ2UpOwotICAgICAgICByZXR1cm4gLUVOT0VOVDsKKworICAgICAgICByZXR1cm4g LUVBR0FJTjsKICAgICB9CiAjZW5kaWYKIAogICAgIGlmICggIXBhZ2UgKQogICAgICAgICByZXR1 cm4gLUVJTlZBTDsKIAorICAgIGlmICggIXAybV9pc19yYW0ocDJtdCkgfHwgKCFyZWFkb25seSAm JiBwMm1faXNfcmVhZG9ubHkocDJtdCkpICkKKyAgICB7CisgICAgICAgIHB1dF9wYWdlKHBhZ2Up OworICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICB9CisKKyAgICBpZiAoIHAybXRfcCApCisg ICAgICAgICpwMm10X3AgPSBwMm10OworCisgICAgKnBhZ2VfcCA9IHBhZ2U7CisgICAgcmV0dXJu IDA7Cit9CisKK2ludCBwcmVwYXJlX3JpbmdfZm9yX2hlbHBlcigKKyAgICBzdHJ1Y3QgZG9tYWlu ICpkLCB1bnNpZ25lZCBsb25nIGdtZm4sIHN0cnVjdCBwYWdlX2luZm8gKipfcGFnZSwKKyAgICB2 b2lkICoqX3ZhKQoreworICAgIHN0cnVjdCBwYWdlX2luZm8gKnBhZ2U7CisgICAgdm9pZCAqdmE7 CisgICAgaW50IHJjOworCisgICAgcmMgPSBnZXRfcGFnZWRfZ2ZuKGQsIF9nZm4oZ21mbiksIGZh bHNlLCBOVUxMLCAmcGFnZSk7CisgICAgaWYgKCByYyApCisgICAgICAgIHJldHVybiAocmMgPT0g LUVBR0FJTikgPyAtRU5PRU5UIDogcmM7CisKICAgICBpZiAoICFnZXRfcGFnZV90eXBlKHBhZ2Us IFBHVF93cml0YWJsZV9wYWdlKSApCiAgICAgewogICAgICAgICBwdXRfcGFnZShwYWdlKTsKZGlm ZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vcDJtLmggYi94ZW4vaW5jbHVkZS9hc20tYXJt L3AybS5oCmluZGV4IDg4MjM3MDdjMTcuLmEzOWE0ZmFhYmQgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNs dWRlL2FzbS1hcm0vcDJtLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLWFybS9wMm0uaApAQCAtMzAz LDYgKzMwMyw5IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHBhZ2VfaW5mbyAqZ2V0X3BhZ2VfZnJv bV9nZm4oCiAgICAgcmV0dXJuIHBhZ2U7CiB9CiAKK2ludCBnZXRfcGFnZWRfZ2ZuKHN0cnVjdCBk b21haW4gKmQsIGdmbl90IGdmbiwgYm9vbCByZWFkb25seSwKKyAgICAgICAgICAgICAgICAgIHAy bV90eXBlX3QgKnAybXRfcCwgc3RydWN0IHBhZ2VfaW5mbyAqKnBhZ2VfcCk7CisKIGludCBnZXRf cGFnZV90eXBlKHN0cnVjdCBwYWdlX2luZm8gKnBhZ2UsIHVuc2lnbmVkIGxvbmcgdHlwZSk7CiBi b29sIGlzX2lvbWVtX3BhZ2UobWZuX3QgbWZuKTsKIHN0YXRpYyBpbmxpbmUgaW50IGdldF9wYWdl X2FuZF90eXBlKHN0cnVjdCBwYWdlX2luZm8gKnBhZ2UsCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVk ZS9hc20teDg2L3AybS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9wMm0uaAppbmRleCBkNGIzY2Zj YjZlLi5lODkwYmNkM2UxIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L3AybS5oCisr KyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvcDJtLmgKQEAgLTQ5Miw2ICs0OTIsOCBAQCBzdGF0aWMg aW5saW5lIHN0cnVjdCBwYWdlX2luZm8gKmdldF9wYWdlX2Zyb21fZ2ZuKAogICAgIHJldHVybiBt Zm5fdmFsaWQoX21mbihnZm4pKSAmJiBnZXRfcGFnZShwYWdlLCBkKSA/IHBhZ2UgOiBOVUxMOwog fQogCitpbnQgZ2V0X3BhZ2VkX2dmbihzdHJ1Y3QgZG9tYWluICpkLCBnZm5fdCBnZm4sIGJvb2wg cmVhZG9ubHksCisgICAgICAgICAgICAgICAgICBwMm1fdHlwZV90ICpwMm10X3AsIHN0cnVjdCBw YWdlX2luZm8gKipwYWdlX3ApOwogCiAvKiBHZW5lcmFsIGNvbnZlcnNpb24gZnVuY3Rpb24gZnJv bSBtZm4gdG8gZ2ZuICovCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgbWZuX3RvX2dmbihz dHJ1Y3QgZG9tYWluICpkLCBtZm5fdCBtZm4pCi0tIAoyLjExLjAKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhl bi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3Jn L21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs