From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [PATCH v3 33/38] arm/p2m: Add altp2m paging mechanism Date: Mon, 12 Sep 2016 15:18:01 +0100 Message-ID: References: <20160816221714.22041-1-proskurin@sec.in.tum.de> <20160816221714.22041-34-proskurin@sec.in.tum.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bjS3k-00034C-Ks for xen-devel@lists.xenproject.org; Mon, 12 Sep 2016 14:18:08 +0000 In-Reply-To: <20160816221714.22041-34-proskurin@sec.in.tum.de> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Sergej Proskurin , xen-devel@lists.xenproject.org Cc: Stefano Stabellini List-Id: xen-devel@lists.xenproject.org SGVsbG8gU2VyZ2VqLAoKT24gMTYvMDgvMTYgMjM6MTcsIFNlcmdlaiBQcm9za3VyaW4gd3JvdGU6 Cj4gVGhpcyBjb21taXQgYWRkcyB0aGUgZnVuY3Rpb24gImFsdHAybV9sYXp5X2NvcHkiIGltcGxl bWVudGluZyB0aGUgYWx0cDJtCj4gcGFnaW5nIG1lY2hhbmlzbS4gVGhlIGZ1bmN0aW9uICJhbHRw Mm1fbGF6eV9jb3B5IiBsYXppbHkgY29waWVzIHRoZQo+IGhvc3RwMm0ncyBtYXBwaW5nIGludG8g dGhlIGN1cnJlbnRseSBhY3RpdmUgYWx0cDJtIHZpZXcgb24gMm5kIHN0YWdlCj4gdHJhbnNsYXRp b24gZmF1bHRzIG9uIGluc3RydWN0aW9uIG9yIGRhdGEgYWNjZXNzLgo+Cj4gU2lnbmVkLW9mZi1i eTogU2VyZ2VqIFByb3NrdXJpbiA8cHJvc2t1cmluQHNlYy5pbi50dW0uZGU+Cj4gLS0tCj4gQ2M6 IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4KPiBDYzogSnVsaWVu IEdyYWxsIDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4KPiAtLS0KPiB2MzogQ29zbWV0aWMgZml4ZXMu Cj4KPiAgICAgTG9ja2VkIGhvc3RwMm0gaW4gdGhlIGZ1bmN0aW9uICJhbHRwMm1fbGF6eV9jb3B5 IiB0byBhdm9pZCBhIG1hcHBpbmcKPiAgICAgYmVpbmcgY2hhbmdlZCBpbiBob3N0cDJtIGJlZm9y ZSBpdCBoYXMgYmVlbiBpbnNlcnRlZCBpbnRvIHRoZQo+ICAgICB2YWx0cDJtIHZpZXcuCj4KPiAg ICAgUmVtb3ZlZCB1bm5lY2Vzc2FyeSBjYWxscyB0byAicDJtX21lbV9hY2Nlc3NfY2hlY2siIGlu IHRoZSBmdW5jdGlvbnMKPiAgICAgImRvX3RyYXBfaW5zdHJfYWJvcnRfZ3Vlc3QiIGFuZCAiZG9f dHJhcF9kYXRhX2Fib3J0X2d1ZXN0IiBhZnRlciBhCj4gICAgIHRyYW5zbGF0aW9uIGZhdWx0IGhh cyBiZWVuIGhhbmRsZWQgYnkgdGhlIGZ1bmN0aW9uCj4gICAgICJhbHRwMm1fbGF6eV9jb3B5Ii4K Pgo+ICAgICBBZGFwdGVkICJhbHRwMm1fbGF6eV9jb3B5IiB0byByZXR1cm4gdGhlIHZhbHVlICJ0 cnVlIiBpZiB0aGUKPiAgICAgZW5jb3VudGVyZWQgdHJhbnNsYXRpb24gZmF1bHQgZW5jb3VudGVy cyBhIHZhbGlkIGVudHJ5IGluc2lkZSBvZiB0aGUKPiAgICAgY3VycmVudGx5IGFjdGl2ZSBhbHRw Mm0gdmlldy4gSWYgbXVsdGlwbGUgdmNwdSdzIGFyZSB1c2luZyB0aGUgc2FtZQo+ICAgICBhbHRw Mm0sIGl0IGlzIGxpa2VseSB0aGF0IGJvdGggZ2VuZXJhdGUgYSB0cmFuc2xhdGlvbiBmYXVsdCwg d2hlcmVhcwo+ICAgICB0aGUgZmlyc3Qgb25lIHdpbGwgYmUgYWxyZWFkeSBoYW5kbGVkIGJ5ICJh bHRwMm1fbGF6eV9jb3B5Ii4gV2l0aAo+ICAgICB0aGlzIGNoYW5nZSB0aGUgMm5kIHZjcHUgd2ls bCByZXRyeSBhY2Nlc3NpbmcgdGhlIGZhdWx0aW5nIGFkZHJlc3MuCj4KPiAgICAgQ2hhbmdlZCBv cmRlciBvZiBhbHRwMm0gY2hlY2tpbmcgYW5kIE1NSU8gZW11bGF0aW9uIHdpdGhpbiB0aGUKPiAg ICAgZnVuY3Rpb24gImRvX3RyYXBfZGF0YV9hYm9ydF9ndWVzdCIuICBOb3csIGFsdHAybSBpcyBj aGVja2VkIGFuZAo+ICAgICBoYW5kbGVkIG9ubHkgaWYgdGhlIE1NSU8gZG9lcyBub3QgaGF2ZSB0 byBiZSBlbXVsYXRlZC4KPgo+ICAgICBDaGFuZ2VkIHRoZSBmdW5jdGlvbiBwcm90b3R5cGUgb2Yg ImFsdHAybV9sYXp5X2NvcHkiLiAgVGhpcyBjb21taXQKPiAgICAgcmVtb3ZlcyB0aGUgdW5uZWNl c3Nhcnkgc3RydWN0IHAybV9kb21haW4qIGZyb20gdGhlIHByZXZpb3VzCj4gICAgIGZ1bmN0aW9u IHByb3RvdHlwZS4gIEFsc28sIHRoaXMgY29tbWl0IHJlbW92ZXMgdGhlIHVubmVjZXNzYXJ5Cj4g ICAgIGFyZ3VtZW50IGd2YS4gIEZpbmFsbHksIHRoaXMgY29tbWl0IGNoYW5nZXMgdGhlIGFkZHJl c3Mgb2YgdGhlCj4gICAgIGZ1bmN0aW9uIHBhcmFtZXRlciBncGEgZnJvbSBwYWRkcl90IHRvIGdm bl90IGFuZCByZW5hbWVzIGl0IHRvIGdmbi4KPgo+ICAgICBNb3ZlZCB0aGUgYWx0cDJtIGhhbmRs aW5nIG1lY2hhbmlzbSBpbnRvIGEgc2VwYXJhdGUgZnVuY3Rpb24KPiAgICAgInRyeV9oYW5kbGVf YWx0cDJtIi4KPgo+ICAgICBNb3ZlZCB0aGUgZnVuY3Rpb25zICJwMm1fYWx0cDJtX2NoZWNrIiBh bmQKPiAgICAgImFsdHAybV9zd2l0Y2hfdmNwdV9hbHRwMm1fYnlfaWQiIG91dCBvZiB0aGlzIHBh dGNoLgo+Cj4gICAgIE1vdmVkIGFwcGxpZWQgY29kZSBtb3ZlbWVudCBpbnRvIGEgc2VwYXJhdGUg cGF0Y2guCj4gLS0tCj4gIHhlbi9hcmNoL2FybS9hbHRwMm0uYyAgICAgICAgfCA2MiArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICB4ZW4vYXJjaC9hcm0vdHJh cHMuYyAgICAgICAgIHwgMzUgKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICB4ZW4vaW5jbHVk ZS9hc20tYXJtL2FsdHAybS5oIHwgIDUgKysrKwo+ICAzIGZpbGVzIGNoYW5nZWQsIDEwMiBpbnNl cnRpb25zKCspCj4KPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2FsdHAybS5jIGIveGVuL2Fy Y2gvYXJtL2FsdHAybS5jCj4gaW5kZXggMTEyNzJlOS4uMjAwOWJhZCAxMDA2NDQKPiAtLS0gYS94 ZW4vYXJjaC9hcm0vYWx0cDJtLmMKPiArKysgYi94ZW4vYXJjaC9hcm0vYWx0cDJtLmMKPiBAQCAt MTY1LDYgKzE2NSw2OCBAQCBvdXQ6Cj4gICAgICByZXR1cm4gcmM7Cj4gIH0KPgo+ICsvKgo+ICsg KiBUaGUgZnVuY3Rpb24gYWx0cDJtX2xhenlfY29weSByZXR1cm5zICJmYWxzZSIgb24gZXJyb3Iu ICBUaGUgcmV0dXJuIHZhbHVlCj4gKyAqICJ0cnVlIiBzaWduYWxzIHRoYXQgZWl0aGVyIHRoZSBt YXBwaW5nIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSBsYXp5LWNvcGllZAo+ICsgKiBmcm9tIHRoZSBo b3N0cDJtIHRvIHRoZSBjdXJyZW50bHkgYWN0aXZlIGFsdHAybSB2aWV3IG9yIHRoYXQgdGhlIGFs dHAybSB2aWV3Cj4gKyAqIGhvbGRzIGFscmVhZHkgYSB2YWxpZCBtYXBwaW5nLiBUaGUgbGF0dGVy IGlzIHRoZSBjYXNlIGlmIG11bHRpcGxlIHZjcHUncwo+ICsgKiB1c2luZyB0aGUgc2FtZSBhbHRw Mm0gdmlldyBnZW5lcmF0ZSBhIHRyYW5zbGF0aW9uIGZhdWx0IHRoYXQgaXMgbGVkIGJhY2sgaW4K PiArICogYm90aCBjYXNlcyB0byB0aGUgc2FtZSBtYXBwaW5nIGFuZCB0aGUgZmlyc3QgZmF1bHQg aGFzIGJlZW4gYWxyZWFkeSBoYW5kbGVkLgo+ICsgKi8KPiArYm9vbF90IGFsdHAybV9sYXp5X2Nv cHkoc3RydWN0IHZjcHUgKnYsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGdmbl90IGdmbiwK PiArICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IG5wZmVjIG5wZmVjKQoKUGxlYXNlIGRv bid0IGludHJvZHVjZSBwYXJhbWV0ZXJzIHRoYXQgYXJlIG5vdCB1c2VkIGF0IGFsbC4KCj4gK3sK PiArICAgIHN0cnVjdCBkb21haW4gKmQgPSB2LT5kb21haW47Cj4gKyAgICBzdHJ1Y3QgcDJtX2Rv bWFpbiAqaHAybSA9IHAybV9nZXRfaG9zdHAybShkKSwgKmFwMm0gPSBOVUxMOwo+ICsgICAgcDJt X3R5cGVfdCBwMm10Owo+ICsgICAgcDJtX2FjY2Vzc190IHAybWE7Cj4gKyAgICBtZm5fdCBtZm47 Cj4gKyAgICB1bnNpZ25lZCBpbnQgcGFnZV9vcmRlcjsKPiArICAgIGludCByYzsKPiArCj4gKyAg ICBhcDJtID0gYWx0cDJtX2dldF9hbHRwMm0odik7Cj4gKyAgICBpZiAoIGFwMm0gPT0gTlVMTCkK PiArICAgICAgICByZXR1cm4gZmFsc2U7Cj4gKwo+ICsgICAgLyogQ2hlY2sgaWYgZW50cnkgaXMg cGFydCBvZiB0aGUgYWx0cDJtIHZpZXcuICovCj4gKyAgICBtZm4gPSBwMm1fbG9va3VwX2F0dHIo YXAybSwgZ2ZuLCBOVUxMLCBOVUxMLCBOVUxMKTsKPiArICAgIGlmICggIW1mbl9lcShtZm4sIElO VkFMSURfTUZOKSApCj4gKyAgICAgICAgLyoKPiArICAgICAgICAgKiBJZiBtdWx0aXBsZSB2Y3B1 J3MgYXJlIHVzaW5nIHRoZSBzYW1lIGFsdHAybSwgaXQgaXMgbGlrZWx5IHRoYXQgYm90aAoKcy92 Y3B1J3MvdmNwdXMvCgo+ICsgICAgICAgICAqIGdlbmVyYXRlIGEgdHJhbnNsYXRpb24gZmF1bHQs IHdoZXJlYXMgdGhlIGZpcnN0IG9uZSB3aWxsIGJlIGhhbmRsZWQKPiArICAgICAgICAgKiBzdWNj ZXNzZnVsbHkgYW5kIHRoZSBzZWNvbmQgd2lsbCBlbmNvdW50ZXIgYSB2YWxpZCBtYXBwaW5nIHRo YXQgaGFzCj4gKyAgICAgICAgICogYWxyZWFkeSBiZWVuIGFkZGVkIGFzIGEgcmVzdWx0IG9mIHRo ZSBwcmV2aW91cyB0cmFuc2xhdGlvbiBmYXVsdC4KPiArICAgICAgICAgKiBJbiB0aGlzIGNhc2Us IHRoZSAybmQgdmNwdSBuZWVkIHRvIHJldHJ5IGFjY2Vzc2luZyB0aGUgZmF1bHRpbmcKCnMvbmVl ZC9uZWVkcy8KCj4gKyAgICAgICAgICogYWRkcmVzcy4KPiArICAgICAgICAgKi8KPiArICAgICAg ICByZXR1cm4gdHJ1ZTsKPiArCj4gKyAgICAvKgo+ICsgICAgICogTG9jayBocDJtIHRvIHByZXZl bnQgdGhlIGhvc3RwMm0gdG8gY2hhbmdlIGEgbWFwcGluZyBiZWZvcmUgaXQgaXMgYWRkZWQKPiAr ICAgICAqIHRvIHRoZSBhbHRwMm0gdmlldy4KPiArICAgICAqLwo+ICsgICAgcDJtX3JlYWRfbG9j ayhocDJtKTsKPiArCj4gKyAgICAvKiBDaGVjayBpZiBlbnRyeSBpcyBwYXJ0IG9mIHRoZSBob3N0 IHAybSB2aWV3LiAqLwo+ICsgICAgbWZuID0gcDJtX2xvb2t1cF9hdHRyKGhwMm0sIGdmbiwgJnAy bXQsICZwMm1hLCAmcGFnZV9vcmRlcik7Cj4gKyAgICBpZiAoIG1mbl9lcShtZm4sIElOVkFMSURf TUZOKSApCj4gKyAgICAgICAgZ290byBvdXQ7Cj4gKwo+ICsgICAgcmMgPSBtb2RpZnlfYWx0cDJt X2VudHJ5KGFwMm0sIGdmbiwgbWZuLCBwMm10LCBwMm1hLCBwYWdlX29yZGVyKTsKPiArICAgIGlm ICggcmMgKQo+ICsgICAgewo+ICsgICAgICAgIGdkcHJpbnRrKFhFTkxPR19FUlIsICJhbHRwMm1b JWRdIGZhaWxlZCB0byBzZXQgZW50cnkgZm9yICUjIlBSSV9nZm4iIC0+ICUjIlBSSV9tZm4iXG4i LAoKcDJtaWR4IGlzIHVuc2lnbmVkIHNvIHRoaXMgc2hvdWxkIGJlICV1LgoKPiArICAgICAgICAg ICAgICAgICBhbHRwMm1fdmNwdSh2KS5wMm1pZHgsIGdmbl94KGdmbiksIG1mbl94KG1mbikpOwo+ ICsgICAgICAgIGRvbWFpbl9jcmFzaChocDJtLT5kb21haW4pOwoKWW91IGFscmVhZHkgaGF2ZSB0 aGUgZG9tYWluIGluIGhhbmQgd2l0aCAnZCcuCgo+ICsgICAgfQo+ICsKPiArb3V0Ogo+ICsgICAg cDJtX3JlYWRfdW5sb2NrKGhwMm0pOwo+ICsKPiArICAgIHJldHVybiB0cnVlOwo+ICt9Cj4gKwo+ ICBzdGF0aWMgaW5saW5lIHZvaWQgYWx0cDJtX3Jlc2V0KHN0cnVjdCBwMm1fZG9tYWluICpwMm0p Cj4gIHsKPiAgICAgIHAybV93cml0ZV9sb2NrKHAybSk7Cj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNo L2FybS90cmFwcy5jIGIveGVuL2FyY2gvYXJtL3RyYXBzLmMKPiBpbmRleCAwYmYxNjUzLi5hNGM5 MjNjIDEwMDY0NAo+IC0tLSBhL3hlbi9hcmNoL2FybS90cmFwcy5jCj4gKysrIGIveGVuL2FyY2gv YXJtL3RyYXBzLmMKPiBAQCAtNDgsNiArNDgsOCBAQAo+ICAjaW5jbHVkZSA8YXNtL3ZnaWMuaD4K PiAgI2luY2x1ZGUgPGFzbS9jcHVlcnJhdGEuaD4KPgo+ICsjaW5jbHVkZSA8YXNtL2FsdHAybS5o Pgo+ICsKPiAgLyogVGhlIGJhc2Ugb2YgdGhlIHN0YWNrIG11c3QgYWx3YXlzIGJlIGRvdWJsZS13 b3JkIGFsaWduZWQsIHdoaWNoIG1lYW5zCj4gICAqIHRoYXQgYm90aCB0aGUga2VybmVsIGhhbGYg b2Ygc3RydWN0IGNwdV91c2VyX3JlZ3MgKHdoaWNoIGlzIHB1c2hlZCBpbgo+ICAgKiBlbnRyeS5T KSBhbmQgc3RydWN0IGNwdV9pbmZvICh3aGljaCBsaXZlcyBhdCB0aGUgYm90dG9tIG9mIGEgWGVu Cj4gQEAgLTIzOTcsNiArMjM5OSwyNCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaHBmYXJfaXNfdmFs aWQoYm9vbCBzMXB0dywgdWludDhfdCBmc2MpCj4gICAgICByZXR1cm4gczFwdHcgfHwgKGZzYyA9 PSBGU0NfRkxUX1RSQU5TICYmICFjaGVja193b3JrYXJvdW5kXzgzNDIyMCgpKTsKPiAgfQo+Cj4g K3N0YXRpYyBib29sX3QgdHJ5X2hhbmRsZV9hbHRwMm0oc3RydWN0IHZjcHUgKnYsCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZHJfdCBncGEsCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IG5wZmVjIG5wZmVjKQoKSSBhbSBub3QgY29udmluY2Vk IGFib3V0IHRoZSB1c2VmdWxuZXNzIG9mIHRoaXMgZnVuY3Rpb24uCgo+ICt7Cj4gKyAgICBib29s X3QgcmMgPSBmYWxzZTsKPiArCj4gKyAgICBpZiAoIGFsdHAybV9hY3RpdmUodi0+ZG9tYWluKSAp CgpJIG1pZ2h0IGJlIHdvcnRoIHRvIGluY2x1ZGUgYW4gdW5saWtlbHkgaW4gYWx0cDJtX2FjdGl2 ZSB0byB0ZWxsIHRoZSAKY29tcGlsZXIgdGhhdCBhbHRwMm0gaXMgbm90IHRoZSBtYWluIHBhdGgu Cgo+ICsgICAgICAgIC8qCj4gKyAgICAgICAgICogQ29weSB0aGUgbWFwcGluZyBvZiB0aGUgZmF1 bHRpbmcgYWRkcmVzcyBpbnRvIHRoZSBjdXJyZW50bHkKPiArICAgICAgICAgKiBhY3RpdmUgYWx0 cDJtIHZpZXcuIFJldHVybiB0cnVlIG9uIHN1Y2Nlc3Mgb3IgaWYgdGhlIHBhcnRpY3VsYXIKPiAr ICAgICAgICAgKiBtYXBwaW5nIGhhcyBhbHJlYWR5IGJlZW4gbGF6aWx5IGNvcGllZCB0byB0aGUg Y3VycmVudGx5IGFjdGl2ZQo+ICsgICAgICAgICAqIGFsdHAybSB2aWV3IGJ5IGFub3RoZXIgdmNw dS4gUmV0dXJuIGZhbHNlIG90aGVyd2lzZS4KPiArICAgICAgICAgKi8KPiArICAgICAgICByYyA9 IGFsdHAybV9sYXp5X2NvcHkodiwgX2dmbihwYWRkcl90b19wZm4oZ3BhKSksIG5wZmVjKTsKPiAr Cj4gKyAgICByZXR1cm4gcmM7Cj4gK30KPiArCj4gIHN0YXRpYyB2b2lkIGRvX3RyYXBfaW5zdHJf YWJvcnRfZ3Vlc3Qoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MsCj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5pb24gaHNyIGhzcikKPiAgewo+IEBAIC0y NDQ1LDYgKzI0NjUsMTQgQEAgc3RhdGljIHZvaWQgZG9fdHJhcF9pbnN0cl9hYm9ydF9ndWVzdChz dHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncywKPiAgICAgICAgICBicmVhazsKPiAgICAgIGNhc2Ug RlNDX0ZMVF9UUkFOUzoKPiAgICAgICAgICAvKgo+ICsgICAgICAgICAqIFRoZSBndWVzdCBzaGFs bCByZXRyeSBhY2Nlc3NpbmcgdGhlIHBhZ2UgaWYgdGhlIGFsdHAybSBoYW5kbGVyCj4gKyAgICAg ICAgICogc3VjY2VlZHMuIE90aGVyd2lzZSwgd2UgY29udGludWUgaW5qZWN0aW5nIGFuIGluc3Ry dWN0aW9uIGFib3J0Cj4gKyAgICAgICAgICogZXhjZXB0aW9uLgo+ICsgICAgICAgICAqLwo+ICsg ICAgICAgIGlmICggdHJ5X2hhbmRsZV9hbHRwMm0oY3VycmVudCwgZ3BhLCBucGZlYykgKQo+ICsg ICAgICAgICAgICByZXR1cm47CgpJIHdvdWxkIGhhdmUgZXhwZWN0ZWQgdGhhdCBhbHRwMm0gaXMg dGhlIGxhc3QgdGhpbmcgd2Ugd2FudCB0byBjaGVjayBpbiAKdGhlIGFib3J0IGhhbmRsZXIuIEku ZSBhZnRlciBwMm1fbG9va3VwLgoKPiArCj4gKyAgICAgICAgLyoKPiAgICAgICAgICAgKiBUaGUg UFQgd2FsayBtYXkgaGF2ZSBmYWlsZWQgYmVjYXVzZSBzb21lb25lIHdhcyBwbGF5aW5nCj4gICAg ICAgICAgICogd2l0aCB0aGUgU3RhZ2UtMiBwYWdlIHRhYmxlLiBXYWxrIHRoZSBTdGFnZS0yIFBU IHRvIGNoZWNrCj4gICAgICAgICAgICogaWYgdGhlIGVudHJ5IGV4aXN0cy4gSWYgaXQncyB0aGUg Y2FzZSwgcmV0dXJuIHRvIHRoZSBndWVzdAo+IEBAIC0yNTQ3LDYgKzI1NzUsMTMgQEAgc3RhdGlj IHZvaWQgZG9fdHJhcF9kYXRhX2Fib3J0X2d1ZXN0KHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdz LAo+ICAgICAgICAgIH0KPgo+ICAgICAgICAgIC8qCj4gKyAgICAgICAgICogVGhlIGd1ZXN0IHNo YWxsIHJldHJ5IGFjY2Vzc2luZyB0aGUgcGFnZSBpZiB0aGUgYWx0cDJtIGhhbmRsZXIKPiArICAg ICAgICAgKiBzdWNjZWVkcy4gT3RoZXJ3aXNlLCB3ZSBjb250aW51ZSBpbmplY3RpbmcgYSBkYXRh IGFib3J0IGV4Y2VwdGlvbi4KPiArICAgICAgICAgKi8KPiArICAgICAgICBpZiAoIHRyeV9oYW5k bGVfYWx0cDJtKGN1cnJlbnQsIGluZm8uZ3BhLCBucGZlYykgKQo+ICsgICAgICAgICAgICByZXR1 cm47CgpEaXR0byBoZXJlLgoKPiArCj4gKyAgICAgICAgLyoKPiAgICAgICAgICAgKiBUaGUgUFQg d2FsayBtYXkgaGF2ZSBmYWlsZWQgYmVjYXVzZSBzb21lb25lIHdhcyBwbGF5aW5nCj4gICAgICAg ICAgICogd2l0aCB0aGUgU3RhZ2UtMiBwYWdlIHRhYmxlLiBXYWxrIHRoZSBTdGFnZS0yIFBUIHRv IGNoZWNrCj4gICAgICAgICAgICogaWYgdGhlIGVudHJ5IGV4aXN0cy4gSWYgaXQncyB0aGUgY2Fz ZSwgcmV0dXJuIHRvIHRoZSBndWVzdAo+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20tYXJt L2FsdHAybS5oIGIveGVuL2luY2x1ZGUvYXNtLWFybS9hbHRwMm0uaAo+IGluZGV4IGVmODA4Mjku LjhlNDBjNDUgMTAwNjQ0Cj4gLS0tIGEveGVuL2luY2x1ZGUvYXNtLWFybS9hbHRwMm0uaAo+ICsr KyBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vYWx0cDJtLmgKPiBAQCAtODQsNiArODQsMTEgQEAgaW50 IGFsdHAybV9zZXRfbWVtX2FjY2VzcyhzdHJ1Y3QgZG9tYWluICpkLAo+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHAybV9hY2Nlc3NfdCBhLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAg IGdmbl90IGdmbik7Cj4KPiArLyogQWx0ZXJuYXRlIHAybSBwYWdpbmcgbWVjaGFuaXNtLiAqLwo+ ICtib29sX3QgYWx0cDJtX2xhenlfY29weShzdHJ1Y3QgdmNwdSAqdiwKPiArICAgICAgICAgICAg ICAgICAgICAgICAgZ2ZuX3QgZ2ZuLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg bnBmZWMgbnBmZWMpOwo+ICsKPiAgLyogUHJvcGFnYXRlcyBjaGFuZ2VzIG1hZGUgdG8gaG9zdHAy bSB0byBhZmZlY3RlZCBhbHRwMm0gdmlld3MuICovCj4gIGludCBhbHRwMm1fcHJvcGFnYXRlX2No YW5nZShzdHJ1Y3QgZG9tYWluICpkLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Zu X3Qgc2dmbiwKPgoKUmVnYXJkcywKCi0tIApKdWxpZW4gR3JhbGwKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVu LWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=