From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: Re: [PATCH v3 7/8] xen/arm: Rework the interface of p2m_lookup and use typesafe gfn and mfn Date: Thu, 23 Jun 2016 15:14:15 +0100 (BST) Message-ID: References: <1466515243-27264-1-git-send-email-julien.grall@arm.com> <1466515243-27264-8-git-send-email-julien.grall@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1466515243-27264-8-git-send-email-julien.grall@arm.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Julien Grall Cc: sstabellini@kernel.org, xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org T24gVHVlLCAyMSBKdW4gMjAxNiwgSnVsaWVuIEdyYWxsIHdyb3RlOgo+IFRoZSBwcm90b3R5cGUg YW5kIHRoZSBkZWNsYXJhdGlvbiBvZiBwMm1fbG9va3VwIGRpc2FncmVlIG9uIGhvdyB0aGUKPiBm dW5jdGlvbiBzaG91bGQgYmUgdXNlZC4gT25lIGV4cGVjdCBhIGZyYW1lIG51bWJlciB3aGlsc3Qg dGhlIG90aGVyCj4gYW4gYWRkcmVzcy4KPiAKPiBUaGFua2Z1bGx5LCBldmVyeW9uZSBpcyB1c2lu ZyB3aXRoIGFuIGFkZHJlc3MgdG9kYXkuIEhvd2V2ZXIsIG1vc3Qgb2YKPiB0aGUgY2FsbGVycyBo YXZlIHRvIGNvbnZlcnQgYSBndWVzdCBmcmFtZSB0byBhbiBhZGRyZXNzLiBNb2RpZnkKPiB0aGUg aW50ZXJmYWNlIHRvIHRha2UgYSBndWVzdCBwaHlzaWNhbCBmcmFtZSBpbiBwYXJhbWV0ZXIgYW5k IHJldHVybgo+IGEgbWFjaGluZSBmcmFtZS4KPiAKPiBXaGlsc3QgbW9kaWZ5aW5nIHRoZSBpbnRl cmZhY2UsIHVzZSB0eXBlc2FmZSBnZm4gYW5kIG1mbiBmb3IgY2xhcml0eQo+IGFuZCBjYXRjaGlu ZyBwb3NzaWJsZSBtaXN1c2FnZS4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBKdWxpZW4gR3JhbGwgPGp1 bGllbi5ncmFsbEBhcm0uY29tPgo+IC0tLQo+ICB4ZW4vYXJjaC9hcm0vcDJtLmMgICAgICAgIHwg MzcgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQo+ICB4ZW4vYXJjaC9hcm0v dHJhcHMuYyAgICAgIHwgMjEgKysrKysrKysrKystLS0tLS0tLS0tCj4gIHhlbi9pbmNsdWRlL2Fz bS1hcm0vcDJtLmggfCAgNyArKystLS0tCj4gIDMgZmlsZXMgY2hhbmdlZCwgMzQgaW5zZXJ0aW9u cygrKSwgMzEgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9wMm0u YyBiL3hlbi9hcmNoL2FybS9wMm0uYwo+IGluZGV4IDQ3Y2IzODMuLmYzMzMwZGQgMTAwNjQ0Cj4g LS0tIGEveGVuL2FyY2gvYXJtL3AybS5jCj4gKysrIGIveGVuL2FyY2gvYXJtL3AybS5jCj4gQEAg LTE0MCwxNCArMTQwLDE1IEBAIHZvaWQgZmx1c2hfdGxiX2RvbWFpbihzdHJ1Y3QgZG9tYWluICpk KQo+ICB9Cj4gIAo+ICAvKgo+IC0gKiBMb29rdXAgdGhlIE1GTiBjb3JyZXNwb25kaW5nIHRvIGEg ZG9tYWluJ3MgUEZOLgo+ICsgKiBMb29rdXAgdGhlIE1GTiBjb3JyZXNwb25kaW5nIHRvIGEgZG9t YWluJ3MgR0ZOLgo+ICAgKgo+ICAgKiBUaGVyZSBhcmUgbm8gcHJvY2Vzc29yIGZ1bmN0aW9ucyB0 byBkbyBhIHN0YWdlIDIgb25seSBsb29rdXAgdGhlcmVmb3JlIHdlCj4gICAqIGRvIGEgYSBzb2Z0 d2FyZSB3YWxrLgo+ICAgKi8KPiAtc3RhdGljIHBhZGRyX3QgX19wMm1fbG9va3VwKHN0cnVjdCBk b21haW4gKmQsIHBhZGRyX3QgcGFkZHIsIHAybV90eXBlX3QgKnQpCj4gK3N0YXRpYyBtZm5fdCBf X3AybV9sb29rdXAoc3RydWN0IGRvbWFpbiAqZCwgZ2ZuX3QgZ2ZuLCBwMm1fdHlwZV90ICp0KQo+ ICB7Cj4gICAgICBzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtID0gJmQtPmFyY2gucDJtOwo+ICsgICAg Y29uc3QgcGFkZHJfdCBwYWRkciA9IHBmbl90b19wYWRkcihnZm5feChnZm4pKTsKPiAgICAgIGNv bnN0IHVuc2lnbmVkIGludCBvZmZzZXRzWzRdID0gewo+ICAgICAgICAgIHplcm9ldGhfdGFibGVf b2Zmc2V0KHBhZGRyKSwKPiAgICAgICAgICBmaXJzdF90YWJsZV9vZmZzZXQocGFkZHIpLAo+IEBA IC0xNTgsNyArMTU5LDcgQEAgc3RhdGljIHBhZGRyX3QgX19wMm1fbG9va3VwKHN0cnVjdCBkb21h aW4gKmQsIHBhZGRyX3QgcGFkZHIsIHAybV90eXBlX3QgKnQpCj4gICAgICAgICAgWkVST0VUSF9N QVNLLCBGSVJTVF9NQVNLLCBTRUNPTkRfTUFTSywgVEhJUkRfTUFTSwo+ICAgICAgfTsKPiAgICAg IGxwYWVfdCBwdGUsICptYXA7Cj4gLSAgICBwYWRkcl90IG1hZGRyID0gSU5WQUxJRF9QQUREUjsK PiArICAgIG1mbl90IG1mbiA9IF9tZm4oSU5WQUxJRF9NRk4pOwoKSXQgbWlnaHQgYmUgd29ydGgg ZGVmaW5pbmcgSU5WQUxJRF9NRk5fVCBhbmQganVzdCBhc3NpZ24gdGhhdCB0byBtZm4uCgoKPiAg ICAgIHBhZGRyX3QgbWFzayA9IDA7Cj4gICAgICBwMm1fdHlwZV90IF90Owo+ICAgICAgdW5zaWdu ZWQgaW50IGxldmVsLCByb290X3RhYmxlOwo+IEBAIC0yMTYsMjEgKzIxNywyMiBAQCBzdGF0aWMg cGFkZHJfdCBfX3AybV9sb29rdXAoc3RydWN0IGRvbWFpbiAqZCwgcGFkZHJfdCBwYWRkciwgcDJt X3R5cGVfdCAqdCkKPiAgICAgIHsKPiAgICAgICAgICBBU1NFUlQobWFzayk7Cj4gICAgICAgICAg QVNTRVJUKHB0ZS5wMm0udHlwZSAhPSBwMm1faW52YWxpZCk7Cj4gLSAgICAgICAgbWFkZHIgPSAo cHRlLmJpdHMgJiBQQUREUl9NQVNLICYgbWFzaykgfCAocGFkZHIgJiB+bWFzayk7Cj4gKyAgICAg ICAgbWZuID0gX21mbihwYWRkcl90b19wZm4oKHB0ZS5iaXRzICYgUEFERFJfTUFTSyAmIG1hc2sp IHwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFkZHIgJiB+bWFzaykpKTsK PiAgICAgICAgICAqdCA9IHB0ZS5wMm0udHlwZTsKPiAgICAgIH0KPiAgCj4gIGVycjoKPiAtICAg IHJldHVybiBtYWRkcjsKPiArICAgIHJldHVybiBtZm47Cj4gIH0KPiAgCj4gLXBhZGRyX3QgcDJt X2xvb2t1cChzdHJ1Y3QgZG9tYWluICpkLCBwYWRkcl90IHBhZGRyLCBwMm1fdHlwZV90ICp0KQo+ ICttZm5fdCBwMm1fbG9va3VwKHN0cnVjdCBkb21haW4gKmQsIGdmbl90IGdmbiwgcDJtX3R5cGVf dCAqdCkKPiAgewo+IC0gICAgcGFkZHJfdCByZXQ7Cj4gKyAgICBtZm5fdCByZXQ7Cj4gICAgICBz dHJ1Y3QgcDJtX2RvbWFpbiAqcDJtID0gJmQtPmFyY2gucDJtOwo+ICAKPiAgICAgIHNwaW5fbG9j aygmcDJtLT5sb2NrKTsKPiAtICAgIHJldCA9IF9fcDJtX2xvb2t1cChkLCBwYWRkciwgdCk7Cj4g KyAgICByZXQgPSBfX3AybV9sb29rdXAoZCwgZ2ZuLCB0KTsKPiAgICAgIHNwaW5fdW5sb2NrKCZw Mm0tPmxvY2spOwo+ICAKPiAgICAgIHJldHVybiByZXQ7Cj4gQEAgLTQ5Myw4ICs0OTUsOSBAQCBz dGF0aWMgaW50IF9fcDJtX2dldF9tZW1fYWNjZXNzKHN0cnVjdCBkb21haW4gKmQsIGdmbl90IGdm biwKPiAgICAgICAgICAgKiBObyBzZXR0aW5nIHdhcyBmb3VuZCBpbiB0aGUgUmFkaXggdHJlZS4g Q2hlY2sgaWYgdGhlCj4gICAgICAgICAgICogZW50cnkgZXhpc3RzIGluIHRoZSBwYWdlLXRhYmxl cy4KPiAgICAgICAgICAgKi8KPiAtICAgICAgICBwYWRkcl90IG1hZGRyID0gX19wMm1fbG9va3Vw KGQsIGdmbl94KGdmbikgPDwgUEFHRV9TSElGVCwgTlVMTCk7Cj4gLSAgICAgICAgaWYgKCBJTlZB TElEX1BBRERSID09IG1hZGRyICkKPiArICAgICAgICBtZm5fdCBtZm4gPSBfX3AybV9sb29rdXAo ZCwgZ2ZuLCBOVUxMKTsKPiArCj4gKyAgICAgICAgaWYgKCBtZm5feChtZm4pID09IElOVkFMSURf TUZOICkKPiAgICAgICAgICAgICAgcmV0dXJuIC1FU1JDSDsKPiAgCj4gICAgICAgICAgLyogSWYg ZW50cnkgZXhpc3RzIHRoZW4gaXRzIHJ3eC4gKi8KPiBAQCAtMTQ4Myw4ICsxNDg2LDcgQEAgaW50 IHAybV9jYWNoZV9mbHVzaChzdHJ1Y3QgZG9tYWluICpkLCB4ZW5fcGZuX3Qgc3RhcnRfbWZuLCB4 ZW5fcGZuX3QgZW5kX21mbikKPiAgCj4gIG1mbl90IGdmbl90b19tZm4oc3RydWN0IGRvbWFpbiAq ZCwgZ2ZuX3QgZ2ZuKQo+ICB7Cj4gLSAgICBwYWRkcl90IHAgPSBwMm1fbG9va3VwKGQsIHBmbl90 b19wYWRkcihnZm5feChnZm4pKSwgTlVMTCk7Cj4gLSAgICByZXR1cm4gX21mbihwID4+IFBBR0Vf U0hJRlQpOwo+ICsgICAgcmV0dXJuIHAybV9sb29rdXAoZCwgZ2ZuLCBOVUxMKTsKPiAgfQo+ICAK PiAgLyoKPiBAQCAtMTQ5OCw3ICsxNTAwLDcgQEAgcDJtX21lbV9hY2Nlc3NfY2hlY2tfYW5kX2dl dF9wYWdlKHZhZGRyX3QgZ3ZhLCB1bnNpZ25lZCBsb25nIGZsYWcpCj4gIHsKPiAgICAgIGxvbmcg cmM7Cj4gICAgICBwYWRkcl90IGlwYTsKPiAtICAgIHVuc2lnbmVkIGxvbmcgbWFkZHI7Cj4gKyAg ICBnZm5fdCBnZm47Cj4gICAgICB1bnNpZ25lZCBsb25nIG1mbjsKPiAgICAgIHhlbm1lbV9hY2Nl c3NfdCB4bWE7Cj4gICAgICBwMm1fdHlwZV90IHQ7Cj4gQEAgLTE1MDgsMTEgKzE1MTAsMTMgQEAg cDJtX21lbV9hY2Nlc3NfY2hlY2tfYW5kX2dldF9wYWdlKHZhZGRyX3QgZ3ZhLCB1bnNpZ25lZCBs b25nIGZsYWcpCj4gICAgICBpZiAoIHJjIDwgMCApCj4gICAgICAgICAgZ290byBlcnI7Cj4gIAo+ ICsgICAgZ2ZuID0gX2dmbihwYWRkcl90b19wZm4oaXBhKSk7Cj4gKwo+ICAgICAgLyoKPiAgICAg ICAqIFdlIGRvIHRoaXMgZmlyc3QgYXMgdGhpcyBpcyBmYXN0ZXIgaW4gdGhlIGRlZmF1bHQgY2Fz ZSB3aGVuIG5vCj4gICAgICAgKiBwZXJtaXNzaW9uIGlzIHNldCBvbiB0aGUgcGFnZS4KPiAgICAg ICAqLwo+IC0gICAgcmMgPSBfX3AybV9nZXRfbWVtX2FjY2VzcyhjdXJyZW50LT5kb21haW4sIF9n Zm4ocGFkZHJfdG9fcGZuKGlwYSkpLCAmeG1hKTsKPiArICAgIHJjID0gX19wMm1fZ2V0X21lbV9h Y2Nlc3MoY3VycmVudC0+ZG9tYWluLCBnZm4sICZ4bWEpOwo+ICAgICAgaWYgKCByYyA8IDAgKQo+ ICAgICAgICAgIGdvdG8gZXJyOwo+ICAKPiBAQCAtMTU2MSwxMSArMTU2NSwxMCBAQCBwMm1fbWVt X2FjY2Vzc19jaGVja19hbmRfZ2V0X3BhZ2UodmFkZHJfdCBndmEsIHVuc2lnbmVkIGxvbmcgZmxh ZykKPiAgICAgICAqIFdlIGhhZCBhIG1lbV9hY2Nlc3MgcGVybWlzc2lvbiBsaW1pdGluZyB0aGUg YWNjZXNzLCBidXQgdGhlIHBhZ2UgdHlwZQo+ICAgICAgICogY291bGQgYWxzbyBiZSBsaW1pdGlu Zywgc28gd2UgbmVlZCB0byBjaGVjayB0aGF0IGFzIHdlbGwuCj4gICAgICAgKi8KPiAtICAgIG1h ZGRyID0gX19wMm1fbG9va3VwKGN1cnJlbnQtPmRvbWFpbiwgaXBhLCAmdCk7Cj4gLSAgICBpZiAo IG1hZGRyID09IElOVkFMSURfUEFERFIgKQo+ICsgICAgbWZuID0gbWZuX3goX19wMm1fbG9va3Vw KGN1cnJlbnQtPmRvbWFpbiwgZ2ZuLCAmdCkpOwo+ICsgICAgaWYgKCBtZm4gPT0gSU5WQUxJRF9N Rk4gKQoKVGhlIGNvbnZlcnNpb24gd291bGQgZ28gYXdheSBpZiB3ZSBoYWQgYW4gSU5WQUxJRF9N Rk4gd2hpY2ggaXMgbWZuX3QKCgo+ICAgICAgICAgIGdvdG8gZXJyOwo+ICAKPiAtICAgIG1mbiA9 IG1hZGRyID4+IFBBR0VfU0hJRlQ7Cj4gICAgICBpZiAoICFtZm5fdmFsaWQobWZuKSApCj4gICAg ICAgICAgZ290byBlcnI7Cj4gIAo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vdHJhcHMuYyBi L3hlbi9hcmNoL2FybS90cmFwcy5jCj4gaW5kZXggNDQ5MjZjYS4uMDJmZTExNyAxMDA2NDQKPiAt LS0gYS94ZW4vYXJjaC9hcm0vdHJhcHMuYwo+ICsrKyBiL3hlbi9hcmNoL2FybS90cmFwcy5jCj4g QEAgLTIzMTksMTQgKzIzMTksMTYgQEAgdm9pZCBkdW1wX2d1ZXN0X3MxX3dhbGsoc3RydWN0IGRv bWFpbiAqZCwgdmFkZHJfdCBhZGRyKQo+ICB7Cj4gICAgICByZWdpc3Rlcl90IHR0YmNyID0gUkVB RF9TWVNSRUcoVENSX0VMMSk7Cj4gICAgICB1aW50NjRfdCB0dGJyMCA9IFJFQURfU1lTUkVHNjQo VFRCUjBfRUwxKTsKPiAtICAgIHBhZGRyX3QgcGFkZHI7Cj4gICAgICB1aW50MzJfdCBvZmZzZXQ7 Cj4gICAgICB1aW50MzJfdCAqZmlyc3QgPSBOVUxMLCAqc2Vjb25kID0gTlVMTDsKPiArICAgIG1m bl90IG1mbjsKPiArCj4gKyAgICBtZm4gPSBwMm1fbG9va3VwKGQsIF9nZm4ocGFkZHJfdG9fcGZu KHR0YnIwKSksIE5VTEwpOwo+ICAKPiAgICAgIHByaW50aygiZG9tJWQgVkEgMHglMDgiUFJJdmFk ZHIiXG4iLCBkLT5kb21haW5faWQsIGFkZHIpOwo+ICAgICAgcHJpbnRrKCIgICAgVFRCQ1I6IDB4 JTA4IlBSSXJlZ2lzdGVyIlxuIiwgdHRiY3IpOwo+ICAgICAgcHJpbnRrKCIgICAgVFRCUjA6IDB4 JTAxNiJQUkl4NjQiID0gMHglIlBSSXBhZGRyIlxuIiwKPiAtICAgICAgICAgICB0dGJyMCwgcDJt X2xvb2t1cChkLCB0dGJyMCAmIFBBR0VfTUFTSywgTlVMTCkpOwo+ICsgICAgICAgICAgIHR0YnIw LCBwZm5fdG9fcGFkZHIobWZuX3gobWZuKSkpOwo+ICAKPiAgICAgIGlmICggdHRiY3IgJiBUVEJD Ul9FQUUgKQo+ICAgICAgewo+IEBAIC0yMzM5LDMyICsyMzQxLDMxIEBAIHZvaWQgZHVtcF9ndWVz dF9zMV93YWxrKHN0cnVjdCBkb21haW4gKmQsIHZhZGRyX3QgYWRkcikKPiAgICAgICAgICByZXR1 cm47Cj4gICAgICB9Cj4gIAo+IC0gICAgcGFkZHIgPSBwMm1fbG9va3VwKGQsIHR0YnIwICYgUEFH RV9NQVNLLCBOVUxMKTsKPiAtICAgIGlmICggcGFkZHIgPT0gSU5WQUxJRF9QQUREUiApCj4gKyAg ICBpZiAoIG1mbl94KG1mbikgPT0gSU5WQUxJRF9NRk4gKQo+ICAgICAgewo+ICAgICAgICAgIHBy aW50aygiRmFpbGVkIFRUQlIwIG1hZGRyIGxvb2t1cFxuIik7Cj4gICAgICAgICAgZ290byBkb25l Owo+ICAgICAgfQo+IC0gICAgZmlyc3QgPSBtYXBfZG9tYWluX3BhZ2UoX21mbihwYWRkcl90b19w Zm4ocGFkZHIpKSk7Cj4gKyAgICBmaXJzdCA9IG1hcF9kb21haW5fcGFnZShtZm4pOwo+ICAKPiAg ICAgIG9mZnNldCA9IGFkZHIgPj4gKDEyKzEwKTsKPiAgICAgIHByaW50aygiMVNUWzB4JSJQUkl4 MzIiXSAoMHglIlBSSXBhZGRyIikgPSAweCUwOCJQUkl4MzIiXG4iLAo+IC0gICAgICAgICAgIG9m ZnNldCwgcGFkZHIsIGZpcnN0W29mZnNldF0pOwo+ICsgICAgICAgICAgIG9mZnNldCwgcGZuX3Rv X3BhZGRyKG1mbl94KG1mbikpLCBmaXJzdFtvZmZzZXRdKTsKPiAgICAgIGlmICggIShmaXJzdFtv ZmZzZXRdICYgMHgxKSB8fAo+ICAgICAgICAgICAhKGZpcnN0W29mZnNldF0gJiAweDIpICkKPiAg ICAgICAgICBnb3RvIGRvbmU7Cj4gIAo+IC0gICAgcGFkZHIgPSBwMm1fbG9va3VwKGQsIGZpcnN0 W29mZnNldF0gJiBQQUdFX01BU0ssIE5VTEwpOwo+ICsgICAgbWZuID0gcDJtX2xvb2t1cChkLCBf Z2ZuKHBhZGRyX3RvX3BmbihmaXJzdFtvZmZzZXRdKSksIE5VTEwpOwo+ICAKPiAtICAgIGlmICgg cGFkZHIgPT0gSU5WQUxJRF9QQUREUiApCj4gKyAgICBpZiAoIG1mbl94KG1mbikgPT0gSU5WQUxJ RF9NRk4gKQo+ICAgICAgewo+ICAgICAgICAgIHByaW50aygiRmFpbGVkIEwxIGVudHJ5IG1hZGRy IGxvb2t1cFxuIik7Cj4gICAgICAgICAgZ290byBkb25lOwo+ICAgICAgfQo+IC0gICAgc2Vjb25k ID0gbWFwX2RvbWFpbl9wYWdlKF9tZm4ocGFkZHJfdG9fcGZuKHBhZGRyKSkpOwo+ICsgICAgc2Vj b25kID0gbWFwX2RvbWFpbl9wYWdlKG1mbik7Cj4gICAgICBvZmZzZXQgPSAoYWRkciA+PiAxMikg JiAweDNGRjsKPiAgICAgIHByaW50aygiMk5EWzB4JSJQUkl4MzIiXSAoMHglIlBSSXBhZGRyIikg PSAweCUwOCJQUkl4MzIiXG4iLAo+IC0gICAgICAgICAgIG9mZnNldCwgcGFkZHIsIHNlY29uZFtv ZmZzZXRdKTsKPiArICAgICAgICAgICBvZmZzZXQsIHBmbl90b19wYWRkcihtZm5feChtZm4pKSwg c2Vjb25kW29mZnNldF0pOwo+ICAKPiAgZG9uZToKPiAgICAgIGlmIChzZWNvbmQpIHVubWFwX2Rv bWFpbl9wYWdlKHNlY29uZCk7Cj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vcDJt LmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL3AybS5oCj4gaW5kZXggMGQxZTYxZS4uZjIwNDQ4MiAx MDA2NDQKPiAtLS0gYS94ZW4vaW5jbHVkZS9hc20tYXJtL3AybS5oCj4gKysrIGIveGVuL2luY2x1 ZGUvYXNtLWFybS9wMm0uaAo+IEBAIC0xMzUsOCArMTM1LDggQEAgdm9pZCBwMm1fcmVzdG9yZV9z dGF0ZShzdHJ1Y3QgdmNwdSAqbik7Cj4gIC8qIFByaW50IGRlYnVnZ2luZy9zdGF0aXN0aWFsIGlu Zm8gYWJvdXQgYSBkb21haW4ncyBwMm0gKi8KPiAgdm9pZCBwMm1fZHVtcF9pbmZvKHN0cnVjdCBk b21haW4gKmQpOwo+ICAKPiAtLyogTG9vayB1cCB0aGUgTUZOIGNvcnJlc3BvbmRpbmcgdG8gYSBk b21haW4ncyBQRk4uICovCj4gLXBhZGRyX3QgcDJtX2xvb2t1cChzdHJ1Y3QgZG9tYWluICpkLCBw YWRkcl90IGdwZm4sIHAybV90eXBlX3QgKnQpOwo+ICsvKiBMb29rIHVwIHRoZSBNRk4gY29ycmVz cG9uZGluZyB0byBhIGRvbWFpbidzIEdGTi4gKi8KPiArbWZuX3QgcDJtX2xvb2t1cChzdHJ1Y3Qg ZG9tYWluICpkLCBnZm5fdCBnZm4sIHAybV90eXBlX3QgKnQpOwo+ICAKPiAgLyogQ2xlYW4gJiBp bnZhbGlkYXRlIGNhY2hlcyBjb3JyZXNwb25kaW5nIHRvIGEgcmVnaW9uIG9mIGd1ZXN0IGFkZHJl c3Mgc3BhY2UgKi8KPiAgaW50IHAybV9jYWNoZV9mbHVzaChzdHJ1Y3QgZG9tYWluICpkLCB4ZW5f cGZuX3Qgc3RhcnRfbWZuLCB4ZW5fcGZuX3QgZW5kX21mbik7Cj4gQEAgLTIwMSw4ICsyMDEsNyBA QCBzdGF0aWMgaW5saW5lIHN0cnVjdCBwYWdlX2luZm8gKmdldF9wYWdlX2Zyb21fZ2ZuKAo+ICB7 Cj4gICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlOwo+ICAgICAgcDJtX3R5cGVfdCBwMm10Owo+ IC0gICAgcGFkZHJfdCBtYWRkciA9IHAybV9sb29rdXAoZCwgcGZuX3RvX3BhZGRyKGdmbiksICZw Mm10KTsKPiAtICAgIHVuc2lnbmVkIGxvbmcgbWZuID0gbWFkZHIgPj4gUEFHRV9TSElGVDsKPiAr ICAgIHVuc2lnbmVkIGxvbmcgbWZuID0gbWZuX3gocDJtX2xvb2t1cChkLCBfZ2ZuKGdmbiksICZw Mm10KSk7Cj4gIAo+ICAgICAgaWYgKHQpCj4gICAgICAgICAgKnQgPSBwMm10Owo+IC0tIAo+IDEu OS4xCj4gCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpY ZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0 cy54ZW4ub3JnL3hlbi1kZXZlbAo=