From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [PATCH 11/22] xen/arm: p2m: Find the memory attributes based on the p2m type Date: Wed, 27 Jul 2016 18:15:50 +0100 Message-ID: References: <1469031064-23344-1-git-send-email-julien.grall@arm.com> <1469031064-23344-12-git-send-email-julien.grall@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1469031064-23344-12-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: xen-devel@lists.xen.org, sstabellini@kernel.org Cc: proskurin@sec.in.tum.de, wei.chen@linaro.org, steve.capper@arm.com List-Id: xen-devel@lists.xenproject.org SGksCgpPbiAyMC8wNy8xNiAxNzoxMCwgSnVsaWVuIEdyYWxsIHdyb3RlOgo+IEN1cnJlbnRseSwg bWZuX3RvX3AybV9lbnRyeSBpcyByZWx5aW5nIG9uIHRoZSBjYWxsZXIgdG8gcHJvdmlkZSB0aGUK PiBjb3JyZWN0IG1lbW9yeSBhdHRyaWJ1dGUgYW5kIHdpbGwgZGVkdWNlIHRoZSBzaGFyYWJpbGl0 eSBiYXNlZCBvbiBpdC4KPgo+IFNvbWUgb2YgdGhlIGNhbGxlcnMsIHN1Y2ggYXMgcDJtX2NyZWF0 ZV90YWJsZSwgYXJlIHVzaW5nIHNhbWUgbWVtb3J5Cj4gYXR0cmlidXRlIHJlZ2FyZGxlc3MgdGhl IHVuZGVybHlpbmcgcDJtIHR5cGUuIEZvciBpbnN0YW5jZSwgdGhpcyB3aWxsCj4gbGVhZCB0byB1 c2UgY2hhbmdlIHRoZSBtZW1vcnkgYXR0cmlidXRlIGZyb20gTUFUVFJfREVWIHRvIE1BVFRSX01F TSB3aGVuCj4gYSBNTUlPIHN1cGVycGFnZSBpcyBzaGF0dGVyZWQuCj4KPiBGdXJ0aGVybW9yZSwg aXQgbWFrZXMgbW9yZSBkaWZmaWN1bHQgdG8gc3VwcG9ydCBkaWZmZXJlbnQgc2hhcmVhYmlsaXR5 Cj4gd2l0aCB0aGUgc2FtZSBtZW1vcnkgYXR0cmlidXRlLgo+Cj4gQWxsIHRoZSBtZW1vcnkgYXR0 cmlidXRlcyBjb3VsZCBiZSBkZWR1Y2VkIHZpYSB0aGUgcDJtIHR5cGUuIFRoaXMgd2lsbAo+IHNp bXBsaWZ5IHRoZSBjb2RlIGJ5IGRyb3BwaW5nIG9uZSBwYXJhbWV0ZXIuCgpJIGp1c3Qgbm90aWNl ZCB0aGF0IEkgZm9yZ290IHRvIGFkZCBteSBTaWduZWQtb2ZmLWJ5LiBTdGVmYW5vLCBjYW4geW91 IAphZGQgbXkgU2lnbmVkLW9mZi1ieSB3aGlsZSBjb21taXR0aW5nPwoKQ2hlZXJzLAoKPiAtLS0K PiAgICAgSSBhbSBub3Qgc3VyZSB3aGV0aGVyIHAybV9kaXJlY3RfbW1pb19jIChjYWNoZWFibGUg TU1JTykgc2hvdWxkIHVzZQo+ICAgICB0aGUgb3V0ZXItc2hhcmVhYmlsaXR5IG9yIGlubmVyLXNo YXJlYWJpbGl0eS4gQW55IG9waW5pb25zPwo+IC0tLQo+ICB4ZW4vYXJjaC9hcm0vcDJtLmMgfCA1 NSArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K PiAgMSBmaWxlIGNoYW5nZWQsIDI0IGluc2VydGlvbnMoKyksIDMxIGRlbGV0aW9ucygtKQo+Cj4g ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9wMm0uYyBiL3hlbi9hcmNoL2FybS9wMm0uYwo+IGlu ZGV4IDk5OWRlMmIuLjJmNTBiNGYgMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gvYXJtL3AybS5jCj4g KysrIGIveGVuL2FyY2gvYXJtL3AybS5jCj4gQEAgLTMyNSw4ICszMjUsNyBAQCBzdGF0aWMgdm9p ZCBwMm1fc2V0X3Blcm1pc3Npb24obHBhZV90ICplLCBwMm1fdHlwZV90IHQsIHAybV9hY2Nlc3Nf dCBhKQo+ICAgICAgfQo+ICB9Cj4KPiAtc3RhdGljIGxwYWVfdCBtZm5fdG9fcDJtX2VudHJ5KG1m bl90IG1mbiwgdW5zaWduZWQgaW50IG1hdHRyLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcDJtX3R5cGVfdCB0LCBwMm1fYWNjZXNzX3QgYSkKPiArc3RhdGljIGxwYWVfdCBtZm5f dG9fcDJtX2VudHJ5KG1mbl90IG1mbiwgcDJtX3R5cGVfdCB0LCBwMm1fYWNjZXNzX3QgYSkKPiAg ewo+ICAgICAgLyoKPiAgICAgICAqIHNoLCB4biBhbmQgd3JpdGUgYml0IHdpbGwgYmUgZGVmaW5l ZCBpbiB0aGUgZm9sbG93aW5nIHN3aXRjaGVzCj4gQEAgLTMzNSw3ICszMzQsNiBAQCBzdGF0aWMg bHBhZV90IG1mbl90b19wMm1fZW50cnkobWZuX3QgbWZuLCB1bnNpZ25lZCBpbnQgbWF0dHIsCj4g ICAgICBscGFlX3QgZSA9IChscGFlX3QpIHsKPiAgICAgICAgICAucDJtLmFmID0gMSwKPiAgICAg ICAgICAucDJtLnJlYWQgPSAxLAo+IC0gICAgICAgIC5wMm0ubWF0dHIgPSBtYXR0ciwKPiAgICAg ICAgICAucDJtLnRhYmxlID0gMSwKPiAgICAgICAgICAucDJtLnZhbGlkID0gMSwKPiAgICAgICAg ICAucDJtLnR5cGUgPSB0LAo+IEBAIC0zNDMsMTggKzM0MSwyMSBAQCBzdGF0aWMgbHBhZV90IG1m bl90b19wMm1fZW50cnkobWZuX3QgbWZuLCB1bnNpZ25lZCBpbnQgbWF0dHIsCj4KPiAgICAgIEJV SUxEX0JVR19PTihwMm1fbWF4X3JlYWxfdHlwZSA+ICgxIDw8IDQpKTsKPgo+IC0gICAgc3dpdGNo IChtYXR0cikKPiArICAgIHN3aXRjaCAoIHQgKQo+ICAgICAgewo+IC0gICAgY2FzZSBNQVRUUl9N RU06Cj4gLSAgICAgICAgZS5wMm0uc2ggPSBMUEFFX1NIX0lOTkVSOwo+ICsgICAgY2FzZSBwMm1f bW1pb19kaXJlY3RfbmM6Cj4gKyAgICAgICAgZS5wMm0ubWF0dHIgPSBNQVRUUl9ERVY7Cj4gKyAg ICAgICAgZS5wMm0uc2ggPSBMUEFFX1NIX09VVEVSOwo+ICAgICAgICAgIGJyZWFrOwo+Cj4gLSAg ICBjYXNlIE1BVFRSX0RFVjoKPiArICAgIGNhc2UgcDJtX21taW9fZGlyZWN0X2M6Cj4gKyAgICAg ICAgZS5wMm0ubWF0dHIgPSBNQVRUUl9NRU07Cj4gICAgICAgICAgZS5wMm0uc2ggPSBMUEFFX1NI X09VVEVSOwo+ICAgICAgICAgIGJyZWFrOwo+ICsKPiAgICAgIGRlZmF1bHQ6Cj4gLSAgICAgICAg QlVHKCk7Cj4gLSAgICAgICAgYnJlYWs7Cj4gKyAgICAgICAgZS5wMm0ubWF0dHIgPSBNQVRUUl9N RU07Cj4gKyAgICAgICAgZS5wMm0uc2ggPSBMUEFFX1NIX0lOTkVSOwo+ICAgICAgfQo+Cj4gICAg ICBwMm1fc2V0X3Blcm1pc3Npb24oJmUsIHQsIGEpOwo+IEBAIC00MjEsNyArNDIyLDcgQEAgc3Rh dGljIGludCBwMm1fY3JlYXRlX3RhYmxlKHN0cnVjdCBkb21haW4gKmQsIGxwYWVfdCAqZW50cnks Cj4gICAgICAgICAgICovCj4gICAgICAgICAgIGZvciAoIGk9MCA7IGkgPCBMUEFFX0VOVFJJRVM7 IGkrKyApCj4gICAgICAgICAgIHsKPiAtICAgICAgICAgICAgIHB0ZSA9IG1mbl90b19wMm1fZW50 cnkobWZuLCBNQVRUUl9NRU0sIHQsIHAybS0+ZGVmYXVsdF9hY2Nlc3MpOwo+ICsgICAgICAgICAg ICAgcHRlID0gbWZuX3RvX3AybV9lbnRyeShtZm4sIHQsIHAybS0+ZGVmYXVsdF9hY2Nlc3MpOwo+ Cj4gICAgICAgICAgICAgICBtZm4gPSBtZm5fYWRkKG1mbiwgMVVMIDw8IChsZXZlbF9zaGlmdCAt IExQQUVfU0hJRlQpKTsKPgo+IEBAIC00NDUsNyArNDQ2LDcgQEAgc3RhdGljIGludCBwMm1fY3Jl YXRlX3RhYmxlKHN0cnVjdCBkb21haW4gKmQsIGxwYWVfdCAqZW50cnksCj4KPiAgICAgIHVubWFw X2RvbWFpbl9wYWdlKHApOwo+Cj4gLSAgICBwdGUgPSBtZm5fdG9fcDJtX2VudHJ5KF9tZm4ocGFn ZV90b19tZm4ocGFnZSkpLCBNQVRUUl9NRU0sIHAybV9pbnZhbGlkLAo+ICsgICAgcHRlID0gbWZu X3RvX3AybV9lbnRyeShfbWZuKHBhZ2VfdG9fbWZuKHBhZ2UpKSwgcDJtX2ludmFsaWQsCj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHAybS0+ZGVmYXVsdF9hY2Nlc3MpOwo+Cj4gICAgICBw Mm1fd3JpdGVfcHRlKGVudHJ5LCBwdGUsIGZsdXNoX2NhY2hlKTsKPiBAQCAtNjY2LDcgKzY2Nyw2 IEBAIHN0YXRpYyBpbnQgYXBwbHlfb25lX2xldmVsKHN0cnVjdCBkb21haW4gKmQsCj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHBhZGRyX3QgKmFkZHIsCj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHBhZGRyX3QgKm1hZGRyLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi b29sX3QgKmZsdXNoLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWF0dHIsCj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAybV90eXBlX3QgdCwKPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcDJtX2FjY2Vzc190IGEpCj4gIHsKPiBAQCAtNjk1LDcgKzY5NSw3IEBA IHN0YXRpYyBpbnQgYXBwbHlfb25lX2xldmVsKHN0cnVjdCBkb21haW4gKmQsCj4gICAgICAgICAg ICAgICAgICByZXR1cm4gcmM7Cj4KPiAgICAgICAgICAgICAgLyogTmV3IG1hcHBpbmcgaXMgc3Vw ZXJwYWdlIGFsaWduZWQsIG1ha2UgaXQgKi8KPiAtICAgICAgICAgICAgcHRlID0gbWZuX3RvX3Ay bV9lbnRyeShfbWZuKCptYWRkciA+PiBQQUdFX1NISUZUKSwgbWF0dHIsIHQsIGEpOwo+ICsgICAg ICAgICAgICBwdGUgPSBtZm5fdG9fcDJtX2VudHJ5KF9tZm4oKm1hZGRyID4+IFBBR0VfU0hJRlQp LCB0LCBhKTsKPiAgICAgICAgICAgICAgaWYgKCBsZXZlbCA8IDMgKQo+ICAgICAgICAgICAgICAg ICAgcHRlLnAybS50YWJsZSA9IDA7IC8qIFN1cGVycGFnZSBlbnRyeSAqLwo+Cj4gQEAgLTkxNSw3 ICs5MTUsNiBAQCBzdGF0aWMgaW50IGFwcGx5X3AybV9jaGFuZ2VzKHN0cnVjdCBkb21haW4gKmQs Cj4gICAgICAgICAgICAgICAgICAgICAgIGdmbl90IHNnZm4sCj4gICAgICAgICAgICAgICAgICAg ICAgIHVuc2lnbmVkIGxvbmcgbnIsCj4gICAgICAgICAgICAgICAgICAgICAgIG1mbl90IHNtZm4s Cj4gLSAgICAgICAgICAgICAgICAgICAgIGludCBtYXR0ciwKPiAgICAgICAgICAgICAgICAgICAg ICAgdWludDMyX3QgbWFzaywKPiAgICAgICAgICAgICAgICAgICAgICAgcDJtX3R5cGVfdCB0LAo+ ICAgICAgICAgICAgICAgICAgICAgICBwMm1fYWNjZXNzX3QgYSkKPiBAQCAtMTA1NCw3ICsxMDUz LDcgQEAgc3RhdGljIGludCBhcHBseV9wMm1fY2hhbmdlcyhzdHJ1Y3QgZG9tYWluICpkLAo+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV2ZWwsIGZsdXNoX3B0LCBvcCwKPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X2dwYWRkciwgZW5kX2dwYWRk ciwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhZGRyLCAmbWFkZHIsICZm bHVzaCwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdHRyLCB0LCBhKTsK PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQsIGEpOwo+ICAgICAgICAgICAg ICBpZiAoIHJldCA8IDAgKSB7IHJjID0gcmV0IDsgZ290byBvdXQ7IH0KPiAgICAgICAgICAgICAg Y291bnQgKz0gcmV0Owo+Cj4gQEAgLTExNjMsNyArMTE2Miw3IEBAIG91dDoKPiAgICAgICAgICAg KiBtYXBwaW5nLgo+ICAgICAgICAgICAqLwo+ICAgICAgICAgIGFwcGx5X3AybV9jaGFuZ2VzKGQs IFJFTU9WRSwgc2dmbiwgZ2ZuIC0gZ2ZuX3goc2dmbiksIHNtZm4sCj4gLSAgICAgICAgICAgICAg ICAgICAgICAgICAgbWF0dHIsIDAsIHAybV9pbnZhbGlkLCBkLT5hcmNoLnAybS5kZWZhdWx0X2Fj Y2Vzcyk7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgcDJtX2ludmFsaWQsIGQtPmFy Y2gucDJtLmRlZmF1bHRfYWNjZXNzKTsKPiAgICAgIH0KPgo+ICAgICAgcmV0dXJuIHJjOwo+IEBA IC0xMTczLDEwICsxMTcyLDEwIEBAIHN0YXRpYyBpbmxpbmUgaW50IHAybV9pbnNlcnRfbWFwcGlu ZyhzdHJ1Y3QgZG9tYWluICpkLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZ2ZuX3Qgc3RhcnRfZ2ZuLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdW5zaWduZWQgbG9uZyBuciwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG1mbl90IG1mbiwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu dCBtYXR0ciwgcDJtX3R5cGVfdCB0KQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcDJtX3R5cGVfdCB0KQo+ICB7Cj4gICAgICByZXR1cm4gYXBwbHlfcDJtX2NoYW5nZXMo ZCwgSU5TRVJULCBzdGFydF9nZm4sIG5yLCBtZm4sCj4gLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbWF0dHIsIDAsIHQsIGQtPmFyY2gucDJtLmRlZmF1bHRfYWNjZXNzKTsKPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAwLCB0LCBkLT5hcmNoLnAybS5kZWZhdWx0X2FjY2Vzcyk7 Cj4gIH0KPgo+ICBzdGF0aWMgaW5saW5lIGludCBwMm1fcmVtb3ZlX21hcHBpbmcoc3RydWN0IGRv bWFpbiAqZCwKPiBAQCAtMTE4Niw4ICsxMTg1LDcgQEAgc3RhdGljIGlubGluZSBpbnQgcDJtX3Jl bW92ZV9tYXBwaW5nKHN0cnVjdCBkb21haW4gKmQsCj4gIHsKPiAgICAgIHJldHVybiBhcHBseV9w Mm1fY2hhbmdlcyhkLCBSRU1PVkUsIHN0YXJ0X2dmbiwgbnIsIG1mbiwKPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvKiBhcmd1bWVudHMgYmVsb3cgbm90IHVzZWQgd2hlbiByZW1vdmlu ZyBtYXBwaW5nICovCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFUVFJfTUVNLCAw LCBwMm1faW52YWxpZCwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkLT5hcmNoLnAy bS5kZWZhdWx0X2FjY2Vzcyk7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgcDJt X2ludmFsaWQsIGQtPmFyY2gucDJtLmRlZmF1bHRfYWNjZXNzKTsKPiAgfQo+Cj4gIGludCBtYXBf cmVnaW9uc19yd19jYWNoZShzdHJ1Y3QgZG9tYWluICpkLAo+IEBAIC0xMTk1LDggKzExOTMsNyBA QCBpbnQgbWFwX3JlZ2lvbnNfcndfY2FjaGUoc3RydWN0IGRvbWFpbiAqZCwKPiAgICAgICAgICAg ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbnIsCj4gICAgICAgICAgICAgICAgICAgICAg ICAgICBtZm5fdCBtZm4pCj4gIHsKPiAtICAgIHJldHVybiBwMm1faW5zZXJ0X21hcHBpbmcoZCwg Z2ZuLCBuciwgbWZuLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQVRUUl9NRU0s IHAybV9tbWlvX2RpcmVjdF9jKTsKPiArICAgIHJldHVybiBwMm1faW5zZXJ0X21hcHBpbmcoZCwg Z2ZuLCBuciwgbWZuLCBwMm1fbW1pb19kaXJlY3RfYyk7Cj4gIH0KPgo+ICBpbnQgdW5tYXBfcmVn aW9uc19yd19jYWNoZShzdHJ1Y3QgZG9tYWluICpkLAo+IEBAIC0xMjEyLDggKzEyMDksNyBAQCBp bnQgbWFwX21taW9fcmVnaW9ucyhzdHJ1Y3QgZG9tYWluICpkLAo+ICAgICAgICAgICAgICAgICAg ICAgICB1bnNpZ25lZCBsb25nIG5yLAo+ICAgICAgICAgICAgICAgICAgICAgICBtZm5fdCBtZm4p Cj4gIHsKPiAtICAgIHJldHVybiBwMm1faW5zZXJ0X21hcHBpbmcoZCwgc3RhcnRfZ2ZuLCBuciwg bWZuLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQVRUUl9ERVYsIHAybV9tbWlv X2RpcmVjdF9uYyk7Cj4gKyAgICByZXR1cm4gcDJtX2luc2VydF9tYXBwaW5nKGQsIHN0YXJ0X2dm biwgbnIsIG1mbiwgcDJtX21taW9fZGlyZWN0X25jKTsKPiAgfQo+Cj4gIGludCB1bm1hcF9tbWlv X3JlZ2lvbnMoc3RydWN0IGRvbWFpbiAqZCwKPiBAQCAtMTI1MSw4ICsxMjQ3LDcgQEAgaW50IGd1 ZXN0X3BoeXNtYXBfYWRkX2VudHJ5KHN0cnVjdCBkb21haW4gKmQsCj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHBhZ2Vfb3JkZXIsCj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwMm1fdHlwZV90IHQpCj4gIHsKPiAtICAgIHJldHVybiBwMm1faW5zZXJ0 X21hcHBpbmcoZCwgZ2ZuLCAoMSA8PCBwYWdlX29yZGVyKSwgbWZuLAo+IC0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBNQVRUUl9NRU0sIHQpOwo+ICsgICAgcmV0dXJuIHAybV9pbnNlcnRf bWFwcGluZyhkLCBnZm4sICgxIDw8IHBhZ2Vfb3JkZXIpLCBtZm4sIHQpOwo+ICB9Cj4KPiAgdm9p ZCBndWVzdF9waHlzbWFwX3JlbW92ZV9wYWdlKHN0cnVjdCBkb21haW4gKmQsCj4gQEAgLTE0MTIs NyArMTQwNyw3IEBAIGludCByZWxpbnF1aXNoX3AybV9tYXBwaW5nKHN0cnVjdCBkb21haW4gKmQp Cj4gICAgICBuciA9IGdmbl94KHAybS0+bWF4X21hcHBlZF9nZm4pIC0gZ2ZuX3gocDJtLT5sb3dl c3RfbWFwcGVkX2dmbik7Cj4KPiAgICAgIHJldHVybiBhcHBseV9wMm1fY2hhbmdlcyhkLCBSRUxJ TlFVSVNILCBwMm0tPmxvd2VzdF9tYXBwZWRfZ2ZuLCBuciwKPiAtICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJTlZBTElEX01GTiwgTUFUVFJfTUVNLCAwLCBwMm1faW52YWxpZCwKPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJTlZBTElEX01GTiwgMCwgcDJtX2ludmFsaWQsCj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZC0+YXJjaC5wMm0uZGVmYXVsdF9hY2Nlc3Mp Owo+ICB9Cj4KPiBAQCAtMTQyNSw4ICsxNDIwLDcgQEAgaW50IHAybV9jYWNoZV9mbHVzaChzdHJ1 Y3QgZG9tYWluICpkLCBnZm5fdCBzdGFydCwgdW5zaWduZWQgbG9uZyBucikKPiAgICAgIGVuZCA9 IGdmbl9taW4oZW5kLCBwMm0tPm1heF9tYXBwZWRfZ2ZuKTsKPgo+ICAgICAgcmV0dXJuIGFwcGx5 X3AybV9jaGFuZ2VzKGQsIENBQ0hFRkxVU0gsIHN0YXJ0LCBuciwgSU5WQUxJRF9NRk4sCj4gLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFUVFJfTUVNLCAwLCBwMm1faW52YWxpZCwKPiAt ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkLT5hcmNoLnAybS5kZWZhdWx0X2FjY2Vzcyk7 Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgcDJtX2ludmFsaWQsIGQtPmFyY2gu cDJtLmRlZmF1bHRfYWNjZXNzKTsKPiAgfQo+Cj4gIG1mbl90IGdmbl90b19tZm4oc3RydWN0IGRv bWFpbiAqZCwgZ2ZuX3QgZ2ZuKQo+IEBAIC0xODI3LDggKzE4MjEsNyBAQCBsb25nIHAybV9zZXRf bWVtX2FjY2VzcyhzdHJ1Y3QgZG9tYWluICpkLCBnZm5fdCBnZm4sIHVpbnQzMl90IG5yLAo+ICAg ICAgfQo+Cj4gICAgICByYyA9IGFwcGx5X3AybV9jaGFuZ2VzKGQsIE1FTUFDQ0VTUywgZ2ZuX2Fk ZChnZm4sIHN0YXJ0KSwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5yIC0gc3RhcnQp LCBJTlZBTElEX01GTiwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFUVFJfTUVNLCBt YXNrLCAwLCBhKTsKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5yIC0gc3RhcnQpLCBJ TlZBTElEX01GTiwgbWFzaywgMCwgYSk7Cj4gICAgICBpZiAoIHJjIDwgMCApCj4gICAgICAgICAg cmV0dXJuIHJjOwo+ICAgICAgZWxzZSBpZiAoIHJjID4gMCApCj4KCi0tIApKdWxpZW4gR3JhbGwK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZl bCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4u b3JnL3hlbi1kZXZlbAo=