From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id CED818991D for ; Fri, 22 Feb 2019 22:44:51 +0000 (UTC) References: <20190221192745.31178-3-antonio.argenziano@intel.com> <20190222215931.5881-1-antonio.argenziano@intel.com> <12df703a-94f8-10de-5d64-234433a51caf@intel.com> <155087359880.3867.14787802941033481583@skylake-alporthouse-com> <155087458054.3867.11190790399911499560@skylake-alporthouse-com> From: Antonio Argenziano Message-ID: <99a15df3-f191-a4b3-c897-ce772059b628@intel.com> Date: Fri, 22 Feb 2019 14:44:51 -0800 MIME-Version: 1.0 In-Reply-To: <155087458054.3867.11190790399911499560@skylake-alporthouse-com> Content-Language: en-US Subject: Re: [igt-dev] [PATCH i-g-t] lib/i915: add mmap_offset support List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Chris Wilson , igt-dev@lists.freedesktop.org Cc: Janulgue Abdiel , Matthew Auld List-ID: CgpPbiAyMi8wMi8xOSAxNDoyOSwgQ2hyaXMgV2lsc29uIHdyb3RlOgo+IFF1b3RpbmcgQ2hyaXMg V2lsc29uICgyMDE5LTAyLTIyIDIyOjEzOjE4KQo+PiBRdW90aW5nIEFudG9uaW8gQXJnZW56aWFu byAoMjAxOS0wMi0yMiAyMjowMTo0MykKPj4+Cj4+Pgo+Pj4gT24gMjIvMDIvMTkgMTM6NTksIEFu dG9uaW8gQXJnZW56aWFubyB3cm90ZToKPj4+PiBGcm9tOiAiS2FsYW1hcnosIEx1a2FzeiIgPGx1 a2Fzei5rYWxhbWFyekBpbnRlbC5jb20+Cj4+Pj4KPj4+PiBXaXRoIHJlY2VudGx5IHByb3Bvc2Vk IGNoYW5nZXMsIElHVCBuZWVkIHRvIHN0YXJ0IHN1cHBvcnRpbmcgbmV3Cj4+Pj4gd2F5IG9mIG1t YXBpbmcgb2JqZWN0LCB3aGljaCB3aWxsIGJlIHVzZWQgZnJvbSBub3cgYnkgZGVmYXVsdC4KPj4+ PiBUaGlzIHBhdGNoIG1vZGlmeSBnZW1fbW1hcF93YyBhbmQgZ2VtX21tYXAgZnVuY3Rpb25zIHRv IGJlCj4+Pj4gaW4gc3luYyB3aXRoIHRob3NlIGNoYW5nZXMuCj4+Pj4KPj4+PiB2MjoKPj4+PiAg ICAgICAgLSBGaXggSU9DVEwgbnVtYmVyLiAoRGFuaWVsZSkKPj4+PiAgICAgICAgLSBNb3ZlIHdy YXBwZXJzIHRvIG5ldyBmaWxlLiAoQ2hyaXMpCj4+Pgo+Pj4gTm90IHN1cmUgaG93IG11Y2ggb2Yg dGhlIG90aGVyIHN0dWZmIHdlIG1pZ2h0IHdhbnQgdG8gYnJpbmcgb3ZlciBzbyBJJ3ZlCj4+PiBt b3ZlZCBvbmx5IHRoZSBuZXcgd3JhcHBlcnMgZm9yIG5vdy4KPj4KPj4gSXQncyBhIHNlbnNpYmxl IGNodW5rIHRvIHJldmlldywgc28gbm8gd29ycmllcywgbW9yZSBjYW4gY29tZSBsYXRlci4KPj4K Pj4+PiBTaWduZWQtb2ZmLWJ5OiBMdWthc3ogS2FsYW1hcnogPGx1a2Fzei5rYWxhbWFyekBpbnRl bC5jb20+Cj4+Pj4gQ2M6IEphbnVsZ3VlIEFiZGllbCA8YWJkaWVsLmphbnVsZ3VlQGludGVsLmNv bT4KPj4+PiBDYzogTWF0dGhldyBBdWxkIDxtYXR0aGV3LmF1bGRAaW50ZWwuY29tPgo+Pj4+IENj OiBNaWNoYWwgV2luaWFyc2tpIDxtaWNoYWwud2luaWFyc2tpQGludGVsLmNvbT4KPj4+PiBDYzog QW50b25pbyBBcmdlbnppYW5vIDxhbnRvbmlvLmFyZ2Vuemlhbm9AaW50ZWwuY29tPgo+Pj4+IENj OiBEYW5pZWxlIFNwdXJpbyBDZXJhb2xvIDxkYW5pZWxlLmNlcmFvbG9zcHVyaW9AaW50ZWwuY29t Pgo+Pj4+IENjOiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5j b20+Cj4+Pj4gQ2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+Pj4+ IFNpZ25lZC1vZmYtYnk6IEFudG9uaW8gQXJnZW56aWFubyA8YW50b25pby5hcmdlbnppYW5vQGlu dGVsLmNvbT4KPj4+PiAtLS0KPj4+PiAgICBsaWIvaTkxNS9nZW1fbW1hbi5jICB8IDg3ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+Pj4gICAgbGliL2k5MTUv Z2VtX21tYW4uaCAgfCA2MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+Pj4gICAg bGliL2lvY3RsX3dyYXBwZXJzLmMgfCA2NyArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t LS0tCj4+Pj4gICAgbGliL2lvY3RsX3dyYXBwZXJzLmggfCAgMSArCj4+Pj4gICAgbGliL21lc29u LmJ1aWxkICAgICAgfCAgMSArCj4+Pj4gICAgNSBmaWxlcyBjaGFuZ2VkLCAxOTYgaW5zZXJ0aW9u cygrKSwgMjEgZGVsZXRpb25zKC0pCj4+Pj4gICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi9pOTE1 L2dlbV9tbWFuLmMKPj4+PiAgICBjcmVhdGUgbW9kZSAxMDA2NDQgbGliL2k5MTUvZ2VtX21tYW4u aAo+Pj4+Cj4+Pj4gZGlmZiAtLWdpdCBhL2xpYi9pOTE1L2dlbV9tbWFuLmMgYi9saWIvaTkxNS9n ZW1fbW1hbi5jCj4+Pj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4+PiBpbmRleCAwMDAwMDAwMC4u ZmI5NDlmNDQKPj4+PiAtLS0gL2Rldi9udWxsCj4+Pj4gKysrIGIvbGliL2k5MTUvZ2VtX21tYW4u Ywo+Pj4+IEBAIC0wLDAgKzEsODcgQEAKPj4+PiArLyoKPj4+PiArICogQ29weXJpZ2h0IMKpIDIw MDcsIDIwMTEsIDIwMTMsIDIwMTQsIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KPj4+PiArICoKPj4+ PiArICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFu eSBwZXJzb24gb2J0YWluaW5nIGEKPj4+PiArICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBh c3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKPj4+PiArICog dG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdp dGhvdXQgbGltaXRhdGlvbgo+Pj4+ICsgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5 LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKPj4+PiArICogYW5kL29y IHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdo b20gdGhlCj4+Pj4gKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0 byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Cj4+Pj4gKyAqCj4+Pj4gKyAqIFRoZSBhYm92ZSBj b3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhl IG5leHQKPj4+PiArICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVz IG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQo+Pj4+ICsgKiBTb2Z0d2FyZS4KPj4+PiAr ICoKPj4+PiArICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FS UkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKPj4+PiArICogSU1QTElFRCwgSU5DTFVESU5H IEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCj4+ Pj4gKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1F TlQuICBJTiBOTyBFVkVOVCBTSEFMTAo+Pj4+ICsgKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQg SE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgo+Pj4+ICsg KiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9U SEVSV0lTRSwgQVJJU0lORwo+Pj4+ICsgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBX SVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCj4+Pj4gKyAqIElO IFRIRSBTT0ZUV0FSRS4KPj4+PiArICoKPj4+PiArICovCj4+Pj4gKwo+Pj4+ICsjaW5jbHVkZSA8 c3RkYm9vbC5oPgo+Pj4+ICsjaW5jbHVkZSA8c3lzL2lvY3RsLmg+Cj4+Pj4gKwo+Pj4+ICsjaW5j bHVkZSAiaWd0X2NvcmUuaCIKPj4+PiArI2luY2x1ZGUgImlvY3RsX3dyYXBwZXJzLmgiCj4+Pj4g Kwo+Pj4+ICsjaW5jbHVkZSAiZ2VtX21tYW4uaCIKPj4+PiArCj4+Pj4gKwo+Pj4+ICtib29sIGhh c19tbWFwX29mZnNldChpbnQgZmQpCj4+Pj4gK3sKPj4+PiArICAgICBzdGF0aWMgaW50IGhhc19t bWFwX29mZnNldCA9IC0xOwo+Pj4+ICsKPj4+PiArICAgICBpZiAoaGFzX21tYXBfb2Zmc2V0ID09 IC0xKSB7Cj4+Pj4gKyAgICAgICAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2V0cGFyYW0gZ3A7Cj4+ Pj4gKwo+Pj4+ICsgICAgICAgICAgICAgaGFzX21tYXBfb2Zmc2V0ID0gMDsKPj4+PiArCj4+Pj4g KyAgICAgICAgICAgICBtZW1zZXQoJmdwLCAwLCBzaXplb2YoZ3ApKTsKPj4+PiArICAgICAgICAg ICAgIGdwLnBhcmFtID0gMHg1NTsgLyogSTkxNV9QQVJBTV9NTUFQX09GRlNFVF9WRVJTSU9OICov Cj4+Pj4gKyAgICAgICAgICAgICBncC52YWx1ZSA9ICZoYXNfbW1hcF9vZmZzZXQ7Cj4+Pj4gKyAg ICAgICAgICAgICBpb2N0bChmZCwgRFJNX0lPQ1RMX0k5MTVfR0VUUEFSQU0sICZncCk7Cj4+Pj4g KyAgICAgfQo+Pj4+ICsKPj4+PiArICAgICByZXR1cm4gaGFzX21tYXBfb2Zmc2V0ID4gMDsKPj4+ PiArfQo+Pj4+ICsKPj4+PiArLyoqCj4+Pj4gKyAqIF9fZ2VtX21tYXBfb2Zmc2V0Ogo+Pj4+ICsg KiBAZmQ6IG9wZW4gaTkxNSBkcm0gZmlsZSBkZXNjcmlwdG9yCj4+Pj4gKyAqIEBoYW5kbGU6IGdl bSBidWZmZXIgb2JqZWN0IGhhbmRsZQo+Pj4+ICsgKiBAb2Zmc2V0OiBvZmZzZXQgaW4gdGhlIGdl bSBidWZmZXIgb2YgdGhlIG1tYXAgYXJlbmEKPj4+PiArICogQHNpemU6IHNpemUgb2YgdGhlIG1t YXAgYXJlbmEKPj4+PiArICogQHByb3Q6IG1lbW9yeSBwcm90ZWN0aW9uIGJpdHMgYXMgdXNlZCBi eSBtbWFwKCkKPj4+PiArICogQGZsYWdzOiBmbGFncyB1c2VkIHRvIGRldGVybWluZSBjYWNoaW5n Cj4+Pj4gKyAqCj4+Pj4gKyAqIFNpbWlsYXIgdG8gX19nZW1fbW1hcCBidXQgdXNlIE1NQVBfT0ZG U0VUIElPQ1RMLgo+Pj4+ICsgKgo+Pj4+ICsgKiBSZXR1cm5zOiBBIHBvaW50ZXIgdG8gdGhlIGNy ZWF0ZWQgbWVtb3J5IG1hcHBpbmcsIE5VTEwgb24gZmFpbHVyZS4KPj4+PiArICovCj4+Pj4gK3Zv aWQKPj4+PiArKl9fZ2VtX21tYXBfb2Zmc2V0KGludCBmZCwgdWludDMyX3QgaGFuZGxlLCB1aW50 NjRfdCBvZmZzZXQsIHVpbnQ2NF90IHNpemUsIHVuc2lnbmVkIGludCBwcm90LCB1aW50NjRfdCBm bGFncykKPj4+PiArewo+Pj4+ICsgICAgIHN0cnVjdCBsb2NhbF9kcm1faTkxNV9nZW1fbW1hcF9v ZmZzZXQgYXJnOwo+Pj4+ICsgICAgIHZvaWQgKnB0cjsKPj4+PiArCj4+Pj4gKyAgICAgbWVtc2V0 KCZhcmcsIDAsIHNpemVvZihhcmcpKTsKPj4+PiArICAgICBhcmcuaGFuZGxlID0gaGFuZGxlOwo+ Pj4+ICsgICAgIGFyZy5vZmZzZXQgPSBvZmZzZXQ7Cj4+Pj4gKyAgICAgYXJnLmZsYWdzID0gZmxh Z3M7Cj4+Pj4gKwo+Pj4+ICsgICAgIGlmIChpZ3RfaW9jdGwoZmQsIExPQ0FMX0RSTV9JT0NUTF9J OTE1X0dFTV9NTUFQX09GRlNFVCwgJmFyZykpCj4+Pj4gKyAgICAgICAgICAgICByZXR1cm4gTlVM TDsKPj4+PiArCj4+Pj4gKyAgICAgcHRyID0gbW1hcDY0KDAsIHNpemUsIHByb3QsIE1BUF9TSEFS RUQsIGZkLCBhcmcub2Zmc2V0KTsKPj4+PiArCj4+Pj4gKyAgICAgaWYgKHB0ciA9PSBNQVBfRkFJ TEVEKQo+Pj4+ICsgICAgICAgICAgICAgcHRyID0gTlVMTDsKPj4+PiArICAgICBlbHNlCj4+Pj4g KyAgICAgICAgICAgICBlcnJubyA9IDA7Cj4+Pj4gKwo+Pj4+ICsgICAgIHJldHVybiBwdHI7Cj4+ Pj4gK30KPj4+PiBkaWZmIC0tZ2l0IGEvbGliL2k5MTUvZ2VtX21tYW4uaCBiL2xpYi9pOTE1L2dl bV9tbWFuLmgKPj4+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+Pj4+IGluZGV4IDAwMDAwMDAwLi4y ZjI0Y2E5OQo+Pj4+IC0tLSAvZGV2L251bGwKPj4+PiArKysgYi9saWIvaTkxNS9nZW1fbW1hbi5o Cj4+Pj4gQEAgLTAsMCArMSw2MSBAQAo+Pj4+ICsvKgo+Pj4+ICsgKiBDb3B5cmlnaHQgwqkgMjAw NywgMjAxMSwgMjAxMywgMjAxNCwgMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgo+Pj4+ICsgKgo+Pj4+ ICsgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55 IHBlcnNvbiBvYnRhaW5pbmcgYQo+Pj4+ICsgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFz c29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAo+Pj4+ICsgKiB0 byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0 aG91dCBsaW1pdGF0aW9uCj4+Pj4gKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnks IG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAo+Pj4+ICsgKiBhbmQvb3Ig c2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hv bSB0aGUKPj4+PiArICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRv IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKPj4+PiArICoKPj4+PiArICogVGhlIGFib3ZlIGNv cHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUg bmV4dAo+Pj4+ICsgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMg b3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCj4+Pj4gKyAqIFNvZnR3YXJlLgo+Pj4+ICsg Kgo+Pj4+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJS QU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+Pj4+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcg QlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKPj4+ PiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVO VC4gIElOIE5PIEVWRU5UIFNIQUxMCj4+Pj4gKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBI T0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCj4+Pj4gKyAq IExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RI RVJXSVNFLCBBUklTSU5HCj4+Pj4gKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJ VEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MKPj4+PiArICogSU4g VEhFIFNPRlRXQVJFLgo+Pj4+ICsgKgo+Pj4+ICsgKi8KPj4+PiArCj4+Pj4gKyNpZm5kZWYgR0VN X01NQU5fSAo+Pj4+ICsjZGVmaW5lIEdFTV9NTUFOX0gKPj4+PiArCj4+Pj4gK3N0cnVjdCBsb2Nh bF9kcm1faTkxNV9nZW1fbW1hcF9vZmZzZXQgewo+Pj4+ICsgICAgIC8qKiBIYW5kbGUgZm9yIHRo ZSBvYmplY3QgYmVpbmcgbWFwcGVkLiAqLwo+Pj4+ICsgICAgIF9fdTMyIGhhbmRsZTsKPj4+PiAr ICAgICBfX3UzMiBwYWQ7Cj4+Pj4gKyAgICAgLyoqCj4+Pj4gKyAgICAgICogRmFrZSBvZmZzZXQg dG8gdXNlIGZvciBzdWJzZXF1ZW50IG1tYXAgY2FsbAo+Pj4+ICsgICAgICAqCj4+Pj4gKyAgICAg ICogVGhpcyBpcyBhIGZpeGVkLXNpemUgdHlwZSBmb3IgMzIvNjQgY29tcGF0aWJpbGl0eS4KPj4+ PiArICAgICAgKi8KPj4+PiArICAgICBfX3U2NCBvZmZzZXQ7Cj4+Pj4gKwo+Pj4+ICsgICAgIC8q Kgo+Pj4+ICsgICAgICAqIEZsYWdzIGZvciBleHRlbmRlZCBiZWhhdmlvdXIuCj4+Pj4gKyAgICAg ICoKPj4+PiArICAgICAgKiBJdCBpcyBtYW5kYXRvcnkgdGhhdCBlaXRoZXIgb25lIG9mIHRoZSBf V0MvX1dCIGZsYWdzCj4+Pj4gKyAgICAgICogc2hvdWxkIGJlIHBhc3NlZCBoZXJlLgo+Pj4+ICsg ICAgICAqLwo+Pj4+ICsgICAgIF9fdTY0IGZsYWdzOwo+Pj4+ICt9Owo+Pj4+ICsKPj4+PiArI2Rl ZmluZSBMT0NBTF9EUk1fSTkxNV9HRU1fTU1BUF9PRkZTRVQgMHgyNAo+Pj4+ICsjZGVmaW5lIExP Q0FMX0k5MTVfTU1BUF9PRkZTRVRfV0MgKDEgPDwgMCkKPj4+PiArI2RlZmluZSBMT0NBTF9JOTE1 X01NQVBfT0ZGU0VUX1dCICgxIDw8IDEpCj4+Pj4gKyNkZWZpbmUgTE9DQUxfSTkxNV9NTUFQX09G RlNFVF9VQyAoMSA8PCAyKQo+Pj4+ICsKPj4+PiArI2RlZmluZSBMT0NBTF9EUk1fSU9DVExfSTkx NV9HRU1fTU1BUF9PRkZTRVQgXAo+Pj4+ICsgICAgICAgICAgICAgRFJNX0lPV1IoRFJNX0NPTU1B TkRfQkFTRSArIExPQ0FMX0RSTV9JOTE1X0dFTV9NTUFQX09GRlNFVCwgc3RydWN0IGxvY2FsX2Ry bV9pOTE1X2dlbV9tbWFwX29mZnNldCkKPj4+PiArCj4+Pj4gK2Jvb2wgaGFzX21tYXBfb2Zmc2V0 KGludCBmZCk7Cj4+Pj4gKwo+Pj4+ICt2b2lkICpfX2dlbV9tbWFwX29mZnNldChpbnQgZmQsIHVp bnQzMl90IGhhbmRsZSwgdWludDY0X3Qgb2Zmc2V0LCB1aW50NjRfdCBzaXplLCB1bnNpZ25lZCBp bnQgcHJvdCwgdWludDY0X3QgZmxhZ3MpOwo+Pj4+ICsKPj4+PiArI2VuZGlmIC8qIEdFTV9NTUFO X0ggKi8KPj4+PiArCj4+Pj4gZGlmZiAtLWdpdCBhL2xpYi9pb2N0bF93cmFwcGVycy5jIGIvbGli L2lvY3RsX3dyYXBwZXJzLmMKPj4+PiBpbmRleCA0MDRjMmZiZi4uYzExYjAxNDYgMTAwNjQ0Cj4+ Pj4gLS0tIGEvbGliL2lvY3RsX3dyYXBwZXJzLmMKPj4+PiArKysgYi9saWIvaW9jdGxfd3JhcHBl cnMuYwo+Pj4+IEBAIC03MDcsMzUgKzcwNyw1MCBAQCBib29sIGdlbV9tbWFwX19oYXNfd2MoaW50 IGZkKQo+Pj4+ICAgICAgICBzdGF0aWMgaW50IGhhc193YyA9IC0xOwo+Pj4+ICAgIAo+Pj4+ICAg ICAgICBpZiAoaGFzX3djID09IC0xKSB7Cj4+Pj4gLSAgICAgICAgICAgICBzdHJ1Y3QgZHJtX2k5 MTVfZ2V0cGFyYW0gZ3A7Cj4+Pj4gLSAgICAgICAgICAgICBpbnQgbW1hcF92ZXJzaW9uID0gLTE7 Cj4+Pj4gLSAgICAgICAgICAgICBpbnQgZ3R0X3ZlcnNpb24gPSAtMTsKPj4+PiAgICAKPj4+PiAg ICAgICAgICAgICAgICBoYXNfd2MgPSAwOwo+Pj4+ICAgIAo+Pj4+IC0gICAgICAgICAgICAgbWVt c2V0KCZncCwgMCwgc2l6ZW9mKGdwKSk7Cj4+Pj4gLSAgICAgICAgICAgICBncC5wYXJhbSA9IEk5 MTVfUEFSQU1fTU1BUF9HVFRfVkVSU0lPTjsKPj4+PiAtICAgICAgICAgICAgIGdwLnZhbHVlID0g Jmd0dF92ZXJzaW9uOwo+Pj4+IC0gICAgICAgICAgICAgaW9jdGwoZmQsIERSTV9JT0NUTF9JOTE1 X0dFVFBBUkFNLCAmZ3ApOwo+Pj4+IC0KPj4+PiAtICAgICAgICAgICAgIG1lbXNldCgmZ3AsIDAs IHNpemVvZihncCkpOwo+Pj4+IC0gICAgICAgICAgICAgZ3AucGFyYW0gPSBJOTE1X1BBUkFNX01N QVBfVkVSU0lPTjsKPj4+PiAtICAgICAgICAgICAgIGdwLnZhbHVlID0gJm1tYXBfdmVyc2lvbjsK Pj4+PiAtICAgICAgICAgICAgIGlvY3RsKGZkLCBEUk1fSU9DVExfSTkxNV9HRVRQQVJBTSwgJmdw KTsKPj4+PiAtCj4+Pj4gLSAgICAgICAgICAgICAvKiBEbyB3ZSBoYXZlIHRoZSBuZXcgbW1hcF9p b2N0bCB3aXRoIERPTUFJTl9XQz8gKi8KPj4+PiAtICAgICAgICAgICAgIGlmIChtbWFwX3ZlcnNp b24gPj0gMSAmJiBndHRfdmVyc2lvbiA+PSAyKSB7Cj4+Pj4gLSAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCBkcm1faTkxNV9nZW1fbW1hcCBhcmc7Cj4+Pj4gKyAgICAgICAgICAgICAvKiBEbyB3 ZSBoYXZlIHRoZSBuZXcgbW1hcF9vZmZzZXQgaW9jdGw/ICovCj4+Pj4gKyAgICAgICAgICAgICBp ZiAoaGFzX21tYXBfb2Zmc2V0KGZkKSkgewo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICBzdHJ1 Y3QgbG9jYWxfZHJtX2k5MTVfZ2VtX21tYXBfb2Zmc2V0IGFyZzsKPj4+PiAgICAKPj4+PiAgICAg ICAgICAgICAgICAgICAgICAgIC8qIERvZXMgdGhpcyBkZXZpY2Ugc3VwcG9ydCB3Yy1tbWFwcyA/ ICovCj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICBtZW1zZXQoJmFyZywgMCwgc2l6ZW9mKGFy ZykpOwo+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgYXJnLmhhbmRsZSA9IGdlbV9jcmVhdGUo ZmQsIDQwOTYpOwo+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgYXJnLm9mZnNldCA9IDA7Cj4+ Pj4gLSAgICAgICAgICAgICAgICAgICAgIGFyZy5zaXplID0gNDA5NjsKPj4+PiAtICAgICAgICAg ICAgICAgICAgICAgYXJnLmZsYWdzID0gSTkxNV9NTUFQX1dDOwo+Pj4+IC0gICAgICAgICAgICAg ICAgICAgICBoYXNfd2MgPSBpZ3RfaW9jdGwoZmQsIERSTV9JT0NUTF9JOTE1X0dFTV9NTUFQLCAm YXJnKSA9PSAwOwo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICBhcmcuZmxhZ3MgPSBMT0NBTF9J OTE1X01NQVBfT0ZGU0VUX1dDOwo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICBoYXNfd2MgPSBp Z3RfaW9jdGwoZmQsIExPQ0FMX0RSTV9JT0NUTF9JOTE1X0dFTV9NTUFQX09GRlNFVCwgJmFyZykg PT0gMDsKPj4+PiAgICAgICAgICAgICAgICAgICAgICAgIGdlbV9jbG9zZShmZCwgYXJnLmhhbmRs ZSk7Cj4+Pj4gKyAgICAgICAgICAgICB9IGVsc2Ugewo+Pj4+ICsgICAgICAgICAgICAgICAgICAg ICBzdHJ1Y3QgZHJtX2k5MTVfZ2V0cGFyYW0gZ3A7Cj4+Pj4gKyAgICAgICAgICAgICAgICAgICAg IGludCBtbWFwX3ZlcnNpb24gPSAtMTsKPj4+PiArICAgICAgICAgICAgICAgICAgICAgaW50IGd0 dF92ZXJzaW9uID0gLTE7Cj4+Pj4gKwo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICBtZW1zZXQo JmdwLCAwLCBzaXplb2YoZ3ApKTsKPj4+PiArICAgICAgICAgICAgICAgICAgICAgZ3AucGFyYW0g PSBJOTE1X1BBUkFNX01NQVBfR1RUX1ZFUlNJT047Cj4+Pj4gKyAgICAgICAgICAgICAgICAgICAg IGdwLnZhbHVlID0gJmd0dF92ZXJzaW9uOwo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICBpb2N0 bChmZCwgRFJNX0lPQ1RMX0k5MTVfR0VUUEFSQU0sICZncCk7Cj4+Pj4gKwo+Pj4+ICsgICAgICAg ICAgICAgICAgICAgICBtZW1zZXQoJmdwLCAwLCBzaXplb2YoZ3ApKTsKPj4+PiArICAgICAgICAg ICAgICAgICAgICAgZ3AucGFyYW0gPSBJOTE1X1BBUkFNX01NQVBfVkVSU0lPTjsKPj4+PiArICAg ICAgICAgICAgICAgICAgICAgZ3AudmFsdWUgPSAmbW1hcF92ZXJzaW9uOwo+Pj4+ICsgICAgICAg ICAgICAgICAgICAgICBpb2N0bChmZCwgRFJNX0lPQ1RMX0k5MTVfR0VUUEFSQU0sICZncCk7Cj4+ Pj4gKwo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAvKiBEbyB3ZSBoYXZlIHRoZSBtbWFwX2lv Y3RsIHdpdGggRE9NQUlOX1dDPyAqLwo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICBpZiAobW1h cF92ZXJzaW9uID49IDEgJiYgZ3R0X3ZlcnNpb24gPj0gMikgewo+Pj4+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fbW1hcCBhcmc7Cj4+Pj4gKwo+Pj4+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERvZXMgdGhpcyBkZXZpY2Ugc3VwcG9y dCB3Yy1tbWFwcyA/ICovCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVtc2V0 KCZhcmcsIDAsIHNpemVvZihhcmcpKTsKPj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhcmcuaGFuZGxlID0gZ2VtX2NyZWF0ZShmZCwgNDA5Nik7Cj4+Pj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYXJnLm9mZnNldCA9IDA7Cj4+Pj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXJnLnNpemUgPSA0MDk2Owo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFyZy5mbGFncyA9IEk5MTVfTU1BUF9XQzsKPj4+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBoYXNfd2MgPSBpZ3RfaW9jdGwoZmQsIERSTV9JT0NUTF9JOTE1X0dFTV9NTUFQLCAm YXJnKSA9PSAwOwo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlbV9jbG9zZShm ZCwgYXJnLmhhbmRsZSk7Cj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgIH0KPj4+PiAgICAgICAg ICAgICAgICB9Cj4+Pj4gKwo+Pj4+ICAgICAgICAgICAgICAgIGVycm5vID0gMDsKPj4+PiAgICAg ICAgfQo+Pj4+ICAgIAo+Pj4+IEBAIC03OTUsNyArODEwLDEwIEBAIHN0YXRpYyB2b2lkCj4+Pj4g ICAgICovCj4+Pj4gICAgdm9pZCAqX19nZW1fbW1hcF9fd2MoaW50IGZkLCB1aW50MzJfdCBoYW5k bGUsIHVpbnQ2NF90IG9mZnNldCwgdWludDY0X3Qgc2l6ZSwgdW5zaWduZWQgcHJvdCkKPj4+PiAg ICB7Cj4+Pj4gLSAgICAgcmV0dXJuIF9fZ2VtX21tYXAoZmQsIGhhbmRsZSwgb2Zmc2V0LCBzaXpl LCBwcm90LCBJOTE1X01NQVBfV0MpOwo+Pj4+ICsgICAgIGlmIChoYXNfbW1hcF9vZmZzZXQoZmQp KQo+Pj4+ICsgICAgICAgICAgICAgcmV0dXJuIF9fZ2VtX21tYXBfb2Zmc2V0KGZkLCBoYW5kbGUs IG9mZnNldCwgc2l6ZSwgcHJvdCwgTE9DQUxfSTkxNV9NTUFQX09GRlNFVF9XQyk7Cj4+Pj4gKyAg ICAgZWxzZQo+Pj4+ICsgICAgICAgICAgICAgcmV0dXJuIF9fZ2VtX21tYXAoZmQsIGhhbmRsZSwg b2Zmc2V0LCBzaXplLCBwcm90LCBJOTE1X01NQVBfV0MpOwo+Pgo+PiBTbyB0aGlzIGlzIGJhc2lj YWxseSwKPj4KPj4gaWYgKF9fZ2VtX21tYXBfb2Zmc2V0KCkpCj4+ICAgICAgICAgIHJldHVybiBf X2dlbV9tbWFwKCk7Cj4+Cj4+IGJlY2F1c2Ugc3RhdGljcyBhcmUgYmFkIQo+Pgo+PiBGb3IgdGhl IHB1cnBvc2VzIG9mIEFQSSB0ZXN0aW5nLCB3ZSB3YW50IHRvIGJlIGFibGUgdG8gc3RpbGwgY2Fs bAo+PiBfX2dlbV9tbWFwX193YyB3aXRob3V0IGFueSBtYWdpYywgYW5kIHNpbWlsYXJseSBfX2dl bV9tbWFwX19vZmZzZXQKPj4gZGlyZWN0bHkuCj4+Cj4+IEkgd291bGQgc3VnZ2VzdCB0aGF0IHdl IG9ubHkgcHV0IHRoZSBtYWdpYyBmYWxsYmFjayBoYW5kbGluZyBpbnRvCj4+IGdlbV9tbWFwX193 YygpIGFuZCBrZWVwIF9fZ2VtX21tYXBfX3djIGFyb3VuZCBmb3IgdGhlIGV4cGxpY2l0IHRlc3Rz IG9mCj4+IHRoYXQgaW9jdGwuIFNhbWUgZm9yIF9fZ2VtX21tYXBfX2NwdS4KPj4KPj4gVGhlIG9u bHkgcHJvYmxlbSB3aWxsIGJlIHNvbWUgY2FsbGVycyBvZiBfX2dlbV9tbWFwX193YyB3b3VsZCBs aWtlIHRoZQo+PiBuaWNlIGF1dG9tYWdpYyBjb252ZXJzaW9uLiBCdXQgaG9wZWZ1bGx5IHRoZXkg YXJlIGZldyBhbmQgZmFyIGluIGJldHdlZW4KPj4gYW5kIGNhbiBiZSBjb252ZXJ0ZWQgdG8gdGhl IGlndF9hc3NlcnQgd2llbGRpbmcgdmFyaWFudHMgaW5zdGVhZCAtLSBvcgo+PiB3ZSBmaW5kIHNv bWUgb3RoZXIgY29tcHJvbWlzZS4KPiAKPiBPbmUgY29tcHJvbWlzZSB3b3VsZCBiZSB0byBzYXkg dGhhdCBhbGwgaW9jdGwgdGVzdGluZyBpcyBkb25lIGlzCj4gZ2VtX21tYXBfd2MgZXRjLCBhbmQg dGhhdCB0aGV5IGNhbiBoYXZlIHRoZWlyIG93biBjdXN0b20gaW9jdGwgd3JhcHBlci4KPiBBbmQg aW4gdGhlIGxpYnJhcnkgZm9yIGV2ZXJ5b25lIGVsc2UsIHdlIHB1dCB0aGUgbWFnaWMgd3JhcHBl ciBhcyB0aG9zZQo+IGNhbGxlcnMgb25seSBjYXJlIGFib3V0IG9idGFpbmluZyBXQyBhY2Nlc3Mg dG8gdGhlIGJvIG5vdCBob3cuCgpZZXAsIEkgdGhpbmsgd2UgY2FuIHN0aWxsIGtlZXAgdGhlIHdy YXBwZXIgaW4gdGhlIGxpYiAoYSBfX2dlbV9tbWFwX18gCmxpa2UgeW91IHN1Z2dlc3RlZCksIGp1 c3QgaW4gY2FzZSBzb21lb25lIGVsc2UgY29tZXMgYXNraW5nIGZvciBhIApsaWJyYXJ5IGNhbGwu IEJ1dCBJIHRoaW5rIGl0IGlzIGEgZ29vZCBpZGVhIHRvIGtlZXAgdGhlIGFwaSB0ZXN0cyBpbiAK Z2VtX21tYXBfIHRlc3RzIGFuZCBhbGwgb3RoZXJzIGp1c3QgZ2V0IHRoZSBtYXBwaW5nIG5vIG1h dHRlciBob3cuCgpBbnRvbmlvCgo+IC1DaHJpcwo+IApfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2lndC1kZXY=