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: Wed, 15 Feb 2017 12:31:45 -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.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ce4Mp-00083J-N4 for xen-devel@lists.xenproject.org; Wed, 15 Feb 2017 18:31:51 +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+IG1heF9pdHNfZGV2aWNlX2JpdHMKPiArICAgICAgICAgIHBhcmFtZXRlci4KPiArClRo ZSBudW1iZXIgb2YgREVWSUQgYml0cyB0aGF0IGhhcmR3YXJlIHN1cHBvcnRzIGlzIGRpc2NvdmVy YWJsZSB0aHJvdWdoIAphIHJlZ2lzdGVyIGZpZWxkIEdJVFNfVFlQRVIuRGV2Yml0cy4gVGhlIFhF TiBkcml2ZXIgbXVzdCBhbGwgdGhlIGRldmljZXMgCnRoYXQgaGFyZHdhcmUgc2F5cyBsaWtlIGlu IHRoZSBMaW51eCBrZXJuZWwuIEknbSBzZWVpbmcgYSBYRU4gY3Jhc2ggaWYgSSAKc2V0IERFVklE IHRvIDMyYml0cy4KPiAgIGVuZG1lbnUKPgo+ICAgbWVudSAiQVJNIGVycmF0YSB3b3JrYXJvdW5k IHZpYSB0aGUgYWx0ZXJuYXRpdmUgZnJhbWV3b3JrIgo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9h cm0vZ2ljLXYzLWl0cy5jIGIveGVuL2FyY2gvYXJtL2dpYy12My1pdHMuYwo+IGluZGV4IGZmMGY1 NzEuLmMzMWZlZjYgMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gvYXJtL2dpYy12My1pdHMuYwo+ICsr KyBiL3hlbi9hcmNoL2FybS9naWMtdjMtaXRzLmMKPiBAQCAtMjAsOSArMjAsMTM4IEBACj4gICAj aW5jbHVkZSA8eGVuL2xpYi5oPgo+ICAgI2luY2x1ZGUgPHhlbi9kZXZpY2VfdHJlZS5oPgo+ICAg I2luY2x1ZGUgPHhlbi9saWJmZHQvbGliZmR0Lmg+Cj4gKyNpbmNsdWRlIDx4ZW4vbW0uaD4KPiAr I2luY2x1ZGUgPHhlbi9zaXplcy5oPgo+ICAgI2luY2x1ZGUgPGFzbS9naWMuaD4KPiAgICNpbmNs dWRlIDxhc20vZ2ljX3YzX2RlZnMuaD4KPiAgICNpbmNsdWRlIDxhc20vZ2ljX3YzX2l0cy5oPgo+ ICsjaW5jbHVkZSA8YXNtL2lvLmg+Cj4gKwo+ICsjZGVmaW5lIEJBU0VSX0FUVFJfTUFTSyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gKyAgICAgICAgKCgweDNV TCA8PCBHSVRTX0JBU0VSX1NIQVJFQUJJTElUWV9TSElGVCkgICAgICAgICAgICAgICB8IFwKPiAr ICAgICAgICAgKDB4N1VMIDw8IEdJVFNfQkFTRVJfT1VURVJfQ0FDSEVBQklMSVRZX1NISUZUKSAg ICAgICAgIHwgXAo+ICsgICAgICAgICAoMHg3VUwgPDwgR0lUU19CQVNFUl9JTk5FUl9DQUNIRUFC SUxJVFlfU0hJRlQpKQo+ICsjZGVmaW5lIEJBU0VSX1JPX01BU0sgICAoR0VOTUFTSyg1OCwgNTYp IHwgR0VOTUFTSyg1MiwgNDgpKQo+ICsKPiArc3RhdGljIHVpbnQ2NF90IGVuY29kZV9waHlzX2Fk ZHIocGFkZHJfdCBhZGRyLCBpbnQgcGFnZV9iaXRzKQo+ICt7Cj4gKyAgICB1aW50NjRfdCByZXQ7 Cj4gKwo+ICsgICAgaWYgKCBwYWdlX2JpdHMgPCAxNiApCj4gKyAgICAgICAgcmV0dXJuICh1aW50 NjRfdClhZGRyICYgR0VOTUFTSyg0NywgcGFnZV9iaXRzKTsKPiArCj4gKyAgICByZXQgPSBhZGRy ICYgR0VOTUFTSyg0NywgMTYpOwo+ICsgICAgcmV0dXJuIHJldCB8IChhZGRyICYgR0VOTUFTSyg1 MSwgNDgpKSA+PiAoNDggLSAxMik7Cj4gK30KPiArCj4gKyNkZWZpbmUgUEFHRV9CSVRTKHN6KSAo KHN6KSAqIDIgKyBQQUdFX1NISUZUKQo+ICsKPiArc3RhdGljIGludCBpdHNfbWFwX2Jhc2VyKHZv aWQgX19pb21lbSAqYmFzZXJlZywgdWludDY0X3QgcmVnYywgaW50Cj4gbnJfaXRlbXMpCj4gK3sK PiArICAgIHVpbnQ2NF90IGF0dHIsIHJlZzsKPiArICAgIGludCBlbnRyeV9zaXplID0gKChyZWdj ID4+IEdJVFNfQkFTRVJfRU5UUllfU0laRV9TSElGVCkgJiAweDFmKSArIDE7Cj4gKyAgICBpbnQg cGFnZXN6ID0gMCwgb3JkZXIsIHRhYmxlX3NpemU7CkJldHRlciB0cnkgdXNpbmcgSVRTIHBhZ2Ug c2l6ZXMgaW4gb3RlIG9yZGVyIDY0SywgMTZLIGFuZCA0SyB0byBjb3ZlciAKbWF4aW11bSBkZXZp Y2UgYXMgcG9zc2libGUgdXNpbmcgYSBzaW5nbGUgbGV2ZWwgdHJhbnNsYXRpb24uCj4gKyAgICB2 b2lkICpidWZmZXIgPSBOVUxMOwo+ICsKPiArICAgIGF0dHIgID0gR0lDX0JBU0VSX0lubmVyU2hh cmVhYmxlIDw8IEdJVFNfQkFTRVJfU0hBUkVBQklMSVRZX1NISUZUOwo+ICsgICAgYXR0ciB8PSBH SUNfQkFTRVJfQ0FDSEVfU2FtZUFzSW5uZXIgPDwKPiBHSVRTX0JBU0VSX09VVEVSX0NBQ0hFQUJJ TElUWV9TSElGVDsKPiArICAgIGF0dHIgfD0gR0lDX0JBU0VSX0NBQ0hFX1JhV2FXYiA8PCBHSVRT X0JBU0VSX0lOTkVSX0NBQ0hFQUJJTElUWV9TSElGVDsKPiArCj4gKyAgICAvKgo+ICsgICAgICog U2V0dXAgdGhlIEJBU0UgcmVnaXN0ZXIgd2l0aCB0aGUgYXR0cmlidXRlcyB0aGF0IHdlIGxpa2Uu IFRoZW4gcmVhZAo+ICsgICAgICogaXQgYmFjayBhbmQgc2VlIHdoYXQgc3RpY2tzIChwYWdlIHNp emUsIGNhY2hlYWJpbGl0eSBhbmQKPiBzaGFyZWFiaWxpdHkKPiArICAgICAqIGF0dHJpYnV0ZXMp LCByZXRyeWluZyBpZiBuZWNlc3NhcnkuCj4gKyAgICAgKi8KPiArICAgIHdoaWxlICggMSApCj4g KyAgICB7Cj4gKyAgICAgICAgdGFibGVfc2l6ZSA9IFJPVU5EVVAobnJfaXRlbXMgKiBlbnRyeV9z aXplLAo+IEJJVChQQUdFX0JJVFMocGFnZXN6KSkpOwo+ICsgICAgICAgIG9yZGVyID0gZ2V0X29y ZGVyX2Zyb21fYnl0ZXModGFibGVfc2l6ZSk7Cj4gKwpZb3UgY2FuIG1hcCBhIG1heGltdW0gb2Yg MjU2IElUUyBwYWdlcywgb3JkZXIgbXVzdCBiZSAndGFibGVfc2l6ZSA+PiAKUEFHRV9CSVRTKHBh Z2VzeikgPD0gMjU2Jy4KCj4gKyAgICAgICAgaWYgKCAhYnVmZmVyICkKPiArICAgICAgICAgICAg YnVmZmVyID0gYWxsb2NfeGVuaGVhcF9wYWdlcyhvcmRlciwgMCk7Cj4gKyAgICAgICAgaWYgKCAh YnVmZmVyICkKPiArICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07Cj4gKwo+ICsgICAgICAgIHJl ZyAgPSBhdHRyOwo+ICsgICAgICAgIHJlZyB8PSAocGFnZXN6IDw8IEdJVFNfQkFTRVJfUEFHRV9T SVpFX1NISUZUKTsKPiArICAgICAgICByZWcgfD0gdGFibGVfc2l6ZSA+PiBQQUdFX0JJVFMocGFn ZXN6KTsKQ2hhbmdlIHRvICdyZWcgfD0gdGFibGVfc2l6ZSA+PiAoUEFHRV9CSVRTKHBhZ2Vzeikp ICYgMHhmZicKPiArICAgICAgICByZWcgfD0gcmVnYyAmIEJBU0VSX1JPX01BU0s7Cj4gKyAgICAg ICAgcmVnIHw9IEdJVFNfVkFMSURfQklUOwo+ICsgICAgICAgIHJlZyB8PSBlbmNvZGVfcGh5c19h ZGRyKHZpcnRfdG9fbWFkZHIoYnVmZmVyKSwgUEFHRV9CSVRTKHBhZ2VzeikpOwo+ICsKPiArICAg ICAgICB3cml0ZXFfcmVsYXhlZChyZWcsIGJhc2VyZWcpOwo+ICsgICAgICAgIHJlZ2MgPSByZWFk bF9yZWxheGVkKGJhc2VyZWcpOwo+ICsKPiArICAgICAgICAvKiBUaGUgaG9zdCBkaWRuJ3QgbGlr ZSBvdXIgYXR0cmlidXRlcywganVzdCB1c2Ugd2hhdCBpdCByZXR1cm5lZC4KPiAqLwo+ICsgICAg ICAgIGlmICggKHJlZ2MgJiBCQVNFUl9BVFRSX01BU0spICE9IGF0dHIgKQo+ICsgICAgICAgIHsK PiArICAgICAgICAgICAgLyogSWYgd2UgY2FuJ3QgbWFwIGl0IHNoYXJlYWJsZSwgZHJvcCBjYWNo ZWFiaWxpdHkgYXMgd2VsbC4gKi8KPiArICAgICAgICAgICAgaWYgKCAocmVnYyAmIEdJVFNfQkFT RVJfU0hBUkVBQklMSVRZX01BU0spID09Cj4gR0lDX0JBU0VSX05vblNoYXJlYWJsZSApCj4gKyAg ICAgICAgICAgIHsKPiArICAgICAgICAgICAgICAgIHJlZ2MgJj0gfkdJVFNfQkFTRVJfSU5ORVJf Q0FDSEVBQklMSVRZX01BU0s7Cj4gKyAgICAgICAgICAgICAgICBhdHRyID0gcmVnYyAmIEJBU0VS X0FUVFJfTUFTSzsKPiArICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+ICsgICAgICAgICAgICB9 Cj4gKyAgICAgICAgICAgIGF0dHIgPSByZWdjICYgQkFTRVJfQVRUUl9NQVNLOwo+ICsgICAgICAg IH0KPiArCj4gKyAgICAgICAgLyogSWYgdGhlIGhvc3QgYWNjZXB0ZWQgb3VyIHBhZ2Ugc2l6ZSwg d2UgYXJlIGRvbmUuICovCj4gKyAgICAgICAgaWYgKCAocmVnYyAmICgzVUwgPDwgR0lUU19CQVNF Ul9QQUdFX1NJWkVfU0hJRlQpKSA9PSBwYWdlc3ogKQo+ICsgICAgICAgICAgICByZXR1cm4gMDsK PiArCj4gKyAgICAgICAgLyogTm9uZSBvZiB0aGUgcGFnZSBzaXplcyB3YXMgYWNjZXB0ZWQsIGdp dmUgdXAgKi8KPiArICAgICAgICBpZiAoIHBhZ2VzeiA+PSAyICkKPiArICAgICAgICAgICAgYnJl YWs7Cj4gKwo+ICsgICAgICAgIGZyZWVfeGVuaGVhcF9wYWdlcyhidWZmZXIsIG9yZGVyKTsKPiAr ICAgICAgICBidWZmZXIgPSBOVUxMOwo+ICsKPiArICAgICAgICBwYWdlc3orKzsKPiArICAgIH0K PiArCj4gKyAgICBpZiAoIGJ1ZmZlciApCj4gKyAgICAgICAgZnJlZV94ZW5oZWFwX3BhZ2VzKGJ1 ZmZlciwgb3JkZXIpOwo+ICsKPiArICAgIHJldHVybiAtRUlOVkFMOwo+ICt9Cj4gKwo+ICtzdGF0 aWMgdW5zaWduZWQgaW50IG1heF9pdHNfZGV2aWNlX2JpdHMgPSBDT05GSUdfTUFYX1BIWVNfSVRT X0RFVklDRV9CSVRTOwo+ICtpbnRlZ2VyX3BhcmFtKCJtYXhfaXRzX2RldmljZV9iaXRzIiwgbWF4 X2l0c19kZXZpY2VfYml0cyk7Cj4gKwo+ICtpbnQgZ2ljdjNfaXRzX2luaXQoc3RydWN0IGhvc3Rf aXRzICpod19pdHMpCj4gK3sKPiArICAgIHVpbnQ2NF90IHJlZzsKPiArICAgIGludCBpOwo+ICsK PiArICAgIGh3X2l0cy0+aXRzX2Jhc2UgPSBpb3JlbWFwX25vY2FjaGUoaHdfaXRzLT5hZGRyLCBo d19pdHMtPnNpemUpOwo+ICsgICAgaWYgKCAhaHdfaXRzLT5pdHNfYmFzZSApCj4gKyAgICAgICAg cmV0dXJuIC1FTk9NRU07Cj4gKwo+ICsgICAgZm9yICggaSA9IDA7IGkgPCBHSVRTX0JBU0VSX05S X1JFR1M7IGkrKyApCj4gKyAgICB7Cj4gKyAgICAgICAgdm9pZCBfX2lvbWVtICpiYXNlcmVnID0g aHdfaXRzLT5pdHNfYmFzZSArIEdJVFNfQkFTRVIwICsgaSAqIDg7Cj4gKyAgICAgICAgaW50IHR5 cGU7Cj4gKwo+ICsgICAgICAgIHJlZyA9IHJlYWRxX3JlbGF4ZWQoYmFzZXJlZyk7Cj4gKyAgICAg ICAgdHlwZSA9IChyZWcgJiBHSVRTX0JBU0VSX1RZUEVfTUFTSykgPj4gR0lUU19CQVNFUl9UWVBF X1NISUZUOwo+ICsgICAgICAgIHN3aXRjaCAoIHR5cGUgKQo+ICsgICAgICAgIHsKPiArICAgICAg ICBjYXNlIEdJVFNfQkFTRVJfVFlQRV9OT05FOgo+ICsgICAgICAgICAgICBjb250aW51ZTsKSXQn cyByZWR1bmRhbnQgc2luY2UgdGhlIGRlZmF1bHQgY2FzZSBhbHJlYWR5IGhhcyBhIGNvbnRpbnVl IHN0YXRlbWVudC4KCj4gKyAgICAgICAgY2FzZSBHSVRTX0JBU0VSX1RZUEVfREVWSUNFOgo+ICsg ICAgICAgICAgICAvKiBUT0RPOiBmaW5kIHNvbWUgYmV0dGVyIHdheSBvZiBsaW1pdGluZyB0aGUg bnVtYmVyIG9mIGRldmljZXMKPiAqLwo+ICsgICAgICAgICAgICBpdHNfbWFwX2Jhc2VyKGJhc2Vy ZWcsIHJlZywgQklUKG1heF9pdHNfZGV2aWNlX2JpdHMpKTsKPiArICAgICAgICAgICAgYnJlYWs7 Cj4gKyAgICAgICAgY2FzZSBHSVRTX0JBU0VSX1RZUEVfQ09MTEVDVElPTjoKPiArICAgICAgICAg ICAgaXRzX21hcF9iYXNlcihiYXNlcmVnLCByZWcsIE5SX0NQVVMpOwo+ICsgICAgICAgICAgICBi cmVhazsKPiArICAgICAgICBkZWZhdWx0Ogo+ICsgICAgICAgICAgICBjb250aW51ZTsKPiArICAg ICAgICB9Cj4gKyAgICB9Cj4gKwo+ICsgICAgcmV0dXJuIDA7Cj4gK30KPgo+ICAgLyogU2NhbiB0 aGUgRFQgZm9yIGFueSBJVFMgbm9kZXMgYW5kIGNyZWF0ZSBhIGxpc3Qgb2YgaG9zdCBJVFNlcyBv dXQgb2YgaXQuCj4gKi8KPiAgIHZvaWQgZ2ljdjNfaXRzX2R0X2luaXQoY29uc3Qgc3RydWN0IGR0 X2RldmljZV9ub2RlICpub2RlKQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZ2ljLXYzLmMg Yi94ZW4vYXJjaC9hcm0vZ2ljLXYzLmMKPiBpbmRleCBmY2I4NmM4Li40NDBjMDc5IDEwMDY0NAo+ IC0tLSBhL3hlbi9hcmNoL2FybS9naWMtdjMuYwo+ICsrKyBiL3hlbi9hcmNoL2FybS9naWMtdjMu Ywo+IEBAIC0yOSw2ICsyOSw3IEBACj4gICAjaW5jbHVkZSA8eGVuL2lycS5oPgo+ICAgI2luY2x1 ZGUgPHhlbi9pb2NhcC5oPgo+ICAgI2luY2x1ZGUgPHhlbi9zY2hlZC5oPgo+ICsjaW5jbHVkZSA8 eGVuL2Vyci5oPgo+ICAgI2luY2x1ZGUgPHhlbi9lcnJuby5oPgo+ICAgI2luY2x1ZGUgPHhlbi9k ZWxheS5oPgo+ICAgI2luY2x1ZGUgPHhlbi9kZXZpY2VfdHJlZS5oPgo+IEBAIC0xNTYzLDYgKzE1 NjQsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBnaWN2M19pbml0KHZvaWQpCj4gICB7Cj4gICAgICAg aW50IHJlcywgaTsKPiAgICAgICB1aW50MzJfdCByZWc7Cj4gKyAgICBzdHJ1Y3QgaG9zdF9pdHMg Kmh3X2l0czsKPgo+ICAgICAgIGlmICggIWNwdV9oYXNfZ2ljdjMgKQo+ICAgICAgIHsKPiBAQCAt MTYxOCw2ICsxNjIwLDkgQEAgc3RhdGljIGludCBfX2luaXQgZ2ljdjNfaW5pdCh2b2lkKQo+ICAg ICAgIHJlcyA9IGdpY3YzX2NwdV9pbml0KCk7Cj4gICAgICAgZ2ljdjNfaHlwX2luaXQoKTsKPgo+ ICsgICAgbGlzdF9mb3JfZWFjaF9lbnRyeShod19pdHMsICZob3N0X2l0c19saXN0LCBlbnRyeSkK PiArICAgICAgICBnaWN2M19pdHNfaW5pdChod19pdHMpOwo+ICsKPiAgICAgICBzcGluX3VubG9j aygmZ2ljdjMubG9jayk7Cj4KPiAgICAgICByZXR1cm4gcmVzOwo+IGRpZmYgLS1naXQgYS94ZW4v aW5jbHVkZS9hc20tYXJtL2dpY192M19pdHMuaAo+IGIveGVuL2luY2x1ZGUvYXNtLWFybS9naWNf djNfaXRzLmgKPiBpbmRleCBhNjZiNmJlLi5lZDQ0YmRiIDEwMDY0NAo+IC0tLSBhL3hlbi9pbmNs dWRlL2FzbS1hcm0vZ2ljX3YzX2l0cy5oCj4gKysrIGIveGVuL2luY2x1ZGUvYXNtLWFybS9naWNf djNfaXRzLmgKPiBAQCAtMTgsNiArMTgsNTMgQEAKPiAgICNpZm5kZWYgX19BU01fQVJNX0lUU19I X18KPiAgICNkZWZpbmUgX19BU01fQVJNX0lUU19IX18KPgo+ICsjZGVmaW5lIEdJVFNfQ1RMUiAg ICAgICAgICAgICAgICAgICAgICAgMHgwMDAKPiArI2RlZmluZSBHSVRTX0lJRFIgICAgICAgICAg ICAgICAgICAgICAgIDB4MDA0Cj4gKyNkZWZpbmUgR0lUU19UWVBFUiAgICAgICAgICAgICAgICAg ICAgICAweDAwOAo+ICsjZGVmaW5lIEdJVFNfQ0JBU0VSICAgICAgICAgICAgICAgICAgICAgMHgw ODAKPiArI2RlZmluZSBHSVRTX0NXUklURVIgICAgICAgICAgICAgICAgICAgIDB4MDg4Cj4gKyNk ZWZpbmUgR0lUU19DUkVBRFIgICAgICAgICAgICAgICAgICAgICAweDA5MAo+ICsjZGVmaW5lIEdJ VFNfQkFTRVJfTlJfUkVHUyAgICAgICAgICAgICAgOAo+ICsjZGVmaW5lIEdJVFNfQkFTRVIwICAg ICAgICAgICAgICAgICAgICAgMHgxMDAKPiArI2RlZmluZSBHSVRTX0JBU0VSMSAgICAgICAgICAg ICAgICAgICAgIDB4MTA4Cj4gKyNkZWZpbmUgR0lUU19CQVNFUjIgICAgICAgICAgICAgICAgICAg ICAweDExMAo+ICsjZGVmaW5lIEdJVFNfQkFTRVIzICAgICAgICAgICAgICAgICAgICAgMHgxMTgK PiArI2RlZmluZSBHSVRTX0JBU0VSNCAgICAgICAgICAgICAgICAgICAgIDB4MTIwCj4gKyNkZWZp bmUgR0lUU19CQVNFUjUgICAgICAgICAgICAgICAgICAgICAweDEyOAo+ICsjZGVmaW5lIEdJVFNf QkFTRVI2ICAgICAgICAgICAgICAgICAgICAgMHgxMzAKPiArI2RlZmluZSBHSVRTX0JBU0VSNyAg ICAgICAgICAgICAgICAgICAgIDB4MTM4Cj4gKwo+ICsvKiBSZWdpc3RlciBiaXRzICovCj4gKyNk ZWZpbmUgR0lUU19WQUxJRF9CSVQgICAgICAgICAgICAgICAgICBCSVRfVUxMKDYzKQo+ICsKPiAr I2RlZmluZSBHSVRTX0NUTFJfUVVJRVNDRU5UICAgICAgICAgICAgIEJJVCgzMSkKPiArI2RlZmlu ZSBHSVRTX0NUTFJfRU5BQkxFICAgICAgICAgICAgICAgIEJJVCgwKQo+ICsKPiArI2RlZmluZSBH SVRTX0lJRFJfVkFMVUUgICAgICAgICAgICAgICAgIDB4MzRjCj4gKwo+ICsjZGVmaW5lIEdJVFNf QkFTRVJfSU5ESVJFQ1QgICAgICAgICAgICAgQklUX1VMTCg2MikKPiArI2RlZmluZSBHSVRTX0JB U0VSX0lOTkVSX0NBQ0hFQUJJTElUWV9TSElGVCAgICAgICAgNTkKPiArI2RlZmluZSBHSVRTX0JB U0VSX1RZUEVfU0hJRlQgICAgICAgICAgIDU2Cj4gKyNkZWZpbmUgR0lUU19CQVNFUl9UWVBFX01B U0sgICAgICAgICAgICAoN1VMTCA8PCBHSVRTX0JBU0VSX1RZUEVfU0hJRlQpCj4gKyNkZWZpbmUg R0lUU19CQVNFUl9PVVRFUl9DQUNIRUFCSUxJVFlfU0hJRlQgICAgICAgIDUzCj4gKyNkZWZpbmUg R0lUU19CQVNFUl9UWVBFX05PTkUgICAgICAgICAgICAwVUwKPiArI2RlZmluZSBHSVRTX0JBU0VS X1RZUEVfREVWSUNFICAgICAgICAgIDFVTAo+ICsjZGVmaW5lIEdJVFNfQkFTRVJfVFlQRV9WQ1BV ICAgICAgICAgICAgMlVMCj4gKyNkZWZpbmUgR0lUU19CQVNFUl9UWVBFX0NQVSAgICAgICAgICAg ICAzVUwKPiArI2RlZmluZSBHSVRTX0JBU0VSX1RZUEVfQ09MTEVDVElPTiAgICAgIDRVTAo+ICsj ZGVmaW5lIEdJVFNfQkFTRVJfVFlQRV9SRVNFUlZFRDUgICAgICAgNVVMCj4gKyNkZWZpbmUgR0lU U19CQVNFUl9UWVBFX1JFU0VSVkVENiAgICAgICA2VUwKPiArI2RlZmluZSBHSVRTX0JBU0VSX1RZ UEVfUkVTRVJWRUQ3ICAgICAgIDdVTAo+ICsjZGVmaW5lIEdJVFNfQkFTRVJfRU5UUllfU0laRV9T SElGVCAgICAgNDgKPiArI2RlZmluZSBHSVRTX0JBU0VSX1NIQVJFQUJJTElUWV9TSElGVCAgIDEw Cj4gKyNkZWZpbmUgR0lUU19CQVNFUl9QQUdFX1NJWkVfU0hJRlQgICAgICA4Cj4gKyNkZWZpbmUg R0lUU19CQVNFUl9ST19NQVNLICAgICAgICAgICAgICAoR0lUU19CQVNFUl9UWVBFX01BU0sgfCBc Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMzFVTCA8PAo+IEdJ VFNfQkFTRVJfRU5UUllfU0laRV9TSElGVCkgfFwKPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEdJVFNfQkFTRVJfSU5ESVJFQ1QpCj4gKyNkZWZpbmUgR0lUU19CQVNF Ul9TSEFSRUFCSUxJVFlfTUFTSyAgICgweDNVTEwgPDwKPiBHSVRTX0JBU0VSX1NIQVJFQUJJTElU WV9TSElGVCkKPiArI2RlZmluZSBHSVRTX0JBU0VSX09VVEVSX0NBQ0hFQUJJTElUWV9NQVNLICAg KDB4N1VMTCA8PAo+IEdJVFNfQkFTRVJfT1VURVJfQ0FDSEVBQklMSVRZX1NISUZUKQo+ICsjZGVm aW5lIEdJVFNfQkFTRVJfSU5ORVJfQ0FDSEVBQklMSVRZX01BU0sgICAoMHg3VUxMIDw8Cj4gR0lU U19CQVNFUl9JTk5FUl9DQUNIRUFCSUxJVFlfU0hJRlQpCj4gKwo+ICAgI2lmbmRlZiBfX0FTU0VN QkxZX18KPiAgICNpbmNsdWRlIDx4ZW4vZGV2aWNlX3RyZWUuaD4KPgo+IEBAIC0yNyw2ICs3NCw3 IEBAIHN0cnVjdCBob3N0X2l0cyB7Cj4gICAgICAgY29uc3Qgc3RydWN0IGR0X2RldmljZV9ub2Rl ICpkdF9ub2RlOwo+ICAgICAgIHBhZGRyX3QgYWRkcjsKPiAgICAgICBwYWRkcl90IHNpemU7Cj4g KyAgICB2b2lkIF9faW9tZW0gKml0c19iYXNlOwo+ICAgfTsKPgo+ICAgZXh0ZXJuIHN0cnVjdCBs aXN0X2hlYWQgaG9zdF9pdHNfbGlzdDsKPiBAQCAtNDIsOCArOTAsOSBAQCB2b2lkIGdpY3YzX2l0 c19kdF9pbml0KGNvbnN0IHN0cnVjdCBkdF9kZXZpY2Vfbm9kZSAqbm9kZSk7Cj4gICB1aW50NjRf dCBnaWN2M19scGlfZ2V0X3Byb3B0YWJsZSh2b2lkKTsKPiAgIHVpbnQ2NF90IGdpY3YzX2xwaV9h bGxvY2F0ZV9wZW5kdGFibGUodm9pZCk7Cj4KPiAtLyogSW5pdGlhbGl6ZSB0aGUgaG9zdCBzdHJ1 Y3R1cmVzIGZvciBMUElzLiAqLwo+ICsvKiBJbml0aWFsaXplIHRoZSBob3N0IHN0cnVjdHVyZXMg Zm9yIExQSXMgYW5kIHRoZSBob3N0IElUU2VzLiAqLwo+ICAgaW50IGdpY3YzX2xwaV9pbml0X2hv c3RfbHBpcyh1bnNpZ25lZCBpbnQgbnJfbHBpcyk7Cj4gK2ludCBnaWN2M19pdHNfaW5pdChzdHJ1 Y3QgaG9zdF9pdHMgKmh3X2l0cyk7Cj4KPiAgICNlbHNlCj4KPiBAQCAtNjIsNiArMTExLDEwIEBA IHN0YXRpYyBpbmxpbmUgaW50IGdpY3YzX2xwaV9pbml0X2hvc3RfbHBpcyh1bnNpZ25lZCBpbnQK PiBucl9scGlzKQo+ICAgewo+ICAgICAgIHJldHVybiAwOwo+ICAgfQo+ICtzdGF0aWMgaW5saW5l IGludCBnaWN2M19pdHNfaW5pdChzdHJ1Y3QgaG9zdF9pdHMgKmh3X2l0cykKPiArewo+ICsgICAg cmV0dXJuIDA7Cj4gK30KPiAgICNlbmRpZiAvKiBDT05GSUdfSEFTX0lUUyAqLwo+Cj4gICAjZW5k aWYgLyogX19BU1NFTUJMWV9fICovCgotLSAKU2hhbmtlciBEb250aGluZW5pClF1YWxjb21tIERh dGFjZW50ZXIgVGVjaG5vbG9naWVzLCBJbmMuIGFzIGFuIGFmZmlsaWF0ZSBvZiBRdWFsY29tbSBU ZWNobm9sb2dpZXMsIEluYy4KUXVhbGNvbW0gVGVjaG5vbG9naWVzLCBJbmMuIGlzIGEgbWVtYmVy IG9mIHRoZSBDb2RlIEF1cm9yYSBGb3J1bSwgYSBMaW51eCBGb3VuZGF0aW9uIENvbGxhYm9yYXRp dmUgUHJvamVjdC4KCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBz Oi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK