From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v13 5/9] memory: add check_get_page_from_gfn() as a wrapper... Date: Tue, 2 Oct 2018 18:00:15 +0100 Message-ID: <20181002170019.1911-6-paul.durrant@citrix.com> References: <20181002170019.1911-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 1g7O27-0001TR-N5 for xen-devel@lists.xenproject.org; Tue, 02 Oct 2018 17:00:27 +0000 In-Reply-To: <20181002170019.1911-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 , 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 cm5zCmludG8gY2FsbHMgdG8gdGhpcyBuZXcgZnVuY3Rpb24uCgpOT1RFOiBBIGZvcndhcmQgZGVj bGFyYXRpb24gb2YgcDJtX3R5cGVfdCBlbnVtIGhhcyBiZWVuIGludHJvZHVjZWQgaW4KICAgICAg cDJtLWNvbW1vbi5oIHNvIHRoYXQgaXQgaXMgcG9zc2libGUgdG8gZGVjbGFyZQogICAgICBjaGVj a19nZXRfcGFnZV9mcm9tX2dmbigpIHRoZXJlIHJhdGhlciB0aGFuIGhhdmluZyB0byBhZGQKICAg ICAgZHVwbGljYXRlIGRlY2xhcmF0aW9ucyBpbiB0aGUgcGVyLWFyY2hpdGVjdHVyZSBwMm0gaGVh ZGVycy4KClNpZ25lZC1vZmYtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5j b20+ClJldmlld2VkLWJ5OiBSb2dlciBQYXUgTW9ubmUgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgpS ZXZpZXdlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpBY2tlZC1ieTogSnVs aWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4KLS0tCkNjOiBBbmRyZXcgQ29vcGVyIDxh bmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpDYzogR2VvcmdlIER1bmxhcCA8R2VvcmdlLkR1bmxh cEBldS5jaXRyaXguY29tPgpDYzogSWFuIEphY2tzb24gPGlhbi5qYWNrc29uQGV1LmNpdHJpeC5j b20+CkNjOiBLb25yYWQgUnplc3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9yYWNsZS5jb20+CkNj OiBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+CkNjOiBUaW0gRGVl Z2FuIDx0aW1AeGVuLm9yZz4KQ2M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+Cgp2MTE6 CiAtIEZvcndhcmQgZGVjbGFyZSBwMm1fdHlwZV90IGluIHAybS1jb21tb24uaCB0byBhbGxvdyB0 aGUgZHVwbGljYXRlCiAgIGRlY2xhcmF0aW9ucyBvZiBjaGVja19nZXRfcGFnZV9mcm9tX2dmbigp IHRvIGJlIHJlbW92ZWQsIGFuZCBoZW5jZSBhZGQKICAgSmFuJ3MgUi1iLgoKdjEwOgogLSBFeHBh bmQgY29tbWl0IGNvbW1lbnQgdG8gcG9pbnQgb3V0IHRoZSByZWFzb24gZm9yIHRoZSBkdXBsaWNh dGUKICAgZGVjbGFyYXRpb25zIG9mIGNoZWNrX2dldF9wYWdlX2Zyb21fZ2ZuKCkuCgp2OToKIC0g RGVmZXIgUDJNIHR5cGUgY2hlY2tzIChiZXlvbmQgc2hhcmVkIG9yIHBhZ2luZykgdG8gdGhlIGNh bGxlci4KCnY3OgogLSBGaXggQVJNIGJ1aWxkIGJ5IGludHJvZHVjaW5nIHAybV9pc19yZWFkb25s eSgpIHByZWRpY2F0ZS4KIC0gUmUtbmFtZSBnZXRfcGFnZWRfZnJhbWUoKSAtPiBjaGVja19nZXRf cGFnZV9mcm9tX2dmbigpLgogLSBBZGp1c3QgZGVmYXVsdCBjYXNlcyBvZiBjYWxsZXJzIHN3aXRj aC1pbmcgb24gcmV0dXJuIHZhbHVlLgoKdjM6CiAtIEFkZHJlc3NlZCBjb21tZW50cyBmcm9tIEdl b3JnZS4KCnYyOgogLSBOZXcgaW4gdjIuCi0tLQogeGVuL2FyY2gveDg2L2h2bS9lbXVsYXRlLmMg ICB8IDI1ICsrKysrKysrKysrLS0tLS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9odm0vaHZtLmMgICAg ICAgfCAxNCArLS0tLS0tLS0tLS0tCiB4ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMgICAgIHwgMzIg KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KIHhlbi9jb21tb24vbWVtb3J5LmMgICAgICAg ICAgfCA0OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQogeGVu L2luY2x1ZGUvYXNtLWFybS9wMm0uaCAgICB8ICA0ICsrLS0KIHhlbi9pbmNsdWRlL2FzbS14ODYv cDJtLmggICAgfCAgNSArKy0tLQogeGVuL2luY2x1ZGUveGVuL3AybS1jb21tb24uaCB8ICA2ICsr KysrKwogNyBmaWxlcyBjaGFuZ2VkLCA3NyBpbnNlcnRpb25zKCspLCA1OCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYyBiL3hlbi9hcmNoL3g4Ni9o dm0vZW11bGF0ZS5jCmluZGV4IGVhYjY2ZWFiNzcuLmNkMWQ5YTdjNTcgMTAwNjQ0Ci0tLSBhL3hl bi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5j CkBAIC0zNTYsMjIgKzM1NiwyMSBAQCBzdGF0aWMgaW50IGh2bWVtdWxfYWNxdWlyZV9wYWdlKHVu c2lnbmVkIGxvbmcgZ21mbiwgc3RydWN0IHBhZ2VfaW5mbyAqKnBhZ2UpCiAgICAgc3RydWN0IGRv bWFpbiAqY3Vycl9kID0gY3VycmVudC0+ZG9tYWluOwogICAgIHAybV90eXBlX3QgcDJtdDsKIAot ICAgICpwYWdlID0gZ2V0X3BhZ2VfZnJvbV9nZm4oY3Vycl9kLCBnbWZuLCAmcDJtdCwgUDJNX1VO U0hBUkUpOwotCi0gICAgaWYgKCAqcGFnZSA9PSBOVUxMICkKLSAgICAgICAgcmV0dXJuIFg4NkVN VUxfVU5IQU5ETEVBQkxFOwotCi0gICAgaWYgKCBwMm1faXNfcGFnaW5nKHAybXQpICkKKyAgICBz d2l0Y2ggKCBjaGVja19nZXRfcGFnZV9mcm9tX2dmbihjdXJyX2QsIF9nZm4oZ21mbiksIGZhbHNl LCAmcDJtdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlKSApCiAg ICAgewotICAgICAgICBwdXRfcGFnZSgqcGFnZSk7Ci0gICAgICAgIHAybV9tZW1fcGFnaW5nX3Bv cHVsYXRlKGN1cnJfZCwgZ21mbik7Ci0gICAgICAgIHJldHVybiBYODZFTVVMX1JFVFJZOwotICAg IH0KKyAgICBjYXNlIDA6CisgICAgICAgIGJyZWFrOwogCi0gICAgaWYgKCBwMm1faXNfc2hhcmVk KHAybXQpICkKLSAgICB7Ci0gICAgICAgIHB1dF9wYWdlKCpwYWdlKTsKKyAgICBjYXNlIC1FQUdB SU46CiAgICAgICAgIHJldHVybiBYODZFTVVMX1JFVFJZOworCisgICAgZGVmYXVsdDoKKyAgICAg ICAgQVNTRVJUX1VOUkVBQ0hBQkxFKCk7CisgICAgICAgIC8qIEZhbGx0aHJvdWdoICovCisKKyAg ICBjYXNlIC1FSU5WQUw6CisgICAgICAgIHJldHVybiBYODZFTVVMX1VOSEFORExFQUJMRTsKICAg ICB9CiAKICAgICAvKiBUaGlzIGNvZGUgc2hvdWxkIG5vdCBiZSByZWFjaGVkIGlmIHRoZSBnbWZu IGlzIG5vdCBSQU0gKi8KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMgYi94ZW4v YXJjaC94ODYvaHZtL2h2bS5jCmluZGV4IDUxZmMzZWMwN2YuLmZhOTk0YTM2YTQgMTAwNjQ0Ci0t LSBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9odm0uYwpA QCAtMjUzNiwyMCArMjUzNiw4IEBAIHN0YXRpYyB2b2lkICpfaHZtX21hcF9ndWVzdF9mcmFtZSh1 bnNpZ25lZCBsb25nIGdmbiwgYm9vbF90IHBlcm1hbmVudCwKICAgICBzdHJ1Y3QgcGFnZV9pbmZv ICpwYWdlOwogICAgIHN0cnVjdCBkb21haW4gKmQgPSBjdXJyZW50LT5kb21haW47CiAKLSAgICBw YWdlID0gZ2V0X3BhZ2VfZnJvbV9nZm4oZCwgZ2ZuLCAmcDJtdCwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgd3JpdGFibGUgPyBQMk1fVU5TSEFSRSA6IFAyTV9BTExPQyk7Ci0gICAgaWYg KCAocDJtX2lzX3NoYXJlZChwMm10KSAmJiB3cml0YWJsZSkgfHwgIXBhZ2UgKQotICAgIHsKLSAg ICAgICAgaWYgKCBwYWdlICkKLSAgICAgICAgICAgIHB1dF9wYWdlKHBhZ2UpOwotICAgICAgICBy ZXR1cm4gTlVMTDsKLSAgICB9Ci0gICAgaWYgKCBwMm1faXNfcGFnaW5nKHAybXQpICkKLSAgICB7 Ci0gICAgICAgIHB1dF9wYWdlKHBhZ2UpOwotICAgICAgICBwMm1fbWVtX3BhZ2luZ19wb3B1bGF0 ZShkLCBnZm4pOworICAgIGlmICggY2hlY2tfZ2V0X3BhZ2VfZnJvbV9nZm4oZCwgX2dmbihnZm4p LCAhd3JpdGFibGUsICZwMm10LCAmcGFnZSkgKQogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9 CiAKICAgICBpZiAoIHdyaXRhYmxlICkKICAgICB7CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2dy YW50X3RhYmxlLmMgYi94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMKaW5kZXggMGYwYjdiMWE0OS4u MzYwNGE4ODEyYyAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jCisrKyBiL3hl bi9jb21tb24vZ3JhbnRfdGFibGUuYwpAQCAtMzc0LDI1ICszNzQsMjMgQEAgc3RhdGljIGludCBn ZXRfcGFnZWRfZnJhbWUodW5zaWduZWQgbG9uZyBnZm4sIG1mbl90ICptZm4sCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgcGFnZV9pbmZvICoqcGFnZSwgYm9vbCByZWFkb25seSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkb21haW4gKnJkKQogewotICAgIGlu dCByYyA9IEdOVFNUX29rYXk7CiAgICAgcDJtX3R5cGVfdCBwMm10OworICAgIGludCByYzsKIAot ICAgICptZm4gPSBJTlZBTElEX01GTjsKLSAgICAqcGFnZSA9IGdldF9wYWdlX2Zyb21fZ2ZuKHJk LCBnZm4sICZwMm10LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZG9ubHkgPyBQ Mk1fQUxMT0MgOiBQMk1fVU5TSEFSRSk7Ci0gICAgaWYgKCAhKnBhZ2UgKQorICAgIHJjID0gY2hl Y2tfZ2V0X3BhZ2VfZnJvbV9nZm4ocmQsIF9nZm4oZ2ZuKSwgcmVhZG9ubHksICZwMm10LCBwYWdl KTsKKyAgICBzd2l0Y2ggKCByYyApCiAgICAgewotI2lmZGVmIFAyTV9TSEFSRURfVFlQRVMKLSAg ICAgICAgaWYgKCBwMm1faXNfc2hhcmVkKHAybXQpICkKLSAgICAgICAgICAgIHJldHVybiBHTlRT VF9lYWdhaW47Ci0jZW5kaWYKLSNpZmRlZiBQMk1fUEFHRVNfVFlQRVMKLSAgICAgICAgaWYgKCBw Mm1faXNfcGFnaW5nKHAybXQpICkKLSAgICAgICAgewotICAgICAgICAgICAgcDJtX21lbV9wYWdp bmdfcG9wdWxhdGUocmQsIGdmbik7Ci0gICAgICAgICAgICByZXR1cm4gR05UU1RfZWFnYWluOwot ICAgICAgICB9Ci0jZW5kaWYKKyAgICBjYXNlIDA6CisgICAgICAgIGJyZWFrOworCisgICAgY2Fz ZSAtRUFHQUlOOgorICAgICAgICByZXR1cm4gR05UU1RfZWFnYWluOworCisgICAgZGVmYXVsdDoK KyAgICAgICAgQVNTRVJUX1VOUkVBQ0hBQkxFKCk7CisgICAgICAgIC8qIEZhbGx0aHJvdWdoICov CisKKyAgICBjYXNlIC1FSU5WQUw6CiAgICAgICAgIHJldHVybiBHTlRTVF9iYWRfcGFnZTsKICAg ICB9CiAKQEAgLTQwNiw3ICs0MDQsNyBAQCBzdGF0aWMgaW50IGdldF9wYWdlZF9mcmFtZSh1bnNp Z25lZCBsb25nIGdmbiwgbWZuX3QgKm1mbiwKIAogICAgICptZm4gPSBwYWdlX3RvX21mbigqcGFn ZSk7CiAKLSAgICByZXR1cm4gcmM7CisgICAgcmV0dXJuIEdOVFNUX29rYXk7CiB9CiAKIHN0YXRp YyBpbmxpbmUgdm9pZApkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9tZW1vcnkuYyBiL3hlbi9jb21t b24vbWVtb3J5LmMKaW5kZXggYjU2N2JkNDZiYi4uNTJkNTVkZmVkNyAxMDA2NDQKLS0tIGEveGVu L2NvbW1vbi9tZW1vcnkuYworKysgYi94ZW4vY29tbW9uL21lbW9yeS5jCkBAIC0xNjI2LDM3ICsx NjI2LDY2IEBAIHZvaWQgZGVzdHJveV9yaW5nX2Zvcl9oZWxwZXIoCiAgICAgfQogfQogCi1pbnQg cHJlcGFyZV9yaW5nX2Zvcl9oZWxwZXIoCi0gICAgc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQg bG9uZyBnbWZuLCBzdHJ1Y3QgcGFnZV9pbmZvICoqX3BhZ2UsCi0gICAgdm9pZCAqKl92YSkKKy8q CisgKiBBY3F1aXJlIGEgcG9pbnRlciB0byBzdHJ1Y3QgcGFnZV9pbmZvIGZvciBhIHNwZWNpZmll ZCBkb21hbiBhbmQgR0ZOLAorICogY2hlY2tpbmcgd2hldGhlciB0aGUgcGFnZSBoYXMgYmVlbiBw YWdlZCBvdXQsIG9yIG5lZWRzIHVuc2hhcmluZy4KKyAqIElmIHRoZSBmdW5jdGlvbiBzdWNjZWVk cyB0aGVuIHplcm8gaXMgcmV0dXJuZWQsIHBhZ2VfcCBpcyB3cml0dGVuCisgKiB3aXRoIGEgcG9p bnRlciB0byB0aGUgc3RydWN0IHBhZ2VfaW5mbyB3aXRoIGEgcmVmZXJlbmNlIHRha2VuLCBhbmQK KyAqIHAybXRfcCBpdCBpcyB3cml0dGVuIHdpdGggdGhlIFAyTSB0eXBlIG9mIHRoZSBwYWdlLiBU aGUgY2FsbGVyIGlzCisgKiByZXNwb25zaWJsZSBmb3IgZHJvcHBpbmcgdGhlIHJlZmVyZW5jZS4K KyAqIElmIHRoZSBmdW5jdGlvbiBmYWlscyB0aGVuIGFuIGFwcHJvcHJpYXRlIGVycm5vIGlzIHJl dHVybmVkIGFuZCB0aGUKKyAqIHZhbHVlcyByZWZlcmVuY2VkIGJ5IHBhZ2VfcCBhbmQgcDJtdF9w IGFyZSB1bmRlZmluZWQuCisgKi8KK2ludCBjaGVja19nZXRfcGFnZV9mcm9tX2dmbihzdHJ1Y3Qg ZG9tYWluICpkLCBnZm5fdCBnZm4sIGJvb2wgcmVhZG9ubHksCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcDJtX3R5cGVfdCAqcDJtdF9wLCBzdHJ1Y3QgcGFnZV9pbmZvICoqcGFnZV9wKQog ewotICAgIHN0cnVjdCBwYWdlX2luZm8gKnBhZ2U7CisgICAgcDJtX3F1ZXJ5X3QgcSA9IHJlYWRv bmx5ID8gUDJNX0FMTE9DIDogUDJNX1VOU0hBUkU7CiAgICAgcDJtX3R5cGVfdCBwMm10OwotICAg IHZvaWQgKnZhOworICAgIHN0cnVjdCBwYWdlX2luZm8gKnBhZ2U7CiAKLSAgICBwYWdlID0gZ2V0 X3BhZ2VfZnJvbV9nZm4oZCwgZ21mbiwgJnAybXQsIFAyTV9VTlNIQVJFKTsKKyAgICBwYWdlID0g Z2V0X3BhZ2VfZnJvbV9nZm4oZCwgZ2ZuX3goZ2ZuKSwgJnAybXQsIHEpOwogCiAjaWZkZWYgQ09O RklHX0hBU19NRU1fUEFHSU5HCiAgICAgaWYgKCBwMm1faXNfcGFnaW5nKHAybXQpICkKICAgICB7 CiAgICAgICAgIGlmICggcGFnZSApCiAgICAgICAgICAgICBwdXRfcGFnZShwYWdlKTsKLSAgICAg ICAgcDJtX21lbV9wYWdpbmdfcG9wdWxhdGUoZCwgZ21mbik7Ci0gICAgICAgIHJldHVybiAtRU5P RU5UOworCisgICAgICAgIHAybV9tZW1fcGFnaW5nX3BvcHVsYXRlKGQsIGdmbl94KGdmbikpOwor ICAgICAgICByZXR1cm4gLUVBR0FJTjsKICAgICB9CiAjZW5kaWYKICNpZmRlZiBDT05GSUdfSEFT X01FTV9TSEFSSU5HCi0gICAgaWYgKCBwMm1faXNfc2hhcmVkKHAybXQpICkKKyAgICBpZiAoIChx ICYgUDJNX1VOU0hBUkUpICYmIHAybV9pc19zaGFyZWQocDJtdCkgKQogICAgIHsKICAgICAgICAg aWYgKCBwYWdlICkKICAgICAgICAgICAgIHB1dF9wYWdlKHBhZ2UpOwotICAgICAgICByZXR1cm4g LUVOT0VOVDsKKworICAgICAgICByZXR1cm4gLUVBR0FJTjsKICAgICB9CiAjZW5kaWYKIAogICAg IGlmICggIXBhZ2UgKQogICAgICAgICByZXR1cm4gLUVJTlZBTDsKIAorICAgICpwMm10X3AgPSBw Mm10OworICAgICpwYWdlX3AgPSBwYWdlOworICAgIHJldHVybiAwOworfQorCitpbnQgcHJlcGFy ZV9yaW5nX2Zvcl9oZWxwZXIoCisgICAgc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBn bWZuLCBzdHJ1Y3QgcGFnZV9pbmZvICoqX3BhZ2UsCisgICAgdm9pZCAqKl92YSkKK3sKKyAgICBw Mm1fdHlwZV90IHAybXQ7CisgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGFnZTsKKyAgICB2b2lkICp2 YTsKKyAgICBpbnQgcmM7CisKKyAgICByYyA9IGNoZWNrX2dldF9wYWdlX2Zyb21fZ2ZuKGQsIF9n Zm4oZ21mbiksIGZhbHNlLCAmcDJtdCwgJnBhZ2UpOworICAgIGlmICggcmMgKQorICAgICAgICBy ZXR1cm4gKHJjID09IC1FQUdBSU4pID8gLUVOT0VOVCA6IHJjOworCiAgICAgaWYgKCAhZ2V0X3Bh Z2VfdHlwZShwYWdlLCBQR1Rfd3JpdGFibGVfcGFnZSkgKQogICAgIHsKICAgICAgICAgcHV0X3Bh Z2UocGFnZSk7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20tYXJtL3AybS5oIGIveGVuL2lu Y2x1ZGUvYXNtLWFybS9wMm0uaAppbmRleCA4ODIzNzA3YzE3Li5jMDM1NTc1NDRhIDEwMDY0NAot LS0gYS94ZW4vaW5jbHVkZS9hc20tYXJtL3AybS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS1hcm0v cDJtLmgKQEAgLTExMCw3ICsxMTAsNyBAQCBzdHJ1Y3QgcDJtX2RvbWFpbiB7CiAgKiBmdXR1cmUs IGl0J3MgcG9zc2libGUgdG8gdXNlIGhpZ2hlciB2YWx1ZSBmb3IgcHNldWRvLXR5cGUgYW5kIGRv bid0IHN0b3JlCiAgKiB0aGVtIGluIHRoZSBwMm0gZW50cnkuCiAgKi8KLXR5cGVkZWYgZW51bSB7 CitlbnVtIHAybV90eXBlIHsKICAgICBwMm1faW52YWxpZCA9IDAsICAgIC8qIE5vdGhpbmcgbWFw cGVkIGhlcmUgKi8KICAgICBwMm1fcmFtX3J3LCAgICAgICAgIC8qIE5vcm1hbCByZWFkL3dyaXRl IGd1ZXN0IFJBTSAqLwogICAgIHAybV9yYW1fcm8sICAgICAgICAgLyogUmVhZC1vbmx5OyB3cml0 ZXMgYXJlIHNpbGVudGx5IGRyb3BwZWQgKi8KQEAgLTEyNCw3ICsxMjQsNyBAQCB0eXBlZGVmIGVu dW0gewogICAgIHAybV9pb21tdV9tYXBfcncsICAgLyogUmVhZC93cml0ZSBpb21tdSBtYXBwaW5n ICovCiAgICAgcDJtX2lvbW11X21hcF9ybywgICAvKiBSZWFkLW9ubHkgaW9tbXUgbWFwcGluZyAq LwogICAgIHAybV9tYXhfcmVhbF90eXBlLCAgLyogVHlwZXMgYWZ0ZXIgdGhpcyB3b24ndCBiZSBz dG9yZSBpbiB0aGUgcDJtICovCi19IHAybV90eXBlX3Q7Cit9OwogCiAvKiBXZSB1c2UgYml0bWFw cyBhbmQgbWFzayB0byBoYW5kbGUgZ3JvdXBzIG9mIHR5cGVzICovCiAjZGVmaW5lIHAybV90b19t YXNrKF90KSAoMVVMIDw8IChfdCkpCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L3Ay bS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9wMm0uaAppbmRleCBiZTNiNmZjYWYwLi5kMDhjNTk1 ODg3IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L3AybS5oCisrKyBiL3hlbi9pbmNs dWRlL2FzbS14ODYvcDJtLmgKQEAgLTUyLDcgKzUyLDcgQEAgZXh0ZXJuIGJvb2xfdCBvcHRfaGFw XzFnYiwgb3B0X2hhcF8ybWI7CiAgKiBjYW5ub3QgYmUgbm9uLXplcm8sIG90aGVyd2lzZSwgaGFy ZHdhcmUgZ2VuZXJhdGVzIGlvIHBhZ2UgZmF1bHRzIHdoZW4gCiAgKiBkZXZpY2UgYWNjZXNzIHRo b3NlIHBhZ2VzLiBUaGVyZWZvcmUsIHAybV9yYW1fcncgaGFzIHRvIGJlIGRlZmluZWQgYXMgMC4K ICAqLwotdHlwZWRlZiBlbnVtIHsKK2VudW0gcDJtX3R5cGUgewogICAgIHAybV9yYW1fcncgPSAw LCAgICAgICAgICAgICAvKiBOb3JtYWwgcmVhZC93cml0ZSBndWVzdCBSQU0gKi8KICAgICBwMm1f aW52YWxpZCA9IDEsICAgICAgICAgICAgLyogTm90aGluZyBtYXBwZWQgaGVyZSAqLwogICAgIHAy bV9yYW1fbG9nZGlydHkgPSAyLCAgICAgICAvKiBUZW1wb3JhcmlseSByZWFkLW9ubHkgZm9yIGxv Zy1kaXJ0eSAqLwpAQCAtNzIsNyArNzIsNyBAQCB0eXBlZGVmIGVudW0gewogICAgIHAybV9yYW1f YnJva2VuID0gMTMsICAgICAgICAgIC8qIEJyb2tlbiBwYWdlLCBhY2Nlc3MgY2F1c2UgZG9tYWlu IGNyYXNoICovCiAgICAgcDJtX21hcF9mb3JlaWduICA9IDE0LCAgICAgICAgLyogcmFtIHBhZ2Vz IGZyb20gZm9yZWlnbiBkb21haW4gKi8KICAgICBwMm1faW9yZXFfc2VydmVyID0gMTUsCi19IHAy bV90eXBlX3Q7Cit9OwogCiAvKiBNb2RpZmllcnMgdG8gdGhlIHF1ZXJ5ICovCiB0eXBlZGVmIHVu c2lnbmVkIGludCBwMm1fcXVlcnlfdDsKQEAgLTUwMyw3ICs1MDMsNiBAQCBzdGF0aWMgaW5saW5l IHN0cnVjdCBwYWdlX2luZm8gKmdldF9wYWdlX2Zyb21fZ2ZuKAogICAgIHJldHVybiBtZm5fdmFs aWQoX21mbihnZm4pKSAmJiBnZXRfcGFnZShwYWdlLCBkKSA/IHBhZ2UgOiBOVUxMOwogfQogCi0K IC8qIEdlbmVyYWwgY29udmVyc2lvbiBmdW5jdGlvbiBmcm9tIG1mbiB0byBnZm4gKi8KIHN0YXRp YyBpbmxpbmUgdW5zaWduZWQgbG9uZyBtZm5fdG9fZ2ZuKHN0cnVjdCBkb21haW4gKmQsIG1mbl90 IG1mbikKIHsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9wMm0tY29tbW9uLmggYi94ZW4v aW5jbHVkZS94ZW4vcDJtLWNvbW1vbi5oCmluZGV4IDc0MzExOTUwYWQuLmY0ZDMwZWZlNWYgMTAw NjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9wMm0tY29tbW9uLmgKKysrIGIveGVuL2luY2x1ZGUv eGVuL3AybS1jb21tb24uaApAQCAtMzIsNSArMzIsMTEgQEAgdW5zaWduZWQgbG9uZwogcDJtX3Bv ZF9kZWNyZWFzZV9yZXNlcnZhdGlvbihzdHJ1Y3QgZG9tYWluICpkLCBnZm5fdCBnZm4sCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBvcmRlcik7CiAKK3R5cGVkZWYg ZW51bSBwMm1fdHlwZSBwMm1fdHlwZV90OworCitpbnQgX19tdXN0X2NoZWNrIGNoZWNrX2dldF9w YWdlX2Zyb21fZ2ZuKHN0cnVjdCBkb21haW4gKmQsIGdmbl90IGdmbiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCByZWFkb25seSwgcDJtX3R5cGVfdCAqcDJt dF9wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcGFn ZV9pbmZvICoqcGFnZV9wKTsKKwogCiAjZW5kaWYgLyogX1hFTl9QMk1fQ09NTU9OX0ggKi8KLS0g CjIuMTEuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Clhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0 dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=