From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andre Przywara Subject: Re: [RFC PATCH v2 06/26] ARM: GICv3 ITS: introduce device mapping Date: Fri, 13 Jan 2017 12:31:52 +0000 Message-ID: <94e23231-e634-98a2-48df-2e9caa330bd4@arm.com> References: <20161222182446.18791-1-andre.przywara@arm.com> <20161222182446.18791-7-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 1cS10F-0000pQ-DN for xen-devel@lists.xenproject.org; Fri, 13 Jan 2017 12:30:43 +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 , Vijay Kilari List-Id: xen-devel@lists.xenproject.org SGkgU3RlZmFubywKCk9uIDA1LzAxLzE3IDAwOjEzLCBTdGVmYW5vIFN0YWJlbGxpbmkgd3JvdGU6 Cj4gT24gVGh1LCAyMiBEZWMgMjAxNiwgQW5kcmUgUHJ6eXdhcmEgd3JvdGU6Cj4+IFRoZSBJVFMg dXNlcyBkZXZpY2UgSURzIHRvIG1hcCBMUElzIHRvIGEgZGV2aWNlLiBEb20wIHdpbGwgbGF0ZXIg dXNlCj4+IHRob3NlIElEcywgd2hpY2ggd2UgZGlyZWN0bHkgcGFzcyBvbiB0byB0aGUgaG9zdC4K Pj4gRm9yIHRoaXMgd2UgaGF2ZSB0byBtYXAgZWFjaCBkZXZpY2UgdGhhdCBEb20wIG1heSByZXF1 ZXN0IHRvIGEgaG9zdAo+PiBJVFMgZGV2aWNlIHdpdGggdGhlIHNhbWUgaWRlbnRpZmllci4KPj4g QWxsb2NhdGUgdGhlIHJlc3BlY3RpdmUgbWVtb3J5IGFuZCBlbnRlciBlYWNoIGRldmljZSBpbnRv IGEgbGlzdCB0bwo+PiBsYXRlciBiZSBhYmxlIHRvIGl0ZXJhdGUgb3ZlciBpdCBvciB0byBlYXNp bHkgdGVhcmRvd24gZ3Vlc3RzLgo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBBbmRyZSBQcnp5d2FyYSA8 YW5kcmUucHJ6eXdhcmFAYXJtLmNvbT4KPj4gLS0tCj4+ICB4ZW4vYXJjaC9hcm0vZ2ljLWl0cy5j ICAgICAgICB8IDExOCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK Pj4gIHhlbi9hcmNoL2FybS92Z2ljLmMgICAgICAgICAgIHwgICAzICsrCj4+ICB4ZW4vaW5jbHVk ZS9hc20tYXJtL2RvbWFpbi5oICB8ICAgMiArCj4+ICB4ZW4vaW5jbHVkZS9hc20tYXJtL2dpYy1p dHMuaCB8ICAyMiArKysrKysrKwo+PiAgNCBmaWxlcyBjaGFuZ2VkLCAxNDUgaW5zZXJ0aW9ucygr KQo+Pgo+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2dpYy1pdHMuYyBiL3hlbi9hcmNoL2Fy bS9naWMtaXRzLmMKPj4gaW5kZXggZDBmNWZkMS4uZTE1N2M2YiAxMDA2NDQKPj4gLS0tIGEveGVu L2FyY2gvYXJtL2dpYy1pdHMuYwo+PiArKysgYi94ZW4vYXJjaC9hcm0vZ2ljLWl0cy5jCj4+IEBA IC0yMSw2ICsyMSw3IEBACj4+ICAjaW5jbHVkZSA8eGVuL2Vyci5oPgo+PiAgI2luY2x1ZGUgPHhl bi9kZXZpY2VfdHJlZS5oPgo+PiAgI2luY2x1ZGUgPHhlbi9saWJmZHQvbGliZmR0Lmg+Cj4+ICsj aW5jbHVkZSA8eGVuL3NjaGVkLmg+Cj4+ICAjaW5jbHVkZSA8eGVuL3NpemVzLmg+Cj4+ICAjaW5j bHVkZSA8YXNtL3AybS5oPgo+PiAgI2luY2x1ZGUgPGFzbS9pby5oPgo+PiBAQCAtMTA4LDYgKzEw OSwyMSBAQCBzdGF0aWMgaW50IGl0c19zZW5kX2NtZF9tYXBjKHN0cnVjdCBob3N0X2l0cyAqaXRz LCBpbnQgY29sbGVjdGlvbl9pZCwgaW50IGNwdSkKPj4gICAgICByZXR1cm4gaXRzX3NlbmRfY29t bWFuZChpdHMsIGNtZCk7Cj4+ICB9Cj4+ICAKPj4gK3N0YXRpYyBpbnQgaXRzX3NlbmRfY21kX21h cGQoc3RydWN0IGhvc3RfaXRzICppdHMsIHVpbnQzMl90IGRldmljZWlkLAo+PiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbnQgc2l6ZSwgdWludDY0X3QgaXR0X2FkZHIsIGJvb2wgdmFs aWQpCj4+ICt7Cj4+ICsgICAgdWludDY0X3QgY21kWzRdOwo+PiArCj4+ICsgICAgY21kWzBdID0g R0lUU19DTURfTUFQRCB8ICgodWludDY0X3QpZGV2aWNlaWQgPDwgMzIpOwo+PiArICAgIGNtZFsx XSA9IHNpemUgJiBHRU5NQVNLKDQsIDApOwo+PiArICAgIGNtZFsyXSA9IGl0dF9hZGRyICYgR0VO TUFTSyg1MSwgOCk7Cj4+ICsgICAgaWYgKCB2YWxpZCApCj4+ICsgICAgICAgIGNtZFsyXSB8PSBC SVRfVUxMKDYzKTsKPj4gKyAgICBjbWRbM10gPSAweDAwOwo+PiArCj4+ICsgICAgcmV0dXJuIGl0 c19zZW5kX2NvbW1hbmQoaXRzLCBjbWQpOwo+PiArfQo+PiArCj4+ICAvKiBTZXQgdXAgdGhlICgx OjEpIGNvbGxlY3Rpb24gbWFwcGluZyBmb3IgdGhlIGdpdmVuIGhvc3QgQ1BVLiAqLwo+PiAgdm9p ZCBnaWN2M19pdHNfc2V0dXBfY29sbGVjdGlvbihpbnQgY3B1KQo+PiAgewo+PiBAQCAtMjM3LDYg KzI1Myw3IEBAIGludCBnaWN2M19pdHNfaW5pdChzdHJ1Y3QgaG9zdF9pdHMgKmh3X2l0cykKPj4g IAo+PiAgICAgIHJlZyA9IHJlYWRxX3JlbGF4ZWQoaHdfaXRzLT5pdHNfYmFzZSArIEdJVFNfVFlQ RVIpOwo+PiAgICAgIGh3X2l0cy0+cHRhID0gISEocmVnICYgR0lUU19UWVBFUl9QVEEpOwo+PiAr ICAgIGh3X2l0cy0+aXR0ZV9zaXplID0gKChyZWcgPj4gNCkgJiAweGYpICsgMTsKPiAKPiBQbGVh c2UgI2RlZmluZSBhbGwgbnVtYmVycwo+IAo+IAo+PiAgICAgIGZvciAoIGkgPSAwOyBpIDwgR0lU U19CQVNFUl9OUl9SRUdTOyBpKysgKQo+PiAgICAgIHsKPj4gQEAgLTM1OCw2ICszNzUsMTA3IEBA IGludCBnaWN2M19scGlfaW5pdF9ob3N0X2xwaXModW5zaWduZWQgaW50IGh3X2xwaV9iaXRzKQo+ PiAgICAgIHJldHVybiAwOwo+PiAgfQo+PiAgCj4+ICtzdGF0aWMgdm9pZCByZW1vdmVfbWFwcGVk X2d1ZXN0X2RldmljZShzdHJ1Y3QgaXRzX2RldmljZXMgKmRldikKPj4gK3sKPj4gKyAgICBpZiAo IGRldi0+aHdfaXRzICkKPj4gKyAgICAgICAgaXRzX3NlbmRfY21kX21hcGQoZGV2LT5od19pdHMs IGRldi0+aG9zdF9kZXZpZCwgMCwgMCwgZmFsc2UpOwo+PiArCj4+ICsgICAgeGZyZWUoZGV2LT5p dHRfYWRkcik7Cj4+ICsgICAgeGZyZWUoZGV2KTsKPj4gK30KPj4gKwo+PiAraW50IGdpY3YzX2l0 c19tYXBfZGV2aWNlKHN0cnVjdCBkb21haW4gKmQsIGludCBob3N0X2RldmlkLCBpbnQgZ3Vlc3Rf ZGV2aWQsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGJpdHMsIGJvb2wgdmFsaWQp Cj4+ICt7Cj4+ICsgICAgdm9pZCAqaXR0X2FkZHIgPSBOVUxMOwo+PiArICAgIHN0cnVjdCBpdHNf ZGV2aWNlcyAqZGV2LCAqdGVtcDsKPj4gKyAgICBzdHJ1Y3QgaG9zdF9pdHMgKmh3X2l0czsKPj4g KyAgICBpbnQgcmV0Owo+PiArCj4+ICsgICAgLyogY2hlY2sgZm9yIGFscmVhZHkgZXhpc3Rpbmcg bWFwcGluZ3MgKi8KPj4gKyAgICBzcGluX2xvY2soJmQtPmFyY2gudmdpYy5pdHNfZGV2aWNlc19s b2NrKTsKPj4gKyAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoZGV2LCB0ZW1wLCAmZC0+YXJj aC52Z2ljLml0c19kZXZpY2VzLCBlbnRyeSkKPj4gKyAgICB7Cj4+ICsgICAgICAgIGlmICggZGV2 LT5ndWVzdF9kZXZpZCAhPSBndWVzdF9kZXZpZCApCj4+ICsgICAgICAgICAgICBjb250aW51ZTsK Pj4gKwo+PiArICAgICAgICBpZiAoICF2YWxpZCApCj4+ICsgICAgICAgICAgICBsaXN0X2RlbCgm ZGV2LT5lbnRyeSk7Cj4+ICsKPj4gKyAgICAgICAgc3Bpbl91bmxvY2soJmQtPmFyY2gudmdpYy5p dHNfZGV2aWNlc19sb2NrKTsKPj4gKwo+PiArICAgICAgICBpZiAoIHZhbGlkICkKPj4gKyAgICAg ICAgICAgIHJldHVybiAtRUJVU1k7Cj4+ICsKPj4gKyAgICAgICAgcmVtb3ZlX21hcHBlZF9ndWVz dF9kZXZpY2UoZGV2KTsKPj4gKwo+PiArICAgICAgICByZXR1cm4gMDsKPj4gKyAgICB9Cj4+ICsg ICAgc3Bpbl91bmxvY2soJmQtPmFyY2gudmdpYy5pdHNfZGV2aWNlc19sb2NrKTsKPiAKPiBDb21w YXJlZCB0byB0aGUgcHJldmlvdXMgdmVyc2lvbiwgbm93IHRoZSBsaXN0IGlzIHBlci1kb21haW4s IHdoaWNoIGlzCj4gYmV0dGVyIGZvciBEb21VcywgYnV0IG5vdCBmb3IgRG9tMC4gSW4gdGhlIGNh c2Ugb2YgRG9tMCB0aGUgbnVtYmVyIG9mCj4gaXRlcmF0aW9ucyB3aWxsIGJlIHRoZSBzYW1lLgo+ IAo+IEkgc3VnZ2VzdCB3ZSBtb3ZlIHRvIGEgZGlmZmVyZW50IGRhdGEgc3RydWN0dXJlLCBzdWNo IGFzIGFuIGhhc2h0YWJsZSBvcgo+IGFuIHJidHJlZS4gSWYgZGV2aWRzIHdlcmUgZ3VhcmFudGVl ZCB0byBiZSBkZW5zZSwgdGhlbiB3ZSBjb3VsZCBzdG9yZQo+IHN0cnVjdCBpdHNfZGV2aWNlcyBw b2ludGVycyBpbiBhbiBhcnJheSBhbmQgZGlyZWN0IGFjY2VzcyB0aGVtLCBidXQgSQo+IGRvbid0 IHRoaW5rIHRoZXkgYXJlPwoKVGhleSBhcmUgaW5kZWVkIHF1aXRlIHNwYXJzZSwgYXMgdGhleSBl ZmZlY3RpdmVseSBhcmUgUENJIElEcy4KQnV0IEFGQUlDUyB0aGlzIGxpc3QgaXMgbmV2ZXIgaXRl cmF0ZWQgaW4gYSBob3QgcGF0aC4gVGhlcmUgYXJlIHRocmVlCnVzZXJzIG9mIHRoZSBsaXN0Ogot IGdpY3YzX2l0c19tYXBfZGV2aWNlKCksIHdoaWNoIGlzIG9ubHkgY2FsbGVkIGJ5IHRoZSBwaHlz ZGV2X29wcwpoYW5kbGVyLCBzbyBvbmx5IG9uY2UgYXQgRG9tMCBib290LCBiYXNpY2FsbHkuCi0g aXRzX3JlbW92ZV9kb21haW4oKSwgd2hpY2ggaGFzIG5vIGNhbGxlciBhdCB0aGUgbW9tZW50IGFu ZCBpcyBqdXN0CmhlcmUgZm9yIHRoZSBzYWtlIG9mIGNvbXBsZXRlbmVzcyBhbmQgdG8gbWFrZSBz dXJlIHdlIHJlbW92ZSBhbnl0aGluZwp0aGF0IHdlIGNyZWF0ZWQuIEJ1dCBpdCBpc24ndCBwZXJm b3JtYW5jZSBjcml0aWNhbCBhdCBhbGwuCi0gZmluZF9ndWVzdF9scGkoKSwgd2hpY2ggaXMgY2Fs bGVkIGJ5IGdpY3YzX2Fzc2lnbl9ndWVzdF9ldmVudCgpIGFuZApnaWN2M19scGlfY2hhbmdlX3Zj cHUoKS4gVGhvc2UgYXJlIGNhbGxlZCBieSB0aGUgTUFQVEksIERJU0NBUkQgYW5kIE1PVkkKdmly dHVhbCBJVFMgY29tbWFuZCBoYW5kbGVycywgYnV0IHRob3NlIGNvbW1hbmRzIGFyZSBleHBlY3Rl ZCB0byBiZSByYXJlLgoKU28gZ29pbmcgYXdheSBmcm9tIGEgbGlzdCBpcyBub3Qgc3RyaWN0bHkg bmVjZXNzYXJ5LCBJTUhPLgpCdXQgZnJhbmtseSBJIGp1c3QgY2hvc2UgYSBsaXN0IGJlY2F1c2Ug SSBrbm93IGhvdyBpdCB3b3JrcyBieSBoZWFydC4gSQpndWVzcyBJIGhhdmUgdG8gY2hlY2sgaG93 IGVhc3kgcmJ0cmVlcyBvciBoYXNoIHRhYmxlcyBhcmUgdG8gdXNlIGluIFhlbiwKYXMgaXQgc291 bmRzIGluZGVlZCBzZW5zaWJsZSB0byB1c2Ugb25lIG9mIHRoZW0gKHByb2JhYmx5IGFuIHJidHJl ZSkKaW5zdGVhZC4KCj4gSWYgZGV2aWRzIGFyZSBzcGFyc2UsIHVzaW5nIGEgcGVyLWRvbWFpbiBz dHJ1Y3R1cmUgY291bGQgYmUgYSBnb29kIGlkZWEsCj4gYnV0IHdlIHN0aWxsIG5lZWQgdG8gcHJl dmVudCBhIGRldmljZSBmcm9tIGJlaW5nIGFzc2lnbmVkIHRvIHR3byBkb21haW5zCj4gc2ltdWx0 YW5lb3VzbHkuIElzIHRoZXJlIGEgY2hlY2sgdG8gYXZvaWQgdGhhdD8KCk5vdCBhdCB0aGUgbW9t ZW50LCBhbmQgSSB3b3VsZG4ndCBleHBlY3QgaXQgdG8gYmUgdGhlIHRhc2sgb2YgdGhlIElUUwpl bXVsYXRpb24gdG8gdGFrZSBjYXJlIG9mIHRoYXQuIFRoYXQgc291bmRzIGxpa2Ugc29tZXRoaW5n IGZvciB0aGUgUENJCnBhc3N0aHJvdWdoIHN1YnN5c3RlbSB0byBjaGVjay4gVGhpcyBmdW5jdGlv biBoZXJlIHdpbGwgZXZlbnR1YWxseSBnZXQKY2FsbGVkIGJ5IHRoYXQgbGF5ZXIgb25jZSBpdCBo YXMgc2FuaXRpemVkIHRoZSByZXF1ZXN0IGFuZCBwcmVwYXJlcyB0aGUKZGV2aWNlIGZvciB0cmln Z2VyaW5nIE1TSXMuCgpGb3IgdGhpcyBzZXJpZXMgdGhlcmUgaXMgb25seSBvbmUgZG9tYWluIHRv IGNvbnNpZGVyIChEb20wKSBhbmQgd2UgY2hlY2sKdGhlIHBlci1kb21haW4gZGV2aWNlIGxpc3Qg dG8gYXZvaWQgZG91YmxlIGFzc2lnbm1lbnQsIHNvIHRoaXMgaXMgc2FmZS4KCkNoZWVycywKQW5k cmUuCgo+PiArICAgIGlmICggIXZhbGlkICkKPj4gKyAgICAgICAgcmV0dXJuIC1FTk9FTlQ7Cj4+ ICsKPj4gKyAgICAvKiBUT0RPOiBXb3JrIG91dCB0aGUgY29ycmVjdCBoYXJkd2FyZSBJVFMgdG8g dXNlIGhlcmUuCj4+ICsgICAgICogTWF5YmUgYSBwZXItcGxhdGZvcm0gZnVuY3Rpb246IGRldmlk IC0+IElUUz8KPj4gKyAgICAgKiBPciBwYXJzaW5nIHRoZSBEVCB0byBmaW5kIHRoZSBtc2lfcGFy ZW50Pwo+PiArICAgICAqIE9yIGdldCBEb20wIHRvIGdpdmUgdXMgdGhpcyBpbmZvcm1hdGlvbj8K Pj4gKyAgICAgKiBGb3Igbm93IGp1c3QgdXNlIHRoZSBmaXJzdCBJVFMuCj4+ICsgICAgICovCj4+ ICsgICAgaHdfaXRzID0gbGlzdF9maXJzdF9lbnRyeSgmaG9zdF9pdHNfbGlzdCwgc3RydWN0IGhv c3RfaXRzLCBlbnRyeSk7Cj4+ICsKPj4gKyAgICBpdHRfYWRkciA9IF94bWFsbG9jKEJJVChiaXRz KSAqIGh3X2l0cy0+aXR0ZV9zaXplLCAyNTYpOwo+PiArICAgIGlmICggIWl0dF9hZGRyICkKPj4g KyAgICAgICAgcmV0dXJuIC1FTk9NRU07Cj4+ICsKPj4gKyAgICBkZXYgPSB4bWFsbG9jKHN0cnVj dCBpdHNfZGV2aWNlcyk7Cj4+ICsgICAgaWYgKCAhZGV2ICkKPj4gKyAgICB7Cj4+ICsgICAgICAg IHhmcmVlKGl0dF9hZGRyKTsKPj4gKyAgICAgICAgcmV0dXJuIC1FTk9NRU07Cj4+ICsgICAgfQo+ PiArCj4+ICsgICAgcmV0ID0gaXRzX3NlbmRfY21kX21hcGQoaHdfaXRzLCBob3N0X2RldmlkLCBi aXRzIC0gMSwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXJ0X3RvX21hZGRyKGl0 dF9hZGRyKSwgdHJ1ZSk7Cj4+ICsgICAgaWYgKHJldCkgewo+PiArICAgICAgICB4ZnJlZShpdHRf YWRkcik7Cj4+ICsgICAgICAgIHhmcmVlKGRldik7Cj4+ICsgICAgICAgIHJldHVybiByZXQ7Cj4+ ICsgICAgfQo+PiArCj4+ICsgICAgZGV2LT5pdHRfYWRkciA9IGl0dF9hZGRyOwo+PiArICAgIGRl di0+aHdfaXRzID0gaHdfaXRzOwo+PiArICAgIGRldi0+Z3Vlc3RfZGV2aWQgPSBndWVzdF9kZXZp ZDsKPj4gKyAgICBkZXYtPmhvc3RfZGV2aWQgPSBob3N0X2RldmlkOwo+PiArICAgIGRldi0+ZXZl bnRpZHMgPSBCSVQoYml0cyk7Cj4+ICsKPj4gKyAgICBzcGluX2xvY2soJmQtPmFyY2gudmdpYy5p dHNfZGV2aWNlc19sb2NrKTsKPj4gKyAgICBsaXN0X2FkZF90YWlsKCZkZXYtPmVudHJ5LCAmZC0+ YXJjaC52Z2ljLml0c19kZXZpY2VzKTsKPj4gKyAgICBzcGluX3VubG9jaygmZC0+YXJjaC52Z2lj Lml0c19kZXZpY2VzX2xvY2spOwo+PiArCj4+ICsgICAgcmV0dXJuIDA7Cj4+ICt9Cj4+ICsKPj4g Ky8qIFJlbW92aW5nIGFueSBjb25uZWN0aW9ucyBhIGRvbWFpbiBoYWQgdG8gYW55IElUUyBpbiB0 aGUgc3lzdGVtLiAqLwo+PiAraW50IGl0c19yZW1vdmVfZG9tYWluKHN0cnVjdCBkb21haW4gKmQp Cj4+ICt7Cj4+ICsgICAgc3RydWN0IGl0c19kZXZpY2VzICpkZXYsICp0ZW1wOwo+PiArCj4+ICty ZXRyeToKPj4gKwo+PiArICAgIHNwaW5fbG9jaygmZC0+YXJjaC52Z2ljLml0c19kZXZpY2VzX2xv Y2spOwo+PiArICAgIGxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShkZXYsIHRlbXAsICZkLT5hcmNo LnZnaWMuaXRzX2RldmljZXMsIGVudHJ5KQo+PiArICAgIHsKPj4gKyAgICAgICAgbGlzdF9kZWwo JmRldi0+ZW50cnkpOwo+PiArICAgICAgICBzcGluX3VubG9jaygmZC0+YXJjaC52Z2ljLml0c19k ZXZpY2VzX2xvY2spOwo+PiArCj4+ICsgICAgICAgIHJlbW92ZV9tYXBwZWRfZ3Vlc3RfZGV2aWNl KGRldik7Cj4+ICsgICAgICAgIGdvdG8gcmV0cnk7Cj4+ICsgICAgfQo+PiArCj4+ICsgICAgcmV0 dXJuIDA7Cj4+ICt9Cj4+ICsKPj4gIC8qIFNjYW4gdGhlIERUIGZvciBhbnkgSVRTIG5vZGVzIGFu ZCBjcmVhdGUgYSBsaXN0IG9mIGhvc3QgSVRTZXMgb3V0IG9mIGl0LiAqLwo+PiAgdm9pZCBnaWN2 M19pdHNfZHRfaW5pdChjb25zdCBzdHJ1Y3QgZHRfZGV2aWNlX25vZGUgKm5vZGUpCj4+ICB7Cj4+ IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vdmdpYy5jIGIveGVuL2FyY2gvYXJtL3ZnaWMuYwo+ PiBpbmRleCAzNjRkNWYwLi5kZTc3YWFhIDEwMDY0NAo+PiAtLS0gYS94ZW4vYXJjaC9hcm0vdmdp Yy5jCj4+ICsrKyBiL3hlbi9hcmNoL2FybS92Z2ljLmMKPj4gQEAgLTE1Niw2ICsxNTYsOSBAQCBp bnQgZG9tYWluX3ZnaWNfaW5pdChzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgbnJfc3Bp cykKPj4gICAgICBmb3IgKCBpID0gMDsgaSA8IE5SX0dJQ19TR0k7IGkrKyApCj4+ICAgICAgICAg IHNldF9iaXQoaSwgZC0+YXJjaC52Z2ljLmFsbG9jYXRlZF9pcnFzKTsKPj4gIAo+PiArICAgIHNw aW5fbG9ja19pbml0KCZkLT5hcmNoLnZnaWMuaXRzX2RldmljZXNfbG9jayk7Cj4+ICsgICAgSU5J VF9MSVNUX0hFQUQoJmQtPmFyY2gudmdpYy5pdHNfZGV2aWNlcyk7Cj4+ICsKPj4gICAgICByZXR1 cm4gMDsKPj4gIH0KPj4gIAo+PiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLWFybS9kb21h aW4uaCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vZG9tYWluLmgKPj4gaW5kZXggMmQ2ZmJiMS4uOGNj YzMyYSAxMDA2NDQKPj4gLS0tIGEveGVuL2luY2x1ZGUvYXNtLWFybS9kb21haW4uaAo+PiArKysg Yi94ZW4vaW5jbHVkZS9hc20tYXJtL2RvbWFpbi5oCj4+IEBAIC0xMDksNiArMTA5LDggQEAgc3Ry dWN0IGFyY2hfZG9tYWluCj4+ICAgICAgICAgIH0gKnJkaXN0X3JlZ2lvbnM7Cj4+ICAgICAgICAg IGludCBucl9yZWdpb25zOyAgICAgICAgICAgICAgICAgICAgIC8qIE51bWJlciBvZiByZGlzdCBy ZWdpb25zICovCj4+ICAgICAgICAgIHVpbnQzMl90IHJkaXN0X3N0cmlkZTsgICAgICAgICAgICAg IC8qIFJlLURpc3RyaWJ1dG9yIHN0cmlkZSAqLwo+PiArICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFk IGl0c19kZXZpY2VzOyAgICAgICAvKiBkZXZpY2VzIG1hcHBlZCB0byBhbiBJVFMgKi8KPj4gKyAg ICAgICAgc3BpbmxvY2tfdCBpdHNfZGV2aWNlc19sb2NrOyAgICAgICAgLyogcHJvdGVjdHMgdGhl IGl0c19kZXZpY2VzIGxpc3QgKi8KPj4gICNlbmRpZgo+PiAgICAgIH0gdmdpYzsKPj4gIAo+PiBk aWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLWFybS9naWMtaXRzLmggYi94ZW4vaW5jbHVkZS9h c20tYXJtL2dpYy1pdHMuaAo+PiBpbmRleCA2OGU1ZjYzLi41MjVhMjlkIDEwMDY0NAo+PiAtLS0g YS94ZW4vaW5jbHVkZS9hc20tYXJtL2dpYy1pdHMuaAo+PiArKysgYi94ZW4vaW5jbHVkZS9hc20t YXJtL2dpYy1pdHMuaAo+PiBAQCAtOTMsOSArOTMsMTkgQEAgc3RydWN0IGhvc3RfaXRzIHsKPj4g ICAgICB2b2lkIF9faW9tZW0gKml0c19iYXNlOwo+PiAgICAgIHNwaW5sb2NrX3QgY21kX2xvY2s7 Cj4+ICAgICAgdm9pZCAqY21kX2J1ZjsKPj4gKyAgICBpbnQgaXR0ZV9zaXplOwo+PiAgICAgIGJv b2wgcHRhOwo+PiAgfTsKPj4gIAo+PiArc3RydWN0IGl0c19kZXZpY2VzIHsKPj4gKyAgICBzdHJ1 Y3QgbGlzdF9oZWFkIGVudHJ5Owo+PiArICAgIHN0cnVjdCBob3N0X2l0cyAqaHdfaXRzOwo+PiAr ICAgIHZvaWQgKml0dF9hZGRyOwo+PiArICAgIHVpbnQzMl90IGd1ZXN0X2RldmlkOwo+PiArICAg IHVpbnQzMl90IGhvc3RfZGV2aWQ7Cj4+ICsgICAgdWludDMyX3QgZXZlbnRpZHM7Cj4+ICt9Owo+ PiArCj4+ICBleHRlcm4gc3RydWN0IGxpc3RfaGVhZCBob3N0X2l0c19saXN0Owo+PiAgCj4+ICAj aWZkZWYgQ09ORklHX0hBU19JVFMKPj4gQEAgLTExOSw2ICsxMjksMTMgQEAgdm9pZCBnaWN2M19z ZXRfcmVkaXN0X2FkZHIocGFkZHJfdCBhZGRyZXNzLCBpbnQgcmVkaXN0X2lkKTsKPj4gIC8qIE1h cCBhIGNvbGxlY3Rpb24gZm9yIHRoaXMgaG9zdCBDUFUgdG8gZWFjaCBob3N0IElUUy4gKi8KPj4g IHZvaWQgZ2ljdjNfaXRzX3NldHVwX2NvbGxlY3Rpb24oaW50IGNwdSk7Cj4+ICAKPj4gKy8qIE1h cCBhIGRldmljZSBvbiB0aGUgaG9zdCBieSBhbGxvY2F0aW5nIGFuIElUVCBvbiB0aGUgaG9zdCAo SVRTKS4KPj4gKyAqICJiaXRzIiBzcGVjaWZpZXMgaG93IG1hbnkgZXZlbnRzIChpbnRlcnJ1cHRz KSB0aGlzIGRldmljZSB3aWxsIG5lZWQuCj4+ICsgKiBTZXR0aW5nICJ2YWxpZCIgdG8gZmFsc2Ug ZGVhbGxvY2F0ZXMgdGhlIGRldmljZS4KPj4gKyAqLwo+PiAraW50IGdpY3YzX2l0c19tYXBfZGV2 aWNlKHN0cnVjdCBkb21haW4gKmQsIGludCBob3N0X2RldmlkLCBpbnQgZ3Vlc3RfZGV2aWQsCj4+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGJpdHMsIGJvb2wgdmFsaWQpOwo+PiArCj4+ ICAjZWxzZQo+PiAgCj4+ICBzdGF0aWMgaW5saW5lIHZvaWQgZ2ljdjNfaXRzX2R0X2luaXQoY29u c3Qgc3RydWN0IGR0X2RldmljZV9ub2RlICpub2RlKQo+PiBAQCAtMTQ2LDYgKzE2MywxMSBAQCBz dGF0aWMgaW5saW5lIHZvaWQgZ2ljdjNfc2V0X3JlZGlzdF9hZGRyKHBhZGRyX3QgYWRkcmVzcywg aW50IHJlZGlzdF9pZCkKPj4gIHN0YXRpYyBpbmxpbmUgdm9pZCBnaWN2M19pdHNfc2V0dXBfY29s bGVjdGlvbihpbnQgY3B1KQo+PiAgewo+PiAgfQo+PiArc3RhdGljIGlubGluZSBpbnQgZ2ljdjNf aXRzX21hcF9kZXZpY2Uoc3RydWN0IGRvbWFpbiAqZCwgaW50IGhvc3RfZGV2aWQsCj4+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgaW50IGd1ZXN0X2RldmlkLCBpbnQgYml0cywgYm9vbCB2YWxp ZCkKPj4gK3sKPj4gKyAgICByZXR1cm4gLUVOT0RFVjsKPj4gK30KPj4gIAo+PiAgI2VuZGlmIC8q IENPTkZJR19IQVNfSVRTICovCj4+ICAKPj4gLS0gCj4+IDIuOS4wCj4+CgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0 Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK