From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andre Przywara Subject: Re: [PATCH v5 23/30] ARM: vITS: handle MAPTI command Date: Tue, 11 Apr 2017 17:15:30 +0100 Message-ID: References: <1491434362-30310-1-git-send-email-andre.przywara@arm.com> <1491434362-30310-24-git-send-email-andre.przywara@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 1cxyQ2-0000Gp-Px for xen-devel@lists.xenproject.org; Tue, 11 Apr 2017 16:13:26 +0000 In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Stefano Stabellini Cc: xen-devel@lists.xenproject.org, Julien Grall , Shanker Donthineni , Vijay Kilari List-Id: xen-devel@lists.xenproject.org SGksCgpPbiAwNi8wNC8xNyAwMTo0NSwgU3RlZmFubyBTdGFiZWxsaW5pIHdyb3RlOgo+IE9uIFRo dSwgNiBBcHIgMjAxNywgQW5kcmUgUHJ6eXdhcmEgd3JvdGU6Cj4+IFRoZSBNQVBUSSBjb21tYW5k cyBhc3NvY2lhdGVzIGEgRGV2aWNlSUQvRXZlbnRJRCBwYWlyIHdpdGggYSBMUEkvQ1BVCj4+IHBh aXIgYW5kIGFjdHVhbGx5IGluc3RhbnRpYXRlcyBMUEkgaW50ZXJydXB0cy4KPj4gV2UgY29ubmVj dCB0aGUgYWxyZWFkeSBhbGxvY2F0ZWQgaG9zdCBMUEkgdG8gdGhpcyB2aXJ0dWFsIExQSSwgc28g dGhhdAo+PiBhbnkgdHJpZ2dlcmluZyBMUEkgb24gdGhlIGhvc3QgY2FuIGJlIHF1aWNrbHkgZm9y d2FyZGVkIHRvIGEgZ3Vlc3QuCj4+IEJlc2lkZSBlbnRlcmluZyB0aGUgVkNQVSBhbmQgdGhlIHZp cnR1YWwgTFBJIG51bWJlciBpbiB0aGUgcmVzcGVjdGl2ZQo+PiBob3N0IExQSSBlbnRyeSwgd2Ug YWxzbyBpbml0aWFsaXplIGFuZCBhZGQgdGhlIGFscmVhZHkgYWxsb2NhdGVkCj4+IHN0cnVjdCBw ZW5kaW5nX2lycSB0byBvdXIgcmFkaXggdHJlZSwgc28gdGhhdCB3ZSBjYW4gbm93IGVhc2lseSBm aW5kIGl0Cj4+IGJ5IGl0cyB2aXJ0dWFsIExQSSBudW1iZXIuCj4+IFRvIGJlIGFibGUgdG8gbGF0 ZXIgZmluZCB0aGUgdGFyZ2V0dGluZyBWQ1BVIGZvciBhbnkgZ2l2ZW4gTFBJIHdpdGhvdXQKPj4g aGF2aW5nIHRvIHdhbGsgKmFsbCogSVRTIHRhYmxlcywgd2Ugc3RvcmUgdGhlIFZDUFUgSUQgaW4g dGhlIHBlbmRpbmdfaXJxCj4+IHN0cnVjdCBhcyB3ZWxsLgo+PiBUaGlzIGV4cG9ydHMgdGhlIHZn aWNfaW5pdF9wZW5kaW5nX2lycSgpIGZ1bmN0aW9uIHRvIGJlIGFibGUgdG8KPj4gaW5pdGlhbGl6 ZSBhIG5ldyBzdHJ1Y3QgcGVuZGluZ19pcnEuCj4+IEFzIHdyaXRlX2l0dGUoKSBpcyBub3cgZXZl bnR1YWxseSB1c2VkLCB3ZSBjYW4gbm93IGFkZCB0aGUgc3RhdGljIHRhZy4KPj4KPj4gU2lnbmVk LW9mZi1ieTogQW5kcmUgUHJ6eXdhcmEgPGFuZHJlLnByenl3YXJhQGFybS5jb20+Cj4+IC0tLQo+ PiAgeGVuL2FyY2gvYXJtL2dpYy12My1pdHMuYyAgICAgICAgfCA3NCArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwo+PiAgeGVuL2FyY2gvYXJtL2dpYy12My1scGkuYyAgICAg ICAgfCAxOCArKysrKysrKysrCj4+ICB4ZW4vYXJjaC9hcm0vdmdpYy12My1pdHMuYyAgICAgICB8 IDc2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KPj4gIHhlbi9hcmNo L2FybS92Z2ljLmMgICAgICAgICAgICAgIHwgIDIgKy0KPj4gIHhlbi9pbmNsdWRlL2FzbS1hcm0v Z2ljX3YzX2l0cy5oIHwgIDYgKysrKwo+PiAgeGVuL2luY2x1ZGUvYXNtLWFybS92Z2ljLmggICAg ICAgfCAgMiArKwo+PiAgNiBmaWxlcyBjaGFuZ2VkLCAxNzUgaW5zZXJ0aW9ucygrKSwgMyBkZWxl dGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9naWMtdjMtaXRzLmMgYi94 ZW4vYXJjaC9hcm0vZ2ljLXYzLWl0cy5jCj4+IGluZGV4IDc2YjAzMTYuLmQ5NzAxMTkgMTAwNjQ0 Cj4+IC0tLSBhL3hlbi9hcmNoL2FybS9naWMtdjMtaXRzLmMKPj4gKysrIGIveGVuL2FyY2gvYXJt L2dpYy12My1pdHMuYwo+PiBAQCAtNzc3LDYgKzc3Nyw4MCBAQCBvdXQ6Cj4+ICAgICAgcmV0dXJu IHJldDsKPj4gIH0KPj4gIAo+PiArLyogTXVzdCBiZSBjYWxsZWQgd2l0aCB0aGUgaXRzX2Rldmlj ZV9sb2NrIGhlbGQuICovCj4+ICtzdGF0aWMgc3RydWN0IGl0c19kZXZpY2VzICpnZXRfaXRzX2Rl dmljZShzdHJ1Y3QgZG9tYWluICpkLCBwYWRkcl90IHZkb29yYmVsbCwKPj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHZkZXZpZCkKPj4gK3sKPj4g KyAgICBzdHJ1Y3QgcmJfbm9kZSAqbm9kZSA9IGQtPmFyY2gudmdpYy5pdHNfZGV2aWNlcy5yYl9u b2RlOwo+PiArICAgIHN0cnVjdCBpdHNfZGV2aWNlcyAqZGV2Owo+PiArCj4+ICsgICAgQVNTRVJU KHNwaW5faXNfbG9ja2VkKCZkLT5hcmNoLnZnaWMuaXRzX2RldmljZXNfbG9jaykpOwo+PiArCj4+ ICsgICAgd2hpbGUgKG5vZGUpCj4+ICsgICAgewo+PiArICAgICAgICBpbnQgY21wOwo+PiArCj4+ ICsgICAgICAgIGRldiA9IHJiX2VudHJ5KG5vZGUsIHN0cnVjdCBpdHNfZGV2aWNlcywgcmJub2Rl KTsKPj4gKyAgICAgICAgY21wID0gY29tcGFyZV9pdHNfZ3Vlc3RfZGV2aWNlcyhkZXYsIHZkb29y YmVsbCwgdmRldmlkKTsKPj4gKwo+PiArICAgICAgICBpZiAoICFjbXAgKQo+PiArICAgICAgICAg ICAgcmV0dXJuIGRldjsKPj4gKwo+PiArICAgICAgICBpZiAoIGNtcCA+IDAgKQo+PiArICAgICAg ICAgICAgbm9kZSA9IG5vZGUtPnJiX2xlZnQ7Cj4+ICsgICAgICAgIGVsc2UKPj4gKyAgICAgICAg ICAgIG5vZGUgPSBub2RlLT5yYl9yaWdodDsKPj4gKyAgICB9Cj4+ICsKPj4gKyAgICByZXR1cm4g TlVMTDsKPj4gK30KPj4gKwo+PiArc3RhdGljIHVpbnQzMl90IGdldF9ob3N0X2xwaShzdHJ1Y3Qg aXRzX2RldmljZXMgKmRldiwgdWludDMyX3QgZXZlbnRpZCkKPj4gK3sKPj4gKyAgICB1aW50MzJf dCBob3N0X2xwaSA9IDA7Cj4+ICsKPj4gKyAgICBpZiAoIGRldiAmJiAoZXZlbnRpZCA8IGRldi0+ ZXZlbnRpZHMpICkKPj4gKyAgICAgICAgaG9zdF9scGkgPSBkZXYtPmhvc3RfbHBpX2Jsb2Nrc1tl dmVudGlkIC8gTFBJX0JMT0NLXSArCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoZXZlbnRpZCAlIExQSV9CTE9DSyk7Cj4+ICsKPj4gKyAgICByZXR1cm4gaG9zdF9s cGk7Cj4+ICt9Cj4+ICsKPj4gKy8qCj4+ICsgKiBDb25uZWN0cyB0aGUgZXZlbnQgSUQgZm9yIGFu IGFscmVhZHkgYXNzaWduZWQgZGV2aWNlIHRvIHRoZSBnaXZlbiBWQ1BVL3ZMUEkKPj4gKyAqIHBh aXIuIFRoZSBjb3JyZXNwb25kaW5nIHBoeXNpY2FsIExQSSBpcyBhbHJlYWR5IG1hcHBlZCBvbiB0 aGUgaG9zdCBzaWRlCj4+ICsgKiAod2hlbiBhc3NpZ25pbmcgdGhlIHBoeXNpY2FsIGRldmljZSB0 byB0aGUgZ3Vlc3QpLCBzbyB3ZSBqdXN0IGNvbm5lY3QgdGhlCj4+ICsgKiB0YXJnZXQgVkNQVS92 TFBJIHBhaXIgdG8gdGhhdCBpbnRlcnJ1cHQgdG8gaW5qZWN0IGl0IHByb3Blcmx5IGlmIGl0IGZp cmVzLgo+PiArICogUmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIGFscmVhZHkgYWxsb2NhdGVkIHN0 cnVjdCBwZW5kaW5nX2lycSB0aGF0IGlzCj4+ICsgKiBtZWFudCB0byBiZSB1c2VkIGJ5IHRoYXQg ZXZlbnQuCj4+ICsgKi8KPj4gK3N0cnVjdCBwZW5kaW5nX2lycSAqZ2ljdjNfYXNzaWduX2d1ZXN0 X2V2ZW50KHN0cnVjdCBkb21haW4gKmQsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBwYWRkcl90IHZkb29yYmVsbF9hZGRyZXNzLAo+PiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgdmRldmlkLCB1aW50 MzJfdCB2ZXZlbnRpZCwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cnVjdCB2Y3B1ICp2LCB1aW50MzJfdCB2aXJ0X2xwaSkKPj4gK3sKPj4gKyAgICBz dHJ1Y3QgaXRzX2RldmljZXMgKmRldjsKPj4gKyAgICBzdHJ1Y3QgcGVuZGluZ19pcnEgKnBpcnEg PSBOVUxMOwo+PiArICAgIHVpbnQzMl90IGhvc3RfbHBpID0gMDsKPj4gKwo+PiArICAgIHNwaW5f bG9jaygmZC0+YXJjaC52Z2ljLml0c19kZXZpY2VzX2xvY2spOwo+PiArICAgIGRldiA9IGdldF9p dHNfZGV2aWNlKGQsIHZkb29yYmVsbF9hZGRyZXNzLCB2ZGV2aWQpOwo+PiArICAgIGlmICggZGV2 ICkKPj4gKyAgICB7Cj4+ICsgICAgICAgIGhvc3RfbHBpID0gZ2V0X2hvc3RfbHBpKGRldiwgdmV2 ZW50aWQpOwo+PiArICAgICAgICBwaXJxID0gJmRldi0+cGVuZF9pcnFzW3ZldmVudGlkXTsKPj4g KyAgICB9Cj4+ICsgICAgc3Bpbl91bmxvY2soJmQtPmFyY2gudmdpYy5pdHNfZGV2aWNlc19sb2Nr KTsKPj4gKwo+PiArICAgIGlmICggIWhvc3RfbHBpIHx8ICFwaXJxICkKPj4gKyAgICAgICAgcmV0 dXJuIE5VTEw7Cj4+ICsKPj4gKyAgICBnaWN2M19scGlfdXBkYXRlX2hvc3RfZW50cnkoaG9zdF9s cGksIGQtPmRvbWFpbl9pZCwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdiA/ IHYtPnZjcHVfaWQgOiBJTlZBTElEX1ZDUFVfSUQsIHZpcnRfbHBpKTsKPj4gKwo+PiArICAgIHJl dHVybiBwaXJxOwo+PiArfQo+PiArCj4+ICAvKiBTY2FuIHRoZSBEVCBmb3IgYW55IElUUyBub2Rl cyBhbmQgY3JlYXRlIGEgbGlzdCBvZiBob3N0IElUU2VzIG91dCBvZiBpdC4gKi8KPj4gIHZvaWQg Z2ljdjNfaXRzX2R0X2luaXQoY29uc3Qgc3RydWN0IGR0X2RldmljZV9ub2RlICpub2RlKQo+PiAg ewo+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2dpYy12My1scGkuYyBiL3hlbi9hcmNoL2Fy bS9naWMtdjMtbHBpLmMKPj4gaW5kZXggN2QyMDk4Ni4uYzk5N2VkNSAxMDA2NDQKPj4gLS0tIGEv eGVuL2FyY2gvYXJtL2dpYy12My1scGkuYwo+PiArKysgYi94ZW4vYXJjaC9hcm0vZ2ljLXYzLWxw aS5jCj4+IEBAIC0yMTYsNiArMjE2LDI0IEBAIHZvaWQgZ2ljdjNfZG9fTFBJKHVuc2lnbmVkIGlu dCBscGkpCj4+ICAgICAgcmN1X3VubG9ja19kb21haW4oZCk7Cj4+ICB9Cj4+ICAKPj4gK3ZvaWQg Z2ljdjNfbHBpX3VwZGF0ZV9ob3N0X2VudHJ5KHVpbnQzMl90IGhvc3RfbHBpLCBpbnQgZG9tYWlu X2lkLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHZj cHVfaWQsIHVpbnQzMl90IHZpcnRfbHBpKQo+PiArewo+PiArICAgIHVuaW9uIGhvc3RfbHBpICpo bHBpcCwgaGxwaTsKPj4gKwo+PiArICAgIEFTU0VSVChob3N0X2xwaSA+PSBMUElfT0ZGU0VUKTsK Pj4gKwo+PiArICAgIGhvc3RfbHBpIC09IExQSV9PRkZTRVQ7Cj4+ICsKPj4gKyAgICBobHBpcCA9 ICZscGlfZGF0YS5ob3N0X2xwaXNbaG9zdF9scGkgLyBIT1NUX0xQSVNfUEVSX1BBR0VdW2hvc3Rf bHBpICUgSE9TVF9MUElTX1BFUl9QQUdFXTsKPj4gKwo+PiArICAgIGhscGkudmlydF9scGkgPSB2 aXJ0X2xwaTsKPj4gKyAgICBobHBpLmRvbV9pZCA9IGRvbWFpbl9pZDsKPj4gKyAgICBobHBpLnZj cHVfaWQgPSB2Y3B1X2lkOwo+PiArCj4+ICsgICAgd3JpdGVfdTY0X2F0b21pYygmaGxwaXAtPmRh dGEsIGhscGkuZGF0YSk7Cj4+ICt9Cj4+ICsKPj4gIHN0YXRpYyBpbnQgZ2ljdjNfbHBpX2FsbG9j YXRlX3BlbmR0YWJsZSh1aW50NjRfdCAqcmVnKQo+PiAgewo+PiAgICAgIHVpbnQ2NF90IHZhbDsK Pj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS92Z2ljLXYzLWl0cy5jIGIveGVuL2FyY2gvYXJt L3ZnaWMtdjMtaXRzLmMKPj4gaW5kZXggMDM3MmVkMC4uMDc5ZGQ0NCAxMDA2NDQKPj4gLS0tIGEv eGVuL2FyY2gvYXJtL3ZnaWMtdjMtaXRzLmMKPj4gKysrIGIveGVuL2FyY2gvYXJtL3ZnaWMtdjMt aXRzLmMKPj4gQEAgLTI3NSw4ICsyNzUsOCBAQCBzdGF0aWMgYm9vbCB3cml0ZV9pdHRlX2xvY2tl ZChzdHJ1Y3QgdmlydF9pdHMgKml0cywgdWludDMyX3QgZGV2aWQsCj4+ICAgKiBUaGlzIGZ1bmN0 aW9uIHRha2VzIGNhcmUgb2YgdGhlIGxvY2tpbmcgYnkgdGFraW5nIHRoZSBpdHNfbG9jayBpdHNl bGYsIHNvCj4+ICAgKiBhIGNhbGxlciBzaGFsbCBub3QgaG9sZCB0aGlzLiBCZWZvcmUgcmV0dXJu aW5nLCB0aGUgbG9jayBpcyBkcm9wcGVkIGFnYWluLgo+PiAgICovCj4+IC1ib29sIHdyaXRlX2l0 dGUoc3RydWN0IHZpcnRfaXRzICppdHMsIHVpbnQzMl90IGRldmlkLCB1aW50MzJfdCBldmlkLAo+ PiAtICAgICAgICAgICAgICAgIHVpbnQzMl90IGNvbGxpZCwgdWludDMyX3QgdmxwaSwgc3RydWN0 IHZjcHUgKip2Y3B1X3B0cikKPj4gK3N0YXRpYyBib29sIHdyaXRlX2l0dGUoc3RydWN0IHZpcnRf aXRzICppdHMsIHVpbnQzMl90IGRldmlkLCB1aW50MzJfdCBldmlkLAo+PiArICAgICAgICAgICAg ICAgICAgICAgICB1aW50MzJfdCBjb2xsaWQsIHVpbnQzMl90IHZscGksIHN0cnVjdCB2Y3B1ICoq dmNwdV9wdHIpCj4+ICB7Cj4+ICAgICAgYm9vbCByZXQ7Cj4+ICAKPj4gQEAgLTQ0MCw2ICs0NDAs NzQgQEAgc3RhdGljIGludCBpdHNfaGFuZGxlX21hcGQoc3RydWN0IHZpcnRfaXRzICppdHMsIHVp bnQ2NF90ICpjbWRwdHIpCj4+ICAgICAgcmV0dXJuIHJldDsKPj4gIH0KPj4gIAo+PiArc3RhdGlj IGludCBpdHNfaGFuZGxlX21hcHRpKHN0cnVjdCB2aXJ0X2l0cyAqaXRzLCB1aW50NjRfdCAqY21k cHRyKQo+PiArewo+PiArICAgIHVpbnQzMl90IGRldmlkID0gaXRzX2NtZF9nZXRfZGV2aWNlaWQo Y21kcHRyKTsKPj4gKyAgICB1aW50MzJfdCBldmVudGlkID0gaXRzX2NtZF9nZXRfaWQoY21kcHRy KTsKPj4gKyAgICB1aW50MzJfdCBpbnRpZCA9IGl0c19jbWRfZ2V0X3BoeXNpY2FsX2lkKGNtZHB0 ciksIF9pbnRpZDsKPj4gKyAgICB1aW50MTZfdCBjb2xsaWQgPSBpdHNfY21kX2dldF9jb2xsZWN0 aW9uKGNtZHB0cik7Cj4+ICsgICAgc3RydWN0IHBlbmRpbmdfaXJxICpwaXJxOwo+PiArICAgIHN0 cnVjdCB2Y3B1ICp2Y3B1ID0gTlVMTDsKPj4gKyAgICBpbnQgcmV0ID0gMDsKPj4gKwo+PiArICAg IGlmICggaXRzX2NtZF9nZXRfY29tbWFuZChjbWRwdHIpID09IEdJVFNfQ01EX01BUEkgKQo+PiAr ICAgICAgICBpbnRpZCA9IGV2ZW50aWQ7Cj4+ICsKPj4gKyAgICBzcGluX2xvY2soJml0cy0+aXRz X2xvY2spOwo+PiArICAgIC8qCj4+ICsgICAgICogQ2hlY2sgd2hldGhlciB0aGVyZSBpcyBhIHZh bGlkIGV4aXN0aW5nIG1hcHBpbmcuIElmIHllcywgYmVoYXZpb3IgaXMKPj4gKyAgICAgKiB1bnBy ZWRpY3RhYmxlLCB3ZSBjaG9vc2UgdG8gaWdub3JlIHRoaXMgY29tbWFuZCBoZXJlLgo+PiArICAg ICAqIFRoaXMgbWFrZXMgc3VyZSB3ZSBzdGFydCB3aXRoIGEgcHJpc3RpbmUgcGVuZGluZ19pcnEg YmVsb3cuCj4+ICsgICAgICovCj4+ICsgICAgaWYgKCByZWFkX2l0dGVfbG9ja2VkKGl0cywgZGV2 aWQsIGV2ZW50aWQsICZ2Y3B1LCAmX2ludGlkKSAmJgo+PiArICAgICAgICAgX2ludGlkICE9IElO VkFMSURfTFBJICkKPj4gKyAgICB7Cj4+ICsgICAgICAgIHNwaW5fdW5sb2NrKCZpdHMtPml0c19s b2NrKTsKPj4gKyAgICAgICAgcmV0dXJuIC0xOwo+PiArICAgIH0KPj4gKwo+PiArICAgIC8qIEVu dGVyIHRoZSBtYXBwaW5nIGluIG91ciB2aXJ0dWFsIElUUyB0YWJsZXMuICovCj4+ICsgICAgaWYg KCAhd3JpdGVfaXR0ZV9sb2NrZWQoaXRzLCBkZXZpZCwgZXZlbnRpZCwgY29sbGlkLCBpbnRpZCwg JnZjcHUpICkKPj4gKyAgICB7Cj4+ICsgICAgICAgIHNwaW5fdW5sb2NrKCZpdHMtPml0c19sb2Nr KTsKPj4gKyAgICAgICAgcmV0dXJuIC0xOwo+PiArICAgIH0KPj4gKwo+PiArICAgIHNwaW5fdW5s b2NrKCZpdHMtPml0c19sb2NrKTsKPj4gKwo+PiArICAgIC8qCj4+ICsgICAgICogQ29ubmVjdCB0 aGlzIHZpcnR1YWwgTFBJIHRvIHRoZSBjb3JyZXNwb25kaW5nIGhvc3QgTFBJLCB3aGljaCBpcwo+ PiArICAgICAqIGRldGVybWluZWQgYnkgdGhlIHNhbWUgZGV2aWNlIElEIGFuZCBldmVudCBJRCBv biB0aGUgaG9zdCBzaWRlLgo+PiArICAgICAqIFRoaXMgcmV0dXJucyB1cyB0aGUgY29ycmVzcG9u ZGluZywgc3RpbGwgdW51c2VkIHBlbmRpbmdfaXJxLgo+PiArICAgICAqLwo+PiArICAgIHBpcnEg PSBnaWN2M19hc3NpZ25fZ3Vlc3RfZXZlbnQoaXRzLT5kLCBpdHMtPmRvb3JiZWxsX2FkZHJlc3Ms Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXZpZCwgZXZlbnRpZCwg dmNwdSwgaW50aWQpOwo+PiArICAgIGlmICggIXBpcnEgKQo+PiArICAgICAgICByZXR1cm4gLTE7 Cj4+ICsKPj4gKyAgICB2Z2ljX2luaXRfcGVuZGluZ19pcnEocGlycSwgaW50aWQpOwo+PiArCj4+ ICsgICAgLyoKPj4gKyAgICAgKiBOb3cgcmVhZCB0aGUgZ3Vlc3QncyBwcm9wZXJ0eSB0YWJsZSB0 byBpbml0aWFsaXplIG91ciBjYWNoZWQgc3RhdGUuCj4+ICsgICAgICogSXQgY2FuJ3QgZmlyZSBh dCB0aGlzIHRpbWUsIGJlY2F1c2UgaXQgaXMgbm90IGtub3duIHRvIHRoZSBob3N0IHlldC4KPj4g KyAgICAgKi8KPj4gKyAgICByZXQgPSB1cGRhdGVfbHBpX3Byb3BlcnR5KGl0cy0+ZCwgaW50aWQs IHBpcnEpOwo+PiArICAgIGlmICggcmV0ICkKPj4gKyAgICAgICAgcmV0dXJuIHJldDsKPj4gKwo+ PiArICAgIHBpcnEtPnZjcHVfaWQgPSB2Y3B1LT52Y3B1X2lkOwo+PiArCj4+ICsgICAgLyoKPj4g KyAgICAgKiBOb3cgaW5zZXJ0IHRoZSBwZW5kaW5nX2lycSBpbnRvIHRoZSBkb21haW4ncyBMUEkg dHJlZSwgc28gdGhhdAo+PiArICAgICAqIGl0IGJlY29tZXMgbGl2ZS4KPj4gKyAgICAgKi8KPj4g KyAgICB3cml0ZV9sb2NrKCZpdHMtPmQtPmFyY2gudmdpYy5wZW5kX2xwaV90cmVlX2xvY2spOwo+ PiArICAgIHJhZGl4X3RyZWVfaW5zZXJ0KCZpdHMtPmQtPmFyY2gudmdpYy5wZW5kX2xwaV90cmVl LCBpbnRpZCwgcGlycSk7Cj4+ICsgICAgd3JpdGVfdW5sb2NrKCZpdHMtPmQtPmFyY2gudmdpYy5w ZW5kX2xwaV90cmVlX2xvY2spOwo+IAo+IEl0IGxvb2tzIGxpa2UgdGhlIHdob2xlIGFsbG9jYXRp b24sIHN0YXJ0aW5nIGZyb20KPiBnaWN2M19hc3NpZ25fZ3Vlc3RfZXZlbnQsIG5lZWRzIHRvIGJl IHByb3RlY3RlZCBieSBwZW5kX2xwaV90cmVlX2xvY2suCj4gT3RoZXJ3aXNlIHdlIHJpc2sgYWxs b2NhdGluZyB0aGUgc2FtZSBzdHJ1Y3QgdHdpY2U/IE9yIHRoYXQgaXMgbm90Cj4gcG9zc2libGUg dGhhbmtzIHRvIHRoZSB2Y21kX2xvY2sgKGJlY2F1c2UgZm9yIHR3byBzdHJ1Y3QgcGVuZGluZ19p cnEgdG8KPiBjbGFzaCB0aGV5IG5lZWQgdG8gYmVsb25nIHRvIHRoZSBzYW1lIHZpdHMpPwoKWWVz LCB0aGUgcGVuZGluZ19pcnEncyBhcmUgYWxsb2NhdGVkIG9uIE1BUEQsIHdoaWNoIHVzZXMgYW4g SVRTIGFuZCBhCmRldmljZSBJRCwgc28gdGhpcyBpcyB1bmlxdWUuIFdlIGhvbGQgdGhlIHZjbWRf bG9jaywgc28gdGhlcmUgY2FuJ3QgYmUKYW5vdGhlciBjb21tYW5kIGhhbmRsZXIgb24gdGhpcyBJ VFMuCgpOZXZlcnRoZWxlc3MgSSBhZGRlZCBzb21lIGxpbmVzIHRvIGNoZWNrIHRoZSByZXR1cm4g dmFsdWUgb2YKcmFkaXhfdHJlZV9pbnNlcnQsIHNvIHdlIGRlYWwgd2l0aCBhbnkgZXJyb3IgaGVy ZSBhbmQgcm9sbGJhY2sgdGhlIGFib3ZlCmFjdGlvbnMgaWYgdGhhdCBmYWlscyBiZWNhdXNlIG9m IEVOT01FTSBvciBFRVhJU1RTLgoKQ2hlZXJzLApBbmRyZS4KCj4+ICsgICAgcmV0dXJuIDA7Cj4+ ICt9Cj4+ICsKPj4gICNkZWZpbmUgSVRTX0NNRF9CVUZGRVJfU0laRShiYXNlcikgICAgICAoKCgo YmFzZXIpICYgMHhmZikgKyAxKSA8PCAxMikKPj4gIAo+PiAgLyoKPj4gQEAgLTQ4MCw2ICs1NDgs MTAgQEAgc3RhdGljIGludCB2Z2ljX2l0c19oYW5kbGVfY21kcyhzdHJ1Y3QgZG9tYWluICpkLCBz dHJ1Y3QgdmlydF9pdHMgKml0cykKPj4gICAgICAgICAgY2FzZSBHSVRTX0NNRF9NQVBEOgo+PiAg ICAgICAgICAgICAgcmV0ID0gaXRzX2hhbmRsZV9tYXBkKGl0cywgY29tbWFuZCk7Cj4+ICAgICAg ICAgICAgICBicmVhazsKPj4gKyAgICAgICAgY2FzZSBHSVRTX0NNRF9NQVBJOgo+PiArICAgICAg ICBjYXNlIEdJVFNfQ01EX01BUFRJOgo+PiArICAgICAgICAgICAgcmV0ID0gaXRzX2hhbmRsZV9t YXB0aShpdHMsIGNvbW1hbmQpOwo+PiArICAgICAgICAgICAgYnJlYWs7Cj4+ICAgICAgICAgIGNh c2UgR0lUU19DTURfU1lOQzoKPj4gICAgICAgICAgICAgIC8qIFdlIGhhbmRsZSBJVFMgY29tbWFu ZHMgc3luY2hyb25vdXNseSwgc28gd2UgaWdub3JlIFNZTkMuICovCj4+ICAgICAgICAgICAgICBi cmVhazsKPj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS92Z2ljLmMgYi94ZW4vYXJjaC9hcm0v dmdpYy5jCj4+IGluZGV4IDliMGRjM2QuLmNiMTY2NmIgMTAwNjQ0Cj4+IC0tLSBhL3hlbi9hcmNo L2FybS92Z2ljLmMKPj4gKysrIGIveGVuL2FyY2gvYXJtL3ZnaWMuYwo+PiBAQCAtNjEsNyArNjEs NyBAQCBzdHJ1Y3QgdmdpY19pcnFfcmFuayAqdmdpY19yYW5rX2lycShzdHJ1Y3QgdmNwdSAqdiwg dW5zaWduZWQgaW50IGlycSkKPj4gICAgICByZXR1cm4gdmdpY19nZXRfcmFuayh2LCByYW5rKTsK Pj4gIH0KPj4gIAo+PiAtc3RhdGljIHZvaWQgdmdpY19pbml0X3BlbmRpbmdfaXJxKHN0cnVjdCBw ZW5kaW5nX2lycSAqcCwgdW5zaWduZWQgaW50IHZpcnEpCj4+ICt2b2lkIHZnaWNfaW5pdF9wZW5k aW5nX2lycShzdHJ1Y3QgcGVuZGluZ19pcnEgKnAsIHVuc2lnbmVkIGludCB2aXJxKQo+PiAgewo+ PiAgICAgIElOSVRfTElTVF9IRUFEKCZwLT5pbmZsaWdodCk7Cj4+ICAgICAgSU5JVF9MSVNUX0hF QUQoJnAtPmxyX3F1ZXVlKTsKPj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vZ2lj X3YzX2l0cy5oIGIveGVuL2luY2x1ZGUvYXNtLWFybS9naWNfdjNfaXRzLmgKPj4gaW5kZXggZDNm MzkzZi4uMzBhYTFlZiAxMDA2NDQKPj4gLS0tIGEveGVuL2luY2x1ZGUvYXNtLWFybS9naWNfdjNf aXRzLmgKPj4gKysrIGIveGVuL2luY2x1ZGUvYXNtLWFybS9naWNfdjNfaXRzLmgKPj4gQEAgLTE3 NCw2ICsxNzQsMTIgQEAgaW50IGdpY3YzX2l0c19tYXBfZ3Vlc3RfZGV2aWNlKHN0cnVjdCBkb21h aW4gKmQsCj4+ICBpbnQgZ2ljdjNfYWxsb2NhdGVfaG9zdF9scGlfYmxvY2soc3RydWN0IGRvbWFp biAqZCwgdWludDMyX3QgKmZpcnN0X2xwaSk7Cj4+ICB2b2lkIGdpY3YzX2ZyZWVfaG9zdF9scGlf YmxvY2sodWludDMyX3QgZmlyc3RfbHBpKTsKPj4gIAo+PiArc3RydWN0IHBlbmRpbmdfaXJxICpn aWN2M19hc3NpZ25fZ3Vlc3RfZXZlbnQoc3RydWN0IGRvbWFpbiAqZCwgcGFkZHJfdCBkb29yYmVs bCwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQz Ml90IGRldmlkLCB1aW50MzJfdCBldmVudGlkLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHZjcHUgKnYsIHVpbnQzMl90IHZpcnRfbHBpKTsK Pj4gK3ZvaWQgZ2ljdjNfbHBpX3VwZGF0ZV9ob3N0X2VudHJ5KHVpbnQzMl90IGhvc3RfbHBpLCBp bnQgZG9tYWluX2lkLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu ZWQgaW50IHZjcHVfaWQsIHVpbnQzMl90IHZpcnRfbHBpKTsKPj4gKwo+PiAgI2Vsc2UKPj4gIAo+ PiAgc3RhdGljIExJU1RfSEVBRChob3N0X2l0c19saXN0KTsKPj4gZGlmZiAtLWdpdCBhL3hlbi9p bmNsdWRlL2FzbS1hcm0vdmdpYy5oIGIveGVuL2luY2x1ZGUvYXNtLWFybS92Z2ljLmgKPj4gaW5k ZXggMjM3MTk2MC4uMDc0YWZlNCAxMDA2NDQKPj4gLS0tIGEveGVuL2luY2x1ZGUvYXNtLWFybS92 Z2ljLmgKPj4gKysrIGIveGVuL2luY2x1ZGUvYXNtLWFybS92Z2ljLmgKPj4gQEAgLTgzLDYgKzgz LDcgQEAgc3RydWN0IHBlbmRpbmdfaXJxCj4+ICAgICAgICogVE9ETzogd2hlbiBpbXBsZW1lbnRp bmcgaXJxIG1pZ3JhdGlvbiwgdGFraW5nIG9ubHkgdGhlIGN1cnJlbnQKPj4gICAgICAgKiB2Z2lj IGxvY2sgaXMgbm90IGdvaW5nIHRvIGJlIGVub3VnaC4gKi8KPj4gICAgICBzdHJ1Y3QgbGlzdF9o ZWFkIGxyX3F1ZXVlOwo+PiArICAgIHVpbnQxNl90IHZjcHVfaWQ7ICAgICAgICAgIC8qIFRoZSBW Q1BVIGZvciBhbiBMUEkuICovCj4+ICB9Owo+PiAgCj4+ICAjZGVmaW5lIE5SX0lOVEVSUlVQVF9Q RVJfUkFOSyAgIDMyCj4+IEBAIC0zMDMsNiArMzA0LDcgQEAgZXh0ZXJuIHN0cnVjdCB2Y3B1ICp2 Z2ljX2dldF90YXJnZXRfdmNwdShzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgaW50IHZpcnEpOwo+ PiAgZXh0ZXJuIHZvaWQgdmdpY192Y3B1X2luamVjdF9pcnEoc3RydWN0IHZjcHUgKnYsIHVuc2ln bmVkIGludCB2aXJxKTsKPj4gIGV4dGVybiB2b2lkIHZnaWNfdmNwdV9pbmplY3Rfc3BpKHN0cnVj dCBkb21haW4gKmQsIHVuc2lnbmVkIGludCB2aXJxKTsKPj4gIGV4dGVybiB2b2lkIHZnaWNfY2xl YXJfcGVuZGluZ19pcnFzKHN0cnVjdCB2Y3B1ICp2KTsKPj4gK2V4dGVybiB2b2lkIHZnaWNfaW5p dF9wZW5kaW5nX2lycShzdHJ1Y3QgcGVuZGluZ19pcnEgKnAsIHVuc2lnbmVkIGludCB2aXJxKTsK Pj4gIGV4dGVybiBzdHJ1Y3QgcGVuZGluZ19pcnEgKmlycV90b19wZW5kaW5nKHN0cnVjdCB2Y3B1 ICp2LCB1bnNpZ25lZCBpbnQgaXJxKTsKPj4gIGV4dGVybiBzdHJ1Y3QgcGVuZGluZ19pcnEgKnNw aV90b19wZW5kaW5nKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBpcnEpOwo+PiAgZXh0 ZXJuIHN0cnVjdCB2Z2ljX2lycV9yYW5rICp2Z2ljX3Jhbmtfb2Zmc2V0KHN0cnVjdCB2Y3B1ICp2 LCBpbnQgYiwgaW50IG4sIGludCBzKTsKPj4gLS0gCj4+IDIuOC4yCj4+CgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0 Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK