From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [PATCH v3 06/26] ARM: GICv3 ITS: introduce device mapping Date: Mon, 3 Apr 2017 19:56:14 +0100 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"; Format="flowed" 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 1cv79J-0006L8-8Z for xen-devel@lists.xenproject.org; Mon, 03 Apr 2017 18:56:21 +0000 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 , Stefano Stabellini Cc: xen-devel@lists.xenproject.org, Shanker Donthineni , Vijay Kilari List-Id: xen-devel@lists.xenproject.org SGkgQW5kcmUsCgpNb3N0bHkgcmVwZWF0aW5nIG15IGNvbW1lbnRzIGZyb20gdGhlIHByZXZpb3Vz IHZlcnNpb24uCgpPbiAzMS8wMy8xNyAxOTowNSwgQW5kcmUgUHJ6eXdhcmEgd3JvdGU6CgpbLi4u XQoKPiArc3RhdGljIGludCBpdHNfc2VuZF9jbWRfbWFwZChzdHJ1Y3QgaG9zdF9pdHMgKml0cywg dWludDMyX3QgZGV2aWNlaWQsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhf dCBzaXplX2JpdHMsIHBhZGRyX3QgaXR0X2FkZHIsIGJvb2wgdmFsaWQpCj4gK3sKPiArICAgIHVp bnQ2NF90IGNtZFs0XTsKPiArCj4gKyAgICBpZiAoIHZhbGlkICkKPiArICAgIHsKPiArICAgICAg ICBBU1NFUlQoc2l6ZV9iaXRzIDwgMzIpOwoKQWdhaW4sIGl0IHdvdWxkIGJlIGJldHRlciBpZiB5 b3UgZG8gdGhlIGNoZWNrIGFnYWluc3QgdGhlIHJlYWwgbnVtYmVyIGluIApoYXJkd2FyZSAoaS5l IEdJVFNfVFlQRVIuSURfYml0cykuCgo+ICsgICAgICAgIEFTU0VSVCghKGl0dF9hZGRyICYgfkdF Tk1BU0tfVUxMKDUxLCA4KSkpOwo+ICsgICAgfQo+ICsgICAgY21kWzBdID0gR0lUU19DTURfTUFQ RCB8ICgodWludDY0X3QpZGV2aWNlaWQgPDwgMzIpOwo+ICsgICAgY21kWzFdID0gc2l6ZV9iaXRz OwoKSSB3b3VsZCBoYXZlIGV4cGVjdGVkIHRvIHNlZSBzaXplX2JpdHMgLSAxIHRvIGFjY29tbW9k YXRlIGFsbCB0aGUgCmhlbHBlcnMgcmF0aGVyIHRoYW4gcmVseWluZyBvbiB0aGVtLgoKWy4uLl0K Cj4gK3N0YXRpYyBpbnQgcmVtb3ZlX21hcHBlZF9ndWVzdF9kZXZpY2Uoc3RydWN0IGl0c19kZXZp Y2VzICpkZXYpCj4gK3sKPiArICAgIGludCByZXQ7Cj4gKwo+ICsgICAgaWYgKCBkZXYtPmh3X2l0 cyApCj4gKyAgICB7Cj4gKyAgICAgICAgLyogTUFQRCBhbHNvIGRpc2NhcmRzIGFsbCBldmVudHMg d2l0aCB0aGlzIGRldmljZSBJRC4gKi8KPiArICAgICAgICBpbnQgcmV0ID0gaXRzX3NlbmRfY21k X21hcGQoZGV2LT5od19pdHMsIGRldi0+aG9zdF9kZXZpZCwgMCwgMCwgZmFsc2UpOwoKWW91IGFy ZSByZS1kZWZpbmluZyByZXQuIFdoeT8KClsuLi5dCgo+ICtzdGF0aWMgc3RydWN0IGhvc3RfaXRz ICpnaWN2M19pdHNfZmluZF9ieV9kb29yYmVsbChwYWRkcl90IGRvb3JiZWxsX2FkZHJlc3MpCj4g K3sKPiArICAgIHN0cnVjdCBob3N0X2l0cyAqaHdfaXRzOwo+ICsKPiArICAgIGxpc3RfZm9yX2Vh Y2hfZW50cnkoaHdfaXRzLCAmaG9zdF9pdHNfbGlzdCwgZW50cnkpCj4gKyAgICB7Cj4gKyAgICAg ICAgaWYgKCBod19pdHMtPmFkZHIgKyBJVFNfRE9PUkJFTExfT0ZGU0VUID09IGRvb3JiZWxsX2Fk ZHJlc3MgKQoKQWdhaW4sIHdoeSBub3Qgc3RvcmluZyB0aGUgSVRTIGFkZHJlc3MgcmF0aGVyIHRo YW4gdGhlIGRvb3JiZWxsIHRvIGF2b2lkIAoiKyBJVFNfRE9PUkJFTExfT0ZGU0VUIiA/CgpbLi4u XQoKPiArLyoKPiArICogTWFwIGEgaGFyZHdhcmUgZGV2aWNlLCBpZGVudGlmaWVkIGJ5IGEgY2Vy dGFpbiBob3N0IElUUyBhbmQgaXRzIGRldmljZSBJRAo+ICsgKiB0byBkb21haW4gZCwgYSBndWVz dCBJVFMgKGlkZW50aWZpZWQgYnkgaXRzIGRvb3JiZWxsIGFkZHJlc3MpIGFuZCBkZXZpY2UgSUQu Cj4gKyAqIEFsc28gcHJvdmlkZSB0aGUgbnVtYmVyIG9mIGV2ZW50cyAoTVNJcykgbmVlZGVkIGZv ciB0aGF0IGRldmljZS4KPiArICogVGhpcyBkb2VzIG5vdCBjaGVjayBpZiB0aGlzIHBhcnRpY3Vs YXIgaGFyZHdhcmUgZGV2aWNlIGlzIGFscmVhZHkgbWFwcGVkCj4gKyAqIGF0IGFub3RoZXIgZG9t YWluLCBpdCBpcyBleHBlY3RlZCB0aGF0IHRoaXMgd291bGQgYmUgZG9uZSBieSB0aGUgY2FsbGVy Lgo+ICsgKi8KPiAraW50IGdpY3YzX2l0c19tYXBfZ3Vlc3RfZGV2aWNlKHN0cnVjdCBkb21haW4g KmQsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkcl90IGhvc3RfZG9vcmJl bGwsIHVpbnQzMl90IGhvc3RfZGV2aWQsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwYWRkcl90IGd1ZXN0X2Rvb3JiZWxsLCB1aW50MzJfdCBndWVzdF9kZXZpZCwKPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IG5yX2V2ZW50cywgYm9vbCB2YWxpZCkK CkkgYW0gc3VyZSBJIHNhaWQgaXQgc29tZXdoZXJlIGluIHRoaXMgc2VyaWVzLCBucl9ldmVudHMg bGlrZWx5IG5lZWRzIHRvIApiZSBzYW5pdGl6ZWQgYWdhaW5zdCB0aGUgaGFyZHdhcmUgdmFsdWUu IFNhbWUgZm9yIGhvc3RfZGV2aWQuCgpbLi4uXQoKPiArICAgICAgICBwYXJlbnQgPSAqbmV3Owo+ ICsgICAgICAgIGNtcCA9IGNvbXBhcmVfaXRzX2d1ZXN0X2RldmljZXModGVtcCwgZ3Vlc3RfZG9v cmJlbGwsIGd1ZXN0X2RldmlkKTsKPiArICAgICAgICBpZiAoICFjbXAgKQo+ICsgICAgICAgIHsK PiArICAgICAgICAgICAgaWYgKCAhdmFsaWQgKQo+ICsgICAgICAgICAgICAgICAgcmJfZXJhc2Uo JnRlbXAtPnJibm9kZSwgJmQtPmFyY2gudmdpYy5pdHNfZGV2aWNlcyk7Cj4gKwo+ICsgICAgICAg ICAgICBzcGluX3VubG9jaygmZC0+YXJjaC52Z2ljLml0c19kZXZpY2VzX2xvY2spOwo+ICsKPiAr ICAgICAgICAgICAgaWYgKCB2YWxpZCApCgpBZ2FpbiwgYSBwcmludGsoWEVOTE9HX0dVRVNULi4u KSBoZXJlIHdvdWxkIGJlIHVzZWZ1bCB0byBrbm93IHdoaWNoIGhvc3QgCkRldmljZUlEIHdhcyBh c3NvY2lhdGVkIHRvIHRoZSBndWVzdCBEZXZpY2VJRC4KCj4gKyAgICAgICAgICAgICAgICByZXR1 cm4gLUVCVVNZOwo+ICsKPiArICAgICAgICAgICAgcmV0dXJuIHJlbW92ZV9tYXBwZWRfZ3Vlc3Rf ZGV2aWNlKHRlbXApOwoKQWdhaW4sIGp1c3QgYWJvdmUgeW91IHJlbW92ZWQgdGhlIGRldmljZSBm cm9tIHRoZSBSQi10cmVlIGJ1dCB0aGlzIApmdW5jdGlvbiBtYXkgZmFpbCBhbmQgbmV2ZXIgZnJl ZSB0aGUgbWVtb3J5LiBUaGlzIG1lYW5zIHRoYXQgbWVtb3J5IHdpbGwgCmJlIGxlYWtlZCBsZWFk aW5nIHRvIGEgcG90ZW50aWFsIGRlbmlhbCBvZiBzZXJ2aWNlLgoKPiArICAgICAgICB9Cj4gKwo+ ICsgICAgICAgIGlmICggY21wID4gMCApCj4gKyAgICAgICAgICAgIG5ldyA9ICYoKCpuZXcpLT5y Yl9sZWZ0KTsKPiArICAgICAgICBlbHNlCj4gKyAgICAgICAgICAgIG5ldyA9ICYoKCpuZXcpLT5y Yl9yaWdodCk7Cj4gKyAgICB9Cj4gKwo+ICsgICAgaWYgKCAhdmFsaWQgKQo+ICsgICAgICAgIGdv dG8gb3V0X3VubG9jazsKPiArCj4gKyAgICByZXQgPSAtRU5PTUVNOwo+ICsKPiArICAgIC8qIEFu IEludGVycnVwdCBUcmFuc2xhdGlvbiBUYWJsZSBuZWVkcyB0byBiZSAyNTYtYnl0ZSBhbGlnbmVk LiAqLwo+ICsgICAgaXR0X2FkZHIgPSBfeHphbGxvYyhucl9ldmVudHMgKiBod19pdHMtPml0dGVf c2l6ZSwgMjU2KTsKClNlZSBWaWpheSdzIGNvbW1lbnQuIEJ1dCB3aHkgZG9uJ3QgeW91IHJvdW5k IHVwIG5yX2V2ZW50cyBhdCB0aGUgCmJlZ2lubmluZyBvbmNlIGZvciBhbGwgcmF0aGVyIHRoYW4g ZG9pbmcgaXQgaW4gdGhlIG1pZGRsZT8KClsuLi5dCgo+ICtvdXRfdW5sb2NrOgo+ICsgICAgc3Bp bl91bmxvY2soJmQtPmFyY2gudmdpYy5pdHNfZGV2aWNlc19sb2NrKTsKPiArICAgIGlmICggZGV2 ICkKPiArICAgIHsKPiArICAgICAgICB4ZnJlZShkZXYtPnBlbmRfaXJxcyk7Cj4gKyAgICAgICAg eGZyZWUoZGV2LT5ob3N0X2xwaV9ibG9ja3MpOwoKV2hlcmUgaXMgaG9zdF9scGlfYmxvY2tzIGFs bG9jYXRlZD8gV2h5IGlzIGl0IGZyZWVkIGhlcmU/Cgo+ICsgICAgfQo+ICsgICAgeGZyZWUoaXR0 X2FkZHIpOwo+ICsgICAgeGZyZWUoZGV2KTsKPiArICAgIHJldHVybiByZXQ7Cj4gK30KPiArCj4g Ky8qIFJlbW92aW5nIGFueSBjb25uZWN0aW9ucyBhIGRvbWFpbiBoYWQgdG8gYW55IElUUyBpbiB0 aGUgc3lzdGVtLiAqLwo+ICt2b2lkIGdpY3YzX2l0c191bm1hcF9hbGxfZGV2aWNlcyhzdHJ1Y3Qg ZG9tYWluICpkKQo+ICt7Cj4gKyAgICBzdHJ1Y3QgcmJfbm9kZSAqdmljdGltOwo+ICsgICAgc3Ry dWN0IGl0c19kZXZpY2VzICpkZXY7Cj4gKwo+ICsgICAgLyoKPiArICAgICAqIFRoaXMgaXMgYW4g ZWFzaWx5IHJlYWRhYmxlLCBidXQgc3Vib3B0aW1hbCBpbXBsZW1lbnRhdGlvbi4KPiArICAgICAq IEl0IHVzZXMgdGhlIHByb3ZpZGVkIGl0ZXJhdGlvbiB3cmFwcGVyIGFuZCBlcmFzZXMgZWFjaCBu b2RlLCB3aGljaAo+ICsgICAgICogcG9zc2libHkgdHJpZ2dlcnMgcmViYWxhbmNpbmcuCj4gKyAg ICAgKiBUaGlzIHNlZW1zIG92ZXJraWxsIHNpbmNlIHdlIGFyZSBnb2luZyB0byBhYm9saXNoIHRo ZSB3aG9sZSB0cmVlLCBidXQKPiArICAgICAqIGF2b2lkcyBhbiBvcGVuLWNvZGVkIHJlLWltcGxl bWVudGF0aW9uIG9mIHRoZSB0cmF2ZXJzYWwgZnVuY3Rpb25zIHdpdGgKPiArICAgICAqIHNvbWUg cmVjdXJzaXZlIGZ1bmN0aW9uIGNhbGxzLgo+ICsgICAgICovCgpXZWxsLCB5b3UgdXBkYXRlZCB0 aGUgY29tbWVudCBidXQgaXQgZG9lcyBub3QgbWFrZSB0aGUgcGVyZm9ybWFuY2UgCnByb2JsZW0g Z29pbmcgYXdheS4uLiBYZW4gY2Fubm90IGJlIHByZWVtcHRlZCwgc28gaWYgaXQgdGFrZXMgdG9v IGxvbmcsIAp5b3Ugd2lsbCBoYXZlIGFuIGltcGFjdCBvbiB0aGUgb3ZlcmFsbCBzeXN0ZW0uCgpB cyBzYWlkIHByZXZpb3VzbHksIEkgdGhpbmsgaXQgd291bGQgYmUgZmFpciB0byBhc3N1bWUgdGhh dCBhbGwgZGV2aWNlcyAKd2lsbCBiZSBkZWFzc2lnbmVkIGJlZm9yZSB0aGUgSVRTIGlzIGRlc3Ry b3llZC4gU28gSSB3b3VsZCBqdXN0IGRyb3AgCnRoaXMgZnVuY3Rpb24uIE5vdCB0aGF0IHdlIGhh dmUgdGhlIHNhbWUgYXNzdW1wdGlvbiBpbiB0aGUgU01NVSBkcml2ZXIuCgpJZiB5b3UgZGlzYWdy ZWUgcGxlYXNlIHNheSB3aHkuIEJ1dCBpZ25vcmluZyBjb21tZW50cyB3aWxsIG5vdCBoZWxwIGhl cmUuCgo+ICtyZXN0YXJ0Ogo+ICsgICAgc3Bpbl9sb2NrKCZkLT5hcmNoLnZnaWMuaXRzX2Rldmlj ZXNfbG9jayk7Cj4gKyAgICBpZiAoICh2aWN0aW0gPSByYl9maXJzdCgmZC0+YXJjaC52Z2ljLml0 c19kZXZpY2VzKSkgKQo+ICsgICAgewo+ICsgICAgICAgIGRldiA9IHJiX2VudHJ5KHZpY3RpbSwg c3RydWN0IGl0c19kZXZpY2VzLCByYm5vZGUpOwo+ICsgICAgICAgIHJiX2VyYXNlKHZpY3RpbSwg JmQtPmFyY2gudmdpYy5pdHNfZGV2aWNlcyk7Cj4gKwo+ICsgICAgICAgIHNwaW5fdW5sb2NrKCZk LT5hcmNoLnZnaWMuaXRzX2RldmljZXNfbG9jayk7Cj4gKwo+ICsgICAgICAgIHJlbW92ZV9tYXBw ZWRfZ3Vlc3RfZGV2aWNlKGRldik7Cj4gKwo+ICsgICAgICAgIGdvdG8gcmVzdGFydDsKPiArICAg IH0KPiArCj4gKyAgICBzcGluX3VubG9jaygmZC0+YXJjaC52Z2ljLml0c19kZXZpY2VzX2xvY2sp Owo+ICt9Cj4gKwo+ICAvKiBTY2FuIHRoZSBEVCBmb3IgYW55IElUUyBub2RlcyBhbmQgY3JlYXRl IGEgbGlzdCBvZiBob3N0IElUU2VzIG91dCBvZiBpdC4gKi8KPiAgdm9pZCBnaWN2M19pdHNfZHRf aW5pdChjb25zdCBzdHJ1Y3QgZHRfZGV2aWNlX25vZGUgKm5vZGUpCj4gIHsKPiBAQCAtNDU5LDYg KzY4NSw3IEBAIHZvaWQgZ2ljdjNfaXRzX2R0X2luaXQoY29uc3Qgc3RydWN0IGR0X2RldmljZV9u b2RlICpub2RlKQo+ICAgICAgICAgIGl0c19kYXRhLT5hZGRyID0gYWRkcjsKPiAgICAgICAgICBp dHNfZGF0YS0+c2l6ZSA9IHNpemU7Cj4gICAgICAgICAgaXRzX2RhdGEtPmR0X25vZGUgPSBpdHM7 Cj4gKyAgICAgICAgc3Bpbl9sb2NrX2luaXQoJml0c19kYXRhLT5jbWRfbG9jayk7CgpUaGlzIHNo b3VsZCBiZSBpbiBwYXRjaCAjNS4KCj4KPiAgICAgICAgICBwcmludGsoIkdJQ3YzOiBGb3VuZCBJ VFMgQDB4JWx4XG4iLCBhZGRyKTsKPgo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vdmdpYy12 My5jIGIveGVuL2FyY2gvYXJtL3ZnaWMtdjMuYwo+IGluZGV4IGQ2MTQ3OWQuLjYyNDIyNTIgMTAw NjQ0Cj4gLS0tIGEveGVuL2FyY2gvYXJtL3ZnaWMtdjMuYwo+ICsrKyBiL3hlbi9hcmNoL2FybS92 Z2ljLXYzLmMKPiBAQCAtMTQ1MCw2ICsxNDUwLDkgQEAgc3RhdGljIGludCB2Z2ljX3YzX2RvbWFp bl9pbml0KHN0cnVjdCBkb21haW4gKmQpCj4gICAgICBkLT5hcmNoLnZnaWMubnJfcmVnaW9ucyA9 IHJkaXN0X2NvdW50Owo+ICAgICAgZC0+YXJjaC52Z2ljLnJkaXN0X3JlZ2lvbnMgPSByZGlzdF9y ZWdpb25zOwo+Cj4gKyAgICBzcGluX2xvY2tfaW5pdCgmZC0+YXJjaC52Z2ljLml0c19kZXZpY2Vz X2xvY2spOwo+ICsgICAgZC0+YXJjaC52Z2ljLml0c19kZXZpY2VzID0gUkJfUk9PVDsKPiArCgpB Z2FpbiwgdGhlIHBsYWNlbWVudCBvZiB0aG9zZSAyIGxpbmVzIGFyZSBsaWtlbHkgd3JvbmcuIFRo aXMgc2hvdWxkIApiZWxvbmcgdG8gdGhlIHZJVFMgYW5kIG5vdCB0aGUgdmdpYy12My4KCkkgdGhp bmsgaXQgd291bGQgbWFrZSBzZW5zZSB0byBnZXQgYSBwYXRjaCB0aGF0IGludHJvZHVjZXMgYSBz a2VsZXRvbiAKZm9yIHRoZSB2SVRTIGJlZm9yZSB0aGlzIHBhdGNoIGFuZCBzdGFydCBwbHVtYmlu ZyB0aHJvdWdoLgoKPiAgICAgIC8qCj4gICAgICAgKiBEb21haW4gMCBnZXRzIHRoZSBoYXJkd2Fy ZSBhZGRyZXNzLgo+ICAgICAgICogR3Vlc3RzIGdldCB0aGUgdmlydHVhbCBwbGF0Zm9ybSBsYXlv dXQuCj4gQEAgLTE1MjIsNiArMTUyNSw3IEBAIHN0YXRpYyBpbnQgdmdpY192M19kb21haW5faW5p dChzdHJ1Y3QgZG9tYWluICpkKQo+Cj4gIHN0YXRpYyB2b2lkIHZnaWNfdjNfZG9tYWluX2ZyZWUo c3RydWN0IGRvbWFpbiAqZCkKPiAgewo+ICsgICAgZ2ljdjNfaXRzX3VubWFwX2FsbF9kZXZpY2Vz KGQpOwoKU2VlIG15IGNvbW1lbnQgYWJvdmUgcmVnYXJkaW5nIHRoaXMgZnVuY3Rpb24uCgo+ICAg ICAgeGZyZWUoZC0+YXJjaC52Z2ljLnJkaXN0X3JlZ2lvbnMpOwo+ICB9CgoKWy4uLl0KCj4gZGlm ZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vZ2ljX3YzX2l0cy5oIGIveGVuL2luY2x1ZGUv YXNtLWFybS9naWNfdjNfaXRzLmgKPiBpbmRleCA0YzJhZTFjLi40YWRlNWY2IDEwMDY0NAo+IC0t LSBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vZ2ljX3YzX2l0cy5oCj4gKysrIGIveGVuL2luY2x1ZGUv YXNtLWFybS9naWNfdjNfaXRzLmgKPiBAQCAtNDgsNiArNDgsMTAgQEAKPiAgI2RlZmluZSBHSVRT X1RZUEVSX0RFVklDRV9JRF9CSVRTKHIpICAgICgoKHIgJiBHSVRTX1RZUEVSX0RFVklEU19NQVNL KSA+PiBcCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg R0lUU19UWVBFUl9ERVZJRFNfU0hJRlQpICsgMSkKPiAgI2RlZmluZSBHSVRTX1RZUEVSX0lEQklU U19TSElGVCAgICAgICAgIDgKPiArI2RlZmluZSBHSVRTX1RZUEVSX0lUVF9TSVpFX1NISUZUICAg ICAgIDQKPiArI2RlZmluZSBHSVRTX1RZUEVSX0lUVF9TSVpFX01BU0sgICAgICAgICgweGZVTCA8 PCBHSVRTX1RZUEVSX0lUVF9TSVpFX1NISUZUKQo+ICsjZGVmaW5lIEdJVFNfVFlQRVJfSVRUX1NJ WkUocikgICAgICAgICAgKCgoKHIpICYgR0lUU19UWVBFUl9JVFRfU0laRV9NQVNLKSA+PiBcCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdJVFNfVFlQ RVJfSVRUX1NJWkVfU0hJRlQpICsgMSkKPgo+ICAjZGVmaW5lIEdJVFNfSUlEUl9WQUxVRSAgICAg ICAgICAgICAgICAgMHgzNGMKPgo+IEBAIC05NCw3ICs5OCwxMCBAQAo+ICAjZGVmaW5lIEdJVFNf Q01EX01PVkFMTCAgICAgICAgICAgICAgICAgMHgwZQo+ICAjZGVmaW5lIEdJVFNfQ01EX0RJU0NB UkQgICAgICAgICAgICAgICAgMHgwZgo+Cj4gKyNkZWZpbmUgSVRTX0RPT1JCRUxMX09GRlNFVCAg ICAgICAgICAgICAweDEwMDQwCj4gKwo+ICAjaW5jbHVkZSA8eGVuL2RldmljZV90cmVlLmg+Cj4g KyNpbmNsdWRlIDx4ZW4vcmJ0cmVlLmg+Cj4KPiAgI2RlZmluZSBIT1NUX0lUU19GTFVTSF9DTURf UVVFVUUgICAgICAgICgxVSA8PCAwKQo+ICAjZGVmaW5lIEhPU1RfSVRTX1VTRVNfUFRBICAgICAg ICAgICAgICAgKDFVIDw8IDEpCj4gQEAgLTEwOSw2ICsxMTYsNyBAQCBzdHJ1Y3QgaG9zdF9pdHMg ewo+ICAgICAgdW5zaWduZWQgaW50IGRldmlkX2JpdHM7Cj4gICAgICBzcGlubG9ja190IGNtZF9s b2NrOwo+ICAgICAgdm9pZCAqY21kX2J1ZjsKPiArICAgIHVuc2lnbmVkIGludCBpdHRlX3NpemU7 CgpTdGVmYW5vIG1lbnRpb25lZDoKIkkgd291bGQgbW92ZSBpdHRlX3NpemUgYW5kIGl0cyBpbml0 aWFsaXphdGlvbiB0byB0aGUgcGF0Y2ggdGhhdAppbnRyb2R1Y2VkIHN0cnVjdCBob3N0X2l0cy4i Cgo+ICAgICAgdW5zaWduZWQgaW50IGZsYWdzOwo+ICB9OwoKQ2hlZXJzLAoKLS0gCkp1bGllbiBH cmFsbAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVu LWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3Rz Lnhlbi5vcmcveGVuLWRldmVsCg==