From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v2 11/13] memory: add get_paged_gfn() as a wrapper... Date: Sat, 7 Jul 2018 12:05:24 +0100 Message-ID: <20180707110526.35822-12-paul.durrant@citrix.com> References: <20180707110526.35822-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 1fblOE-0004y0-9w for xen-devel@lists.xenproject.org; Sat, 07 Jul 2018 11:28:34 +0000 In-Reply-To: <20180707110526.35822-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 ICAgcmV0dXJuIDwtRU5PRU5UIG9yIGVxdWl2YWxlbnQ+OwogICAgfQoKICAgIGlmICggKHEgJiBQ Mk1fVU5TSEFSRSkgJiYgcDJtX2lzX3NoYXJlZChwMm10KSApCiAgICB7CiAgICAgICAgaWYgKCBw YWdlICkKICAgICAgICAgICAgcHV0X3BhZ2UocGFnZSk7CgogICAgICAgIHJldHVybiA8LUVOT0VO VCBvciBlcXVpdmFsZW50PjsKICAgIH0KCiAgICBpZiAoICFwYWdlICkKICAgICAgICByZXR1cm4g PC1FSU5WQUwgb3IgZXF1aXZhbGVudD47CgogICAgaWYgKCAhcDJtX2lzX3JhbShwMm10KSB8fAog ICAgICAgICAoITxyZWFkb25seSBsb29rLXVwPiAmJiBwMm1faXNfcmVhZG9ubHkocDJtdCkpICkK ICAgIHsKICAgICAgICBwdXRfcGFnZShwYWdlKTsKICAgICAgICByZXR1cm4gPC1FSU5WQUwgb3Ig ZXF1aXZhbGVudD47CiAgICB9CgpUaGVyZSBhcmUgc29tZSBzbWFsbCBkaWZmZXJlbmNlcyBiZXR3 ZWVuIHRoZSBleGFjdCB3YXkgdGhlIG9jY3VycmVuY2VzIGFyZQpjb2RlZCBidXQgdGhlIGRlc2ly ZWQgc2VtYW50aWMgaXMgdGhlIHNhbWUuCgpUaGlzIHBhdGNoIGludHJvZHVjZXMgYSBuZXcgY29t bW9uIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgY29kZSBpbgpnZXRfcGFnZWRfZ2ZuKCkgYW5kIHRo ZW4gY29udmVydHMgdGhlIHZhcmlvdXMgb3Blbi1jb2RlZCBwYXR0ZXJucyBpbnRvCmNhbGxzIHRv IHRoaXMgbmV3IGZ1bmN0aW9uLgoKU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1 cnJhbnRAY2l0cml4LmNvbT4KLS0tCkNjOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ CkNjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpDYzogR2Vvcmdl IER1bmxhcCA8R2VvcmdlLkR1bmxhcEBldS5jaXRyaXguY29tPgpDYzogSWFuIEphY2tzb24gPGlh bi5qYWNrc29uQGV1LmNpdHJpeC5jb20+CkNjOiBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBh cm0uY29tPgpDYzogS29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQud2lsa0BvcmFjbGUuY29t PgpDYzogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPgpDYzogVGlt IERlZWdhbiA8dGltQHhlbi5vcmc+CkNjOiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgoK djI6CiAtIE5ldyBpbiB2Mi4KLS0tCiB4ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYyB8IDMyICsr KysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiB4ZW4vYXJjaC94ODYvaHZtL2h2bS5jICAg ICB8IDE2ICsrLS0tLS0tLS0tLS0tLS0KIHhlbi9jb21tb24vZ3JhbnRfdGFibGUuYyAgIHwgMzgg KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9jb21tb24vbWVtb3J5 LmMgICAgICAgIHwgNDIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t CiB4ZW4vaW5jbHVkZS9hc20tYXJtL3AybS5oICB8ICAzICsrKwogeGVuL2luY2x1ZGUvYXNtLXg4 Ni9wMm0uaCAgfCAgMiArKwogNiBmaWxlcyBjaGFuZ2VkLCA1OSBpbnNlcnRpb25zKCspLCA3NCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYyBiL3hl bi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5jCmluZGV4IDgzODVjNjIxNDUuLmFkOWJjNGYyNTEgMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9o dm0vZW11bGF0ZS5jCkBAIC0zMzIsMzQgKzMzMiwxNiBAQCBzdGF0aWMgaW50IGh2bWVtdWxfZG9f aW9fYnVmZmVyKAogCiBzdGF0aWMgaW50IGh2bWVtdWxfYWNxdWlyZV9wYWdlKHVuc2lnbmVkIGxv bmcgZ21mbiwgc3RydWN0IHBhZ2VfaW5mbyAqKnBhZ2UpCiB7Ci0gICAgc3RydWN0IGRvbWFpbiAq Y3Vycl9kID0gY3VycmVudC0+ZG9tYWluOwotICAgIHAybV90eXBlX3QgcDJtdDsKLQotICAgICpw YWdlID0gZ2V0X3BhZ2VfZnJvbV9nZm4oY3Vycl9kLCBnbWZuLCAmcDJtdCwgUDJNX1VOU0hBUkUp OwotCi0gICAgaWYgKCAqcGFnZSA9PSBOVUxMICkKLSAgICAgICAgcmV0dXJuIFg4NkVNVUxfVU5I QU5ETEVBQkxFOwotCi0gICAgaWYgKCBwMm1faXNfcGFnaW5nKHAybXQpICkKLSAgICB7Ci0gICAg ICAgIHB1dF9wYWdlKCpwYWdlKTsKLSAgICAgICAgcDJtX21lbV9wYWdpbmdfcG9wdWxhdGUoY3Vy cl9kLCBnbWZuKTsKLSAgICAgICAgcmV0dXJuIFg4NkVNVUxfUkVUUlk7Ci0gICAgfQotCi0gICAg aWYgKCBwMm1faXNfc2hhcmVkKHAybXQpICkKKyAgICBzd2l0Y2ggKCBnZXRfcGFnZWRfZ2ZuKGN1 cnJlbnQtPmRvbWFpbiwgX2dmbihnbWZuKSwgZmFsc2UsIE5VTEwsIHBhZ2UpICkKICAgICB7Ci0g ICAgICAgIHB1dF9wYWdlKCpwYWdlKTsKKyAgICBjYXNlIC1FTk9FTlQ6CiAgICAgICAgIHJldHVy biBYODZFTVVMX1JFVFJZOwotICAgIH0KLQotICAgIC8qIFRoaXMgY29kZSBzaG91bGQgbm90IGJl IHJlYWNoZWQgaWYgdGhlIGdtZm4gaXMgbm90IFJBTSAqLwotICAgIGlmICggcDJtX2lzX21taW8o cDJtdCkgKQotICAgIHsKLSAgICAgICAgZG9tYWluX2NyYXNoKGN1cnJfZCk7Ci0KLSAgICAgICAg cHV0X3BhZ2UoKnBhZ2UpOworICAgIGNhc2UgLUVJTlZBTDoKICAgICAgICAgcmV0dXJuIFg4NkVN VUxfVU5IQU5ETEVBQkxFOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9VTlJFQUNIQUJM RSgpOworICAgIGNhc2UgMDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgcmV0dXJuIFg4 NkVNVUxfT0tBWTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMgYi94ZW4vYXJj aC94ODYvaHZtL2h2bS5jCmluZGV4IGMyMzk4M2NkZmYuLjkwNjIzNTkzMmQgMTAwNjQ0Ci0tLSBh L3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9odm0uYwpAQCAt MjU3MywyNCArMjU3MywxMiBAQCBzdGF0aWMgdm9pZCAqX2h2bV9tYXBfZ3Vlc3RfZnJhbWUodW5z aWduZWQgbG9uZyBnZm4sIGJvb2xfdCBwZXJtYW5lbnQsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYm9vbF90ICp3cml0YWJsZSkKIHsKICAgICB2b2lkICptYXA7Ci0gICAgcDJt X3R5cGVfdCBwMm10OwogICAgIHN0cnVjdCBwYWdlX2luZm8gKnBhZ2U7CiAgICAgc3RydWN0IGRv bWFpbiAqZCA9IGN1cnJlbnQtPmRvbWFpbjsKKyAgICBwMm1fdHlwZV90IHAybXQ7CiAKLSAgICBw YWdlID0gZ2V0X3BhZ2VfZnJvbV9nZm4oZCwgZ2ZuLCAmcDJtdCwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgd3JpdGFibGUgPyBQMk1fVU5TSEFSRSA6IFAyTV9BTExPQyk7Ci0gICAgaWYg KCAocDJtX2lzX3NoYXJlZChwMm10KSAmJiB3cml0YWJsZSkgfHwgIXBhZ2UgKQotICAgIHsKLSAg ICAgICAgaWYgKCBwYWdlICkKLSAgICAgICAgICAgIHB1dF9wYWdlKHBhZ2UpOwotICAgICAgICBy ZXR1cm4gTlVMTDsKLSAgICB9Ci0gICAgaWYgKCBwMm1faXNfcGFnaW5nKHAybXQpICkKLSAgICB7 Ci0gICAgICAgIHB1dF9wYWdlKHBhZ2UpOwotICAgICAgICBwMm1fbWVtX3BhZ2luZ19wb3B1bGF0 ZShkLCBnZm4pOworICAgIGlmICggZ2V0X3BhZ2VkX2dmbihkLCBfZ2ZuKGdmbiksICF3cml0YWJs ZSwgJnAybXQsICZwYWdlKSApCiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KIAogICAgIGlm ICggd3JpdGFibGUgKQogICAgIHsKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vZ3JhbnRfdGFibGUu YyBiL3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYwppbmRleCBjNmI5OWM0MTE2Li41MTBmMzdmMTAw IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMKKysrIGIveGVuL2NvbW1vbi9n cmFudF90YWJsZS5jCkBAIC0zNzUsMzkgKzM3NSwyMyBAQCBzdGF0aWMgaW50IGdldF9wYWdlZF9m cmFtZSh1bnNpZ25lZCBsb25nIGdmbiwgbWZuX3QgKm1mbiwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cnVjdCBwYWdlX2luZm8gKipwYWdlLCBib29sIHJlYWRvbmx5LAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IGRvbWFpbiAqcmQpCiB7Ci0gICAgaW50IHJjID0gR05U U1Rfb2theTsKLSAgICBwMm1fdHlwZV90IHAybXQ7Ci0KLSAgICAqbWZuID0gSU5WQUxJRF9NRk47 Ci0gICAgKnBhZ2UgPSBnZXRfcGFnZV9mcm9tX2dmbihyZCwgZ2ZuLCAmcDJtdCwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJlYWRvbmx5ID8gUDJNX0FMTE9DIDogUDJNX1VOU0hBUkUp OwotICAgIGlmICggISpwYWdlICkKLSAgICB7Ci0jaWZkZWYgUDJNX1NIQVJFRF9UWVBFUwotICAg ICAgICBpZiAoIHAybV9pc19zaGFyZWQocDJtdCkgKQotICAgICAgICAgICAgcmV0dXJuIEdOVFNU X2VhZ2FpbjsKLSNlbmRpZgotI2lmZGVmIFAyTV9QQUdFU19UWVBFUwotICAgICAgICBpZiAoIHAy bV9pc19wYWdpbmcocDJtdCkgKQotICAgICAgICB7Ci0gICAgICAgICAgICBwMm1fbWVtX3BhZ2lu Z19wb3B1bGF0ZShyZCwgZ2ZuKTsKLSAgICAgICAgICAgIHJldHVybiBHTlRTVF9lYWdhaW47Ci0g ICAgICAgIH0KLSNlbmRpZgotICAgICAgICByZXR1cm4gR05UU1RfYmFkX3BhZ2U7Ci0gICAgfQor ICAgIGludCByYzsKIAotICAgIGlmICggcDJtX2lzX2ZvcmVpZ24ocDJtdCkgKQorICAgIHJjID0g Z2V0X3BhZ2VkX2dmbihyZCwgX2dmbihnZm4pLCByZWFkb25seSwgTlVMTCwgcGFnZSk7CisgICAg c3dpdGNoICggcmMgKQogICAgIHsKLSAgICAgICAgcHV0X3BhZ2UoKnBhZ2UpOwotICAgICAgICAq cGFnZSA9IE5VTEw7Ci0KKyAgICBjYXNlIC1FTk9FTlQ6CisgICAgICAgIHJldHVybiBHTlRTVF9l YWdhaW47CisgICAgY2FzZSAtRUlOVkFMOgogICAgICAgICByZXR1cm4gR05UU1RfYmFkX3BhZ2U7 CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX1VOUkVBQ0hBQkxFKCk7CisgICAgY2FzZSAw OgorICAgICAgICBicmVhazsKICAgICB9CiAKICAgICAqbWZuID0gcGFnZV90b19tZm4oKnBhZ2Up OwotCi0gICAgcmV0dXJuIHJjOworICAgIHJldHVybiBHTlRTVF9va2F5OwogfQogCiBzdGF0aWMg aW5saW5lIHZvaWQKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vbWVtb3J5LmMgYi94ZW4vY29tbW9u L21lbW9yeS5jCmluZGV4IDM1ZGE5Y2E4MGUuLjQxOWI3NmFjMzggMTAwNjQ0Ci0tLSBhL3hlbi9j b21tb24vbWVtb3J5LmMKKysrIGIveGVuL2NvbW1vbi9tZW1vcnkuYwpAQCAtMTU3NCwzMCArMTU3 NCwzMSBAQCB2b2lkIGRlc3Ryb3lfcmluZ19mb3JfaGVscGVyKAogICAgIH0KIH0KIAotaW50IHBy ZXBhcmVfcmluZ19mb3JfaGVscGVyKAotICAgIHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxv bmcgZ21mbiwgc3RydWN0IHBhZ2VfaW5mbyAqKl9wYWdlLAotICAgIHZvaWQgKipfdmEpCitpbnQg Z2V0X3BhZ2VkX2dmbihzdHJ1Y3QgZG9tYWluICpkLCBnZm5fdCBnZm4sIGJvb2wgcmVhZG9ubHks CisgICAgICAgICAgICAgICAgICBwMm1fdHlwZV90ICpwMm10X3AsIHN0cnVjdCBwYWdlX2luZm8g KipwYWdlX3ApCiB7Ci0gICAgc3RydWN0IHBhZ2VfaW5mbyAqcGFnZTsKKyAgICBwMm1fcXVlcnlf dCBxID0gcmVhZG9ubHkgPyBQMk1fQUxMT0MgOiBQMk1fVU5TSEFSRTsKICAgICBwMm1fdHlwZV90 IHAybXQ7Ci0gICAgdm9pZCAqdmE7CisgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGFnZTsKIAotICAg IHBhZ2UgPSBnZXRfcGFnZV9mcm9tX2dmbihkLCBnbWZuLCAmcDJtdCwgUDJNX1VOU0hBUkUpOwor ICAgIHBhZ2UgPSBnZXRfcGFnZV9mcm9tX2dmbihkLCBnZm5feChnZm4pLCAmcDJtdCwgcSk7CiAK ICNpZmRlZiBDT05GSUdfSEFTX01FTV9QQUdJTkcKICAgICBpZiAoIHAybV9pc19wYWdpbmcocDJt dCkgKQogICAgIHsKICAgICAgICAgaWYgKCBwYWdlICkKICAgICAgICAgICAgIHB1dF9wYWdlKHBh Z2UpOwotICAgICAgICBwMm1fbWVtX3BhZ2luZ19wb3B1bGF0ZShkLCBnbWZuKTsKKworICAgICAg ICBwMm1fbWVtX3BhZ2luZ19wb3B1bGF0ZShkLCBnZm5feChnZm4pKTsKICAgICAgICAgcmV0dXJu IC1FTk9FTlQ7CiAgICAgfQogI2VuZGlmCiAjaWZkZWYgQ09ORklHX0hBU19NRU1fU0hBUklORwot ICAgIGlmICggcDJtX2lzX3NoYXJlZChwMm10KSApCisgICAgaWYgKCAocSAmIFAyTV9VTlNIQVJF KSAmJiBwMm1faXNfc2hhcmVkKHAybXQpICkKICAgICB7CiAgICAgICAgIGlmICggcGFnZSApCiAg ICAgICAgICAgICBwdXRfcGFnZShwYWdlKTsKKwogICAgICAgICByZXR1cm4gLUVOT0VOVDsKICAg ICB9CiAjZW5kaWYKQEAgLTE2MDUsNiArMTYwNiwzMSBAQCBpbnQgcHJlcGFyZV9yaW5nX2Zvcl9o ZWxwZXIoCiAgICAgaWYgKCAhcGFnZSApCiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogCisgICAg aWYgKCAhcDJtX2lzX3JhbShwMm10KSB8fCAoIXJlYWRvbmx5ICYmIHAybV9pc19yZWFkb25seShw Mm10KSkgKQorICAgIHsKKyAgICAgICAgcHV0X3BhZ2UocGFnZSk7CisgICAgICAgIHJldHVybiAt RUlOVkFMOworICAgIH0KKworICAgIGlmICggcDJtdF9wICkKKyAgICAgICAgKnAybXRfcCA9IHAy bXQ7CisKKyAgICAqcGFnZV9wID0gcGFnZTsKKyAgICByZXR1cm4gMDsKK30KKworaW50IHByZXBh cmVfcmluZ19mb3JfaGVscGVyKAorICAgIHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcg Z21mbiwgc3RydWN0IHBhZ2VfaW5mbyAqKl9wYWdlLAorICAgIHZvaWQgKipfdmEpCit7CisgICAg c3RydWN0IHBhZ2VfaW5mbyAqcGFnZTsKKyAgICB2b2lkICp2YTsKKyAgICBpbnQgcmM7CisKKyAg ICByYyA9IGdldF9wYWdlZF9nZm4oZCwgX2dmbihnbWZuKSwgZmFsc2UsIE5VTEwsICZwYWdlKTsK KyAgICBpZiAoIHJjICkKKyAgICAgICAgcmV0dXJuIHJjOworCiAgICAgaWYgKCAhZ2V0X3BhZ2Vf dHlwZShwYWdlLCBQR1Rfd3JpdGFibGVfcGFnZSkgKQogICAgIHsKICAgICAgICAgcHV0X3BhZ2Uo cGFnZSk7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20tYXJtL3AybS5oIGIveGVuL2luY2x1 ZGUvYXNtLWFybS9wMm0uaAppbmRleCA4ODIzNzA3YzE3Li5hMzlhNGZhYWJkIDEwMDY0NAotLS0g YS94ZW4vaW5jbHVkZS9hc20tYXJtL3AybS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vcDJt LmgKQEAgLTMwMyw2ICszMDMsOSBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBwYWdlX2luZm8gKmdl dF9wYWdlX2Zyb21fZ2ZuKAogICAgIHJldHVybiBwYWdlOwogfQogCitpbnQgZ2V0X3BhZ2VkX2dm bihzdHJ1Y3QgZG9tYWluICpkLCBnZm5fdCBnZm4sIGJvb2wgcmVhZG9ubHksCisgICAgICAgICAg ICAgICAgICBwMm1fdHlwZV90ICpwMm10X3AsIHN0cnVjdCBwYWdlX2luZm8gKipwYWdlX3ApOwor CiBpbnQgZ2V0X3BhZ2VfdHlwZShzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlLCB1bnNpZ25lZCBsb25n IHR5cGUpOwogYm9vbCBpc19pb21lbV9wYWdlKG1mbl90IG1mbik7CiBzdGF0aWMgaW5saW5lIGlu dCBnZXRfcGFnZV9hbmRfdHlwZShzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlLApkaWZmIC0tZ2l0IGEv eGVuL2luY2x1ZGUvYXNtLXg4Ni9wMm0uaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvcDJtLmgKaW5k ZXggZDRiM2NmY2I2ZS4uZTg5MGJjZDNlMSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4 Ni9wMm0uaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L3AybS5oCkBAIC00OTIsNiArNDkyLDgg QEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgcGFnZV9pbmZvICpnZXRfcGFnZV9mcm9tX2dmbigKICAg ICByZXR1cm4gbWZuX3ZhbGlkKF9tZm4oZ2ZuKSkgJiYgZ2V0X3BhZ2UocGFnZSwgZCkgPyBwYWdl IDogTlVMTDsKIH0KIAoraW50IGdldF9wYWdlZF9nZm4oc3RydWN0IGRvbWFpbiAqZCwgZ2ZuX3Qg Z2ZuLCBib29sIHJlYWRvbmx5LAorICAgICAgICAgICAgICAgICAgcDJtX3R5cGVfdCAqcDJtdF9w LCBzdHJ1Y3QgcGFnZV9pbmZvICoqcGFnZV9wKTsKIAogLyogR2VuZXJhbCBjb252ZXJzaW9uIGZ1 bmN0aW9uIGZyb20gbWZuIHRvIGdmbiAqLwogc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIG1m bl90b19nZm4oc3RydWN0IGRvbWFpbiAqZCwgbWZuX3QgbWZuKQotLSAKMi4xMS4wCgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxp bmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5w cm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==