From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shanker Donthineni Subject: Re: [PATCH 04/28] ARM: GICv3 ITS: allocate device and collection table Date: Thu, 16 Feb 2017 13:03:18 -0600 Message-ID: References: <20170130183153.28566-1-andre.przywara@arm.com> <20170130183153.28566-5-andre.przywara@arm.com> Reply-To: shankerd@codeaurora.org Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" 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 1ceRKu-00026d-S8 for xen-devel@lists.xenproject.org; Thu, 16 Feb 2017 19:03:25 +0000 In-Reply-To: <20170130183153.28566-5-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 , Julien Grall Cc: xen-devel@lists.xenproject.org, Vijay Kilari List-Id: xen-devel@lists.xenproject.org SGkgQW5kcmUsCgoKT24gMDEvMzAvMjAxNyAxMjozMSBQTSwgQW5kcmUgUHJ6eXdhcmEgd3JvdGU6 Cj4gRWFjaCBJVFMgbWFwcyBhIHBhaXIgb2YgYSBEZXZpY2VJRCAodXN1YWxseSB0aGUgUENJIGIv ZC9mIHRyaXBsZXQpIGFuZAo+IGFuIEV2ZW50SUQgKHRoZSBNU0kgcGF5bG9hZCBvciBpbnRlcnJ1 cHQgSUQpIHRvIGEgcGFpciBvZiBMUEkgbnVtYmVyCj4gYW5kIGNvbGxlY3Rpb24gSUQsIHdoaWNo IHBvaW50cyB0byB0aGUgdGFyZ2V0IENQVS4KPiBUaGlzIG1hcHBpbmcgaXMgc3RvcmVkIGluIHRo ZSBkZXZpY2UgYW5kIGNvbGxlY3Rpb24gdGFibGVzLCB3aGljaCBzb2Z0d2FyZQo+IGhhcyB0byBw cm92aWRlIGZvciB0aGUgSVRTIHRvIHVzZS4KPiBBbGxvY2F0ZSB0aGUgcmVxdWlyZWQgbWVtb3J5 IGFuZCBoYW5kIGl0IHRoZSBJVFMuCj4gVGhlIG1heGltdW0gbnVtYmVyIG9mIGRldmljZXMgaXMg bGltaXRlZCB0byBhIGNvbXBpbGUtdGltZSBjb25zdGFudAo+IGV4cG9zZWQgaW4gS2NvbmZpZy4K Pgo+IFNpZ25lZC1vZmYtYnk6IEFuZHJlIFByenl3YXJhIDxhbmRyZS5wcnp5d2FyYUBhcm0uY29t Pgo+IC0tLQo+ICAgeGVuL2FyY2gvYXJtL0tjb25maWcgICAgICAgICAgICAgfCAgMTQgKysrKysK PiAgIHhlbi9hcmNoL2FybS9naWMtdjMtaXRzLmMgICAgICAgIHwgMTI5Cj4gKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gICB4ZW4vYXJjaC9hcm0vZ2ljLXYzLmMgICAg ICAgICAgICB8ICAgNSArKwo+ICAgeGVuL2luY2x1ZGUvYXNtLWFybS9naWNfdjNfaXRzLmggfCAg NTUgKysrKysrKysrKysrKysrKy0KPiAgIDQgZmlsZXMgY2hhbmdlZCwgMjAyIGluc2VydGlvbnMo KyksIDEgZGVsZXRpb24oLSkKPgo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vS2NvbmZpZyBi L3hlbi9hcmNoL2FybS9LY29uZmlnCj4gaW5kZXggNzE3MzRhMS4uODFiYzIzMyAxMDA2NDQKPiAt LS0gYS94ZW4vYXJjaC9hcm0vS2NvbmZpZwo+ICsrKyBiL3hlbi9hcmNoL2FybS9LY29uZmlnCj4g QEAgLTY0LDYgKzY0LDIwIEBAIGNvbmZpZyBNQVhfUEhZU19MUElfQklUUwo+ICAgICAgICAgICAg IFRoaXMgY2FuIGJlIG92ZXJyaWRlbiBvbiB0aGUgY29tbWFuZCBsaW5lIHdpdGggdGhlIG1heF9s cGlfYml0cwo+ICAgICAgICAgICAgIHBhcmFtZXRlci4KPgo+ICtjb25maWcgTUFYX1BIWVNfSVRT X0RFVklDRV9CSVRTCj4gKyAgICAgICAgZGVwZW5kcyBvbiBIQVNfSVRTCj4gKyAgICAgICAgaW50 ICJOdW1iZXIgb2YgZGV2aWNlIGJpdHMgdGhlIElUUyBzdXBwb3J0cyIKPiArICAgICAgICByYW5n ZSAxIDMyCj4gKyAgICAgICAgZGVmYXVsdCAiMTAiCj4gKyAgICAgICAgaGVscAo+ICsgICAgICAg ICAgU3BlY2lmaWVzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBkZXZpY2VzIHdoaWNoIHdhbnQgdG8g dXNlIHRoZQo+IElUUy4KPiArICAgICAgICAgIFhlbiBuZWVkcyB0byBhbGxvY2F0ZXMgbWVtb3J5 IGZvciB0aGUgd2hvbGUgcmFuZ2UgdmVyeSBlYXJseS4KPiArICAgICAgICAgIFRoZSBhbGxvY2F0 aW9uIHNjaGVtZSBtYXkgYmUgc3BhcnNlLCBzbyBhIG11Y2ggbGFyZ2VyIG51bWJlciBtdXN0Cj4g KyAgICAgICAgICBiZSBzdXBwb3J0ZWQgdG8gY292ZXIgZGV2aWNlcyB3aXRoIGEgaGlnaCBidXMg bnVtYmVyIG9yIHRob3NlIG9uCj4gKyAgICAgICAgICBzZXBhcmF0ZSBidXMgc2VnbWVudHMuCj4g KyAgICAgICAgICBUaGlzIGNhbiBiZSBvdmVycmlkZW4gb24gdGhlIGNvbW1hbmQgbGluZSB3aXRo IHRoZQo+IG1heF9pdHNfZGV2aWNlX2JpdHMKPiArICAgICAgICAgIHBhcmFtZXRlci4KPiArCj4g ICBlbmRtZW51Cj4KPiAgIG1lbnUgIkFSTSBlcnJhdGEgd29ya2Fyb3VuZCB2aWEgdGhlIGFsdGVy bmF0aXZlIGZyYW1ld29yayIKPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2dpYy12My1pdHMu YyBiL3hlbi9hcmNoL2FybS9naWMtdjMtaXRzLmMKPiBpbmRleCBmZjBmNTcxLi5jMzFmZWY2IDEw MDY0NAo+IC0tLSBhL3hlbi9hcmNoL2FybS9naWMtdjMtaXRzLmMKPiArKysgYi94ZW4vYXJjaC9h cm0vZ2ljLXYzLWl0cy5jCj4gQEAgLTIwLDkgKzIwLDEzOCBAQAo+ICAgI2luY2x1ZGUgPHhlbi9s aWIuaD4KPiAgICNpbmNsdWRlIDx4ZW4vZGV2aWNlX3RyZWUuaD4KPiAgICNpbmNsdWRlIDx4ZW4v bGliZmR0L2xpYmZkdC5oPgo+ICsjaW5jbHVkZSA8eGVuL21tLmg+Cj4gKyNpbmNsdWRlIDx4ZW4v c2l6ZXMuaD4KPiAgICNpbmNsdWRlIDxhc20vZ2ljLmg+Cj4gICAjaW5jbHVkZSA8YXNtL2dpY192 M19kZWZzLmg+Cj4gICAjaW5jbHVkZSA8YXNtL2dpY192M19pdHMuaD4KPiArI2luY2x1ZGUgPGFz bS9pby5oPgo+ICsKPiArI2RlZmluZSBCQVNFUl9BVFRSX01BU0sgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAo+ICsgICAgICAgICgoMHgzVUwgPDwgR0lUU19CQVNF Ul9TSEFSRUFCSUxJVFlfU0hJRlQpICAgICAgICAgICAgICAgfCBcCj4gKyAgICAgICAgICgweDdV TCA8PCBHSVRTX0JBU0VSX09VVEVSX0NBQ0hFQUJJTElUWV9TSElGVCkgICAgICAgICB8IFwKPiAr ICAgICAgICAgKDB4N1VMIDw8IEdJVFNfQkFTRVJfSU5ORVJfQ0FDSEVBQklMSVRZX1NISUZUKSkK PiArI2RlZmluZSBCQVNFUl9ST19NQVNLICAgKEdFTk1BU0soNTgsIDU2KSB8IEdFTk1BU0soNTIs IDQ4KSkKPiArCj4gK3N0YXRpYyB1aW50NjRfdCBlbmNvZGVfcGh5c19hZGRyKHBhZGRyX3QgYWRk ciwgaW50IHBhZ2VfYml0cykKPiArewo+ICsgICAgdWludDY0X3QgcmV0Owo+ICsKPiArICAgIGlm ICggcGFnZV9iaXRzIDwgMTYgKQo+ICsgICAgICAgIHJldHVybiAodWludDY0X3QpYWRkciAmIEdF Tk1BU0soNDcsIHBhZ2VfYml0cyk7Cj4gKwo+ICsgICAgcmV0ID0gYWRkciAmIEdFTk1BU0soNDcs IDE2KTsKPiArICAgIHJldHVybiByZXQgfCAoYWRkciAmIEdFTk1BU0soNTEsIDQ4KSkgPj4gKDQ4 IC0gMTIpOwo+ICt9Cj4gKwo+ICsjZGVmaW5lIFBBR0VfQklUUyhzeikgKChzeikgKiAyICsgUEFH RV9TSElGVCkKPiArCj4gK3N0YXRpYyBpbnQgaXRzX21hcF9iYXNlcih2b2lkIF9faW9tZW0gKmJh c2VyZWcsIHVpbnQ2NF90IHJlZ2MsIGludAo+IG5yX2l0ZW1zKQo+ICt7Cj4gKyAgICB1aW50NjRf dCBhdHRyLCByZWc7Cj4gKyAgICBpbnQgZW50cnlfc2l6ZSA9ICgocmVnYyA+PiBHSVRTX0JBU0VS X0VOVFJZX1NJWkVfU0hJRlQpICYgMHgxZikgKyAxOwo+ICsgICAgaW50IHBhZ2VzeiA9IDAsIG9y ZGVyLCB0YWJsZV9zaXplOwo+ICsgICAgdm9pZCAqYnVmZmVyID0gTlVMTDsKPiArCj4gKyAgICBh dHRyICA9IEdJQ19CQVNFUl9Jbm5lclNoYXJlYWJsZSA8PCBHSVRTX0JBU0VSX1NIQVJFQUJJTElU WV9TSElGVDsKPiArICAgIGF0dHIgfD0gR0lDX0JBU0VSX0NBQ0hFX1NhbWVBc0lubmVyIDw8Cj4g R0lUU19CQVNFUl9PVVRFUl9DQUNIRUFCSUxJVFlfU0hJRlQ7Cj4gKyAgICBhdHRyIHw9IEdJQ19C QVNFUl9DQUNIRV9SYVdhV2IgPDwgR0lUU19CQVNFUl9JTk5FUl9DQUNIRUFCSUxJVFlfU0hJRlQ7 Cj4gKwo+ICsgICAgLyoKPiArICAgICAqIFNldHVwIHRoZSBCQVNFIHJlZ2lzdGVyIHdpdGggdGhl IGF0dHJpYnV0ZXMgdGhhdCB3ZSBsaWtlLiBUaGVuIHJlYWQKPiArICAgICAqIGl0IGJhY2sgYW5k IHNlZSB3aGF0IHN0aWNrcyAocGFnZSBzaXplLCBjYWNoZWFiaWxpdHkgYW5kCj4gc2hhcmVhYmls aXR5Cj4gKyAgICAgKiBhdHRyaWJ1dGVzKSwgcmV0cnlpbmcgaWYgbmVjZXNzYXJ5Lgo+ICsgICAg ICovCj4gKyAgICB3aGlsZSAoIDEgKQo+ICsgICAgewo+ICsgICAgICAgIHRhYmxlX3NpemUgPSBS T1VORFVQKG5yX2l0ZW1zICogZW50cnlfc2l6ZSwKPiBCSVQoUEFHRV9CSVRTKHBhZ2VzeikpKTsK PiArICAgICAgICBvcmRlciA9IGdldF9vcmRlcl9mcm9tX2J5dGVzKHRhYmxlX3NpemUpOwo+ICsK PiArICAgICAgICBpZiAoICFidWZmZXIgKQo+ICsgICAgICAgICAgICBidWZmZXIgPSBhbGxvY194 ZW5oZWFwX3BhZ2VzKG9yZGVyLCAwKTsKPiArICAgICAgICBpZiAoICFidWZmZXIgKQo+ICsgICAg ICAgICAgICByZXR1cm4gLUVOT01FTTsKPiArCj4gKyAgICAgICAgcmVnICA9IGF0dHI7Cj4gKyAg ICAgICAgcmVnIHw9IChwYWdlc3ogPDwgR0lUU19CQVNFUl9QQUdFX1NJWkVfU0hJRlQpOwo+ICsg ICAgICAgIHJlZyB8PSB0YWJsZV9zaXplID4+IFBBR0VfQklUUyhwYWdlc3opOwo+ICsgICAgICAg IHJlZyB8PSByZWdjICYgQkFTRVJfUk9fTUFTSzsKPiArICAgICAgICByZWcgfD0gR0lUU19WQUxJ RF9CSVQ7Cj4gKyAgICAgICAgcmVnIHw9IGVuY29kZV9waHlzX2FkZHIodmlydF90b19tYWRkcihi dWZmZXIpLCBQQUdFX0JJVFMocGFnZXN6KSk7Cj4gKwo+ICsgICAgICAgIHdyaXRlcV9yZWxheGVk KHJlZywgYmFzZXJlZyk7Cj4gKyAgICAgICAgcmVnYyA9IHJlYWRsX3JlbGF4ZWQoYmFzZXJlZyk7 CmV4cGVjdGluZyByZWdjID0gcmVhZHFfcmVsYXhlZChiYXNlcnEpPwoKPiArCj4gKyAgICAgICAg LyogVGhlIGhvc3QgZGlkbid0IGxpa2Ugb3VyIGF0dHJpYnV0ZXMsIGp1c3QgdXNlIHdoYXQgaXQg cmV0dXJuZWQuCj4gKi8KPiArICAgICAgICBpZiAoIChyZWdjICYgQkFTRVJfQVRUUl9NQVNLKSAh PSBhdHRyICkKPiArICAgICAgICB7Cj4gKyAgICAgICAgICAgIC8qIElmIHdlIGNhbid0IG1hcCBp dCBzaGFyZWFibGUsIGRyb3AgY2FjaGVhYmlsaXR5IGFzIHdlbGwuICovCj4gKyAgICAgICAgICAg IGlmICggKHJlZ2MgJiBHSVRTX0JBU0VSX1NIQVJFQUJJTElUWV9NQVNLKSA9PQo+IEdJQ19CQVNF Ul9Ob25TaGFyZWFibGUgKQo+ICsgICAgICAgICAgICB7Cj4gKyAgICAgICAgICAgICAgICByZWdj ICY9IH5HSVRTX0JBU0VSX0lOTkVSX0NBQ0hFQUJJTElUWV9NQVNLOwo+ICsgICAgICAgICAgICAg ICAgYXR0ciA9IHJlZ2MgJiBCQVNFUl9BVFRSX01BU0s7Cj4gKyAgICAgICAgICAgICAgICBjb250 aW51ZTsKPiArICAgICAgICAgICAgfQo+ICsgICAgICAgICAgICBhdHRyID0gcmVnYyAmIEJBU0VS X0FUVFJfTUFTSzsKPiArICAgICAgICB9Cj4gKwo+ICsgICAgICAgIC8qIElmIHRoZSBob3N0IGFj Y2VwdGVkIG91ciBwYWdlIHNpemUsIHdlIGFyZSBkb25lLiAqLwo+ICsgICAgICAgIGlmICggKHJl Z2MgJiAoM1VMIDw8IEdJVFNfQkFTRVJfUEFHRV9TSVpFX1NISUZUKSkgPT0gcGFnZXN6ICkKSW52 YWxpZCBjaGVjaywgc2hvdWxkIGJlICdpZiAoICgocmVnYyA+PiBHSVRTX0JBU0VSX1BBR0VfU0la RV9TSElGVCkgJiAKMHgzKSA9PSBwYWdlc3opJwo+ICsgICAgICAgICAgICByZXR1cm4gMDsKPiAr Cj4gKyAgICAgICAgLyogTm9uZSBvZiB0aGUgcGFnZSBzaXplcyB3YXMgYWNjZXB0ZWQsIGdpdmUg dXAgKi8KPiArICAgICAgICBpZiAoIHBhZ2VzeiA+PSAyICkKPiArICAgICAgICAgICAgYnJlYWs7 Cj4gKwo+ICsgICAgICAgIGZyZWVfeGVuaGVhcF9wYWdlcyhidWZmZXIsIG9yZGVyKTsKPiArICAg ICAgICBidWZmZXIgPSBOVUxMOwo+ICsKPiArICAgICAgICBwYWdlc3orKzsKPiArICAgIH0KPiAr Cj4gKyAgICBpZiAoIGJ1ZmZlciApCj4gKyAgICAgICAgZnJlZV94ZW5oZWFwX3BhZ2VzKGJ1ZmZl ciwgb3JkZXIpOwo+ICsKPiArICAgIHJldHVybiAtRUlOVkFMOwo+ICt9Cj4gKwo+ICtzdGF0aWMg dW5zaWduZWQgaW50IG1heF9pdHNfZGV2aWNlX2JpdHMgPSBDT05GSUdfTUFYX1BIWVNfSVRTX0RF VklDRV9CSVRTOwo+ICtpbnRlZ2VyX3BhcmFtKCJtYXhfaXRzX2RldmljZV9iaXRzIiwgbWF4X2l0 c19kZXZpY2VfYml0cyk7Cj4gKwo+ICtpbnQgZ2ljdjNfaXRzX2luaXQoc3RydWN0IGhvc3RfaXRz ICpod19pdHMpCj4gK3sKPiArICAgIHVpbnQ2NF90IHJlZzsKPiArICAgIGludCBpOwo+ICsKPiAr ICAgIGh3X2l0cy0+aXRzX2Jhc2UgPSBpb3JlbWFwX25vY2FjaGUoaHdfaXRzLT5hZGRyLCBod19p dHMtPnNpemUpOwo+ICsgICAgaWYgKCAhaHdfaXRzLT5pdHNfYmFzZSApCj4gKyAgICAgICAgcmV0 dXJuIC1FTk9NRU07Cj4gKwo+ICsgICAgZm9yICggaSA9IDA7IGkgPCBHSVRTX0JBU0VSX05SX1JF R1M7IGkrKyApCj4gKyAgICB7Cj4gKyAgICAgICAgdm9pZCBfX2lvbWVtICpiYXNlcmVnID0gaHdf aXRzLT5pdHNfYmFzZSArIEdJVFNfQkFTRVIwICsgaSAqIDg7Cj4gKyAgICAgICAgaW50IHR5cGU7 Cj4gKwo+ICsgICAgICAgIHJlZyA9IHJlYWRxX3JlbGF4ZWQoYmFzZXJlZyk7Cj4gKyAgICAgICAg dHlwZSA9IChyZWcgJiBHSVRTX0JBU0VSX1RZUEVfTUFTSykgPj4gR0lUU19CQVNFUl9UWVBFX1NI SUZUOwo+ICsgICAgICAgIHN3aXRjaCAoIHR5cGUgKQo+ICsgICAgICAgIHsKPiArICAgICAgICBj YXNlIEdJVFNfQkFTRVJfVFlQRV9OT05FOgo+ICsgICAgICAgICAgICBjb250aW51ZTsKPiArICAg ICAgICBjYXNlIEdJVFNfQkFTRVJfVFlQRV9ERVZJQ0U6Cj4gKyAgICAgICAgICAgIC8qIFRPRE86 IGZpbmQgc29tZSBiZXR0ZXIgd2F5IG9mIGxpbWl0aW5nIHRoZSBudW1iZXIgb2YgZGV2aWNlcwo+ ICovCj4gKyAgICAgICAgICAgIGl0c19tYXBfYmFzZXIoYmFzZXJlZywgcmVnLCBCSVQobWF4X2l0 c19kZXZpY2VfYml0cykpOwo+ICsgICAgICAgICAgICBicmVhazsKPiArICAgICAgICBjYXNlIEdJ VFNfQkFTRVJfVFlQRV9DT0xMRUNUSU9OOgo+ICsgICAgICAgICAgICBpdHNfbWFwX2Jhc2VyKGJh c2VyZWcsIHJlZywgTlJfQ1BVUyk7Cj4gKyAgICAgICAgICAgIGJyZWFrOwo+ICsgICAgICAgIGRl ZmF1bHQ6Cj4gKyAgICAgICAgICAgIGNvbnRpbnVlOwo+ICsgICAgICAgIH0KPiArICAgIH0KPiAr Cj4gKyAgICByZXR1cm4gMDsKPiArfQo+Cj4gICAvKiBTY2FuIHRoZSBEVCBmb3IgYW55IElUUyBu b2RlcyBhbmQgY3JlYXRlIGEgbGlzdCBvZiBob3N0IElUU2VzIG91dCBvZiBpdC4KPiAqLwo+ICAg dm9pZCBnaWN2M19pdHNfZHRfaW5pdChjb25zdCBzdHJ1Y3QgZHRfZGV2aWNlX25vZGUgKm5vZGUp Cj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9naWMtdjMuYyBiL3hlbi9hcmNoL2FybS9naWMt djMuYwo+IGluZGV4IGZjYjg2YzguLjQ0MGMwNzkgMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gvYXJt L2dpYy12My5jCj4gKysrIGIveGVuL2FyY2gvYXJtL2dpYy12My5jCj4gQEAgLTI5LDYgKzI5LDcg QEAKPiAgICNpbmNsdWRlIDx4ZW4vaXJxLmg+Cj4gICAjaW5jbHVkZSA8eGVuL2lvY2FwLmg+Cj4g ICAjaW5jbHVkZSA8eGVuL3NjaGVkLmg+Cj4gKyNpbmNsdWRlIDx4ZW4vZXJyLmg+Cj4gICAjaW5j bHVkZSA8eGVuL2Vycm5vLmg+Cj4gICAjaW5jbHVkZSA8eGVuL2RlbGF5Lmg+Cj4gICAjaW5jbHVk ZSA8eGVuL2RldmljZV90cmVlLmg+Cj4gQEAgLTE1NjMsNiArMTU2NCw3IEBAIHN0YXRpYyBpbnQg X19pbml0IGdpY3YzX2luaXQodm9pZCkKPiAgIHsKPiAgICAgICBpbnQgcmVzLCBpOwo+ICAgICAg IHVpbnQzMl90IHJlZzsKPiArICAgIHN0cnVjdCBob3N0X2l0cyAqaHdfaXRzOwo+Cj4gICAgICAg aWYgKCAhY3B1X2hhc19naWN2MyApCj4gICAgICAgewo+IEBAIC0xNjE4LDYgKzE2MjAsOSBAQCBz dGF0aWMgaW50IF9faW5pdCBnaWN2M19pbml0KHZvaWQpCj4gICAgICAgcmVzID0gZ2ljdjNfY3B1 X2luaXQoKTsKPiAgICAgICBnaWN2M19oeXBfaW5pdCgpOwo+Cj4gKyAgICBsaXN0X2Zvcl9lYWNo X2VudHJ5KGh3X2l0cywgJmhvc3RfaXRzX2xpc3QsIGVudHJ5KQo+ICsgICAgICAgIGdpY3YzX2l0 c19pbml0KGh3X2l0cyk7Cj4gKwo+ICAgICAgIHNwaW5fdW5sb2NrKCZnaWN2My5sb2NrKTsKPgo+ ICAgICAgIHJldHVybiByZXM7Cj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vZ2lj X3YzX2l0cy5oCj4gYi94ZW4vaW5jbHVkZS9hc20tYXJtL2dpY192M19pdHMuaAo+IGluZGV4IGE2 NmI2YmUuLmVkNDRiZGIgMTAwNjQ0Cj4gLS0tIGEveGVuL2luY2x1ZGUvYXNtLWFybS9naWNfdjNf aXRzLmgKPiArKysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL2dpY192M19pdHMuaAo+IEBAIC0xOCw2 ICsxOCw1MyBAQAo+ICAgI2lmbmRlZiBfX0FTTV9BUk1fSVRTX0hfXwo+ICAgI2RlZmluZSBfX0FT TV9BUk1fSVRTX0hfXwo+Cj4gKyNkZWZpbmUgR0lUU19DVExSICAgICAgICAgICAgICAgICAgICAg ICAweDAwMAo+ICsjZGVmaW5lIEdJVFNfSUlEUiAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQK PiArI2RlZmluZSBHSVRTX1RZUEVSICAgICAgICAgICAgICAgICAgICAgIDB4MDA4Cj4gKyNkZWZp bmUgR0lUU19DQkFTRVIgICAgICAgICAgICAgICAgICAgICAweDA4MAo+ICsjZGVmaW5lIEdJVFNf Q1dSSVRFUiAgICAgICAgICAgICAgICAgICAgMHgwODgKPiArI2RlZmluZSBHSVRTX0NSRUFEUiAg ICAgICAgICAgICAgICAgICAgIDB4MDkwCj4gKyNkZWZpbmUgR0lUU19CQVNFUl9OUl9SRUdTICAg ICAgICAgICAgICA4Cj4gKyNkZWZpbmUgR0lUU19CQVNFUjAgICAgICAgICAgICAgICAgICAgICAw eDEwMAo+ICsjZGVmaW5lIEdJVFNfQkFTRVIxICAgICAgICAgICAgICAgICAgICAgMHgxMDgKPiAr I2RlZmluZSBHSVRTX0JBU0VSMiAgICAgICAgICAgICAgICAgICAgIDB4MTEwCj4gKyNkZWZpbmUg R0lUU19CQVNFUjMgICAgICAgICAgICAgICAgICAgICAweDExOAo+ICsjZGVmaW5lIEdJVFNfQkFT RVI0ICAgICAgICAgICAgICAgICAgICAgMHgxMjAKPiArI2RlZmluZSBHSVRTX0JBU0VSNSAgICAg ICAgICAgICAgICAgICAgIDB4MTI4Cj4gKyNkZWZpbmUgR0lUU19CQVNFUjYgICAgICAgICAgICAg ICAgICAgICAweDEzMAo+ICsjZGVmaW5lIEdJVFNfQkFTRVI3ICAgICAgICAgICAgICAgICAgICAg MHgxMzgKPiArCj4gKy8qIFJlZ2lzdGVyIGJpdHMgKi8KPiArI2RlZmluZSBHSVRTX1ZBTElEX0JJ VCAgICAgICAgICAgICAgICAgIEJJVF9VTEwoNjMpCj4gKwo+ICsjZGVmaW5lIEdJVFNfQ1RMUl9R VUlFU0NFTlQgICAgICAgICAgICAgQklUKDMxKQo+ICsjZGVmaW5lIEdJVFNfQ1RMUl9FTkFCTEUg ICAgICAgICAgICAgICAgQklUKDApCj4gKwo+ICsjZGVmaW5lIEdJVFNfSUlEUl9WQUxVRSAgICAg ICAgICAgICAgICAgMHgzNGMKPiArCj4gKyNkZWZpbmUgR0lUU19CQVNFUl9JTkRJUkVDVCAgICAg ICAgICAgICBCSVRfVUxMKDYyKQo+ICsjZGVmaW5lIEdJVFNfQkFTRVJfSU5ORVJfQ0FDSEVBQklM SVRZX1NISUZUICAgICAgICA1OQo+ICsjZGVmaW5lIEdJVFNfQkFTRVJfVFlQRV9TSElGVCAgICAg ICAgICAgNTYKPiArI2RlZmluZSBHSVRTX0JBU0VSX1RZUEVfTUFTSyAgICAgICAgICAgICg3VUxM IDw8IEdJVFNfQkFTRVJfVFlQRV9TSElGVCkKPiArI2RlZmluZSBHSVRTX0JBU0VSX09VVEVSX0NB Q0hFQUJJTElUWV9TSElGVCAgICAgICAgNTMKPiArI2RlZmluZSBHSVRTX0JBU0VSX1RZUEVfTk9O RSAgICAgICAgICAgIDBVTAo+ICsjZGVmaW5lIEdJVFNfQkFTRVJfVFlQRV9ERVZJQ0UgICAgICAg ICAgMVVMCj4gKyNkZWZpbmUgR0lUU19CQVNFUl9UWVBFX1ZDUFUgICAgICAgICAgICAyVUwKPiAr I2RlZmluZSBHSVRTX0JBU0VSX1RZUEVfQ1BVICAgICAgICAgICAgIDNVTAo+ICsjZGVmaW5lIEdJ VFNfQkFTRVJfVFlQRV9DT0xMRUNUSU9OICAgICAgNFVMCj4gKyNkZWZpbmUgR0lUU19CQVNFUl9U WVBFX1JFU0VSVkVENSAgICAgICA1VUwKPiArI2RlZmluZSBHSVRTX0JBU0VSX1RZUEVfUkVTRVJW RUQ2ICAgICAgIDZVTAo+ICsjZGVmaW5lIEdJVFNfQkFTRVJfVFlQRV9SRVNFUlZFRDcgICAgICAg N1VMCj4gKyNkZWZpbmUgR0lUU19CQVNFUl9FTlRSWV9TSVpFX1NISUZUICAgICA0OAo+ICsjZGVm aW5lIEdJVFNfQkFTRVJfU0hBUkVBQklMSVRZX1NISUZUICAgMTAKPiArI2RlZmluZSBHSVRTX0JB U0VSX1BBR0VfU0laRV9TSElGVCAgICAgIDgKPiArI2RlZmluZSBHSVRTX0JBU0VSX1JPX01BU0sg ICAgICAgICAgICAgIChHSVRTX0JBU0VSX1RZUEVfTUFTSyB8IFwKPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICgzMVVMIDw8Cj4gR0lUU19CQVNFUl9FTlRSWV9TSVpF X1NISUZUKSB8XAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0lU U19CQVNFUl9JTkRJUkVDVCkKPiArI2RlZmluZSBHSVRTX0JBU0VSX1NIQVJFQUJJTElUWV9NQVNL ICAgKDB4M1VMTCA8PAo+IEdJVFNfQkFTRVJfU0hBUkVBQklMSVRZX1NISUZUKQo+ICsjZGVmaW5l IEdJVFNfQkFTRVJfT1VURVJfQ0FDSEVBQklMSVRZX01BU0sgICAoMHg3VUxMIDw8Cj4gR0lUU19C QVNFUl9PVVRFUl9DQUNIRUFCSUxJVFlfU0hJRlQpCj4gKyNkZWZpbmUgR0lUU19CQVNFUl9JTk5F Ul9DQUNIRUFCSUxJVFlfTUFTSyAgICgweDdVTEwgPDwKPiBHSVRTX0JBU0VSX0lOTkVSX0NBQ0hF QUJJTElUWV9TSElGVCkKPiArCj4gICAjaWZuZGVmIF9fQVNTRU1CTFlfXwo+ICAgI2luY2x1ZGUg PHhlbi9kZXZpY2VfdHJlZS5oPgo+Cj4gQEAgLTI3LDYgKzc0LDcgQEAgc3RydWN0IGhvc3RfaXRz IHsKPiAgICAgICBjb25zdCBzdHJ1Y3QgZHRfZGV2aWNlX25vZGUgKmR0X25vZGU7Cj4gICAgICAg cGFkZHJfdCBhZGRyOwo+ICAgICAgIHBhZGRyX3Qgc2l6ZTsKPiArICAgIHZvaWQgX19pb21lbSAq aXRzX2Jhc2U7Cj4gICB9Owo+Cj4gICBleHRlcm4gc3RydWN0IGxpc3RfaGVhZCBob3N0X2l0c19s aXN0Owo+IEBAIC00Miw4ICs5MCw5IEBAIHZvaWQgZ2ljdjNfaXRzX2R0X2luaXQoY29uc3Qgc3Ry dWN0IGR0X2RldmljZV9ub2RlICpub2RlKTsKPiAgIHVpbnQ2NF90IGdpY3YzX2xwaV9nZXRfcHJv cHRhYmxlKHZvaWQpOwo+ICAgdWludDY0X3QgZ2ljdjNfbHBpX2FsbG9jYXRlX3BlbmR0YWJsZSh2 b2lkKTsKPgo+IC0vKiBJbml0aWFsaXplIHRoZSBob3N0IHN0cnVjdHVyZXMgZm9yIExQSXMuICov Cj4gKy8qIEluaXRpYWxpemUgdGhlIGhvc3Qgc3RydWN0dXJlcyBmb3IgTFBJcyBhbmQgdGhlIGhv c3QgSVRTZXMuICovCj4gICBpbnQgZ2ljdjNfbHBpX2luaXRfaG9zdF9scGlzKHVuc2lnbmVkIGlu dCBucl9scGlzKTsKPiAraW50IGdpY3YzX2l0c19pbml0KHN0cnVjdCBob3N0X2l0cyAqaHdfaXRz KTsKPgo+ICAgI2Vsc2UKPgo+IEBAIC02Miw2ICsxMTEsMTAgQEAgc3RhdGljIGlubGluZSBpbnQg Z2ljdjNfbHBpX2luaXRfaG9zdF9scGlzKHVuc2lnbmVkIGludAo+IG5yX2xwaXMpCj4gICB7Cj4g ICAgICAgcmV0dXJuIDA7Cj4gICB9Cj4gK3N0YXRpYyBpbmxpbmUgaW50IGdpY3YzX2l0c19pbml0 KHN0cnVjdCBob3N0X2l0cyAqaHdfaXRzKQo+ICt7Cj4gKyAgICByZXR1cm4gMDsKPiArfQo+ICAg I2VuZGlmIC8qIENPTkZJR19IQVNfSVRTICovCj4KPiAgICNlbmRpZiAvKiBfX0FTU0VNQkxZX18g Ki8KCi0tIApTaGFua2VyIERvbnRoaW5lbmkKUXVhbGNvbW0gRGF0YWNlbnRlciBUZWNobm9sb2dp ZXMsIEluYy4gYXMgYW4gYWZmaWxpYXRlIG9mIFF1YWxjb21tIFRlY2hub2xvZ2llcywgSW5jLgpR dWFsY29tbSBUZWNobm9sb2dpZXMsIEluYy4gaXMgYSBtZW1iZXIgb2YgdGhlIENvZGUgQXVyb3Jh IEZvcnVtLCBhIExpbnV4IEZvdW5kYXRpb24gQ29sbGFib3JhdGl2ZSBQcm9qZWN0LgoKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWls aW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hl bi1kZXZlbAo=