From mboxrd@z Thu Jan 1 00:00:00 1970 From: Vijay Kilari Subject: Re: [PATCH v3 06/26] ARM: GICv3 ITS: introduce device mapping Date: Sat, 1 Apr 2017 13:31:20 +0530 Message-ID: References: <20170331180525.30038-1-andre.przywara@arm.com> <20170331180525.30038-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.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cuDyN-0000Dq-Pu for xen-devel@lists.xenproject.org; Sat, 01 Apr 2017 08:01:24 +0000 Received: by mail-oi0-f67.google.com with SMTP id t11so12437104oib.1 for ; Sat, 01 Apr 2017 01:01:22 -0700 (PDT) In-Reply-To: <20170331180525.30038-7-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 Cc: xen-devel , Julien Grall , Stefano Stabellini , Shanker Donthineni List-Id: xen-devel@lists.xenproject.org SGkgQW5kcmUsCgpPbiBGcmksIE1hciAzMSwgMjAxNyBhdCAxMTozNSBQTSwgQW5kcmUgUHJ6eXdh cmEgPGFuZHJlLnByenl3YXJhQGFybS5jb20+IHdyb3RlOgo+IFRoZSBJVFMgdXNlcyBkZXZpY2Ug SURzIHRvIG1hcCBMUElzIHRvIGEgZGV2aWNlLiBEb20wIHdpbGwgbGF0ZXIgdXNlCj4gdGhvc2Ug SURzLCB3aGljaCB3ZSBkaXJlY3RseSBwYXNzIG9uIHRvIHRoZSBob3N0Lgo+IEZvciB0aGlzIHdl IGhhdmUgdG8gbWFwIGVhY2ggZGV2aWNlIHRoYXQgRG9tMCBtYXkgcmVxdWVzdCB0byBhIGhvc3QK PiBJVFMgZGV2aWNlIHdpdGggdGhlIHNhbWUgaWRlbnRpZmllci4KPiBBbGxvY2F0ZSB0aGUgcmVz cGVjdGl2ZSBtZW1vcnkgYW5kIGVudGVyIGVhY2ggZGV2aWNlIGludG8gYW4gcmJ0cmVlIHRvCj4g bGF0ZXIgYmUgYWJsZSB0byBpdGVyYXRlIG92ZXIgaXQgb3IgdG8gZWFzaWx5IHRlYXJkb3duIGd1 ZXN0cy4KPgo+IFNpZ25lZC1vZmYtYnk6IEFuZHJlIFByenl3YXJhIDxhbmRyZS5wcnp5d2FyYUBh cm0uY29tPgo+IC0tLQo+ICB4ZW4vYXJjaC9hcm0vZ2ljLXYzLWl0cy5jICAgICAgICB8IDIyNyAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgeGVuL2FyY2gvYXJtL3Zn aWMtdjMuYyAgICAgICAgICAgfCAgIDQgKwo+ICB4ZW4vaW5jbHVkZS9hc20tYXJtL2RvbWFpbi5o ICAgICB8ICAgMyArCj4gIHhlbi9pbmNsdWRlL2FzbS1hcm0vZ2ljX3YzX2l0cy5oIHwgIDIzICsr KysKPiAgNCBmaWxlcyBjaGFuZ2VkLCAyNTcgaW5zZXJ0aW9ucygrKQo+Cj4gZGlmZiAtLWdpdCBh L3hlbi9hcmNoL2FybS9naWMtdjMtaXRzLmMgYi94ZW4vYXJjaC9hcm0vZ2ljLXYzLWl0cy5jCj4g aW5kZXggMWFjNTk4Zi4uMjk1ZjdkYyAxMDA2NDQKPiAtLS0gYS94ZW4vYXJjaC9hcm0vZ2ljLXYz LWl0cy5jCj4gKysrIGIveGVuL2FyY2gvYXJtL2dpYy12My1pdHMuYwo+IEBAIC0yMSw2ICsyMSw4 IEBACj4gICNpbmNsdWRlIDx4ZW4vbGliLmg+Cj4gICNpbmNsdWRlIDx4ZW4vZGVsYXkuaD4KPiAg I2luY2x1ZGUgPHhlbi9tbS5oPgo+ICsjaW5jbHVkZSA8eGVuL3JidHJlZS5oPgo+ICsjaW5jbHVk ZSA8eGVuL3NjaGVkLmg+Cj4gICNpbmNsdWRlIDx4ZW4vc2l6ZXMuaD4KPiAgI2luY2x1ZGUgPGFz bS9naWMuaD4KPiAgI2luY2x1ZGUgPGFzbS9naWNfdjNfZGVmcy5oPgo+IEBAIC0zMiw2ICszNCwx OCBAQAo+Cj4gIExJU1RfSEVBRChob3N0X2l0c19saXN0KTsKPgo+ICtzdHJ1Y3QgaXRzX2Rldmlj ZXMgewo+ICsgICAgc3RydWN0IHJiX25vZGUgcmJub2RlOwo+ICsgICAgc3RydWN0IGhvc3RfaXRz ICpod19pdHM7Cj4gKyAgICB2b2lkICppdHRfYWRkcjsKPiArICAgIHBhZGRyX3QgZ3Vlc3RfZG9v cmJlbGw7ICAgICAgICAgICAgIC8qIElkZW50aWZpZXMgdGhlIHZpcnR1YWwgSVRTICovCj4gKyAg ICB1aW50MzJfdCBob3N0X2RldmlkOwo+ICsgICAgdWludDMyX3QgZ3Vlc3RfZGV2aWQ7Cj4gKyAg ICB1aW50MzJfdCBldmVudGlkczsgICAgICAgICAgICAgICAgICAvKiBOdW1iZXIgb2YgZXZlbnQg SURzIChNU0lzKSAqLwo+ICsgICAgdWludDMyX3QgKmhvc3RfbHBpX2Jsb2NrczsgICAgICAgICAg LyogV2hpY2ggTFBJcyBhcmUgdXNlZCBvbiB0aGUgaG9zdCAqLwo+ICsgICAgc3RydWN0IHBlbmRp bmdfaXJxICpwZW5kX2lycXM7ICAgICAgLyogT25lIHN0cnVjdCBwZXIgZXZlbnQgKi8KPiArfTsK PiArCj4gIGJvb2wgZ2ljdjNfaXRzX2hvc3RfaGFzX2l0cyh2b2lkKQo+ICB7Cj4gICAgICByZXR1 cm4gIWxpc3RfZW1wdHkoJmhvc3RfaXRzX2xpc3QpOwo+IEBAIC0xNTEsNiArMTY1LDI2IEBAIHN0 YXRpYyBpbnQgaXRzX3NlbmRfY21kX21hcGMoc3RydWN0IGhvc3RfaXRzICppdHMsIHVpbnQzMl90 IGNvbGxlY3Rpb25faWQsCj4gICAgICByZXR1cm4gaXRzX3NlbmRfY29tbWFuZChpdHMsIGNtZCk7 Cj4gIH0KPgo+ICtzdGF0aWMgaW50IGl0c19zZW5kX2NtZF9tYXBkKHN0cnVjdCBob3N0X2l0cyAq aXRzLCB1aW50MzJfdCBkZXZpY2VpZCwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 aW50OF90IHNpemVfYml0cywgcGFkZHJfdCBpdHRfYWRkciwgYm9vbCB2YWxpZCkKPiArewo+ICsg ICAgdWludDY0X3QgY21kWzRdOwo+ICsKPiArICAgIGlmICggdmFsaWQgKQo+ICsgICAgewo+ICsg ICAgICAgIEFTU0VSVChzaXplX2JpdHMgPCAzMik7Cj4gKyAgICAgICAgQVNTRVJUKCEoaXR0X2Fk ZHIgJiB+R0VOTUFTS19VTEwoNTEsIDgpKSk7Cj4gKyAgICB9Cj4gKyAgICBjbWRbMF0gPSBHSVRT X0NNRF9NQVBEIHwgKCh1aW50NjRfdClkZXZpY2VpZCA8PCAzMik7Cj4gKyAgICBjbWRbMV0gPSBz aXplX2JpdHM7Cj4gKyAgICBjbWRbMl0gPSBpdHRfYWRkcjsKPiArICAgIGlmICggdmFsaWQgKQo+ ICsgICAgICAgIGNtZFsyXSB8PSBHSVRTX1ZBTElEX0JJVDsKPiArICAgIGNtZFszXSA9IDB4MDA7 Cj4gKwo+ICsgICAgcmV0dXJuIGl0c19zZW5kX2NvbW1hbmQoaXRzLCBjbWQpOwo+ICt9Cj4gKwo+ ICAvKiBTZXQgdXAgdGhlICgxOjEpIGNvbGxlY3Rpb24gbWFwcGluZyBmb3IgdGhlIGdpdmVuIGhv c3QgQ1BVLiAqLwo+ICBpbnQgZ2ljdjNfaXRzX3NldHVwX2NvbGxlY3Rpb24odW5zaWduZWQgaW50 IGNwdSkKPiAgewo+IEBAIC0zNzYsNiArNDEwLDcgQEAgc3RhdGljIGludCBnaWN2M19pdHNfaW5p dF9zaW5nbGVfaXRzKHN0cnVjdCBob3N0X2l0cyAqaHdfaXRzKQo+ICAgICAgaHdfaXRzLT5kZXZp ZF9iaXRzID0gbWluKGh3X2l0cy0+ZGV2aWRfYml0cywgbWF4X2l0c19kZXZpY2VfYml0cyk7Cj4g ICAgICBpZiAoIHJlZyAmIEdJVFNfVFlQRVJfUFRBICkKPiAgICAgICAgICBod19pdHMtPmZsYWdz IHw9IEhPU1RfSVRTX1VTRVNfUFRBOwo+ICsgICAgaHdfaXRzLT5pdHRlX3NpemUgPSBHSVRTX1RZ UEVSX0lUVF9TSVpFKHJlZyk7Cj4KPiAgICAgIGZvciAoIGkgPSAwOyBpIDwgR0lUU19CQVNFUl9O Ul9SRUdTOyBpKysgKQo+ICAgICAgewo+IEBAIC00MzIsNiArNDY3LDE5NyBAQCBpbnQgZ2ljdjNf aXRzX2luaXQodm9pZCkKPiAgICAgIHJldHVybiAwOwo+ICB9Cj4KPiArc3RhdGljIGludCByZW1v dmVfbWFwcGVkX2d1ZXN0X2RldmljZShzdHJ1Y3QgaXRzX2RldmljZXMgKmRldikKPiArewo+ICsg ICAgaW50IHJldDsKPiArCj4gKyAgICBpZiAoIGRldi0+aHdfaXRzICkKPiArICAgIHsKPiArICAg ICAgICAvKiBNQVBEIGFsc28gZGlzY2FyZHMgYWxsIGV2ZW50cyB3aXRoIHRoaXMgZGV2aWNlIElE LiAqLwo+ICsgICAgICAgIGludCByZXQgPSBpdHNfc2VuZF9jbWRfbWFwZChkZXYtPmh3X2l0cywg ZGV2LT5ob3N0X2RldmlkLCAwLCAwLCBmYWxzZSk7Cj4gKyAgICAgICAgaWYgKCByZXQgKQo+ICsg ICAgICAgICAgICByZXR1cm4gcmV0Owo+ICsgICAgfQo+ICsKPiArICAgIHJldCA9IGdpY3YzX2l0 c193YWl0X2NvbW1hbmRzKGRldi0+aHdfaXRzKTsKPiArICAgIGlmICggcmV0ICkKPiArICAgICAg ICByZXR1cm4gcmV0Owo+ICsKPiArICAgIHhmcmVlKGRldi0+aXR0X2FkZHIpOwo+ICsgICAgeGZy ZWUoZGV2LT5wZW5kX2lycXMpOwo+ICsgICAgeGZyZWUoZGV2KTsKPiArCj4gKyAgICByZXR1cm4g MDsKPiArfQo+ICsKPiArc3RhdGljIHN0cnVjdCBob3N0X2l0cyAqZ2ljdjNfaXRzX2ZpbmRfYnlf ZG9vcmJlbGwocGFkZHJfdCBkb29yYmVsbF9hZGRyZXNzKQo+ICt7Cj4gKyAgICBzdHJ1Y3QgaG9z dF9pdHMgKmh3X2l0czsKPiArCj4gKyAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5KGh3X2l0cywgJmhv c3RfaXRzX2xpc3QsIGVudHJ5KQo+ICsgICAgewo+ICsgICAgICAgIGlmICggaHdfaXRzLT5hZGRy ICsgSVRTX0RPT1JCRUxMX09GRlNFVCA9PSBkb29yYmVsbF9hZGRyZXNzICkKPiArICAgICAgICAg ICAgcmV0dXJuIGh3X2l0czsKPiArICAgIH0KPiArCj4gKyAgICByZXR1cm4gTlVMTDsKPiArfQo+ ICsKPiArc3RhdGljIGludCBjb21wYXJlX2l0c19ndWVzdF9kZXZpY2VzKHN0cnVjdCBpdHNfZGV2 aWNlcyAqZGV2LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZHJf dCBkb29yYmVsbCwgdWludDMyX3QgZGV2aWQpCj4gK3sKPiArICAgIGlmICggZGV2LT5ndWVzdF9k b29yYmVsbCA8IGRvb3JiZWxsICkKPiArICAgICAgICByZXR1cm4gLTE7Cj4gKwo+ICsgICAgaWYg KCBkZXYtPmd1ZXN0X2Rvb3JiZWxsID4gZG9vcmJlbGwgKQo+ICsgICAgICAgIHJldHVybiAxOwo+ ICsKPiArICAgIGlmICggZGV2LT5ndWVzdF9kZXZpZCA8IGRldmlkICkKPiArICAgICAgICByZXR1 cm4gLTE7Cj4gKwo+ICsgICAgaWYgKCBkZXYtPmd1ZXN0X2RldmlkID4gZGV2aWQgKQo+ICsgICAg ICAgIHJldHVybiAxOwo+ICsKPiArICAgIHJldHVybiAwOwo+ICt9Cj4gKwo+ICsvKgo+ICsgKiBN YXAgYSBoYXJkd2FyZSBkZXZpY2UsIGlkZW50aWZpZWQgYnkgYSBjZXJ0YWluIGhvc3QgSVRTIGFu ZCBpdHMgZGV2aWNlIElECj4gKyAqIHRvIGRvbWFpbiBkLCBhIGd1ZXN0IElUUyAoaWRlbnRpZmll ZCBieSBpdHMgZG9vcmJlbGwgYWRkcmVzcykgYW5kIGRldmljZSBJRC4KPiArICogQWxzbyBwcm92 aWRlIHRoZSBudW1iZXIgb2YgZXZlbnRzIChNU0lzKSBuZWVkZWQgZm9yIHRoYXQgZGV2aWNlLgo+ ICsgKiBUaGlzIGRvZXMgbm90IGNoZWNrIGlmIHRoaXMgcGFydGljdWxhciBoYXJkd2FyZSBkZXZp Y2UgaXMgYWxyZWFkeSBtYXBwZWQKPiArICogYXQgYW5vdGhlciBkb21haW4sIGl0IGlzIGV4cGVj dGVkIHRoYXQgdGhpcyB3b3VsZCBiZSBkb25lIGJ5IHRoZSBjYWxsZXIuCj4gKyAqLwo+ICtpbnQg Z2ljdjNfaXRzX21hcF9ndWVzdF9kZXZpY2Uoc3RydWN0IGRvbWFpbiAqZCwKPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHBhZGRyX3QgaG9zdF9kb29yYmVsbCwgdWludDMyX3QgaG9z dF9kZXZpZCwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRyX3QgZ3Vlc3Rf ZG9vcmJlbGwsIHVpbnQzMl90IGd1ZXN0X2RldmlkLAo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdWludDMyX3QgbnJfZXZlbnRzLCBib29sIHZhbGlkKQo+ICt7Cj4gKyAgICB2b2lk ICppdHRfYWRkciA9IE5VTEw7Cj4gKyAgICBzdHJ1Y3QgaG9zdF9pdHMgKmh3X2l0czsKPiArICAg IHN0cnVjdCBpdHNfZGV2aWNlcyAqZGV2ID0gTlVMTDsKPiArICAgIHN0cnVjdCByYl9ub2RlICoq bmV3ID0gJmQtPmFyY2gudmdpYy5pdHNfZGV2aWNlcy5yYl9ub2RlLCAqcGFyZW50ID0gTlVMTDsK PiArICAgIGludCByZXQgPSAtRU5PRU5UOwo+ICsKPiArICAgIGh3X2l0cyA9IGdpY3YzX2l0c19m aW5kX2J5X2Rvb3JiZWxsKGhvc3RfZG9vcmJlbGwpOwo+ICsgICAgaWYgKCAhaHdfaXRzICkKPiAr ICAgICAgICByZXR1cm4gcmV0Owo+ICsKPiArICAgIC8qIGNoZWNrIGZvciBhbHJlYWR5IGV4aXN0 aW5nIG1hcHBpbmdzICovCj4gKyAgICBzcGluX2xvY2soJmQtPmFyY2gudmdpYy5pdHNfZGV2aWNl c19sb2NrKTsKPiArICAgIHdoaWxlICggKm5ldyApCj4gKyAgICB7Cj4gKyAgICAgICAgc3RydWN0 IGl0c19kZXZpY2VzICp0ZW1wOwo+ICsgICAgICAgIGludCBjbXA7Cj4gKwo+ICsgICAgICAgIHRl bXAgPSByYl9lbnRyeSgqbmV3LCBzdHJ1Y3QgaXRzX2RldmljZXMsIHJibm9kZSk7Cj4gKwo+ICsg ICAgICAgIHBhcmVudCA9ICpuZXc7Cj4gKyAgICAgICAgY21wID0gY29tcGFyZV9pdHNfZ3Vlc3Rf ZGV2aWNlcyh0ZW1wLCBndWVzdF9kb29yYmVsbCwgZ3Vlc3RfZGV2aWQpOwo+ICsgICAgICAgIGlm ICggIWNtcCApCj4gKyAgICAgICAgewo+ICsgICAgICAgICAgICBpZiAoICF2YWxpZCApCj4gKyAg ICAgICAgICAgICAgICByYl9lcmFzZSgmdGVtcC0+cmJub2RlLCAmZC0+YXJjaC52Z2ljLml0c19k ZXZpY2VzKTsKPiArCj4gKyAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZkLT5hcmNoLnZnaWMuaXRz X2RldmljZXNfbG9jayk7Cj4gKwo+ICsgICAgICAgICAgICBpZiAoIHZhbGlkICkKPiArICAgICAg ICAgICAgICAgIHJldHVybiAtRUJVU1k7Cj4gKwo+ICsgICAgICAgICAgICByZXR1cm4gcmVtb3Zl X21hcHBlZF9ndWVzdF9kZXZpY2UodGVtcCk7Cj4gKyAgICAgICAgfQo+ICsKPiArICAgICAgICBp ZiAoIGNtcCA+IDAgKQo+ICsgICAgICAgICAgICBuZXcgPSAmKCgqbmV3KS0+cmJfbGVmdCk7Cj4g KyAgICAgICAgZWxzZQo+ICsgICAgICAgICAgICBuZXcgPSAmKCgqbmV3KS0+cmJfcmlnaHQpOwo+ ICsgICAgfQo+ICsKPiArICAgIGlmICggIXZhbGlkICkKPiArICAgICAgICBnb3RvIG91dF91bmxv Y2s7Cj4gKwo+ICsgICAgcmV0ID0gLUVOT01FTTsKPiArCj4gKyAgICAvKiBBbiBJbnRlcnJ1cHQg VHJhbnNsYXRpb24gVGFibGUgbmVlZHMgdG8gYmUgMjU2LWJ5dGUgYWxpZ25lZC4gKi8KPiArICAg IGl0dF9hZGRyID0gX3h6YWxsb2MobnJfZXZlbnRzICogaHdfaXRzLT5pdHRlX3NpemUsIDI1Nik7 CgogICAgICBBcyBJIG1lbnRpb25lZCwgaW4gcHJldmlvdXMgdmVyc2lvbiwgaWYgaXR0X2FkZHIg aXMgbm90IGVub3VnaCBzaXplLApJVFMgd291bGQgb3ZlcndyaXRlIGFuZCBjb3JydXB0IG1lbW9y eS4KU2ltaWxhciB0byBzaXplIHBhc3NlZCBpbiBNQVBEIGNtZCwgaXR0X2FkZHIgc2hvdWxkIGFs c28gYmUgYWxsb2NhdGVkIG9mIHNpemUKUk9VTkRVUChucl9ldmVudHMsIExQSV9CTE9DSykuCgo+ ICsgICAgaWYgKCAhaXR0X2FkZHIgKQo+ICsgICAgICAgIGdvdG8gb3V0X3VubG9jazsKPiArCj4g KyAgICBkZXYgPSB4emFsbG9jKHN0cnVjdCBpdHNfZGV2aWNlcyk7Cj4gKyAgICBpZiAoICFkZXYg KQo+ICsgICAgICAgIGdvdG8gb3V0X3VubG9jazsKPiArCj4gKyAgICAvKgo+ICsgICAgICogQWxs b2NhdGUgdGhlIHBlbmRpbmdfaXJxcyBmb3IgZWFjaCB2aXJ0dWFsIExQSS4gVGhleSB3aWxsIGJl IHB1dAo+ICsgICAgICogaW50byB0aGUgZG9tYWluJ3MgcmFkaXggdHJlZSB1cG9uIHRoZSBndWVz dCdzIE1BUFRJIGNvbW1hbmQuCj4gKyAgICAgKi8KPiArICAgIGRldi0+cGVuZF9pcnFzID0geHph bGxvY19hcnJheShzdHJ1Y3QgcGVuZGluZ19pcnEsIG5yX2V2ZW50cyk7Cj4gKyAgICBpZiAoICFk ZXYtPnBlbmRfaXJxcyApCj4gKyAgICAgICAgZ290byBvdXRfdW5sb2NrOwo+ICsKPiArICAgIHJl dCA9IGl0c19zZW5kX2NtZF9tYXBkKGh3X2l0cywgaG9zdF9kZXZpZCwKPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGZscyhST1VORFVQKG5yX2V2ZW50cywgTFBJX0JMT0NLKSAtIDEpIC0g MSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpcnRfdG9fbWFkZHIoaXR0X2FkZHIp LCB0cnVlKTsKPiArICAgIGlmICggcmV0ICkKPiArICAgICAgICBnb3RvIG91dF91bmxvY2s7Cj4g Kwo+ICsgICAgZGV2LT5pdHRfYWRkciA9IGl0dF9hZGRyOwo+ICsgICAgZGV2LT5od19pdHMgPSBo d19pdHM7Cj4gKyAgICBkZXYtPmd1ZXN0X2Rvb3JiZWxsID0gZ3Vlc3RfZG9vcmJlbGw7Cj4gKyAg ICBkZXYtPmd1ZXN0X2RldmlkID0gZ3Vlc3RfZGV2aWQ7Cj4gKyAgICBkZXYtPmhvc3RfZGV2aWQg PSBob3N0X2RldmlkOwo+ICsgICAgZGV2LT5ldmVudGlkcyA9IG5yX2V2ZW50czsKPiArCj4gKyAg ICByYl9saW5rX25vZGUoJmRldi0+cmJub2RlLCBwYXJlbnQsIG5ldyk7Cj4gKyAgICByYl9pbnNl cnRfY29sb3IoJmRldi0+cmJub2RlLCAmZC0+YXJjaC52Z2ljLml0c19kZXZpY2VzKTsKPiArCj4g KyAgICBzcGluX3VubG9jaygmZC0+YXJjaC52Z2ljLml0c19kZXZpY2VzX2xvY2spOwo+ICsKPiAr ICAgIHJldHVybiAwOwo+ICsKPiArb3V0X3VubG9jazoKPiArICAgIHNwaW5fdW5sb2NrKCZkLT5h cmNoLnZnaWMuaXRzX2RldmljZXNfbG9jayk7Cj4gKyAgICBpZiAoIGRldiApCj4gKyAgICB7Cj4g KyAgICAgICAgeGZyZWUoZGV2LT5wZW5kX2lycXMpOwo+ICsgICAgICAgIHhmcmVlKGRldi0+aG9z dF9scGlfYmxvY2tzKTsKPiArICAgIH0KPiArICAgIHhmcmVlKGl0dF9hZGRyKTsKPiArICAgIHhm cmVlKGRldik7Cj4gKyAgICByZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ICsvKiBSZW1vdmluZyBhbnkg Y29ubmVjdGlvbnMgYSBkb21haW4gaGFkIHRvIGFueSBJVFMgaW4gdGhlIHN5c3RlbS4gKi8KPiAr dm9pZCBnaWN2M19pdHNfdW5tYXBfYWxsX2RldmljZXMoc3RydWN0IGRvbWFpbiAqZCkKPiArewo+ ICsgICAgc3RydWN0IHJiX25vZGUgKnZpY3RpbTsKPiArICAgIHN0cnVjdCBpdHNfZGV2aWNlcyAq ZGV2Owo+ICsKPiArICAgIC8qCj4gKyAgICAgKiBUaGlzIGlzIGFuIGVhc2lseSByZWFkYWJsZSwg YnV0IHN1Ym9wdGltYWwgaW1wbGVtZW50YXRpb24uCj4gKyAgICAgKiBJdCB1c2VzIHRoZSBwcm92 aWRlZCBpdGVyYXRpb24gd3JhcHBlciBhbmQgZXJhc2VzIGVhY2ggbm9kZSwgd2hpY2gKPiArICAg ICAqIHBvc3NpYmx5IHRyaWdnZXJzIHJlYmFsYW5jaW5nLgo+ICsgICAgICogVGhpcyBzZWVtcyBv dmVya2lsbCBzaW5jZSB3ZSBhcmUgZ29pbmcgdG8gYWJvbGlzaCB0aGUgd2hvbGUgdHJlZSwgYnV0 Cj4gKyAgICAgKiBhdm9pZHMgYW4gb3Blbi1jb2RlZCByZS1pbXBsZW1lbnRhdGlvbiBvZiB0aGUg dHJhdmVyc2FsIGZ1bmN0aW9ucyB3aXRoCj4gKyAgICAgKiBzb21lIHJlY3Vyc2l2ZSBmdW5jdGlv biBjYWxscy4KPiArICAgICAqLwo+ICtyZXN0YXJ0Ogo+ICsgICAgc3Bpbl9sb2NrKCZkLT5hcmNo LnZnaWMuaXRzX2RldmljZXNfbG9jayk7Cj4gKyAgICBpZiAoICh2aWN0aW0gPSByYl9maXJzdCgm ZC0+YXJjaC52Z2ljLml0c19kZXZpY2VzKSkgKQo+ICsgICAgewo+ICsgICAgICAgIGRldiA9IHJi X2VudHJ5KHZpY3RpbSwgc3RydWN0IGl0c19kZXZpY2VzLCByYm5vZGUpOwo+ICsgICAgICAgIHJi X2VyYXNlKHZpY3RpbSwgJmQtPmFyY2gudmdpYy5pdHNfZGV2aWNlcyk7Cj4gKwo+ICsgICAgICAg IHNwaW5fdW5sb2NrKCZkLT5hcmNoLnZnaWMuaXRzX2RldmljZXNfbG9jayk7Cj4gKwo+ICsgICAg ICAgIHJlbW92ZV9tYXBwZWRfZ3Vlc3RfZGV2aWNlKGRldik7Cj4gKwo+ICsgICAgICAgIGdvdG8g cmVzdGFydDsKPiArICAgIH0KPiArCj4gKyAgICBzcGluX3VubG9jaygmZC0+YXJjaC52Z2ljLml0 c19kZXZpY2VzX2xvY2spOwo+ICt9Cj4gKwo+ICAvKiBTY2FuIHRoZSBEVCBmb3IgYW55IElUUyBu b2RlcyBhbmQgY3JlYXRlIGEgbGlzdCBvZiBob3N0IElUU2VzIG91dCBvZiBpdC4gKi8KPiAgdm9p ZCBnaWN2M19pdHNfZHRfaW5pdChjb25zdCBzdHJ1Y3QgZHRfZGV2aWNlX25vZGUgKm5vZGUpCj4g IHsKPiBAQCAtNDU5LDYgKzY4NSw3IEBAIHZvaWQgZ2ljdjNfaXRzX2R0X2luaXQoY29uc3Qgc3Ry dWN0IGR0X2RldmljZV9ub2RlICpub2RlKQo+ICAgICAgICAgIGl0c19kYXRhLT5hZGRyID0gYWRk cjsKPiAgICAgICAgICBpdHNfZGF0YS0+c2l6ZSA9IHNpemU7Cj4gICAgICAgICAgaXRzX2RhdGEt PmR0X25vZGUgPSBpdHM7Cj4gKyAgICAgICAgc3Bpbl9sb2NrX2luaXQoJml0c19kYXRhLT5jbWRf bG9jayk7Cj4KPiAgICAgICAgICBwcmludGsoIkdJQ3YzOiBGb3VuZCBJVFMgQDB4JWx4XG4iLCBh ZGRyKTsKPgo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vdmdpYy12My5jIGIveGVuL2FyY2gv YXJtL3ZnaWMtdjMuYwo+IGluZGV4IGQ2MTQ3OWQuLjYyNDIyNTIgMTAwNjQ0Cj4gLS0tIGEveGVu L2FyY2gvYXJtL3ZnaWMtdjMuYwo+ICsrKyBiL3hlbi9hcmNoL2FybS92Z2ljLXYzLmMKPiBAQCAt MTQ1MCw2ICsxNDUwLDkgQEAgc3RhdGljIGludCB2Z2ljX3YzX2RvbWFpbl9pbml0KHN0cnVjdCBk b21haW4gKmQpCj4gICAgICBkLT5hcmNoLnZnaWMubnJfcmVnaW9ucyA9IHJkaXN0X2NvdW50Owo+ ICAgICAgZC0+YXJjaC52Z2ljLnJkaXN0X3JlZ2lvbnMgPSByZGlzdF9yZWdpb25zOwo+Cj4gKyAg ICBzcGluX2xvY2tfaW5pdCgmZC0+YXJjaC52Z2ljLml0c19kZXZpY2VzX2xvY2spOwo+ICsgICAg ZC0+YXJjaC52Z2ljLml0c19kZXZpY2VzID0gUkJfUk9PVDsKPiArCj4gICAgICAvKgo+ICAgICAg ICogRG9tYWluIDAgZ2V0cyB0aGUgaGFyZHdhcmUgYWRkcmVzcy4KPiAgICAgICAqIEd1ZXN0cyBn ZXQgdGhlIHZpcnR1YWwgcGxhdGZvcm0gbGF5b3V0Lgo+IEBAIC0xNTIyLDYgKzE1MjUsNyBAQCBz dGF0aWMgaW50IHZnaWNfdjNfZG9tYWluX2luaXQoc3RydWN0IGRvbWFpbiAqZCkKPgo+ICBzdGF0 aWMgdm9pZCB2Z2ljX3YzX2RvbWFpbl9mcmVlKHN0cnVjdCBkb21haW4gKmQpCj4gIHsKPiArICAg IGdpY3YzX2l0c191bm1hcF9hbGxfZGV2aWNlcyhkKTsKPiAgICAgIHhmcmVlKGQtPmFyY2gudmdp Yy5yZGlzdF9yZWdpb25zKTsKPiAgfQo+Cj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1h cm0vZG9tYWluLmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL2RvbWFpbi5oCj4gaW5kZXggMmQ2ZmJi MS4uZTU1OTAyNyAxMDA2NDQKPiAtLS0gYS94ZW4vaW5jbHVkZS9hc20tYXJtL2RvbWFpbi5oCj4g KysrIGIveGVuL2luY2x1ZGUvYXNtLWFybS9kb21haW4uaAo+IEBAIC0xMSw2ICsxMSw3IEBACj4g ICNpbmNsdWRlIDxhc20vZ2ljLmg+Cj4gICNpbmNsdWRlIDxwdWJsaWMvaHZtL3BhcmFtcy5oPgo+ ICAjaW5jbHVkZSA8eGVuL3NlcmlhbC5oPgo+ICsjaW5jbHVkZSA8eGVuL3JidHJlZS5oPgo+Cj4g IHN0cnVjdCBodm1fZG9tYWluCj4gIHsKPiBAQCAtMTA5LDYgKzExMCw4IEBAIHN0cnVjdCBhcmNo X2RvbWFpbgo+ICAgICAgICAgIH0gKnJkaXN0X3JlZ2lvbnM7Cj4gICAgICAgICAgaW50IG5yX3Jl Z2lvbnM7ICAgICAgICAgICAgICAgICAgICAgLyogTnVtYmVyIG9mIHJkaXN0IHJlZ2lvbnMgKi8K PiAgICAgICAgICB1aW50MzJfdCByZGlzdF9zdHJpZGU7ICAgICAgICAgICAgICAvKiBSZS1EaXN0 cmlidXRvciBzdHJpZGUgKi8KPiArICAgICAgICBzdHJ1Y3QgcmJfcm9vdCBpdHNfZGV2aWNlczsg ICAgICAgICAvKiBEZXZpY2VzIG1hcHBlZCB0byBhbiBJVFMgKi8KPiArICAgICAgICBzcGlubG9j a190IGl0c19kZXZpY2VzX2xvY2s7ICAgICAgICAvKiBQcm90ZWN0cyB0aGUgaXRzX2RldmljZXMg dHJlZSAqLwo+ICAjZW5kaWYKPiAgICAgIH0gdmdpYzsKPgo+IGRpZmYgLS1naXQgYS94ZW4vaW5j bHVkZS9hc20tYXJtL2dpY192M19pdHMuaCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vZ2ljX3YzX2l0 cy5oCj4gaW5kZXggNGMyYWUxYy4uNGFkZTVmNiAxMDA2NDQKPiAtLS0gYS94ZW4vaW5jbHVkZS9h c20tYXJtL2dpY192M19pdHMuaAo+ICsrKyBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vZ2ljX3YzX2l0 cy5oCj4gQEAgLTQ4LDYgKzQ4LDEwIEBACj4gICNkZWZpbmUgR0lUU19UWVBFUl9ERVZJQ0VfSURf QklUUyhyKSAgICAoKChyICYgR0lUU19UWVBFUl9ERVZJRFNfTUFTSykgPj4gXAo+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdJVFNfVFlQRVJfREVWSURT X1NISUZUKSArIDEpCj4gICNkZWZpbmUgR0lUU19UWVBFUl9JREJJVFNfU0hJRlQgICAgICAgICA4 Cj4gKyNkZWZpbmUgR0lUU19UWVBFUl9JVFRfU0laRV9TSElGVCAgICAgICA0Cj4gKyNkZWZpbmUg R0lUU19UWVBFUl9JVFRfU0laRV9NQVNLICAgICAgICAoMHhmVUwgPDwgR0lUU19UWVBFUl9JVFRf U0laRV9TSElGVCkKPiArI2RlZmluZSBHSVRTX1RZUEVSX0lUVF9TSVpFKHIpICAgICAgICAgICgo KChyKSAmIEdJVFNfVFlQRVJfSVRUX1NJWkVfTUFTSykgPj4gXAo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHSVRTX1RZUEVSX0lUVF9TSVpFX1NISUZU KSArIDEpCj4KPiAgI2RlZmluZSBHSVRTX0lJRFJfVkFMVUUgICAgICAgICAgICAgICAgIDB4MzRj Cj4KPiBAQCAtOTQsNyArOTgsMTAgQEAKPiAgI2RlZmluZSBHSVRTX0NNRF9NT1ZBTEwgICAgICAg ICAgICAgICAgIDB4MGUKPiAgI2RlZmluZSBHSVRTX0NNRF9ESVNDQVJEICAgICAgICAgICAgICAg IDB4MGYKPgo+ICsjZGVmaW5lIElUU19ET09SQkVMTF9PRkZTRVQgICAgICAgICAgICAgMHgxMDA0 MAo+ICsKPiAgI2luY2x1ZGUgPHhlbi9kZXZpY2VfdHJlZS5oPgo+ICsjaW5jbHVkZSA8eGVuL3Ji dHJlZS5oPgo+Cj4gICNkZWZpbmUgSE9TVF9JVFNfRkxVU0hfQ01EX1FVRVVFICAgICAgICAoMVUg PDwgMCkKPiAgI2RlZmluZSBIT1NUX0lUU19VU0VTX1BUQSAgICAgICAgICAgICAgICgxVSA8PCAx KQo+IEBAIC0xMDksNiArMTE2LDcgQEAgc3RydWN0IGhvc3RfaXRzIHsKPiAgICAgIHVuc2lnbmVk IGludCBkZXZpZF9iaXRzOwo+ICAgICAgc3BpbmxvY2tfdCBjbWRfbG9jazsKPiAgICAgIHZvaWQg KmNtZF9idWY7Cj4gKyAgICB1bnNpZ25lZCBpbnQgaXR0ZV9zaXplOwo+ICAgICAgdW5zaWduZWQg aW50IGZsYWdzOwo+ICB9Owo+Cj4gQEAgLTEzNSw2ICsxNDMsMTcgQEAgdWludDY0X3QgZ2ljdjNf Z2V0X3JlZGlzdF9hZGRyZXNzKHVuc2lnbmVkIGludCBjcHUsIGJvb2wgdXNlX3B0YSk7Cj4gIC8q IE1hcCBhIGNvbGxlY3Rpb24gZm9yIHRoaXMgaG9zdCBDUFUgdG8gZWFjaCBob3N0IElUUy4gKi8K PiAgaW50IGdpY3YzX2l0c19zZXR1cF9jb2xsZWN0aW9uKHVuc2lnbmVkIGludCBjcHUpOwo+Cj4g Ky8qCj4gKyAqIE1hcCBhIGRldmljZSBvbiB0aGUgaG9zdCBieSBhbGxvY2F0aW5nIGFuIElUVCBv biB0aGUgaG9zdCAoSVRTKS4KPiArICogIm5yX2V2ZW50IiBzcGVjaWZpZXMgaG93IG1hbnkgZXZl bnRzIChpbnRlcnJ1cHRzKSB0aGlzIGRldmljZSB3aWxsIG5lZWQuCj4gKyAqIFNldHRpbmcgInZh bGlkIiB0byBmYWxzZSBkZWFsbG9jYXRlcyB0aGUgZGV2aWNlLgo+ICsgKi8KPiAraW50IGdpY3Yz X2l0c19tYXBfZ3Vlc3RfZGV2aWNlKHN0cnVjdCBkb21haW4gKmQsCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBwYWRkcl90IGhvc3RfZG9vcmJlbGwsIHVpbnQzMl90IGhvc3RfZGV2 aWQsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkcl90IGd1ZXN0X2Rvb3Ji ZWxsLCB1aW50MzJfdCBndWVzdF9kZXZpZCwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVpbnQzMl90IG5yX2V2ZW50cywgYm9vbCB2YWxpZCk7Cj4gK3ZvaWQgZ2ljdjNfaXRzX3Vu bWFwX2FsbF9kZXZpY2VzKHN0cnVjdCBkb21haW4gKmQpOwo+ICsKPiAgI2Vsc2UKPgo+ICBzdGF0 aWMgTElTVF9IRUFEKGhvc3RfaXRzX2xpc3QpOwo+IEBAIC0xNzMsNiArMTkyLDEwIEBAIHN0YXRp YyBpbmxpbmUgaW50IGdpY3YzX2l0c19zZXR1cF9jb2xsZWN0aW9uKHVuc2lnbmVkIGludCBjcHUp Cj4gICAgICByZXR1cm4gMDsKPiAgfQo+Cj4gK3N0YXRpYyBpbmxpbmUgdm9pZCBnaWN2M19pdHNf dW5tYXBfYWxsX2RldmljZXMoc3RydWN0IGRvbWFpbiAqZCkKPiArewo+ICt9Cj4gKwo+ICAjZW5k aWYgLyogQ09ORklHX0hBU19JVFMgKi8KPgo+ICAjZW5kaWYKPiAtLQo+IDIuOS4wCj4KCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWls aW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hl bi1kZXZlbAo=