From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v11 5/7] memory: add check_get_page_from_gfn() as a wrapper... Date: Wed, 19 Sep 2018 09:36:00 +0100 Message-ID: <20180919083602.8201-6-paul.durrant@citrix.com> References: <20180919083602.8201-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 1g2XyT-0006kK-E6 for xen-devel@lists.xenproject.org; Wed, 19 Sep 2018 08:36:41 +0000 In-Reply-To: <20180919083602.8201-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 List-Id: xen-devel@lists.xenproject.org Li4uZm9yIHNvbWUgdXNlcyBvZiBnZXRfcGFnZV9mcm9tX2dmbigpLgoKVGhlcmUgYXJlIG1hbnkg b2NjdXJyZW5jZXMgb2YgdGhlIGZvbGxvd2luZyBwYXR0ZXJuIGluIHRoZSBjb2RlOgoKICAgIHEg PSA8cmVhZG9ubHkgbG9vay11cD4gPyBQMk1fQUxMT0MgOiBQMk1fVU5TSEFSRTsKICAgIHBhZ2Ug PSBnZXRfcGFnZV9mcm9tX2dmbihkLCBnZm4sICZwMm10LCBxKTsKCiAgICBpZiAoIHAybV9pc19w YWdpbmcocDJtdCkgKQogICAgewogICAgICAgIGlmICggcGFnZSApCiAgICAgICAgICAgIHB1dF9w YWdlKHBhZ2UpOwoKICAgICAgICBwMm1fbWVtX3BhZ2luZ19wb3B1bGF0ZShkLCBnZm4pOwogICAg ICAgIHJldHVybiA8LUVBR0FJTiBvciBlcXVpdmFsZW50PjsKICAgIH0KCiAgICBpZiAoIChxICYg UDJNX1VOU0hBUkUpICYmIHAybV9pc19zaGFyZWQocDJtdCkgKQogICAgewogICAgICAgIGlmICgg cGFnZSApCiAgICAgICAgICAgIHB1dF9wYWdlKHBhZ2UpOwoKICAgICAgICByZXR1cm4gPC1FQUdB SU4gb3IgZXF1aXZhbGVudD47CiAgICB9CgogICAgaWYgKCAhcGFnZSApCiAgICAgICAgcmV0dXJu IDwtRUlOVkFMIG9yIGVxdWl2YWxlbnQ+OwoKVGhlcmUgYXJlIHNvbWUgc21hbGwgZGlmZmVyZW5j ZXMgYmV0d2VlbiB0aGUgZXhhY3Qgd2F5IHRoZSBvY2N1cnJlbmNlcwphcmUgY29kZWQgYnV0IHRo ZSBkZXNpcmVkIHNlbWFudGljIGlzIHRoZSBzYW1lLgoKVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEg bmV3IGNvbW1vbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGNvZGUgaW4KY2hlY2tfZ2V0X3BhZ2Vf ZnJvbV9nZm4oKSBhbmQgdGhlbiBjb252ZXJ0cyB0aGUgdmFyaW91cyBvcGVuLWNvZGVkIHBhdHRl cm5zCmludG8gY2FsbHMgdG8gdGhpcyBuZXcgZnVuY3Rpb24uCgpTaWduZWQtb2ZmLWJ5OiBQYXVs IER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgpSZXZpZXdlZC1ieTogUm9nZXIgUGF1 IE1vbm5lIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEphbiBCZXVsaWNoIDxq YmV1bGljaEBzdXNlLmNvbT4KLS0tCkNjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0Bj aXRyaXguY29tPgpDYzogR2VvcmdlIER1bmxhcCA8R2VvcmdlLkR1bmxhcEBldS5jaXRyaXguY29t PgpDYzogSWFuIEphY2tzb24gPGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20+CkNjOiBKdWxpZW4g R3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgpDYzogS29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxr b25yYWQud2lsa0BvcmFjbGUuY29tPgpDYzogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGlu aUBrZXJuZWwub3JnPgpDYzogVGltIERlZWdhbiA8dGltQHhlbi5vcmc+CkNjOiBXZWkgTGl1IDx3 ZWkubGl1MkBjaXRyaXguY29tPgoKdjExOgogLSBGb3J3YXJkIGRlY2xhcmUgcDJtX3R5cGVfdCBp biBwMm0tY29tbW9uLmggdG8gYWxsb3cgdGhlIGR1cGxpY2F0ZQogICBkZWNsYXJhdGlvbnMgb2Yg Y2hlY2tfZ2V0X3BhZ2VfZnJvbV9nZm4oKSB0byBiZSByZW1vdmVkLCBhbmQgaGVuY2UgYWRkCiAg IEphbidzIFItYi4KCnYxMDoKIC0gRXhwYW5kIGNvbW1pdCBjb21tZW50IHRvIHBvaW50IG91dCB0 aGUgcmVhc29uIGZvciB0aGUgZHVwbGljYXRlCiAgIGRlY2xhcmF0aW9ucyBvZiBjaGVja19nZXRf cGFnZV9mcm9tX2dmbigpLgoKdjk6CiAtIERlZmVyIFAyTSB0eXBlIGNoZWNrcyAoYmV5b25kIHNo YXJlZCBvciBwYWdpbmcpIHRvIHRoZSBjYWxsZXIuCgp2NzoKIC0gRml4IEFSTSBidWlsZCBieSBp bnRyb2R1Y2luZyBwMm1faXNfcmVhZG9ubHkoKSBwcmVkaWNhdGUuCiAtIFJlLW5hbWUgZ2V0X3Bh Z2VkX2ZyYW1lKCkgLT4gY2hlY2tfZ2V0X3BhZ2VfZnJvbV9nZm4oKS4KIC0gQWRqdXN0IGRlZmF1 bHQgY2FzZXMgb2YgY2FsbGVycyBzd2l0Y2gtaW5nIG9uIHJldHVybiB2YWx1ZS4KCnYzOgogLSBB ZGRyZXNzZWQgY29tbWVudHMgZnJvbSBHZW9yZ2UuCgp2MjoKIC0gTmV3IGluIHYyLgotLS0KIHhl bi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5jICAgfCAyNSArKysrKysrKysrKy0tLS0tLS0tLS0tCiB4 ZW4vYXJjaC94ODYvaHZtL2h2bS5jICAgICAgIHwgMTQgKy0tLS0tLS0tLS0tLQogeGVuL2NvbW1v bi9ncmFudF90YWJsZS5jICAgICB8IDMyICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCiB4 ZW4vY29tbW9uL21lbW9yeS5jICAgICAgICAgIHwgNDkgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKystLS0tLS0tLS0KIHhlbi9pbmNsdWRlL2FzbS1hcm0vcDJtLmggICAgfCAgNCAr Ky0tCiB4ZW4vaW5jbHVkZS9hc20teDg2L3AybS5oICAgIHwgIDUgKystLS0KIHhlbi9pbmNsdWRl L3hlbi9wMm0tY29tbW9uLmggfCAgNiArKysrKysKIDcgZmlsZXMgY2hhbmdlZCwgNzcgaW5zZXJ0 aW9ucygrKSwgNTggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9l bXVsYXRlLmMgYi94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYwppbmRleCBhNTc3Njg1ZGM2Li40 ODA4NDBiMjAyIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYworKysgYi94 ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYwpAQCAtMzU2LDIyICszNTYsMjEgQEAgc3RhdGljIGlu dCBodm1lbXVsX2FjcXVpcmVfcGFnZSh1bnNpZ25lZCBsb25nIGdtZm4sIHN0cnVjdCBwYWdlX2lu Zm8gKipwYWdlKQogICAgIHN0cnVjdCBkb21haW4gKmN1cnJfZCA9IGN1cnJlbnQtPmRvbWFpbjsK ICAgICBwMm1fdHlwZV90IHAybXQ7CiAKLSAgICAqcGFnZSA9IGdldF9wYWdlX2Zyb21fZ2ZuKGN1 cnJfZCwgZ21mbiwgJnAybXQsIFAyTV9VTlNIQVJFKTsKLQotICAgIGlmICggKnBhZ2UgPT0gTlVM TCApCi0gICAgICAgIHJldHVybiBYODZFTVVMX1VOSEFORExFQUJMRTsKLQotICAgIGlmICggcDJt X2lzX3BhZ2luZyhwMm10KSApCisgICAgc3dpdGNoICggY2hlY2tfZ2V0X3BhZ2VfZnJvbV9nZm4o Y3Vycl9kLCBfZ2ZuKGdtZm4pLCBmYWxzZSwgJnAybXQsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcGFnZSkgKQogICAgIHsKLSAgICAgICAgcHV0X3BhZ2UoKnBhZ2UpOwot ICAgICAgICBwMm1fbWVtX3BhZ2luZ19wb3B1bGF0ZShjdXJyX2QsIGdtZm4pOwotICAgICAgICBy ZXR1cm4gWDg2RU1VTF9SRVRSWTsKLSAgICB9CisgICAgY2FzZSAwOgorICAgICAgICBicmVhazsK IAotICAgIGlmICggcDJtX2lzX3NoYXJlZChwMm10KSApCi0gICAgewotICAgICAgICBwdXRfcGFn ZSgqcGFnZSk7CisgICAgY2FzZSAtRUFHQUlOOgogICAgICAgICByZXR1cm4gWDg2RU1VTF9SRVRS WTsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9VTlJFQUNIQUJMRSgpOworICAgICAg ICAvKiBGYWxsdGhyb3VnaCAqLworCisgICAgY2FzZSAtRUlOVkFMOgorICAgICAgICByZXR1cm4g WDg2RU1VTF9VTkhBTkRMRUFCTEU7CiAgICAgfQogCiAgICAgLyogVGhpcyBjb2RlIHNob3VsZCBu b3QgYmUgcmVhY2hlZCBpZiB0aGUgZ21mbiBpcyBub3QgUkFNICovCmRpZmYgLS1naXQgYS94ZW4v YXJjaC94ODYvaHZtL2h2bS5jIGIveGVuL2FyY2gveDg2L2h2bS9odm0uYwppbmRleCBmZTZjOWM1 OTJmLi42YmIxZGEwN2ViIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCisrKyBi L3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKQEAgLTI1MzYsMjAgKzI1MzYsOCBAQCBzdGF0aWMgdm9p ZCAqX2h2bV9tYXBfZ3Vlc3RfZnJhbWUodW5zaWduZWQgbG9uZyBnZm4sIGJvb2xfdCBwZXJtYW5l bnQsCiAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGFnZTsKICAgICBzdHJ1Y3QgZG9tYWluICpkID0g Y3VycmVudC0+ZG9tYWluOwogCi0gICAgcGFnZSA9IGdldF9wYWdlX2Zyb21fZ2ZuKGQsIGdmbiwg JnAybXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRhYmxlID8gUDJNX1VOU0hB UkUgOiBQMk1fQUxMT0MpOwotICAgIGlmICggKHAybV9pc19zaGFyZWQocDJtdCkgJiYgd3JpdGFi bGUpIHx8ICFwYWdlICkKLSAgICB7Ci0gICAgICAgIGlmICggcGFnZSApCi0gICAgICAgICAgICBw dXRfcGFnZShwYWdlKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotICAgIGlmICggcDJt X2lzX3BhZ2luZyhwMm10KSApCi0gICAgewotICAgICAgICBwdXRfcGFnZShwYWdlKTsKLSAgICAg ICAgcDJtX21lbV9wYWdpbmdfcG9wdWxhdGUoZCwgZ2ZuKTsKKyAgICBpZiAoIGNoZWNrX2dldF9w YWdlX2Zyb21fZ2ZuKGQsIF9nZm4oZ2ZuKSwgIXdyaXRhYmxlLCAmcDJtdCwgJnBhZ2UpICkKICAg ICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQogCiAgICAgaWYgKCB3cml0YWJsZSApCiAgICAgewpk aWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jIGIveGVuL2NvbW1vbi9ncmFudF90 YWJsZS5jCmluZGV4IDBmMGI3YjFhNDkuLjM2MDRhODgxMmMgMTAwNjQ0Ci0tLSBhL3hlbi9jb21t b24vZ3JhbnRfdGFibGUuYworKysgYi94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMKQEAgLTM3NCwy NSArMzc0LDIzIEBAIHN0YXRpYyBpbnQgZ2V0X3BhZ2VkX2ZyYW1lKHVuc2lnbmVkIGxvbmcgZ2Zu LCBtZm5fdCAqbWZuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHBhZ2VfaW5m byAqKnBhZ2UsIGJvb2wgcmVhZG9ubHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1 Y3QgZG9tYWluICpyZCkKIHsKLSAgICBpbnQgcmMgPSBHTlRTVF9va2F5OwogICAgIHAybV90eXBl X3QgcDJtdDsKKyAgICBpbnQgcmM7CiAKLSAgICAqbWZuID0gSU5WQUxJRF9NRk47Ci0gICAgKnBh Z2UgPSBnZXRfcGFnZV9mcm9tX2dmbihyZCwgZ2ZuLCAmcDJtdCwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJlYWRvbmx5ID8gUDJNX0FMTE9DIDogUDJNX1VOU0hBUkUpOwotICAgIGlm ICggISpwYWdlICkKKyAgICByYyA9IGNoZWNrX2dldF9wYWdlX2Zyb21fZ2ZuKHJkLCBfZ2ZuKGdm biksIHJlYWRvbmx5LCAmcDJtdCwgcGFnZSk7CisgICAgc3dpdGNoICggcmMgKQogICAgIHsKLSNp ZmRlZiBQMk1fU0hBUkVEX1RZUEVTCi0gICAgICAgIGlmICggcDJtX2lzX3NoYXJlZChwMm10KSAp Ci0gICAgICAgICAgICByZXR1cm4gR05UU1RfZWFnYWluOwotI2VuZGlmCi0jaWZkZWYgUDJNX1BB R0VTX1RZUEVTCi0gICAgICAgIGlmICggcDJtX2lzX3BhZ2luZyhwMm10KSApCi0gICAgICAgIHsK LSAgICAgICAgICAgIHAybV9tZW1fcGFnaW5nX3BvcHVsYXRlKHJkLCBnZm4pOwotICAgICAgICAg ICAgcmV0dXJuIEdOVFNUX2VhZ2FpbjsKLSAgICAgICAgfQotI2VuZGlmCisgICAgY2FzZSAwOgor ICAgICAgICBicmVhazsKKworICAgIGNhc2UgLUVBR0FJTjoKKyAgICAgICAgcmV0dXJuIEdOVFNU X2VhZ2FpbjsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9VTlJFQUNIQUJMRSgpOwor ICAgICAgICAvKiBGYWxsdGhyb3VnaCAqLworCisgICAgY2FzZSAtRUlOVkFMOgogICAgICAgICBy ZXR1cm4gR05UU1RfYmFkX3BhZ2U7CiAgICAgfQogCkBAIC00MDYsNyArNDA0LDcgQEAgc3RhdGlj IGludCBnZXRfcGFnZWRfZnJhbWUodW5zaWduZWQgbG9uZyBnZm4sIG1mbl90ICptZm4sCiAKICAg ICAqbWZuID0gcGFnZV90b19tZm4oKnBhZ2UpOwogCi0gICAgcmV0dXJuIHJjOworICAgIHJldHVy biBHTlRTVF9va2F5OwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQKZGlmZiAtLWdpdCBhL3hlbi9j b21tb24vbWVtb3J5LmMgYi94ZW4vY29tbW9uL21lbW9yeS5jCmluZGV4IDg1NjExZGRhZTQuLjli NTkyZDRmNjYgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vbWVtb3J5LmMKKysrIGIveGVuL2NvbW1v bi9tZW1vcnkuYwpAQCAtMTYyNSwzNyArMTYyNSw2NiBAQCB2b2lkIGRlc3Ryb3lfcmluZ19mb3Jf aGVscGVyKAogICAgIH0KIH0KIAotaW50IHByZXBhcmVfcmluZ19mb3JfaGVscGVyKAotICAgIHN0 cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ21mbiwgc3RydWN0IHBhZ2VfaW5mbyAqKl9w YWdlLAotICAgIHZvaWQgKipfdmEpCisvKgorICogQWNxdWlyZSBhIHBvaW50ZXIgdG8gc3RydWN0 IHBhZ2VfaW5mbyBmb3IgYSBzcGVjaWZpZWQgZG9tYW4gYW5kIEdGTiwKKyAqIGNoZWNraW5nIHdo ZXRoZXIgdGhlIHBhZ2UgaGFzIGJlZW4gcGFnZWQgb3V0LCBvciBuZWVkcyB1bnNoYXJpbmcuCisg KiBJZiB0aGUgZnVuY3Rpb24gc3VjY2VlZHMgdGhlbiB6ZXJvIGlzIHJldHVybmVkLCBwYWdlX3Ag aXMgd3JpdHRlbgorICogd2l0aCBhIHBvaW50ZXIgdG8gdGhlIHN0cnVjdCBwYWdlX2luZm8gd2l0 aCBhIHJlZmVyZW5jZSB0YWtlbiwgYW5kCisgKiBwMm10X3AgaXQgaXMgd3JpdHRlbiB3aXRoIHRo ZSBQMk0gdHlwZSBvZiB0aGUgcGFnZS4gVGhlIGNhbGxlciBpcworICogcmVzcG9uc2libGUgZm9y IGRyb3BwaW5nIHRoZSByZWZlcmVuY2UuCisgKiBJZiB0aGUgZnVuY3Rpb24gZmFpbHMgdGhlbiBh biBhcHByb3ByaWF0ZSBlcnJubyBpcyByZXR1cm5lZCBhbmQgdGhlCisgKiB2YWx1ZXMgcmVmZXJl bmNlZCBieSBwYWdlX3AgYW5kIHAybXRfcCBhcmUgdW5kZWZpbmVkLgorICovCitpbnQgY2hlY2tf Z2V0X3BhZ2VfZnJvbV9nZm4oc3RydWN0IGRvbWFpbiAqZCwgZ2ZuX3QgZ2ZuLCBib29sIHJlYWRv bmx5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAybV90eXBlX3QgKnAybXRfcCwgc3Ry dWN0IHBhZ2VfaW5mbyAqKnBhZ2VfcCkKIHsKLSAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlOwor ICAgIHAybV9xdWVyeV90IHEgPSByZWFkb25seSA/IFAyTV9BTExPQyA6IFAyTV9VTlNIQVJFOwog ICAgIHAybV90eXBlX3QgcDJtdDsKLSAgICB2b2lkICp2YTsKKyAgICBzdHJ1Y3QgcGFnZV9pbmZv ICpwYWdlOwogCi0gICAgcGFnZSA9IGdldF9wYWdlX2Zyb21fZ2ZuKGQsIGdtZm4sICZwMm10LCBQ Mk1fVU5TSEFSRSk7CisgICAgcGFnZSA9IGdldF9wYWdlX2Zyb21fZ2ZuKGQsIGdmbl94KGdmbiks ICZwMm10LCBxKTsKIAogI2lmZGVmIENPTkZJR19IQVNfTUVNX1BBR0lORwogICAgIGlmICggcDJt X2lzX3BhZ2luZyhwMm10KSApCiAgICAgewogICAgICAgICBpZiAoIHBhZ2UgKQogICAgICAgICAg ICAgcHV0X3BhZ2UocGFnZSk7Ci0gICAgICAgIHAybV9tZW1fcGFnaW5nX3BvcHVsYXRlKGQsIGdt Zm4pOwotICAgICAgICByZXR1cm4gLUVOT0VOVDsKKworICAgICAgICBwMm1fbWVtX3BhZ2luZ19w b3B1bGF0ZShkLCBnZm5feChnZm4pKTsKKyAgICAgICAgcmV0dXJuIC1FQUdBSU47CiAgICAgfQog I2VuZGlmCiAjaWZkZWYgQ09ORklHX0hBU19NRU1fU0hBUklORwotICAgIGlmICggcDJtX2lzX3No YXJlZChwMm10KSApCisgICAgaWYgKCAocSAmIFAyTV9VTlNIQVJFKSAmJiBwMm1faXNfc2hhcmVk KHAybXQpICkKICAgICB7CiAgICAgICAgIGlmICggcGFnZSApCiAgICAgICAgICAgICBwdXRfcGFn ZShwYWdlKTsKLSAgICAgICAgcmV0dXJuIC1FTk9FTlQ7CisKKyAgICAgICAgcmV0dXJuIC1FQUdB SU47CiAgICAgfQogI2VuZGlmCiAKICAgICBpZiAoICFwYWdlICkKICAgICAgICAgcmV0dXJuIC1F SU5WQUw7CiAKKyAgICAqcDJtdF9wID0gcDJtdDsKKyAgICAqcGFnZV9wID0gcGFnZTsKKyAgICBy ZXR1cm4gMDsKK30KKworaW50IHByZXBhcmVfcmluZ19mb3JfaGVscGVyKAorICAgIHN0cnVjdCBk b21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ21mbiwgc3RydWN0IHBhZ2VfaW5mbyAqKl9wYWdlLAor ICAgIHZvaWQgKipfdmEpCit7CisgICAgcDJtX3R5cGVfdCBwMm10OworICAgIHN0cnVjdCBwYWdl X2luZm8gKnBhZ2U7CisgICAgdm9pZCAqdmE7CisgICAgaW50IHJjOworCisgICAgcmMgPSBjaGVj a19nZXRfcGFnZV9mcm9tX2dmbihkLCBfZ2ZuKGdtZm4pLCBmYWxzZSwgJnAybXQsICZwYWdlKTsK KyAgICBpZiAoIHJjICkKKyAgICAgICAgcmV0dXJuIChyYyA9PSAtRUFHQUlOKSA/IC1FTk9FTlQg OiByYzsKKwogICAgIGlmICggIWdldF9wYWdlX3R5cGUocGFnZSwgUEdUX3dyaXRhYmxlX3BhZ2Up ICkKICAgICB7CiAgICAgICAgIHB1dF9wYWdlKHBhZ2UpOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1 ZGUvYXNtLWFybS9wMm0uaCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vcDJtLmgKaW5kZXggODgyMzcw N2MxNy4uYzAzNTU3NTQ0YSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLWFybS9wMm0uaAor KysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL3AybS5oCkBAIC0xMTAsNyArMTEwLDcgQEAgc3RydWN0 IHAybV9kb21haW4gewogICogZnV0dXJlLCBpdCdzIHBvc3NpYmxlIHRvIHVzZSBoaWdoZXIgdmFs dWUgZm9yIHBzZXVkby10eXBlIGFuZCBkb24ndCBzdG9yZQogICogdGhlbSBpbiB0aGUgcDJtIGVu dHJ5LgogICovCi10eXBlZGVmIGVudW0geworZW51bSBwMm1fdHlwZSB7CiAgICAgcDJtX2ludmFs aWQgPSAwLCAgICAvKiBOb3RoaW5nIG1hcHBlZCBoZXJlICovCiAgICAgcDJtX3JhbV9ydywgICAg ICAgICAvKiBOb3JtYWwgcmVhZC93cml0ZSBndWVzdCBSQU0gKi8KICAgICBwMm1fcmFtX3JvLCAg ICAgICAgIC8qIFJlYWQtb25seTsgd3JpdGVzIGFyZSBzaWxlbnRseSBkcm9wcGVkICovCkBAIC0x MjQsNyArMTI0LDcgQEAgdHlwZWRlZiBlbnVtIHsKICAgICBwMm1faW9tbXVfbWFwX3J3LCAgIC8q IFJlYWQvd3JpdGUgaW9tbXUgbWFwcGluZyAqLwogICAgIHAybV9pb21tdV9tYXBfcm8sICAgLyog UmVhZC1vbmx5IGlvbW11IG1hcHBpbmcgKi8KICAgICBwMm1fbWF4X3JlYWxfdHlwZSwgIC8qIFR5 cGVzIGFmdGVyIHRoaXMgd29uJ3QgYmUgc3RvcmUgaW4gdGhlIHAybSAqLwotfSBwMm1fdHlwZV90 OworfTsKIAogLyogV2UgdXNlIGJpdG1hcHMgYW5kIG1hc2sgdG8gaGFuZGxlIGdyb3VwcyBvZiB0 eXBlcyAqLwogI2RlZmluZSBwMm1fdG9fbWFzayhfdCkgKDFVTCA8PCAoX3QpKQpkaWZmIC0tZ2l0 IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9wMm0uaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvcDJtLmgK aW5kZXggZDRiM2NmY2I2ZS4uYjk3ZjEzYTJhNSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNt LXg4Ni9wMm0uaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L3AybS5oCkBAIC01Miw3ICs1Miw3 IEBAIGV4dGVybiBib29sX3Qgb3B0X2hhcF8xZ2IsIG9wdF9oYXBfMm1iOwogICogY2Fubm90IGJl IG5vbi16ZXJvLCBvdGhlcndpc2UsIGhhcmR3YXJlIGdlbmVyYXRlcyBpbyBwYWdlIGZhdWx0cyB3 aGVuIAogICogZGV2aWNlIGFjY2VzcyB0aG9zZSBwYWdlcy4gVGhlcmVmb3JlLCBwMm1fcmFtX3J3 IGhhcyB0byBiZSBkZWZpbmVkIGFzIDAuCiAgKi8KLXR5cGVkZWYgZW51bSB7CitlbnVtIHAybV90 eXBlIHsKICAgICBwMm1fcmFtX3J3ID0gMCwgICAgICAgICAgICAgLyogTm9ybWFsIHJlYWQvd3Jp dGUgZ3Vlc3QgUkFNICovCiAgICAgcDJtX2ludmFsaWQgPSAxLCAgICAgICAgICAgIC8qIE5vdGhp bmcgbWFwcGVkIGhlcmUgKi8KICAgICBwMm1fcmFtX2xvZ2RpcnR5ID0gMiwgICAgICAgLyogVGVt cG9yYXJpbHkgcmVhZC1vbmx5IGZvciBsb2ctZGlydHkgKi8KQEAgLTcyLDcgKzcyLDcgQEAgdHlw ZWRlZiBlbnVtIHsKICAgICBwMm1fcmFtX2Jyb2tlbiA9IDEzLCAgICAgICAgICAvKiBCcm9rZW4g cGFnZSwgYWNjZXNzIGNhdXNlIGRvbWFpbiBjcmFzaCAqLwogICAgIHAybV9tYXBfZm9yZWlnbiAg PSAxNCwgICAgICAgIC8qIHJhbSBwYWdlcyBmcm9tIGZvcmVpZ24gZG9tYWluICovCiAgICAgcDJt X2lvcmVxX3NlcnZlciA9IDE1LAotfSBwMm1fdHlwZV90OworfTsKIAogLyogTW9kaWZpZXJzIHRv IHRoZSBxdWVyeSAqLwogdHlwZWRlZiB1bnNpZ25lZCBpbnQgcDJtX3F1ZXJ5X3Q7CkBAIC00OTIs NyArNDkyLDYgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgcGFnZV9pbmZvICpnZXRfcGFnZV9mcm9t X2dmbigKICAgICByZXR1cm4gbWZuX3ZhbGlkKF9tZm4oZ2ZuKSkgJiYgZ2V0X3BhZ2UocGFnZSwg ZCkgPyBwYWdlIDogTlVMTDsKIH0KIAotCiAvKiBHZW5lcmFsIGNvbnZlcnNpb24gZnVuY3Rpb24g ZnJvbSBtZm4gdG8gZ2ZuICovCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgbWZuX3RvX2dm bihzdHJ1Y3QgZG9tYWluICpkLCBtZm5fdCBtZm4pCiB7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVk ZS94ZW4vcDJtLWNvbW1vbi5oIGIveGVuL2luY2x1ZGUveGVuL3AybS1jb21tb24uaAppbmRleCA3 NDMxMTk1MGFkLi5mNGQzMGVmZTVmIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vcDJtLWNv bW1vbi5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9wMm0tY29tbW9uLmgKQEAgLTMyLDUgKzMyLDEx IEBAIHVuc2lnbmVkIGxvbmcKIHAybV9wb2RfZGVjcmVhc2VfcmVzZXJ2YXRpb24oc3RydWN0IGRv bWFpbiAqZCwgZ2ZuX3QgZ2ZuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l ZCBpbnQgb3JkZXIpOwogCit0eXBlZGVmIGVudW0gcDJtX3R5cGUgcDJtX3R5cGVfdDsKKworaW50 IF9fbXVzdF9jaGVjayBjaGVja19nZXRfcGFnZV9mcm9tX2dmbihzdHJ1Y3QgZG9tYWluICpkLCBn Zm5fdCBnZm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wg cmVhZG9ubHksIHAybV90eXBlX3QgKnAybXRfcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RydWN0IHBhZ2VfaW5mbyAqKnBhZ2VfcCk7CisKIAogI2VuZGlmIC8q IF9YRU5fUDJNX0NPTU1PTl9IICovCi0tIAoyLjExLjAKCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZl bEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxt YW4vbGlzdGluZm8veGVuLWRldmVs