From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [RFC v2][PATCH] arm-acpi: Add ITS Support for Dom0 Date: Thu, 8 Jun 2017 14:58:17 +0100 Message-ID: <7fbe04ae-7029-705f-90ae-2e7cb1e2feed@arm.com> References: <6ed5eb3b-861c-e1bd-20a2-f24e55ce59e3@caviumnetworks.com> 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 1dIxx8-00030W-H3 for xen-devel@lists.xenproject.org; Thu, 08 Jun 2017 13:58:22 +0000 In-Reply-To: <6ed5eb3b-861c-e1bd-20a2-f24e55ce59e3@caviumnetworks.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Manish Jaggi , "xen-devel@lists.xenproject.org" , Andre Przywara , Stefano Stabellini , Punit Agrawal List-Id: xen-devel@lists.xenproject.org SGksCgpQbGVhc2UgQ0MgYWxsIHJlbGV2YW50IG1haW50YWluZXJzLgoKT24gMDgvMDYvMTcgMTQ6 MDMsIE1hbmlzaCBKYWdnaSB3cm90ZToKPgoKU3B1cmlvdXMgbmV3bGluZQoKPiBUaGlzIHBhdGNo IHN1cHBvcnRzIElUUyBpbiBoYXJkd2FyZSBkb21haW4sIHN1cHBvcnRzIElUUyBpbiBYZW4KPiB3 aGVuIGJvb3Rpbmcgd2l0aCBBQ1BJLgo+Cj4gU2lnbmVkLW9mZi1ieTogTWFuaXNoIEphZ2dpIDxt amFnZ2lAY2F2aXVtLmNvbT4KPiAtLS0KPiBDaGFuZ2VzIHNpbmNlIHYxOgo+IC0gTW92ZWQgaXRz IHNwZWNpZmljIGNvZGUgdG8gZ2ljLXYzLWl0cy5jCj4gLSBmaXhlZCBtYWNyb3MKCkl0IHNvdW5k cyBsaWtlIHlvdSBoYXZlbid0IGFkZHJlc3NlZCBhbGwgbXkgY29tbWVudHMuIEkgd2lsbCByZXBl YXQgdGhlbSAKZm9yIHRoaXMgdGltZS4gQnV0IG5leHQgdGltZSwgSSB3aWxsIG5vdCBib3RoZXIg cmV2aWV3aW5nIHlvdXIgcGF0Y2guCgo+Cj4gIHhlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYyAg ICAgIHwgIDYgKystLQo+ICB4ZW4vYXJjaC9hcm0vZ2ljLXYzLWl0cy5jICAgICAgICB8IDc1Cj4g KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQo+ICB4ZW4vYXJjaC9hcm0v Z2ljLXYzLmMgICAgICAgICAgICB8IDEwICsrKystLQo+ICB4ZW4vaW5jbHVkZS9hc20tYXJtL2dp Y192M19pdHMuaCB8ICA2ICsrKysKPiAgNCBmaWxlcyBjaGFuZ2VkLCA5MSBpbnNlcnRpb25zKCsp LCA2IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9kb21haW5fYnVp bGQuYyBiL3hlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYwo+IGluZGV4IDNhYmFjYzAuLmQ2ZDZj OTQgMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jCj4gKysrIGIveGVu L2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jCj4gQEAgLTIwLDcgKzIwLDcgQEAKPiAgI2luY2x1ZGUg PGFzbS9wc2NpLmg+Cj4gICNpbmNsdWRlIDxhc20vc2V0dXAuaD4KPiAgI2luY2x1ZGUgPGFzbS9j cHVmZWF0dXJlLmg+Cj4gLQoKV2h5IGRpZCB5b3UgZHJvcCB0aGlzIG5ld2xpbmU/Cgo+ICsjaW5j bHVkZSA8YXNtLWFybS9naWNfdjNfaXRzLmg+CgpOYWNrLiBJIGFza2VkIG9uIHYxIHRvIHNlcGFy YXRlIGNvZGUgYmV0d2VlbiBHSUN2MyBhbmQgSVRTLCBpdCBpcyBub3QgCmZvciBkaXJlY3RseSBj YWxsaW5nIGdpY3YzIGNvZGUgZGlyZWN0bHkgaW4gdGhlIGNvbW1vbiBjb2RlLgoKSWYgeW91IG5l ZWQgdG8gY2FsbCBHSUN2MyBzcGVjaWZpYyBjb2RlLCB0aGVuIGludHJvZHVjZSBhIGNhbGxiYWNr IGluIApnaWNfaHdfb3BlcmF0aW9ucy4KCj4gICNpbmNsdWRlIDxhc20vZ2ljLmg+Cj4gICNpbmNs dWRlIDx4ZW4vaXJxLmg+Cj4gICNpbmNsdWRlIDx4ZW4vZ3JhbnRfdGFibGUuaD4KPiBAQCAtMTgw NCw3ICsxODA0LDkgQEAgc3RhdGljIGludCBlc3RpbWF0ZV9hY3BpX2VmaV9zaXplKHN0cnVjdCBk b21haW4KPiAqZCwgc3RydWN0IGtlcm5lbF9pbmZvICpraW5mbykKPgo+ICAgICAgbWFkdF9zaXpl ID0gc2l6ZW9mKHN0cnVjdCBhY3BpX3RhYmxlX21hZHQpCj4gICAgICAgICAgICAgICAgICArIHNp emVvZihzdHJ1Y3QgYWNwaV9tYWR0X2dlbmVyaWNfaW50ZXJydXB0KSAqCj4gZC0+bWF4X3ZjcHVz Cj4gLSAgICAgICAgICAgICAgICArIHNpemVvZihzdHJ1Y3QgYWNwaV9tYWR0X2dlbmVyaWNfZGlz dHJpYnV0b3IpOwo+ICsgICAgICAgICAgICAgICAgKyBzaXplb2Yoc3RydWN0IGFjcGlfbWFkdF9n ZW5lcmljX2Rpc3RyaWJ1dG9yKQo+ICsgICAgICAgICAgICAgICAgKyBnaWN2M19pdHNfbWFkdF9n ZW5lcmljX3RyYW5zbGF0b3Jfc2l6ZSgpOwoKU2VlIG15IGNvbW1lbnQgYWJvdmUuCgo+ICsKPiAg ICAgIGlmICggZC0+YXJjaC52Z2ljLnZlcnNpb24gPT0gR0lDX1YzICkKPiAgICAgICAgICBtYWR0 X3NpemUgKz0gc2l6ZW9mKHN0cnVjdCBhY3BpX21hZHRfZ2VuZXJpY19yZWRpc3RyaWJ1dG9yKQo+ ICAgICAgICAgICAgICAgICAgICAgICAqIGQtPmFyY2gudmdpYy5ucl9yZWdpb25zOwo+IGRpZmYg LS1naXQgYS94ZW4vYXJjaC9hcm0vZ2ljLXYzLWl0cy5jIGIveGVuL2FyY2gvYXJtL2dpYy12My1p dHMuYwo+IGluZGV4IDFmYjA2Y2EuLjkzN2I5NzAgMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gvYXJt L2dpYy12My1pdHMuYwo+ICsrKyBiL3hlbi9hcmNoL2FybS9naWMtdjMtaXRzLmMKPiBAQCAtMjUs MTQgKzI1LDE4IEBACj4gICNpbmNsdWRlIDx4ZW4vcmJ0cmVlLmg+Cj4gICNpbmNsdWRlIDx4ZW4v c2NoZWQuaD4KPiAgI2luY2x1ZGUgPHhlbi9zaXplcy5oPgo+ICsjaW5jbHVkZSA8eGVuL2lvY2Fw Lmg+CgpUaGUgaW5jbHVkZSBhcmUgb3JkZXJlZCBhbHBoYWJldGljYWxseSwgcGxlYXNlIHJlc3Bl Y3QgaXQuCgo+ICAjaW5jbHVkZSA8YXNtL2dpYy5oPgo+ICAjaW5jbHVkZSA8YXNtL2dpY192M19k ZWZzLmg+Cj4gICNpbmNsdWRlIDxhc20vZ2ljX3YzX2l0cy5oPgo+ICAjaW5jbHVkZSA8YXNtL2lv Lmg+Cj4gICNpbmNsdWRlIDxhc20vcGFnZS5oPgo+ICsjaW5jbHVkZSA8eGVuL2FjcGkuaD4KPiAr I2luY2x1ZGUgPGFjcGkvYWN0YWJsZXMuaD4KPiArI2luY2x1ZGUgPHhlbi9wZm4uaD4KCkRpdHRv LgoKPgo+ICAjZGVmaW5lIElUU19DTURfUVVFVUVfU1ogICAgICAgICAgICAgICAgU1pfMU0KPiAt CgpBZ2Fpbiwgd2UgZG9uJ3QgZHJvcCBuZXdsaW5lIGZvciBubyByZWFzb24uCgo+ICsjZGVmaW5l IEFDUElfR0lDVjNfSVRTX01FTV9TSVpFIChTWl82NEspCj4gIC8qCj4gICAqIE5vIGxvY2sgaGVy ZSwgYXMgdGhpcyBsaXN0IGdldHMgb25seSBwb3B1bGF0ZWQgdXBvbiBib290IHdoaWxlIHNjYW5u aW5nCj4gICAqIGZpcm13YXJlIHRhYmxlcyBmb3IgYWxsIGhvc3QgSVRTZXMsIGFuZCBvbmx5IGdl dHMgaXRlcmF0ZWQgYWZ0ZXJ3YXJkcy4KPiBAQCAtOTIwLDYgKzkyNCw1NSBAQCBpbnQgZ2ljdjNf bHBpX2NoYW5nZV92Y3B1KHN0cnVjdCBkb21haW4gKmQsIHBhZGRyX3QKPiB2ZG9vcmJlbGwsCj4g ICAgICByZXR1cm4gMDsKPiAgfQo+Cj4gK2ludCBnaWN2M19pdHNfZGVueV9hY2Nlc3MoY29uc3Qg c3RydWN0IGRvbWFpbiAqZCkKPiArewo+ICsgICAgaW50IHJjID0gMDsKPiArICAgIHVuc2lnbmVk IGxvbmcgbWZuLCBucjsKPiArICAgIGNvbnN0IHN0cnVjdCBob3N0X2l0cyAqaXRzX2RhdGE7Cj4g Kwo+ICsgICAgbGlzdF9mb3JfZWFjaF9lbnRyeShpdHNfZGF0YSwgJmhvc3RfaXRzX2xpc3QsIGVu dHJ5KQo+ICsgICAgewo+ICsgICAgICAgIG1mbiA9IHBhZGRyX3RvX3BmbihpdHNfZGF0YS0+YWRk cik7Cj4gKyAgICAgICAgbnIgPSBQRk5fVVAoQUNQSV9HSUNWM19JVFNfTUVNX1NJWkUpOwo+ICsg ICAgICAgIHJjID0gaW9tZW1fZGVueV9hY2Nlc3MoZCwgbWZuLCBtZm4gKyBucik7Cj4gKyAgICAg ICAgaWYgKCByYyApCj4gKyAgICAgICAgICAgIGdvdG8gZW5kOwoKSG1tbSwgd2h5IG5vdCB1c2lu ZyBhIGJyZWFrIGhlcmUgcmF0aGVyIHRoYW4gYSBnb3RvPwoKPiArICAgIH0KPiArZW5kOgo+ICsg ICAgcmV0dXJuIHJjOwo+ICt9Cj4gKwo+ICt1MzIgZ2ljdjNfaXRzX21hZHRfZ2VuZXJpY190cmFu c2xhdG9yX3NpemUodm9pZCkKPiArewo+ICsgICAgY29uc3Qgc3RydWN0IGhvc3RfaXRzICppdHNf ZGF0YTsKPiArICAgIHUzMiBzaXplID0gMDsKPiArCj4gKyAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5 KGl0c19kYXRhLCAmaG9zdF9pdHNfbGlzdCwgZW50cnkpCj4gKyAgICB7CgpQb2ludGxlc3MgewoK PiArICAgICAgICBzaXplICs9IHNpemVvZihzdHJ1Y3QgYWNwaV9tYWR0X2dlbmVyaWNfdHJhbnNs YXRvcik7Cj4gKyAgICB9CgpTYW1lIGhlcmUgKyBhZGQgYSBuZXdsaW5lLgoKPiArICAgIHJldHVy biBzaXplOwo+ICt9Cj4gKwo+ICt1MzIgZ2ljdjNfaXRzX21ha2VfaHdkb21fbWFkdCh1OCAqYmFz ZV9wdHIsIHUzMiBvZmZzZXQpCj4gK3sKPiArICAgIHN0cnVjdCBhY3BpX21hZHRfZ2VuZXJpY190 cmFuc2xhdG9yICpnaWNfaXRzOwo+ICsgICAgY29uc3Qgc3RydWN0IGhvc3RfaXRzICppdHNfZGF0 YTsKPiArICAgIHUzMiB0YWJsZV9sZW4gPSBvZmZzZXQsIHNpemU7Cj4gKwo+ICsgICAgLyogVXBk YXRlIEdJQyBJVFMgaW5mb3JtYXRpb24gaW4gaGFyZHdhcmUgZG9tYWluJ3MgTUFEVCAqLwo+ICsg ICAgbGlzdF9mb3JfZWFjaF9lbnRyeShpdHNfZGF0YSwgJmhvc3RfaXRzX2xpc3QsIGVudHJ5KQo+ ICsgICAgewo+ICsgICAgICAgIHNpemUgPSBzaXplb2Yoc3RydWN0IGFjcGlfbWFkdF9nZW5lcmlj X3RyYW5zbGF0b3IpOwo+ICsgICAgICAgIGdpY19pdHMgPSAoc3RydWN0IGFjcGlfbWFkdF9nZW5l cmljX3RyYW5zbGF0b3IgKikoYmFzZV9wdHIgKwo+IHRhYmxlX2xlbik7CgpUaGlzIGxpbmUgaXMg bGlrZWx5IHRvbyBsb25nLgoKPiArICAgICAgICBnaWNfaXRzLT5oZWFkZXIudHlwZSA9IEFDUElf TUFEVF9UWVBFX0dFTkVSSUNfVFJBTlNMQVRPUjsKPiArICAgICAgICBnaWNfaXRzLT5oZWFkZXIu bGVuZ3RoID0gc2l6ZTsKPiArICAgICAgICBnaWNfaXRzLT5iYXNlX2FkZHJlc3MgPSBpdHNfZGF0 YS0+YWRkcjsKCk9uIHRoZSBwcmV2aW91cyBwYXRjaCB5b3UgaGFkOgoKZ2ljX2l0cy0+dHJhbnNs YXRpb25faWQgPSBpdHNfZGF0YS0+dHJhbnNsYXRpb25faWQ7CgpJIGFza2VkIHRvIGV4cGxhaW4g d2h5IHlvdSBuZWVkIHRvIGhhdmUgdGhlIHNhbWUgSUQgYXMgdGhlIGhvc3QuIEFuZCBub3cgCnlv dSBkcm9wcGVkIGl0LiBUaGlzIGRvZXMgbm90IG1hdGNoIHRoZSBzcGVjIChUYWJsZSA1LTY3IGlu IEFDUEkgNi4xKToKCiJHSUMgSVRTIElELiBJbiBhIHN5c3RlbSB3aXRoIG11bHRpcGxlIEdJQyBJ VFMgdW5pdHMsIHRoaXMgdmFsdWUgbXVzdApiZSB1bmlxdWUgdG8gZWFjaCBvbmUuIgoKQnV0IGhl cmUsIHRoZSBJVFMgSUQgd2lsbCBub3QgYmUgdW5pcXVlLiBTbyB3aHkgZGlkIHlvdSBkcm9wcGVk IGl0PwoKPiArICAgICAgICB0YWJsZV9sZW4gKz0gIHNpemU7Cj4gKyAgICB9Cj4gKyAgICByZXR1 cm4gdGFibGVfbGVuOwo+ICt9Cj4gKwo+ICAvKgo+ICAgKiBDcmVhdGUgdGhlIHJlc3BlY3RpdmUg Z3Vlc3QgRFQgbm9kZXMgZnJvbSBhIGxpc3Qgb2YgaG9zdCBJVFNlcy4KPiAgICogVGhpcyBjb3Bp ZXMgdGhlIHJlZyBwcm9wZXJ0eSwgc28gdGhlIGd1ZXN0IHNlZXMgdGhlIElUUyBhdCB0aGUgc2Ft ZQo+IGFkZHJlc3MKPiBAQCAtOTkyLDYgKzEwNDUsMjYgQEAgaW50IGdpY3YzX2l0c19tYWtlX2h3 ZG9tX2R0X25vZGVzKGNvbnN0IHN0cnVjdAo+IGRvbWFpbiAqZCwKPiAgICAgIHJldHVybiByZXM7 Cj4gIH0KPgo+ICtpbnQgZ2ljdjNfaXRzX2FjcGlfaW5pdChzdHJ1Y3QgYWNwaV9zdWJ0YWJsZV9o ZWFkZXIgKmhlYWRlciwgY29uc3QKPiB1bnNpZ25lZCBsb25nIGVuZCkKCkFDUEkgaXMgYW4gb3B0 aW9uIGFuZCBpcyBub3QgYWJsZSBieSBkZWZhdWx0LiBQbGVhc2UgbWFrZSBzdXJlIHRoYXQgdGhp cyAKY29kZSBidWlsZCB3aXRob3V0IEFDUEkuIExpa2VseSB0aGlzIG1lYW5zIHN1cnJvdW5kaW5n IHdpdGggI2lmZGVmIApDT05GSUdfQUNQSS4KCj4gK3sKPiArICAgIHN0cnVjdCBhY3BpX21hZHRf Z2VuZXJpY190cmFuc2xhdG9yICppdHNfZW50cnk7Cj4gKyAgICBzdHJ1Y3QgaG9zdF9pdHMgKml0 c19kYXRhOwo+ICsKPiArICAgIGl0c19kYXRhID0geHphbGxvYyhzdHJ1Y3QgaG9zdF9pdHMpOwo+ ICsgICAgaWYgKCFpdHNfZGF0YSkKCkNvZGluZyBzdHlsZS4KCj4gKyAgICAgICAgcmV0dXJuIC0x Owo+ICsKPiArICAgIGl0c19lbnRyeSA9IChzdHJ1Y3QgYWNwaV9tYWR0X2dlbmVyaWNfdHJhbnNs YXRvciAqKWhlYWRlcjsKPiArICAgIGl0c19kYXRhLT5hZGRyICA9IGl0c19lbnRyeS0+YmFzZV9h ZGRyZXNzOwo+ICsgICAgaXRzX2RhdGEtPnNpemUgPSBBQ1BJX0dJQ1YzX0lUU19NRU1fU0laRTsK PiArCj4gKyAgICBzcGluX2xvY2tfaW5pdCgmaXRzX2RhdGEtPmNtZF9sb2NrKTsKPiArCj4gKyAg ICBwcmludGsoIkdJQ3YzOiBGb3VuZCBJVFMgQDB4JWx4XG4iLCBpdHNfZGF0YS0+YWRkcik7Cj4g Kwo+ICsgICAgbGlzdF9hZGRfdGFpbCgmaXRzX2RhdGEtPmVudHJ5LCAmaG9zdF9pdHNfbGlzdCk7 CgpBcyBzYWlkIG9uIHYxLCBsaWtlbHkgeW91IGNvdWxkIHJlLXVzZSBmYWN0b3JpemUgYSBwYXJ0 IG9mIApnaWN2M19pdHNfZHRfaW5pdCB0byBhdm9pZCBpbXBsZW1lbnRpbmcgdHdpY2UgdGhlIGlu aXRpYWxpemF0aW9uLgoKQWxzbyBuZXdsaW5lLgoKPiArICAgIHJldHVybiAwOwo+ICt9CgpOZXds aW5lIGhlcmUuCgo+ICAvKiBTY2FuIHRoZSBEVCBmb3IgYW55IElUUyBub2RlcyBhbmQgY3JlYXRl IGEgbGlzdCBvZiBob3N0IElUU2VzIG91dCBvZgo+IGl0LiAqLwo+ICB2b2lkIGdpY3YzX2l0c19k dF9pbml0KGNvbnN0IHN0cnVjdCBkdF9kZXZpY2Vfbm9kZSAqbm9kZSkKPiAgewo+IGRpZmYgLS1n aXQgYS94ZW4vYXJjaC9hcm0vZ2ljLXYzLmMgYi94ZW4vYXJjaC9hcm0vZ2ljLXYzLmMKPiBpbmRl eCBjOTI3MzA2Li5mMGY2ZDEyIDEwMDY0NAo+IC0tLSBhL3hlbi9hcmNoL2FybS9naWMtdjMuYwo+ ICsrKyBiL3hlbi9hcmNoL2FybS9naWMtdjMuYwo+IEBAIC0xMzMzLDkgKzEzMzMsOCBAQCBzdGF0 aWMgaW50IGdpY3YzX2lvbWVtX2RlbnlfYWNjZXNzKGNvbnN0IHN0cnVjdAo+IGRvbWFpbiAqZCkK PiAgICAgICAgICByZXR1cm4gaW9tZW1fZGVueV9hY2Nlc3MoZCwgbWZuLCBtZm4gKyBucik7Cj4g ICAgICB9Cj4KPiAtICAgIHJldHVybiAwOwo+ICsgICAgcmV0dXJuIGdpY3YzX2l0c19kZW55X2Fj Y2VzcyhkKTsKCkNvcHlpbmcgbXkgYW5zd2VyIGZyb20gdjEgZm9yIGNvbnZlbmllbmNlOgoKICAg ICBpZiAoIHZiYXNlICE9IElOVkFMSURfUEFERFIgKQogICAgIHsKICAgICAgICAgbWZuID0gdmJh c2UgPj4gUEFHRV9TSElGVDsKICAgICAgICAgbnIgPSBESVZfUk9VTkRfVVAoY3NpemUsIFBBR0Vf U0laRSk7CiAgICAgICAgIHJldHVybiBpb21lbV9kZW55X2FjY2VzcyhkLCBtZm4sIG1mbiArIG5y KTsKICAgICB9CgpXaGVuIEdJQ3YzIGlzIGFibGUgdG8gc3VwcG9ydCBHSUN2MiwgdmJhc2Ugd2ls bCBiZSB2YWxpZCBhbmQgdGhlIGNvZGUgCndpbGwgYmFpbCBvdXQgYWZ0ZXIgZGVueWluZyBhY2Nl c3MgdG8gdGhlIEdJQ1YuIFNvIHRoZSBJVFMgcmVnaW9ucyB3aWxsIApub3QgYmUgZGVuaWVkLgoK Cj4gIH0KPiAtCgpBZ2Fpbiwgd2h5IGRpZCB5b3UgZHJvcCB0aGlzIG5ld2xpbmU/Cgo+ICAjaWZk ZWYgQ09ORklHX0FDUEkKPiAgc3RhdGljIHZvaWQgX19pbml0Cj4gIGdpY19hY3BpX2FkZF9yZGlz dF9yZWdpb24ocGFkZHJfdCBiYXNlLCBwYWRkcl90IHNpemUsIGJvb2wgc2luZ2xlX3JkaXN0KQo+ IEBAIC0xMzc0LDYgKzEzNzMsNyBAQCBzdGF0aWMgaW50IGdpY3YzX21ha2VfaHdkb21fbWFkdChj b25zdCBzdHJ1Y3QKPiBkb21haW4gKmQsIHUzMiBvZmZzZXQpCj4gICAgICBmb3IgKCBpID0gMDsg aSA8IGQtPm1heF92Y3B1czsgaSsrICkKPiAgICAgIHsKPiAgICAgICAgICBnaWNjID0gKHN0cnVj dCBhY3BpX21hZHRfZ2VuZXJpY19pbnRlcnJ1cHQgKikoYmFzZV9wdHIgKwo+IHRhYmxlX2xlbik7 Cj4gKwoKQXMgc2FpZCBvbiB2MSwgc3B1cmlvdXMgY2hhbmdlLgoKPiAgICAgICAgICBBQ1BJX01F TUNQWShnaWNjLCBob3N0X2dpY2MsIHNpemUpOwo+ICAgICAgICAgIGdpY2MtPmNwdV9pbnRlcmZh Y2VfbnVtYmVyID0gaTsKPiAgICAgICAgICBnaWNjLT51aWQgPSBpOwo+IEBAIC0xMzk5LDcgKzEz OTksNyBAQCBzdGF0aWMgaW50IGdpY3YzX21ha2VfaHdkb21fbWFkdChjb25zdCBzdHJ1Y3QKPiBk b21haW4gKmQsIHUzMiBvZmZzZXQpCj4gICAgICAgICAgZ2ljci0+bGVuZ3RoID0gZC0+YXJjaC52 Z2ljLnJkaXN0X3JlZ2lvbnNbaV0uc2l6ZTsKPiAgICAgICAgICB0YWJsZV9sZW4gKz0gc2l6ZTsK PiAgICAgIH0KPiAtCgpBZ2FpbiB3aHkgZGlkIHlvdSBkcm9wIHRoZSBuZXdsaW5lPwoKPiArICAg IHRhYmxlX2xlbiA9IGdpY3YzX2l0c19tYWtlX2h3ZG9tX21hZHQoYmFzZV9wdHIsIHRhYmxlX2xl bik7Cj4gICAgICByZXR1cm4gdGFibGVfbGVuOwo+ICB9Cj4KPiBAQCAtMTU2Nyw2ICsxNTY3LDkg QEAgc3RhdGljIHZvaWQgX19pbml0IGdpY3YzX2FjcGlfaW5pdCh2b2lkKQo+Cj4gICAgICBnaWN2 My5yZGlzdF9zdHJpZGUgPSAwOwo+Cj4gKyAgICBhY3BpX3RhYmxlX3BhcnNlX21hZHQoQUNQSV9N QURUX1RZUEVfR0VORVJJQ19UUkFOU0xBVE9SLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg IGdpY3YzX2l0c19hY3BpX2luaXQsIDApOwoKQXMgc2FpZCBvbiB2MSwgYWNwaV90YWJsZV9wYXJz ZV9tYWR0IG1heSByZXR1cm4gYW4gZXJyb3IuIFdoeSB0aGlzIGlzIApub3QgY2hlY2tlZD8KCj4g Kwo+ICAgICAgLyoKPiAgICAgICAqIEluIEFDUEksIDAgaXMgY29uc2lkZXJlZCBhcyB0aGUgaW52 YWxpZCBhZGRyZXNzLiBIb3dldmVyIHRoZSByZXN0Cj4gICAgICAgKiBvZiB0aGUgaW5pdGlhbGl6 YXRpb24gcmVseSBvbiB0aGUgaW52YWxpZCBhZGRyZXNzIHRvIGJlCj4gQEAgLTE1ODUsNiArMTU4 OCw3IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBnaWN2M19hY3BpX2luaXQodm9pZCkKPiAgICAgIGVs c2UKPiAgICAgICAgICB2c2l6ZSA9IEdVRVNUX0dJQ0NfU0laRTsKPgo+ICsKCkFzIHNhaWQgb24g djEsIHRoaXMgaXMgYSBzcHVyaW91cyBuZXdsaW5lLgoKPiAgfQo+ICAjZWxzZQo+ICBzdGF0aWMg dm9pZCBfX2luaXQgZ2ljdjNfYWNwaV9pbml0KHZvaWQpIHsgfQo+IGRpZmYgLS1naXQgYS94ZW4v aW5jbHVkZS9hc20tYXJtL2dpY192M19pdHMuaAo+IGIveGVuL2luY2x1ZGUvYXNtLWFybS9naWNf djNfaXRzLmgKPiBpbmRleCBkMmEzZTUzLi5iNzJhZWMyIDEwMDY0NAo+IC0tLSBhL3hlbi9pbmNs dWRlL2FzbS1hcm0vZ2ljX3YzX2l0cy5oCj4gKysrIGIveGVuL2luY2x1ZGUvYXNtLWFybS9naWNf djNfaXRzLmgKPiBAQCAtMTA1LDYgKzEwNSw3IEBACj4KPiAgI2luY2x1ZGUgPHhlbi9kZXZpY2Vf dHJlZS5oPgo+ICAjaW5jbHVkZSA8eGVuL3JidHJlZS5oPgo+ICsjaW5jbHVkZSA8eGVuL2FjcGku aD4KPgo+ICAjZGVmaW5lIEhPU1RfSVRTX0ZMVVNIX0NNRF9RVUVVRSAgICAgICAgKDFVIDw8IDAp Cj4gICNkZWZpbmUgSE9TVF9JVFNfVVNFU19QVEEgICAgICAgICAgICAgICAoMVUgPDwgMSkKPiBA QCAtMTM0LDYgKzEzNSw3IEBAIGV4dGVybiBzdHJ1Y3QgbGlzdF9oZWFkIGhvc3RfaXRzX2xpc3Q7 Cj4KPiAgLyogUGFyc2UgdGhlIGhvc3QgRFQgYW5kIHBpY2sgdXAgYWxsIGhvc3QgSVRTZXMuICov Cj4gIHZvaWQgZ2ljdjNfaXRzX2R0X2luaXQoY29uc3Qgc3RydWN0IGR0X2RldmljZV9ub2RlICpu b2RlKTsKPiAraW50ICBnaWN2M19pdHNfYWNwaV9pbml0KHN0cnVjdCBhY3BpX3N1YnRhYmxlX2hl YWRlciAqaGVhZGVyLCBjb25zdAo+IHVuc2lnbmVkIGxvbmcgZW5kKTsKClRoaXMgd2lsbCBsaWtl bHkgbmVlZCBhbiAjaWZkZWYgQ09ORklHX0FDUEkuIEFuZCBhbHNvIGEgc3R1YiB3b3VsZCBiZSAK cmVxdWlyZWQgaWYgSVRTIGlzIGRpc2FibGVkLgoKPgo+ICBib29sIGdpY3YzX2l0c19ob3N0X2hh c19pdHModm9pZCk7Cj4KPiBAQCAtMTY3LDYgKzE2OSwxMCBAQCBpbnQgZ2ljdjNfaXRzX21ha2Vf aHdkb21fZHRfbm9kZXMoY29uc3Qgc3RydWN0Cj4gZG9tYWluICpkLAo+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGR0X2RldmljZV9ub2RlICpnaWMsCj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpmZHQpOwo+Cj4gK3UzMiBn aWN2M19pdHNfbWFrZV9od2RvbV9tYWR0KHU4ICpiYXNlX3B0ciwgdTMyIG9mZnNldCk7Cj4gK3Uz MiBnaWN2M19pdHNfbWFkdF9nZW5lcmljX3RyYW5zbGF0b3Jfc2l6ZSh2b2lkKTsKPiArLyogRGVu eSBpb21lbSBhY2Nlc3MgZm9yIGl0cyAqLwo+ICtpbnQgZ2ljdjNfaXRzX2RlbnlfYWNjZXNzKGNv bnN0IHN0cnVjdCBkb21haW4gKmQpOwoKU2FtZSBoZXJlLgoKPiAgLyoKPiAgICogTWFwIGEgZGV2 aWNlIG9uIHRoZSBob3N0IGJ5IGFsbG9jYXRpbmcgYW4gSVRUIG9uIHRoZSBob3N0IChJVFMpLgo+ ICAgKiAibnJfZXZlbnQiIHNwZWNpZmllcyBob3cgbWFueSBldmVudHMgKGludGVycnVwdHMpIHRo aXMgZGV2aWNlIHdpbGwKPiBuZWVkLgoKQ2hlZXJzLAoKLS0gCkp1bGllbiBHcmFsbAoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxp bmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVu LWRldmVsCg==