From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sergej Proskurin Subject: Re: [PATCH v2 19/25] arm/altp2m: Add altp2m_propagate_change. Date: Sat, 6 Aug 2016 13:26:21 +0200 Message-ID: References: <20160801171028.11615-1-proskurin@sec.in.tum.de> <20160801171028.11615-20-proskurin@sec.in.tum.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bVzkG-0000LP-C0 for xen-devel@lists.xenproject.org; Sat, 06 Aug 2016 11:26:24 +0000 In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Julien Grall , xen-devel@lists.xenproject.org Cc: Stefano Stabellini List-Id: xen-devel@lists.xenproject.org SGkgSnVsaWVuLAoKCk9uIDA4LzA0LzIwMTYgMDQ6NTAgUE0sIEp1bGllbiBHcmFsbCB3cm90ZToK PiBIZWxsbyBTZXJnZWosCj4KPiBPbiAwMS8wOC8xNiAxODoxMCwgU2VyZ2VqIFByb3NrdXJpbiB3 cm90ZToKPj4gVGhpcyBjb21taXQgaW50cm9kdWNlcyB0aGUgZnVuY3Rpb24gImFsdHAybV9wcm9w YWdhdGVfY2hhbmdlIiB0aGF0IGlzCj4+IHJlc3BvbnNpYmxlIHRvIHByb3BhZ2F0ZSBjaGFuZ2Vz IGFwcGxpZWQgdG8gdGhlIGhvc3QncyBwMm0gdG8gYSBzcGVjaWZpYwo+PiBvciBldmVuIGFsbCBh bHRwMm0gdmlld3MuIEluIHRoaXMgd2F5LCBYZW4gY2FuIGluLS9kZWNyZWFzZSB0aGUgZ3Vlc3Qn cwo+PiBwaHlzbWVtIGF0IHJ1bi10aW1lIHdpdGhvdXQgbGVhdmluZyB0aGUgYWx0cDJtIHZpZXdz IHdpdGgKPj4gc3RhbGxlZC9pbnZhbGlkIGVudHJpZXMuCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IFNl cmdlaiBQcm9za3VyaW4gPHByb3NrdXJpbkBzZWMuaW4udHVtLmRlPgo+PiAtLS0KPj4gQ2M6IFN0 ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4KPj4gQ2M6IEp1bGllbiBH cmFsbCA8anVsaWVuLmdyYWxsQGFybS5jb20+Cj4+IC0tLQo+PiAgeGVuL2FyY2gvYXJtL2FsdHAy bS5jICAgICAgICB8IDc1Cj4+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCj4+ICB4ZW4vYXJjaC9hcm0vcDJtLmMgICAgICAgICAgIHwgMTQgKysrKysrKysrCj4+ ICB4ZW4vaW5jbHVkZS9hc20tYXJtL2FsdHAybS5oIHwgIDkgKysrKysrCj4+ICB4ZW4vaW5jbHVk ZS9hc20tYXJtL3AybS5oICAgIHwgIDUgKysrCj4+ICA0IGZpbGVzIGNoYW5nZWQsIDEwMyBpbnNl cnRpb25zKCspCj4+Cj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vYWx0cDJtLmMgYi94ZW4v YXJjaC9hcm0vYWx0cDJtLmMKPj4gaW5kZXggZjk4ZmQ3My4uZjNjMWNmZiAxMDA2NDQKPj4gLS0t IGEveGVuL2FyY2gvYXJtL2FsdHAybS5jCj4+ICsrKyBiL3hlbi9hcmNoL2FybS9hbHRwMm0uYwo+ PiBAQCAtMTMzLDYgKzEzMyw4MSBAQCBvdXQ6Cj4+ICAgICAgcmV0dXJuIHJjOwo+PiAgfQo+Pgo+ PiArc3RhdGljIGlubGluZSB2b2lkIGFsdHAybV9yZXNldChzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJt KQo+PiArewo+PiArICAgIHJlYWRfbG9jaygmcDJtLT5sb2NrKTsKPgo+IEFnYWluIHJlYWRfbG9j ayBkb2VzIG5vdCBwcm90ZWN0IHlvdSBhZ2FpbnN0IGNvbmN1cnJlbnQgYWNjZXNzLiBPbmx5Cj4g YWdhaW5zdCBzb21lb25lIGVsc2UgdXBkYXRlIHRoZSBwYWdlIHRhYmxlLgo+Cj4gVGhpcyBzaG91 bGQgYmUgcDJtX3dyaXRlX2xvY2suCj4KClRoYW5rIHlvdS4KCj4+ICsKPj4gKyAgICBwMm1fZmx1 c2hfdGFibGUocDJtKTsKPj4gKyAgICBwMm1fZmx1c2hfdGxiKHAybSk7Cj4KPiBhbHRwMm1fcmVz ZXQgbWF5IGJlIGNhbGxlZCBvbiBhIHAybSB1c2VkIGJ5IGEgcnVubmluZyB2Q1BVLiBXaGF0IHRo aXMKPiBjb2RlIGRvZXMgaXM6Cj4gICAgIDEpIGNsZWFyaW5nIHJvb3QgcGFnZSB0YWJsZQo+ICAg ICAyKSBmcmVlIGludGVybWVkaWF0ZSBwYWdlIHRhYmxlCj4gICAgIDMpIGludmFsaWRhdGUgdGhl IFRMQgo+Cj4gVW50aWwgc3RlcCAzLCB0aGUgb3RoZXIgVExCcyBtYXkgY29udGFpbiBlbnRyaWVz IHBvaW50aW5nIHRoZQo+IGludGVybWVkaWF0ZSBwYWdlIHRhYmxlLiBCdXQgdGhleSB3ZXJlIGZy ZWVkIGFuZCBjb3VsZCB0aGVyZWZvcmUgYmUKPiByZS11c2VkIGZvciBhbm90aGVyIHB1cnBvc2Uu IFNvIHN0ZXAgMiBhbmQgMyBzaG91bGQgYmUgaW52ZXJ0ZWQuCgpUaGlzIGlzIGFuIGV4Y2VsbGVu dCB0aXAuIFRoYW5rIHlvdSEKCj4KPiBJIHdpbGwgcmUtaXRlcmF0ZSBzYW1lIG1lc3NhZ2UgYXMg aW4gdGhlIHByZXZpb3VzIHNlcmllcy4gUGxlYXNlIGhhdmUKPiBhIHRoaW5rIGFib3V0IHRoZSBs b2NraW5nIGFuZCBtZW1vcnkgb3JkZXJpbmcgb2YgYWxsIHRoaXMgc2VyaWVzLiBJCj4gZm91bmQg YSBsb3Qgb2YgcmFjZSBjb25kaXRpb24gYW5kIEkgbWF5IGhhdmUgbWlzcyBzb21lb25lLiBJZiB5 b3UgaGF2ZQo+IGEgZG91YnQgZG9uJ3QgaGVzaXRhdGUgdG8gYXNrLgo+CgpJIGRlZmluaXRlbHkg d2lsbCwgdGhhbmsgeW91IGZvciB5b3VyIG9mZmVyIDopCgo+PiArCj4+ICsgICAgcDJtLT5sb3dl c3RfbWFwcGVkX2dmbiA9IElOVkFMSURfR0ZOOwo+PiArICAgIHAybS0+bWF4X21hcHBlZF9nZm4g PSBfZ2ZuKDApOwo+PiArCj4+ICsgICAgcmVhZF91bmxvY2soJnAybS0+bG9jayk7Cj4+ICt9Cj4+ ICsKPj4gK3ZvaWQgYWx0cDJtX3Byb3BhZ2F0ZV9jaGFuZ2Uoc3RydWN0IGRvbWFpbiAqZCwKPj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2ZuX3Qgc2dmbiwKPj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBuciwKPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbWZuX3Qgc21mbiwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dWludDMyX3QgbWFzaywKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcDJtX3R5cGVf dCBwMm10LAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwMm1fYWNjZXNzX3QgcDJt YSkKPj4gK3sKPj4gKyAgICBzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtOwo+PiArICAgIG1mbl90IG07 Cj4+ICsgICAgdW5zaWduZWQgaW50IGk7Cj4+ICsgICAgdW5zaWduZWQgaW50IHJlc2V0X2NvdW50 ID0gMDsKPj4gKyAgICB1bnNpZ25lZCBpbnQgbGFzdF9yZXNldF9pZHggPSB+MDsKPj4gKwo+PiAr ICAgIGlmICggIWFsdHAybV9hY3RpdmUoZCkgKQo+Cj4gVGhpcyBpcyBub3Qgc2FmZS4gZC0+YXJj aC5hbHRwMm1fYWN0aXZlIG1heWJlIGJlIHR1cm4gb2ZmIGp1c3QgYWZ0ZXIKPiB5b3UgcmVhZC4g TWF5YmUgeW91IHdhbnQgdG8gcHJvdGVjdCBpdCB3aXRoIGFsdHAybV9sb2NrLgo+CgpUaGlzIGlz IHRydWUuIFRoYW5rcyEKCj4+ICsgICAgICAgIHJldHVybjsKPj4gKwo+PiArICAgIGFsdHAybV9s b2NrKGQpOwo+PiArCj4+ICsgICAgZm9yICggaSA9IDA7IGkgPCBNQVhfQUxUUDJNOyBpKysgKQo+ PiArICAgIHsKPj4gKyAgICAgICAgaWYgKCBkLT5hcmNoLmFsdHAybV92dHRicltpXSA9PSBJTlZB TElEX1ZUVEJSICkKPj4gKyAgICAgICAgICAgIGNvbnRpbnVlOwo+PiArCj4+ICsgICAgICAgIHAy bSA9IGQtPmFyY2guYWx0cDJtX3AybVtpXTsKPj4gKwo+PiArICAgICAgICBtID0gcDJtX2xvb2t1 cF9hdHRyKHAybSwgc2dmbiwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCk7Cj4KPiBXaGF0IGlzIHRo ZSBiZW5lZml0cyB0byBjaGVjayBpZiBpdCBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgYWx0cDJtPwo+ CgpUaGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBkaXJlY3RseSBjaGFuZ2VzIHRoZSBlbnRyeSBp biB0aGUgcGFydGljdWxhcgphbHRwMm0gdmlldywgd2l0aG91dCBoYXZpbmcgdG8gZmx1c2ggaXQg aWYgYW4gYWxyZWFkeSBleGlzdGluZyBlbnRyeSBoYXMKYmVlbiBjaGFuZ2VkLgoKPj4gKwo+PiAr ICAgICAgICAvKiBDaGVjayBmb3IgYSBkcm9wcGVkIHBhZ2UgdGhhdCBtYXkgaW1wYWN0IHRoaXMg YWx0cDJtLiAqLwo+PiArICAgICAgICBpZiAoIChtZm5fZXEoc21mbiwgSU5WQUxJRF9NRk4pIHx8 IHAybXQgPT0gcDJtX2ludmFsaWQpICYmCj4KPiBXaHkgdGhlIGNoZWNrIHRvIHAybXQgYWdhaW5z dCBwMm1faW52YWxpZD8KPgoKSSBoYXZlIGVuY291bnRlcmVkIHAybSBlbnRyaWVzIG9yIHJhdGhl ciBjYWxscyB0byBwMm1fYXBwbHlfY2hhbmdlIHdpdGgKdmFsaWQgTUZOJ3MsIGhvd2V2ZXIsIGlu dmFsaWQgdHlwZXMuIFRoYXQgaXMsIGEgcGFnZSBkcm9wIHdvdWxkIG5vdCBiZQpyZWNvZ25pemVk IGlmIGNoZWNrZWQgb25seSBhZ2FpbnN0IGFuIGludmFsaWQgTUZOLgoKPj4gKyAgICAgICAgICAg ICBnZm5feChzZ2ZuKSA+PSBnZm5feChwMm0tPmxvd2VzdF9tYXBwZWRfZ2ZuKSAmJgo+PiArICAg ICAgICAgICAgIGdmbl94KHNnZm4pIDw9IGdmbl94KHAybS0+bWF4X21hcHBlZF9nZm4pICkKPj4g KyAgICAgICAgewo+PiArICAgICAgICAgICAgaWYgKCAhcmVzZXRfY291bnQrKyApCj4+ICsgICAg ICAgICAgICB7Cj4+ICsgICAgICAgICAgICAgICAgYWx0cDJtX3Jlc2V0KHAybSk7Cj4+ICsgICAg ICAgICAgICAgICAgbGFzdF9yZXNldF9pZHggPSBpOwo+PiArICAgICAgICAgICAgfQo+PiArICAg ICAgICAgICAgZWxzZQo+PiArICAgICAgICAgICAgewo+PiArICAgICAgICAgICAgICAgIC8qIEF0 IGxlYXN0IDIgYWx0cDJtJ3MgaW1wYWN0ZWQsIHNvIHJlc2V0Cj4+IGV2ZXJ5dGhpbmcuICovCj4K PiBTbyBpZiB5b3UgcmVtb3ZlIGEgNEtCIHBhZ2UgaW4gbW9yZSB0aGFuIDIgYWx0cDJtLCB5b3Ug d2lsbCBmbHVzaCBhbGwKPiB0aGUgcDJtLiBUaGlzIHNvdW5kcyByZWFsbHkgbW9yZSB0aW1lIGNv bnN1bWluZyAoeW91IGhhdmUgdG8gZnJlZSBhbGwKPiB0aGUgaW50ZXJtZWRpYXRlIHBhZ2UgdGFi bGUpIHRoYW4gcmVtb3ZpbmcgYSBzaW5nbGUgNEtCIHBhZ2UuCgpJIGFncmVlOiBUaGUgc29sdXRp b24gaGFzIGJlZW4gZGlyZWN0bHkgYWRvcHRlZCBmcm9tIHRoZSB4ODYKaW1wbGVtZW50YXRpb24u IEl0IG5lZWRzIGZ1cnRoZXIgZGVzaWduIHJlY29uc2lkZXJhdGlvbi4gSG93ZXZlciwgYXQKdGhp cyBwb2ludCB3ZSB3b3VsZCBsaWtlIHRvIGZpbmlzaCB0aGUgb3ZlcmFsbCBhcmNoaXRlY3R1cmUg Zm9yIEFSTQpiZWZvcmUgd2UgZ28gaW50byBmdXJ0aGVyIHJlY29uc3RydWN0aW9ucy4KCj4KPj4g KyAgICAgICAgICAgICAgICBmb3IgKCBpID0gMDsgaSA8IE1BWF9BTFRQMk07IGkrKyApCj4+ICsg ICAgICAgICAgICAgICAgewo+PiArICAgICAgICAgICAgICAgICAgICBpZiAoIGkgPT0gbGFzdF9y ZXNldF9pZHggfHwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICBkLT5hcmNoLmFsdHAybV92 dHRicltpXSA9PSBJTlZBTElEX1ZUVEJSICkKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgIGNv bnRpbnVlOwo+PiArCj4+ICsgICAgICAgICAgICAgICAgICAgIHAybSA9IGQtPmFyY2guYWx0cDJt X3AybVtpXTsKPj4gKyAgICAgICAgICAgICAgICAgICAgYWx0cDJtX3Jlc2V0KHAybSk7Cj4+ICsg ICAgICAgICAgICAgICAgfQo+PiArICAgICAgICAgICAgICAgIGdvdG8gb3V0Owo+PiArICAgICAg ICAgICAgfQo+PiArICAgICAgICB9Cj4+ICsgICAgICAgIGVsc2UgaWYgKCAhbWZuX2VxKG0sIElO VkFMSURfTUZOKSApCj4+ICsgICAgICAgICAgICBtb2RpZnlfYWx0cDJtX3JhbmdlKGQsIHAybSwg c2dmbiwgbnIsIHNtZm4sCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hc2ss IHAybXQsIHAybWEpOwo+Cj4gSSBhbSBhIGJpdCBjb25jZXJuZWQgYWJvdXQgdGhpcyBmdW5jdGlv bi4gV2UgZGVjaWRlZCB0byBsaW1pdCB0aGUgc2l6ZQo+IG9mIHRoZSBtYXBwaW5nIHRvIGF2b2lk IGxvbmcgcnVubmluZyBtZW1vcnkgb3BlcmF0aW9ucyAoc2VlIFhTQS0xNTgpLgo+Cj4gV2l0aCB0 aGlzIGZ1bmN0aW9uIHlvdSBtdWx0aXBseSB1cCB0byAxMCB0aW1lcyB0aGUgZHVyYXRpb24gb2Yg dGhlCj4gb3BlcmF0aW9uLgo+CgpJIHNlZSB5b3VyIHBvaW50LiBIb3dldmVyLCBvbiBhbiBhY3Rp dmUgc3lzdGVtLCBhZGFwdGlvbnMgb2YgdGhlIGhvc3RwMm0KKHdoaWxlIGFsdHAybSBpcyBhY3Rp dmUpIHNob3VsZCBiZSB2ZXJ5IGxpbWl0ZWQuIEFub3RoZXIgc29sdXRpb24gd291bGQKYmUgdG8g c2ltcGx5IGZsdXNoIHRoZSBhbHRwMm0gdmlld3Mgb24gZXZlcnkgaG9zdHAybSBtb2RpZmljYXRp b24uIElNTwp0aGlzLCBob3dldmVyLCB3b3VsZCBub3QgcmVhbGx5IGJlIGEgaHVnZSBwZXJmb3Jt YW5jZSBnYWluIGR1ZSB0bwpkZS1hbGxvY2F0aW9uIGFuZCBmcmVlaW5nIG9mIHRoZSBhbHRwMm0g dGFibGVzLiBEbyB5b3UgaGF2ZSBhbm90aGVyIGlkZWE/Cgo+IEFsc28sIHdoYXQgaXMgbW9kaWZ5 X2FsdHAybV9yYW5nZSBoYXMgZmFpbGVkPwo+CgpUaGlzIGlzIHRydWU6IG5vdCBjb25zaWRlcmVk IGF0IHRoaXMgcG9pbnQuIEkgd2lsbCByZXR1cm4gYW4gZXJyb3IgdG8KcDJtX2FwcGx5X2NoYW5n ZXMuCgo+Cj4+ICsgICAgfQo+PiArCj4+ICtvdXQ6Cj4+ICsgICAgYWx0cDJtX3VubG9jayhkKTsK Pj4gK30KPj4gKwo+PiAgc3RhdGljIHZvaWQgYWx0cDJtX3ZjcHVfcmVzZXQoc3RydWN0IHZjcHUg KnYpCj4+ICB7Cj4+ICAgICAgc3RydWN0IGFsdHAybXZjcHUgKmF2ID0gJnZjcHVfYWx0cDJtKHYp Owo+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3AybS5jIGIveGVuL2FyY2gvYXJtL3AybS5j Cj4+IGluZGV4IGUwYTdmMzguLjMxODEwZTYgMTAwNjQ0Cj4+IC0tLSBhL3hlbi9hcmNoL2FybS9w Mm0uYwo+PiArKysgYi94ZW4vYXJjaC9hcm0vcDJtLmMKPj4gQEAgLTk5Miw2ICs5OTIsNyBAQCBz dGF0aWMgaW50IGFwcGx5X3AybV9jaGFuZ2VzKHN0cnVjdCBkb21haW4gKmQsCj4+ICAgICAgY29u c3QgYm9vbF90IHByZWVtcHQgPSAhaXNfaWRsZV92Y3B1KGN1cnJlbnQpOwo+PiAgICAgIGJvb2xf dCBmbHVzaCA9IGZhbHNlOwo+PiAgICAgIGJvb2xfdCBmbHVzaF9wdDsKPj4gKyAgICBib29sX3Qg ZW50cnlfd3JpdHRlbiA9IGZhbHNlOwo+PiAgICAgIFBBR0VfTElTVF9IRUFEKGZyZWVfcGFnZXMp Owo+PiAgICAgIHN0cnVjdCBwYWdlX2luZm8gKnBnOwo+Pgo+PiBAQCAtMTExMiw2ICsxMTEzLDcg QEAgc3RhdGljIGludCBhcHBseV9wMm1fY2hhbmdlcyhzdHJ1Y3QgZG9tYWluICpkLAo+PiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhZGRyLCAmbWFkZHIsICZmbHVzaCwKPj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0LCBhKTsKPj4gICAgICAgICAgICAg IGlmICggcmV0IDwgMCApIHsgcmMgPSByZXQgOyBnb3RvIG91dDsgfQo+PiArICAgICAgICAgICAg aWYgKCByZXQgKSBlbnRyeV93cml0dGVuID0gMTsKPgo+IFBsZWFzZSBkb24ndCBtaXggZmFsc2Ug YW5kIDEuIFRoaXMgc2hvdWxkIGJlIHRydWUgaGVyZS4KPgoKSSB3aWxsIHNldCB0aGUgdmFyaWFi bGUgdG8gdHJ1ZS4KCj4+ICAgICAgICAgICAgICBjb3VudCArPSByZXQ7Cj4+Cj4+ICAgICAgICAg ICAgICBpZiAoIHJldCAhPSBQMk1fT05FX1BST0dSRVNTX05PUCApCj4+IEBAIC0xMjA4LDYgKzEy MTAsOSBAQCBvdXQ6Cj4+Cj4+ICAgICAgcDJtX3dyaXRlX3VubG9jayhwMm0pOwo+Pgo+PiArICAg IGlmICggcmMgPj0gMCAmJiBlbnRyeV93cml0dGVuICYmIHAybV9pc19ob3N0cDJtKHAybSkgKQo+ PiArICAgICAgICBhbHRwMm1fcHJvcGFnYXRlX2NoYW5nZShkLCBzZ2ZuLCBuciwgc21mbiwgbWFz aywgdCwgYSk7Cj4KPiBUaGVyZSBhcmUgb3BlcmF0aW9uIHdoaWNoIGRvZXMgbm90IHJlcXVpcmUg cHJvcGFnYXRpb24gKGZvciBpbnN0YW5jZQo+IFJFTElOUVVJU0ggYW5kIENBQ0hFRkxVU0gpLgo+ CgpUcnVlLiBUaGFuayB5b3UuCgo+PiArCj4+ICAgICAgaWYgKCByYyA8IDAgJiYgKCBvcCA9PSBJ TlNFUlQgKSAmJgo+PiAgICAgICAgICAgYWRkciAhPSBzdGFydF9ncGFkZHIgKQo+PiAgICAgIHsK Pj4gQEAgLTEzMzEsNiArMTMzNiwxNSBAQCBpbnQgbW9kaWZ5X2FsdHAybV9lbnRyeShzdHJ1Y3Qg ZG9tYWluICpkLAo+PiBzdHJ1Y3QgcDJtX2RvbWFpbiAqYXAybSwKPj4gICAgICByZXR1cm4gYXBw bHlfcDJtX2NoYW5nZXMoZCwgYXAybSwgSU5TRVJULCBnZm4sIG5yLCBtZm4sIDAsIHQsIGEpOwo+ PiAgfQo+Pgo+PiAraW50IG1vZGlmeV9hbHRwMm1fcmFuZ2Uoc3RydWN0IGRvbWFpbiAqZCwgc3Ry dWN0IHAybV9kb21haW4gKmFwMm0sCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICBnZm5fdCBz Z2ZuLCB1bnNpZ25lZCBsb25nIG5yLCBtZm5fdCBzbWZuLAo+PiArICAgICAgICAgICAgICAgICAg ICAgICAgdWludDMyX3QgbSwgcDJtX3R5cGVfdCB0LCBwMm1fYWNjZXNzX3QgYSkKPj4gK3sKPj4g KyAgICBBU1NFUlQocDJtX2lzX2FsdHAybShhcDJtKSk7Cj4+ICsKPj4gKyAgICByZXR1cm4gYXBw bHlfcDJtX2NoYW5nZXMoZCwgYXAybSwgSU5TRVJULCBzZ2ZuLCBuciwgc21mbiwgbSwgdCwgYSk7 Cj4+ICt9Cj4+ICsKPj4gIGludCBwMm1fYWxsb2NfdGFibGUoc3RydWN0IHAybV9kb21haW4gKnAy bSkKPj4gIHsKPj4gICAgICB1bnNpZ25lZCBpbnQgaTsKPj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNs dWRlL2FzbS1hcm0vYWx0cDJtLmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL2FsdHAybS5oCj4+IGlu ZGV4IGRjNDFmOTMuLjlhZWI3ZDYgMTAwNjQ0Cj4+IC0tLSBhL3hlbi9pbmNsdWRlL2FzbS1hcm0v YWx0cDJtLmgKPj4gKysrIGIveGVuL2luY2x1ZGUvYXNtLWFybS9hbHRwMm0uaAo+PiBAQCAtODEs NCArODEsMTMgQEAgaW50IGFsdHAybV9zZXRfbWVtX2FjY2VzcyhzdHJ1Y3QgZG9tYWluICpkLAo+ PiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwMm1fYWNjZXNzX3QgYSwKPj4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgZ2ZuX3QgZ2ZuKTsKPj4KPj4gKy8qIFByb3BhZ2F0ZXMgY2hhbmdl cyBtYWRlIHRvIGhvc3RwMm0gdG8gYWZmZWN0ZWQgYWx0cDJtIHZpZXdzLiAqLwo+PiArdm9pZCBh bHRwMm1fcHJvcGFnYXRlX2NoYW5nZShzdHJ1Y3QgZG9tYWluICpkLAo+PiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBnZm5fdCBzZ2ZuLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1bnNpZ25lZCBsb25nIG5yLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt Zm5fdCBzbWZuLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBtYXNr LAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwMm1fdHlwZV90IHAybXQsCj4+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAybV9hY2Nlc3NfdCBwMm1hKTsKPj4gKwo+PiAg I2VuZGlmIC8qIF9fQVNNX0FSTV9BTFRQMk1fSCAqLwo+PiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1 ZGUvYXNtLWFybS9wMm0uaCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vcDJtLmgKPj4gaW5kZXggOTg1 OWFkMS4uNTkxODZjOSAxMDA2NDQKPj4gLS0tIGEveGVuL2luY2x1ZGUvYXNtLWFybS9wMm0uaAo+ PiArKysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL3AybS5oCj4+IEBAIC0xOTEsNiArMTkxLDExIEBA IGludCBtb2RpZnlfYWx0cDJtX2VudHJ5KHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdAo+PiBwMm1f ZG9tYWluICpwMm0sCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkcl90IGdwYSwgcGFk ZHJfdCBtYWRkciwgdW5zaWduZWQgaW50IGxldmVsLAo+PiAgICAgICAgICAgICAgICAgICAgICAg ICAgcDJtX3R5cGVfdCB0LCBwMm1fYWNjZXNzX3QgYSk7Cj4+Cj4+ICsvKiBNb2RpZnkgYW4gYWx0 cDJtIHZpZXcncyByYW5nZSBvZiBlbnRyaWVzIG9yIHRoZWlyIGF0dHJpYnV0ZXMuICovCj4+ICtp bnQgbW9kaWZ5X2FsdHAybV9yYW5nZShzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgcDJtX2RvbWFp biAqcDJtLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgZ2ZuX3Qgc2dmbiwgdW5zaWduZWQg bG9uZyBuciwgbWZuX3Qgc21mbiwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90 IG1hc2ssIHAybV90eXBlX3QgdCwgcDJtX2FjY2Vzc190IGEpOwo+PiArCj4+ICAvKiBDbGVhbiAm IGludmFsaWRhdGUgY2FjaGVzIGNvcnJlc3BvbmRpbmcgdG8gYSByZWdpb24gb2YgZ3Vlc3QKPj4g YWRkcmVzcyBzcGFjZSAqLwo+PiAgaW50IHAybV9jYWNoZV9mbHVzaChzdHJ1Y3QgZG9tYWluICpk LCBnZm5fdCBzdGFydCwgdW5zaWduZWQgbG9uZyBucik7Cj4+Cj4+Cj4KCgpCZXN0IHJlZ2FyZHMs Cn5TZXJnZWoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8v bGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK