From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [PATCH v5 23/30] ARM: vITS: handle MAPTI command Date: Fri, 7 Apr 2017 13:53:16 +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"; Format="flowed" 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 1cwTOD-0000ma-3R for xen-devel@lists.xenproject.org; Fri, 07 Apr 2017 12:53:21 +0000 In-Reply-To: <1491434362-30310-24-git-send-email-andre.przywara@arm.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Andre Przywara , Stefano Stabellini Cc: xen-devel@lists.xenproject.org, Shanker Donthineni , Vijay Kilari List-Id: xen-devel@lists.xenproject.org SGkgQW5kcmUsCgpPbiAwNi8wNC8xNyAwMDoxOSwgQW5kcmUgUHJ6eXdhcmEgd3JvdGU6Cj4gVGhl IE1BUFRJIGNvbW1hbmRzIGFzc29jaWF0ZXMgYSBEZXZpY2VJRC9FdmVudElEIHBhaXIgd2l0aCBh IExQSS9DUFUKPiBwYWlyIGFuZCBhY3R1YWxseSBpbnN0YW50aWF0ZXMgTFBJIGludGVycnVwdHMu Cj4gV2UgY29ubmVjdCB0aGUgYWxyZWFkeSBhbGxvY2F0ZWQgaG9zdCBMUEkgdG8gdGhpcyB2aXJ0 dWFsIExQSSwgc28gdGhhdAo+IGFueSB0cmlnZ2VyaW5nIExQSSBvbiB0aGUgaG9zdCBjYW4gYmUg cXVpY2tseSBmb3J3YXJkZWQgdG8gYSBndWVzdC4KPiBCZXNpZGUgZW50ZXJpbmcgdGhlIFZDUFUg YW5kIHRoZSB2aXJ0dWFsIExQSSBudW1iZXIgaW4gdGhlIHJlc3BlY3RpdmUKPiBob3N0IExQSSBl bnRyeSwgd2UgYWxzbyBpbml0aWFsaXplIGFuZCBhZGQgdGhlIGFscmVhZHkgYWxsb2NhdGVkCj4g c3RydWN0IHBlbmRpbmdfaXJxIHRvIG91ciByYWRpeCB0cmVlLCBzbyB0aGF0IHdlIGNhbiBub3cg ZWFzaWx5IGZpbmQgaXQKPiBieSBpdHMgdmlydHVhbCBMUEkgbnVtYmVyLgo+IFRvIGJlIGFibGUg dG8gbGF0ZXIgZmluZCB0aGUgdGFyZ2V0dGluZyBWQ1BVIGZvciBhbnkgZ2l2ZW4gTFBJIHdpdGhv dXQKPiBoYXZpbmcgdG8gd2FsayAqYWxsKiBJVFMgdGFibGVzLCB3ZSBzdG9yZSB0aGUgVkNQVSBJ RCBpbiB0aGUgcGVuZGluZ19pcnEKPiBzdHJ1Y3QgYXMgd2VsbC4KPiBUaGlzIGV4cG9ydHMgdGhl IHZnaWNfaW5pdF9wZW5kaW5nX2lycSgpIGZ1bmN0aW9uIHRvIGJlIGFibGUgdG8KPiBpbml0aWFs aXplIGEgbmV3IHN0cnVjdCBwZW5kaW5nX2lycS4KPiBBcyB3cml0ZV9pdHRlKCkgaXMgbm93IGV2 ZW50dWFsbHkgdXNlZCwgd2UgY2FuIG5vdyBhZGQgdGhlIHN0YXRpYyB0YWcuCj4KPiBTaWduZWQt b2ZmLWJ5OiBBbmRyZSBQcnp5d2FyYSA8YW5kcmUucHJ6eXdhcmFAYXJtLmNvbT4KPiAtLS0KPiAg eGVuL2FyY2gvYXJtL2dpYy12My1pdHMuYyAgICAgICAgfCA3NCArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwo+ICB4ZW4vYXJjaC9hcm0vZ2ljLXYzLWxwaS5jICAgICAgICB8 IDE4ICsrKysrKysrKysKPiAgeGVuL2FyY2gvYXJtL3ZnaWMtdjMtaXRzLmMgICAgICAgfCA3NiAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCj4gIHhlbi9hcmNoL2FybS92 Z2ljLmMgICAgICAgICAgICAgIHwgIDIgKy0KPiAgeGVuL2luY2x1ZGUvYXNtLWFybS9naWNfdjNf aXRzLmggfCAgNiArKysrCj4gIHhlbi9pbmNsdWRlL2FzbS1hcm0vdmdpYy5oICAgICAgIHwgIDIg KysKPiAgNiBmaWxlcyBjaGFuZ2VkLCAxNzUgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkK Pgo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZ2ljLXYzLWl0cy5jIGIveGVuL2FyY2gvYXJt L2dpYy12My1pdHMuYwo+IGluZGV4IDc2YjAzMTYuLmQ5NzAxMTkgMTAwNjQ0Cj4gLS0tIGEveGVu L2FyY2gvYXJtL2dpYy12My1pdHMuYwo+ICsrKyBiL3hlbi9hcmNoL2FybS9naWMtdjMtaXRzLmMK PiBAQCAtNzc3LDYgKzc3Nyw4MCBAQCBvdXQ6Cj4gICAgICByZXR1cm4gcmV0Owo+ICB9Cj4KPiAr LyogTXVzdCBiZSBjYWxsZWQgd2l0aCB0aGUgaXRzX2RldmljZV9sb2NrIGhlbGQuICovCj4gK3N0 YXRpYyBzdHJ1Y3QgaXRzX2RldmljZXMgKmdldF9pdHNfZGV2aWNlKHN0cnVjdCBkb21haW4gKmQs IHBhZGRyX3QgdmRvb3JiZWxsLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1aW50MzJfdCB2ZGV2aWQpCj4gK3sKPiArICAgIHN0cnVjdCByYl9ub2RlICpub2Rl ID0gZC0+YXJjaC52Z2ljLml0c19kZXZpY2VzLnJiX25vZGU7Cj4gKyAgICBzdHJ1Y3QgaXRzX2Rl dmljZXMgKmRldjsKPiArCj4gKyAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoJmQtPmFyY2gudmdp Yy5pdHNfZGV2aWNlc19sb2NrKSk7Cj4gKwo+ICsgICAgd2hpbGUgKG5vZGUpCj4gKyAgICB7Cj4g KyAgICAgICAgaW50IGNtcDsKPiArCj4gKyAgICAgICAgZGV2ID0gcmJfZW50cnkobm9kZSwgc3Ry dWN0IGl0c19kZXZpY2VzLCByYm5vZGUpOwo+ICsgICAgICAgIGNtcCA9IGNvbXBhcmVfaXRzX2d1 ZXN0X2RldmljZXMoZGV2LCB2ZG9vcmJlbGwsIHZkZXZpZCk7Cj4gKwo+ICsgICAgICAgIGlmICgg IWNtcCApCj4gKyAgICAgICAgICAgIHJldHVybiBkZXY7Cj4gKwo+ICsgICAgICAgIGlmICggY21w ID4gMCApCj4gKyAgICAgICAgICAgIG5vZGUgPSBub2RlLT5yYl9sZWZ0Owo+ICsgICAgICAgIGVs c2UKPiArICAgICAgICAgICAgbm9kZSA9IG5vZGUtPnJiX3JpZ2h0Owo+ICsgICAgfQo+ICsKPiAr ICAgIHJldHVybiBOVUxMOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdWludDMyX3QgZ2V0X2hvc3RfbHBp KHN0cnVjdCBpdHNfZGV2aWNlcyAqZGV2LCB1aW50MzJfdCBldmVudGlkKQo+ICt7Cj4gKyAgICB1 aW50MzJfdCBob3N0X2xwaSA9IDA7Cj4gKwo+ICsgICAgaWYgKCBkZXYgJiYgKGV2ZW50aWQgPCBk ZXYtPmV2ZW50aWRzKSApCj4gKyAgICAgICAgaG9zdF9scGkgPSBkZXYtPmhvc3RfbHBpX2Jsb2Nr c1tldmVudGlkIC8gTFBJX0JMT0NLXSArCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChldmVudGlkICUgTFBJX0JMT0NLKTsKPiArCj4gKyAgICByZXR1cm4gaG9zdF9s cGk7Cj4gK30KPiArCj4gKy8qCj4gKyAqIENvbm5lY3RzIHRoZSBldmVudCBJRCBmb3IgYW4gYWxy ZWFkeSBhc3NpZ25lZCBkZXZpY2UgdG8gdGhlIGdpdmVuIFZDUFUvdkxQSQo+ICsgKiBwYWlyLiBU aGUgY29ycmVzcG9uZGluZyBwaHlzaWNhbCBMUEkgaXMgYWxyZWFkeSBtYXBwZWQgb24gdGhlIGhv c3Qgc2lkZQo+ICsgKiAod2hlbiBhc3NpZ25pbmcgdGhlIHBoeXNpY2FsIGRldmljZSB0byB0aGUg Z3Vlc3QpLCBzbyB3ZSBqdXN0IGNvbm5lY3QgdGhlCj4gKyAqIHRhcmdldCBWQ1BVL3ZMUEkgcGFp ciB0byB0aGF0IGludGVycnVwdCB0byBpbmplY3QgaXQgcHJvcGVybHkgaWYgaXQgZmlyZXMuCj4g KyAqIFJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBhbHJlYWR5IGFsbG9jYXRlZCBzdHJ1Y3QgcGVu ZGluZ19pcnEgdGhhdCBpcwo+ICsgKiBtZWFudCB0byBiZSB1c2VkIGJ5IHRoYXQgZXZlbnQuCj4g KyAqLwo+ICtzdHJ1Y3QgcGVuZGluZ19pcnEgKmdpY3YzX2Fzc2lnbl9ndWVzdF9ldmVudChzdHJ1 Y3QgZG9tYWluICpkLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwYWRkcl90IHZkb29yYmVsbF9hZGRyZXNzLAo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCB2ZGV2aWQsIHVpbnQzMl90IHZldmVudGlk LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg dmNwdSAqdiwgdWludDMyX3QgdmlydF9scGkpCj4gK3sKPiArICAgIHN0cnVjdCBpdHNfZGV2aWNl cyAqZGV2Owo+ICsgICAgc3RydWN0IHBlbmRpbmdfaXJxICpwaXJxID0gTlVMTDsKPiArICAgIHVp bnQzMl90IGhvc3RfbHBpID0gMDsKPiArCj4gKyAgICBzcGluX2xvY2soJmQtPmFyY2gudmdpYy5p dHNfZGV2aWNlc19sb2NrKTsKPiArICAgIGRldiA9IGdldF9pdHNfZGV2aWNlKGQsIHZkb29yYmVs bF9hZGRyZXNzLCB2ZGV2aWQpOwo+ICsgICAgaWYgKCBkZXYgKQo+ICsgICAgewo+ICsgICAgICAg IGhvc3RfbHBpID0gZ2V0X2hvc3RfbHBpKGRldiwgdmV2ZW50aWQpOwo+ICsgICAgICAgIHBpcnEg PSAmZGV2LT5wZW5kX2lycXNbdmV2ZW50aWRdOwo+ICsgICAgfQo+ICsgICAgc3Bpbl91bmxvY2so JmQtPmFyY2gudmdpYy5pdHNfZGV2aWNlc19sb2NrKTsKPiArCj4gKyAgICBpZiAoICFob3N0X2xw aSB8fCAhcGlycSApCgpIb3cgcGlycSBjb3VsZCBiZSBOVUxMIGlmIGhvc3RfbHBpIGlzIHNldD8K Cj4gKyAgICAgICAgcmV0dXJuIE5VTEw7Cj4gKwo+ICsgICAgZ2ljdjNfbHBpX3VwZGF0ZV9ob3N0 X2VudHJ5KGhvc3RfbHBpLCBkLT5kb21haW5faWQsCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdiA/IHYtPnZjcHVfaWQgOiBJTlZBTElEX1ZDUFVfSUQsIHZpcnRfbHBpKTsKPiAr Cj4gKyAgICByZXR1cm4gcGlycTsKPiArfQo+ICsKPiAgLyogU2NhbiB0aGUgRFQgZm9yIGFueSBJ VFMgbm9kZXMgYW5kIGNyZWF0ZSBhIGxpc3Qgb2YgaG9zdCBJVFNlcyBvdXQgb2YgaXQuICovCj4g IHZvaWQgZ2ljdjNfaXRzX2R0X2luaXQoY29uc3Qgc3RydWN0IGR0X2RldmljZV9ub2RlICpub2Rl KQo+ICB7Cj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9naWMtdjMtbHBpLmMgYi94ZW4vYXJj aC9hcm0vZ2ljLXYzLWxwaS5jCj4gaW5kZXggN2QyMDk4Ni4uYzk5N2VkNSAxMDA2NDQKPiAtLS0g YS94ZW4vYXJjaC9hcm0vZ2ljLXYzLWxwaS5jCj4gKysrIGIveGVuL2FyY2gvYXJtL2dpYy12My1s cGkuYwo+IEBAIC0yMTYsNiArMjE2LDI0IEBAIHZvaWQgZ2ljdjNfZG9fTFBJKHVuc2lnbmVkIGlu dCBscGkpCj4gICAgICByY3VfdW5sb2NrX2RvbWFpbihkKTsKPiAgfQo+Cj4gK3ZvaWQgZ2ljdjNf bHBpX3VwZGF0ZV9ob3N0X2VudHJ5KHVpbnQzMl90IGhvc3RfbHBpLCBpbnQgZG9tYWluX2lkLAo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgdmNwdV9pZCwg dWludDMyX3QgdmlydF9scGkpCj4gK3sKPiArICAgIHVuaW9uIGhvc3RfbHBpICpobHBpcCwgaGxw aTsKPiArCj4gKyAgICBBU1NFUlQoaG9zdF9scGkgPj0gTFBJX09GRlNFVCk7Cj4gKwo+ICsgICAg aG9zdF9scGkgLT0gTFBJX09GRlNFVDsKPiArCj4gKyAgICBobHBpcCA9ICZscGlfZGF0YS5ob3N0 X2xwaXNbaG9zdF9scGkgLyBIT1NUX0xQSVNfUEVSX1BBR0VdW2hvc3RfbHBpICUgSE9TVF9MUElT X1BFUl9QQUdFXTsKPiArCj4gKyAgICBobHBpLnZpcnRfbHBpID0gdmlydF9scGk7Cj4gKyAgICBo bHBpLmRvbV9pZCA9IGRvbWFpbl9pZDsKPiArICAgIGhscGkudmNwdV9pZCA9IHZjcHVfaWQ7Cj4g Kwo+ICsgICAgd3JpdGVfdTY0X2F0b21pYygmaGxwaXAtPmRhdGEsIGhscGkuZGF0YSk7Cj4gK30K PiArCj4gIHN0YXRpYyBpbnQgZ2ljdjNfbHBpX2FsbG9jYXRlX3BlbmR0YWJsZSh1aW50NjRfdCAq cmVnKQo+ICB7Cj4gICAgICB1aW50NjRfdCB2YWw7Cj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2Fy bS92Z2ljLXYzLWl0cy5jIGIveGVuL2FyY2gvYXJtL3ZnaWMtdjMtaXRzLmMKPiBpbmRleCAwMzcy ZWQwLi4wNzlkZDQ0IDEwMDY0NAo+IC0tLSBhL3hlbi9hcmNoL2FybS92Z2ljLXYzLWl0cy5jCj4g KysrIGIveGVuL2FyY2gvYXJtL3ZnaWMtdjMtaXRzLmMKPiBAQCAtMjc1LDggKzI3NSw4IEBAIHN0 YXRpYyBib29sIHdyaXRlX2l0dGVfbG9ja2VkKHN0cnVjdCB2aXJ0X2l0cyAqaXRzLCB1aW50MzJf dCBkZXZpZCwKPiAgICogVGhpcyBmdW5jdGlvbiB0YWtlcyBjYXJlIG9mIHRoZSBsb2NraW5nIGJ5 IHRha2luZyB0aGUgaXRzX2xvY2sgaXRzZWxmLCBzbwo+ICAgKiBhIGNhbGxlciBzaGFsbCBub3Qg aG9sZCB0aGlzLiBCZWZvcmUgcmV0dXJuaW5nLCB0aGUgbG9jayBpcyBkcm9wcGVkIGFnYWluLgo+ ICAgKi8KPiAtYm9vbCB3cml0ZV9pdHRlKHN0cnVjdCB2aXJ0X2l0cyAqaXRzLCB1aW50MzJfdCBk ZXZpZCwgdWludDMyX3QgZXZpZCwKPiAtICAgICAgICAgICAgICAgIHVpbnQzMl90IGNvbGxpZCwg dWludDMyX3QgdmxwaSwgc3RydWN0IHZjcHUgKip2Y3B1X3B0cikKPiArc3RhdGljIGJvb2wgd3Jp dGVfaXR0ZShzdHJ1Y3QgdmlydF9pdHMgKml0cywgdWludDMyX3QgZGV2aWQsIHVpbnQzMl90IGV2 aWQsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgY29sbGlkLCB1aW50MzJfdCB2 bHBpLCBzdHJ1Y3QgdmNwdSAqKnZjcHVfcHRyKQo+ICB7Cj4gICAgICBib29sIHJldDsKPgo+IEBA IC00NDAsNiArNDQwLDc0IEBAIHN0YXRpYyBpbnQgaXRzX2hhbmRsZV9tYXBkKHN0cnVjdCB2aXJ0 X2l0cyAqaXRzLCB1aW50NjRfdCAqY21kcHRyKQo+ICAgICAgcmV0dXJuIHJldDsKPiAgfQo+Cj4g K3N0YXRpYyBpbnQgaXRzX2hhbmRsZV9tYXB0aShzdHJ1Y3QgdmlydF9pdHMgKml0cywgdWludDY0 X3QgKmNtZHB0cikKPiArewo+ICsgICAgdWludDMyX3QgZGV2aWQgPSBpdHNfY21kX2dldF9kZXZp Y2VpZChjbWRwdHIpOwo+ICsgICAgdWludDMyX3QgZXZlbnRpZCA9IGl0c19jbWRfZ2V0X2lkKGNt ZHB0cik7Cj4gKyAgICB1aW50MzJfdCBpbnRpZCA9IGl0c19jbWRfZ2V0X3BoeXNpY2FsX2lkKGNt ZHB0ciksIF9pbnRpZDsKPiArICAgIHVpbnQxNl90IGNvbGxpZCA9IGl0c19jbWRfZ2V0X2NvbGxl Y3Rpb24oY21kcHRyKTsKPiArICAgIHN0cnVjdCBwZW5kaW5nX2lycSAqcGlycTsKPiArICAgIHN0 cnVjdCB2Y3B1ICp2Y3B1ID0gTlVMTDsKPiArICAgIGludCByZXQgPSAwOwo+ICsKPiArICAgIGlm ICggaXRzX2NtZF9nZXRfY29tbWFuZChjbWRwdHIpID09IEdJVFNfQ01EX01BUEkgKQo+ICsgICAg ICAgIGludGlkID0gZXZlbnRpZDsKPiArCj4gKyAgICBzcGluX2xvY2soJml0cy0+aXRzX2xvY2sp Owo+ICsgICAgLyoKPiArICAgICAqIENoZWNrIHdoZXRoZXIgdGhlcmUgaXMgYSB2YWxpZCBleGlz dGluZyBtYXBwaW5nLiBJZiB5ZXMsIGJlaGF2aW9yIGlzCj4gKyAgICAgKiB1bnByZWRpY3RhYmxl LCB3ZSBjaG9vc2UgdG8gaWdub3JlIHRoaXMgY29tbWFuZCBoZXJlLgo+ICsgICAgICogVGhpcyBt YWtlcyBzdXJlIHdlIHN0YXJ0IHdpdGggYSBwcmlzdGluZSBwZW5kaW5nX2lycSBiZWxvdy4KPiAr ICAgICAqLwo+ICsgICAgaWYgKCByZWFkX2l0dGVfbG9ja2VkKGl0cywgZGV2aWQsIGV2ZW50aWQs ICZ2Y3B1LCAmX2ludGlkKSAmJgo+ICsgICAgICAgICBfaW50aWQgIT0gSU5WQUxJRF9MUEkgKQo+ ICsgICAgewo+ICsgICAgICAgIHNwaW5fdW5sb2NrKCZpdHMtPml0c19sb2NrKTsKPiArICAgICAg ICByZXR1cm4gLTE7Cj4gKyAgICB9Cj4gKwo+ICsgICAgLyogRW50ZXIgdGhlIG1hcHBpbmcgaW4g b3VyIHZpcnR1YWwgSVRTIHRhYmxlcy4gKi8KPiArICAgIGlmICggIXdyaXRlX2l0dGVfbG9ja2Vk KGl0cywgZGV2aWQsIGV2ZW50aWQsIGNvbGxpZCwgaW50aWQsICZ2Y3B1KSApCj4gKyAgICB7Cj4g KyAgICAgICAgc3Bpbl91bmxvY2soJml0cy0+aXRzX2xvY2spOwo+ICsgICAgICAgIHJldHVybiAt MTsKPiArICAgIH0KPiArCj4gKyAgICBzcGluX3VubG9jaygmaXRzLT5pdHNfbG9jayk7Cj4gKwo+ ICsgICAgLyoKPiArICAgICAqIENvbm5lY3QgdGhpcyB2aXJ0dWFsIExQSSB0byB0aGUgY29ycmVz cG9uZGluZyBob3N0IExQSSwgd2hpY2ggaXMKPiArICAgICAqIGRldGVybWluZWQgYnkgdGhlIHNh bWUgZGV2aWNlIElEIGFuZCBldmVudCBJRCBvbiB0aGUgaG9zdCBzaWRlLgo+ICsgICAgICogVGhp cyByZXR1cm5zIHVzIHRoZSBjb3JyZXNwb25kaW5nLCBzdGlsbCB1bnVzZWQgcGVuZGluZ19pcnEu Cj4gKyAgICAgKi8KPiArICAgIHBpcnEgPSBnaWN2M19hc3NpZ25fZ3Vlc3RfZXZlbnQoaXRzLT5k LCBpdHMtPmRvb3JiZWxsX2FkZHJlc3MsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRldmlkLCBldmVudGlkLCB2Y3B1LCBpbnRpZCk7Cj4gKyAgICBpZiAoICFwaXJxICkK PiArICAgICAgICByZXR1cm4gLTE7CgpJIHdhcyBleHBlY3RlZCB0aGUgSVRUIGNoYW5nZSB0byBi ZSByZXZlcnRlZCBpZiBnaWN2M19hc3NpZ25fZ3Vlc3RfZXZlbnQgCmhhcyBmYWlsZWQuCgo+ICsK PiArICAgIHZnaWNfaW5pdF9wZW5kaW5nX2lycShwaXJxLCBpbnRpZCk7Cj4gKwo+ICsgICAgLyoK PiArICAgICAqIE5vdyByZWFkIHRoZSBndWVzdCdzIHByb3BlcnR5IHRhYmxlIHRvIGluaXRpYWxp emUgb3VyIGNhY2hlZCBzdGF0ZS4KPiArICAgICAqIEl0IGNhbid0IGZpcmUgYXQgdGhpcyB0aW1l LCBiZWNhdXNlIGl0IGlzIG5vdCBrbm93biB0byB0aGUgaG9zdCB5ZXQuCj4gKyAgICAgKi8KPiAr ICAgIHJldCA9IHVwZGF0ZV9scGlfcHJvcGVydHkoaXRzLT5kLCBpbnRpZCwgcGlycSk7Cj4gKyAg ICBpZiAoIHJldCApCj4gKyAgICAgICAgcmV0dXJuIHJldDsKClNhbWUgcmVtYXJrIGhlcmUuCgo+ ICsKPiArICAgIHBpcnEtPnZjcHVfaWQgPSB2Y3B1LT52Y3B1X2lkOwo+ICsKPiArICAgIC8qCj4g KyAgICAgKiBOb3cgaW5zZXJ0IHRoZSBwZW5kaW5nX2lycSBpbnRvIHRoZSBkb21haW4ncyBMUEkg dHJlZSwgc28gdGhhdAo+ICsgICAgICogaXQgYmVjb21lcyBsaXZlLgo+ICsgICAgICovCj4gKyAg ICB3cml0ZV9sb2NrKCZpdHMtPmQtPmFyY2gudmdpYy5wZW5kX2xwaV90cmVlX2xvY2spOwo+ICsg ICAgcmFkaXhfdHJlZV9pbnNlcnQoJml0cy0+ZC0+YXJjaC52Z2ljLnBlbmRfbHBpX3RyZWUsIGlu dGlkLCBwaXJxKTsKCnJhZGl4X3RyZWVfaW5zZXJ0IGNvdWxkIGZhaWwsIGZvciBpbnN0YW5jZSBi ZWZvcmUgbWVtb3J5IGFsbG9jYXRpb24gCmZhaWx1cmUgb3IgYmVjYXVzZSB0aGUgdkxQSSBpcyBh bHJlYWR5IG1hcHBlZCB0byBhbm90aGVyIChEZXZJRCwgCkV2ZW50SUQpLiBIb3cgZG8geW91IHBs YW4gdG8gaGFuZGxlIHRoYXQ/CgpJIGFtIG9rIHRvIGRlZmVyIHRoZSBtZW1vcnkgYWxsb2NhdGlv biBwcm9ibGVtLCBidXQgdGhlIGxhdHRlciBoYXZlIHRvIApiZSBhZGRyZXNzZWQgcHJvcGVybHku Cgo+ICsgICAgd3JpdGVfdW5sb2NrKCZpdHMtPmQtPmFyY2gudmdpYy5wZW5kX2xwaV90cmVlX2xv Y2spOwo+ICsKPiArICAgIHJldHVybiAwOwo+ICt9Cj4gKwo+ICAjZGVmaW5lIElUU19DTURfQlVG RkVSX1NJWkUoYmFzZXIpICAgICAgKCgoKGJhc2VyKSAmIDB4ZmYpICsgMSkgPDwgMTIpCj4KPiAg LyoKPiBAQCAtNDgwLDYgKzU0OCwxMCBAQCBzdGF0aWMgaW50IHZnaWNfaXRzX2hhbmRsZV9jbWRz KHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCB2aXJ0X2l0cyAqaXRzKQo+ICAgICAgICAgIGNhc2Ug R0lUU19DTURfTUFQRDoKPiAgICAgICAgICAgICAgcmV0ID0gaXRzX2hhbmRsZV9tYXBkKGl0cywg Y29tbWFuZCk7Cj4gICAgICAgICAgICAgIGJyZWFrOwo+ICsgICAgICAgIGNhc2UgR0lUU19DTURf TUFQSToKPiArICAgICAgICBjYXNlIEdJVFNfQ01EX01BUFRJOgo+ICsgICAgICAgICAgICByZXQg PSBpdHNfaGFuZGxlX21hcHRpKGl0cywgY29tbWFuZCk7Cj4gKyAgICAgICAgICAgIGJyZWFrOwo+ ICAgICAgICAgIGNhc2UgR0lUU19DTURfU1lOQzoKPiAgICAgICAgICAgICAgLyogV2UgaGFuZGxl IElUUyBjb21tYW5kcyBzeW5jaHJvbm91c2x5LCBzbyB3ZSBpZ25vcmUgU1lOQy4gKi8KPiAgICAg ICAgICAgICAgYnJlYWs7Cj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS92Z2ljLmMgYi94ZW4v YXJjaC9hcm0vdmdpYy5jCj4gaW5kZXggOWIwZGMzZC4uY2IxNjY2YiAxMDA2NDQKPiAtLS0gYS94 ZW4vYXJjaC9hcm0vdmdpYy5jCj4gKysrIGIveGVuL2FyY2gvYXJtL3ZnaWMuYwo+IEBAIC02MSw3 ICs2MSw3IEBAIHN0cnVjdCB2Z2ljX2lycV9yYW5rICp2Z2ljX3JhbmtfaXJxKHN0cnVjdCB2Y3B1 ICp2LCB1bnNpZ25lZCBpbnQgaXJxKQo+ICAgICAgcmV0dXJuIHZnaWNfZ2V0X3JhbmsodiwgcmFu ayk7Cj4gIH0KPgo+IC1zdGF0aWMgdm9pZCB2Z2ljX2luaXRfcGVuZGluZ19pcnEoc3RydWN0IHBl bmRpbmdfaXJxICpwLCB1bnNpZ25lZCBpbnQgdmlycSkKPiArdm9pZCB2Z2ljX2luaXRfcGVuZGlu Z19pcnEoc3RydWN0IHBlbmRpbmdfaXJxICpwLCB1bnNpZ25lZCBpbnQgdmlycSkKPiAgewo+ICAg ICAgSU5JVF9MSVNUX0hFQUQoJnAtPmluZmxpZ2h0KTsKPiAgICAgIElOSVRfTElTVF9IRUFEKCZw LT5scl9xdWV1ZSk7Cj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vZ2ljX3YzX2l0 cy5oIGIveGVuL2luY2x1ZGUvYXNtLWFybS9naWNfdjNfaXRzLmgKPiBpbmRleCBkM2YzOTNmLi4z MGFhMWVmIDEwMDY0NAo+IC0tLSBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vZ2ljX3YzX2l0cy5oCj4g KysrIGIveGVuL2luY2x1ZGUvYXNtLWFybS9naWNfdjNfaXRzLmgKPiBAQCAtMTc0LDYgKzE3NCwx MiBAQCBpbnQgZ2ljdjNfaXRzX21hcF9ndWVzdF9kZXZpY2Uoc3RydWN0IGRvbWFpbiAqZCwKPiAg aW50IGdpY3YzX2FsbG9jYXRlX2hvc3RfbHBpX2Jsb2NrKHN0cnVjdCBkb21haW4gKmQsIHVpbnQz Ml90ICpmaXJzdF9scGkpOwo+ICB2b2lkIGdpY3YzX2ZyZWVfaG9zdF9scGlfYmxvY2sodWludDMy X3QgZmlyc3RfbHBpKTsKPgo+ICtzdHJ1Y3QgcGVuZGluZ19pcnEgKmdpY3YzX2Fzc2lnbl9ndWVz dF9ldmVudChzdHJ1Y3QgZG9tYWluICpkLCBwYWRkcl90IGRvb3JiZWxsLAo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBkZXZpZCwgdWludDMy X3QgZXZlbnRpZCwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IHZjcHUgKnYsIHVpbnQzMl90IHZpcnRfbHBpKTsKPiArdm9pZCBnaWN2M19scGlf dXBkYXRlX2hvc3RfZW50cnkodWludDMyX3QgaG9zdF9scGksIGludCBkb21haW5faWQsCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCB2Y3B1X2lkLCB1aW50 MzJfdCB2aXJ0X2xwaSk7Cj4gKwo+ICAjZWxzZQo+Cj4gIHN0YXRpYyBMSVNUX0hFQUQoaG9zdF9p dHNfbGlzdCk7Cj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vdmdpYy5oIGIveGVu L2luY2x1ZGUvYXNtLWFybS92Z2ljLmgKPiBpbmRleCAyMzcxOTYwLi4wNzRhZmU0IDEwMDY0NAo+ IC0tLSBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vdmdpYy5oCj4gKysrIGIveGVuL2luY2x1ZGUvYXNt LWFybS92Z2ljLmgKPiBAQCAtODMsNiArODMsNyBAQCBzdHJ1Y3QgcGVuZGluZ19pcnEKPiAgICAg ICAqIFRPRE86IHdoZW4gaW1wbGVtZW50aW5nIGlycSBtaWdyYXRpb24sIHRha2luZyBvbmx5IHRo ZSBjdXJyZW50Cj4gICAgICAgKiB2Z2ljIGxvY2sgaXMgbm90IGdvaW5nIHRvIGJlIGVub3VnaC4g Ki8KPiAgICAgIHN0cnVjdCBsaXN0X2hlYWQgbHJfcXVldWU7Cj4gKyAgICB1aW50MTZfdCB2Y3B1 X2lkOyAgICAgICAgICAvKiBUaGUgVkNQVSBmb3IgYW4gTFBJLiAqLwo+ICB9Owo+Cj4gICNkZWZp bmUgTlJfSU5URVJSVVBUX1BFUl9SQU5LICAgMzIKPiBAQCAtMzAzLDYgKzMwNCw3IEBAIGV4dGVy biBzdHJ1Y3QgdmNwdSAqdmdpY19nZXRfdGFyZ2V0X3ZjcHUoc3RydWN0IHZjcHUgKnYsIHVuc2ln bmVkIGludCB2aXJxKTsKPiAgZXh0ZXJuIHZvaWQgdmdpY192Y3B1X2luamVjdF9pcnEoc3RydWN0 IHZjcHUgKnYsIHVuc2lnbmVkIGludCB2aXJxKTsKPiAgZXh0ZXJuIHZvaWQgdmdpY192Y3B1X2lu amVjdF9zcGkoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IHZpcnEpOwo+ICBleHRlcm4g dm9pZCB2Z2ljX2NsZWFyX3BlbmRpbmdfaXJxcyhzdHJ1Y3QgdmNwdSAqdik7Cj4gK2V4dGVybiB2 b2lkIHZnaWNfaW5pdF9wZW5kaW5nX2lycShzdHJ1Y3QgcGVuZGluZ19pcnEgKnAsIHVuc2lnbmVk IGludCB2aXJxKTsKPiAgZXh0ZXJuIHN0cnVjdCBwZW5kaW5nX2lycSAqaXJxX3RvX3BlbmRpbmco c3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCBpcnEpOwo+ICBleHRlcm4gc3RydWN0IHBlbmRp bmdfaXJxICpzcGlfdG9fcGVuZGluZyhzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgaXJx KTsKPiAgZXh0ZXJuIHN0cnVjdCB2Z2ljX2lycV9yYW5rICp2Z2ljX3Jhbmtfb2Zmc2V0KHN0cnVj dCB2Y3B1ICp2LCBpbnQgYiwgaW50IG4sIGludCBzKTsKPgoKQ2hlZXJzLAoKLS0gCkp1bGllbiBH cmFsbAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVu LWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3Rz Lnhlbi5vcmcveGVuLWRldmVsCg==