From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4C68989916 for ; Fri, 22 Feb 2019 22:29:59 +0000 (UTC) MIME-Version: 1.0 From: Chris Wilson In-Reply-To: <155087359880.3867.14787802941033481583@skylake-alporthouse-com> 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> Message-ID: <155087458054.3867.11190790399911499560@skylake-alporthouse-com> Date: Fri, 22 Feb 2019 22:29:40 +0000 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-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Antonio Argenziano , igt-dev@lists.freedesktop.org Cc: Janulgue Abdiel , Matthew Auld List-ID: UXVvdGluZyBDaHJpcyBXaWxzb24gKDIwMTktMDItMjIgMjI6MTM6MTgpCj4gUXVvdGluZyBBbnRv bmlvIEFyZ2Vuemlhbm8gKDIwMTktMDItMjIgMjI6MDE6NDMpCj4gPiAKPiA+IAo+ID4gT24gMjIv MDIvMTkgMTM6NTksIEFudG9uaW8gQXJnZW56aWFubyB3cm90ZToKPiA+ID4gRnJvbTogIkthbGFt YXJ6LCBMdWthc3oiIDxsdWthc3oua2FsYW1hcnpAaW50ZWwuY29tPgo+ID4gPiAKPiA+ID4gV2l0 aCByZWNlbnRseSBwcm9wb3NlZCBjaGFuZ2VzLCBJR1QgbmVlZCB0byBzdGFydCBzdXBwb3J0aW5n IG5ldwo+ID4gPiB3YXkgb2YgbW1hcGluZyBvYmplY3QsIHdoaWNoIHdpbGwgYmUgdXNlZCBmcm9t IG5vdyBieSBkZWZhdWx0Lgo+ID4gPiBUaGlzIHBhdGNoIG1vZGlmeSBnZW1fbW1hcF93YyBhbmQg Z2VtX21tYXAgZnVuY3Rpb25zIHRvIGJlCj4gPiA+IGluIHN5bmMgd2l0aCB0aG9zZSBjaGFuZ2Vz Lgo+ID4gPiAKPiA+ID4gdjI6Cj4gPiA+ICAgICAgIC0gRml4IElPQ1RMIG51bWJlci4gKERhbmll bGUpCj4gPiA+ICAgICAgIC0gTW92ZSB3cmFwcGVycyB0byBuZXcgZmlsZS4gKENocmlzKQo+ID4g Cj4gPiBOb3Qgc3VyZSBob3cgbXVjaCBvZiB0aGUgb3RoZXIgc3R1ZmYgd2UgbWlnaHQgd2FudCB0 byBicmluZyBvdmVyIHNvIEkndmUgCj4gPiBtb3ZlZCBvbmx5IHRoZSBuZXcgd3JhcHBlcnMgZm9y IG5vdy4KPiAKPiBJdCdzIGEgc2Vuc2libGUgY2h1bmsgdG8gcmV2aWV3LCBzbyBubyB3b3JyaWVz LCBtb3JlIGNhbiBjb21lIGxhdGVyLgo+IAo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBMdWthc3ogS2Fs YW1hcnogPGx1a2Fzei5rYWxhbWFyekBpbnRlbC5jb20+Cj4gPiA+IENjOiBKYW51bGd1ZSBBYmRp ZWwgPGFiZGllbC5qYW51bGd1ZUBpbnRlbC5jb20+Cj4gPiA+IENjOiBNYXR0aGV3IEF1bGQgPG1h dHRoZXcuYXVsZEBpbnRlbC5jb20+Cj4gPiA+IENjOiBNaWNoYWwgV2luaWFyc2tpIDxtaWNoYWwu d2luaWFyc2tpQGludGVsLmNvbT4KPiA+ID4gQ2M6IEFudG9uaW8gQXJnZW56aWFubyA8YW50b25p by5hcmdlbnppYW5vQGludGVsLmNvbT4KPiA+ID4gQ2M6IERhbmllbGUgU3B1cmlvIENlcmFvbG8g PGRhbmllbGUuY2VyYW9sb3NwdXJpb0BpbnRlbC5jb20+Cj4gPiA+IENjOiBKb29uYXMgTGFodGlu ZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+Cj4gPiA+IENjOiBDaHJpcyBXaWxz b24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiA+ID4gU2lnbmVkLW9mZi1ieTogQW50b25p byBBcmdlbnppYW5vIDxhbnRvbmlvLmFyZ2Vuemlhbm9AaW50ZWwuY29tPgo+ID4gPiAtLS0KPiA+ ID4gICBsaWIvaTkxNS9nZW1fbW1hbi5jICB8IDg3ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrCj4gPiA+ICAgbGliL2k5MTUvZ2VtX21tYW4uaCAgfCA2MSArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gPiA+ICAgbGliL2lvY3RsX3dyYXBwZXJzLmMg fCA2NyArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tCj4gPiA+ICAgbGliL2lvY3Rs X3dyYXBwZXJzLmggfCAgMSArCj4gPiA+ICAgbGliL21lc29uLmJ1aWxkICAgICAgfCAgMSArCj4g PiA+ICAgNSBmaWxlcyBjaGFuZ2VkLCAxOTYgaW5zZXJ0aW9ucygrKSwgMjEgZGVsZXRpb25zKC0p Cj4gPiA+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi9pOTE1L2dlbV9tbWFuLmMKPiA+ID4gICBj cmVhdGUgbW9kZSAxMDA2NDQgbGliL2k5MTUvZ2VtX21tYW4uaAo+ID4gPiAKPiA+ID4gZGlmZiAt LWdpdCBhL2xpYi9pOTE1L2dlbV9tbWFuLmMgYi9saWIvaTkxNS9nZW1fbW1hbi5jCj4gPiA+IG5l dyBmaWxlIG1vZGUgMTAwNjQ0Cj4gPiA+IGluZGV4IDAwMDAwMDAwLi5mYjk0OWY0NAo+ID4gPiAt LS0gL2Rldi9udWxsCj4gPiA+ICsrKyBiL2xpYi9pOTE1L2dlbV9tbWFuLmMKPiA+ID4gQEAgLTAs MCArMSw4NyBAQAo+ID4gPiArLyoKPiA+ID4gKyAqIENvcHlyaWdodCDCqSAyMDA3LCAyMDExLCAy MDEzLCAyMDE0LCAyMDE5IEludGVsIENvcnBvcmF0aW9uCj4gPiA+ICsgKgo+ID4gPiArICogUGVy bWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24g b2J0YWluaW5nIGEKPiA+ID4gKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRl ZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCj4gPiA+ICsgKiB0byBkZWFs IGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBs aW1pdGF0aW9uCj4gPiA+ICsgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJn ZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKPiA+ID4gKyAqIGFuZC9vciBzZWxs IGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRo ZQo+ID4gPiArICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRo ZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKPiA+ID4gKyAqCj4gPiA+ICsgKiBUaGUgYWJvdmUgY29w eXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBu ZXh0Cj4gPiA+ICsgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMg b3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCj4gPiA+ICsgKiBTb2Z0d2FyZS4KPiA+ID4g KyAqCj4gPiA+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBX QVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+ID4gPiArICogSU1QTElFRCwgSU5DTFVE SU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFks Cj4gPiA+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklO R0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKPiA+ID4gKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlS SUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCj4g PiA+ICsgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JU IE9SIE9USEVSV0lTRSwgQVJJU0lORwo+ID4gPiArICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5F Q1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUwo+ID4g PiArICogSU4gVEhFIFNPRlRXQVJFLgo+ID4gPiArICoKPiA+ID4gKyAqLwo+ID4gPiArCj4gPiA+ ICsjaW5jbHVkZSA8c3RkYm9vbC5oPgo+ID4gPiArI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgo+ID4g PiArCj4gPiA+ICsjaW5jbHVkZSAiaWd0X2NvcmUuaCIKPiA+ID4gKyNpbmNsdWRlICJpb2N0bF93 cmFwcGVycy5oIgo+ID4gPiArCj4gPiA+ICsjaW5jbHVkZSAiZ2VtX21tYW4uaCIKPiA+ID4gKwo+ ID4gPiArCj4gPiA+ICtib29sIGhhc19tbWFwX29mZnNldChpbnQgZmQpCj4gPiA+ICt7Cj4gPiA+ ICsgICAgIHN0YXRpYyBpbnQgaGFzX21tYXBfb2Zmc2V0ID0gLTE7Cj4gPiA+ICsKPiA+ID4gKyAg ICAgaWYgKGhhc19tbWFwX29mZnNldCA9PSAtMSkgewo+ID4gPiArICAgICAgICAgICAgIHN0cnVj dCBkcm1faTkxNV9nZXRwYXJhbSBncDsKPiA+ID4gKwo+ID4gPiArICAgICAgICAgICAgIGhhc19t bWFwX29mZnNldCA9IDA7Cj4gPiA+ICsKPiA+ID4gKyAgICAgICAgICAgICBtZW1zZXQoJmdwLCAw LCBzaXplb2YoZ3ApKTsKPiA+ID4gKyAgICAgICAgICAgICBncC5wYXJhbSA9IDB4NTU7IC8qIEk5 MTVfUEFSQU1fTU1BUF9PRkZTRVRfVkVSU0lPTiAqLwo+ID4gPiArICAgICAgICAgICAgIGdwLnZh bHVlID0gJmhhc19tbWFwX29mZnNldDsKPiA+ID4gKyAgICAgICAgICAgICBpb2N0bChmZCwgRFJN X0lPQ1RMX0k5MTVfR0VUUEFSQU0sICZncCk7Cj4gPiA+ICsgICAgIH0KPiA+ID4gKwo+ID4gPiAr ICAgICByZXR1cm4gaGFzX21tYXBfb2Zmc2V0ID4gMDsKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiAr LyoqCj4gPiA+ICsgKiBfX2dlbV9tbWFwX29mZnNldDoKPiA+ID4gKyAqIEBmZDogb3BlbiBpOTE1 IGRybSBmaWxlIGRlc2NyaXB0b3IKPiA+ID4gKyAqIEBoYW5kbGU6IGdlbSBidWZmZXIgb2JqZWN0 IGhhbmRsZQo+ID4gPiArICogQG9mZnNldDogb2Zmc2V0IGluIHRoZSBnZW0gYnVmZmVyIG9mIHRo ZSBtbWFwIGFyZW5hCj4gPiA+ICsgKiBAc2l6ZTogc2l6ZSBvZiB0aGUgbW1hcCBhcmVuYQo+ID4g PiArICogQHByb3Q6IG1lbW9yeSBwcm90ZWN0aW9uIGJpdHMgYXMgdXNlZCBieSBtbWFwKCkKPiA+ ID4gKyAqIEBmbGFnczogZmxhZ3MgdXNlZCB0byBkZXRlcm1pbmUgY2FjaGluZwo+ID4gPiArICoK PiA+ID4gKyAqIFNpbWlsYXIgdG8gX19nZW1fbW1hcCBidXQgdXNlIE1NQVBfT0ZGU0VUIElPQ1RM Lgo+ID4gPiArICoKPiA+ID4gKyAqIFJldHVybnM6IEEgcG9pbnRlciB0byB0aGUgY3JlYXRlZCBt ZW1vcnkgbWFwcGluZywgTlVMTCBvbiBmYWlsdXJlLgo+ID4gPiArICovCj4gPiA+ICt2b2lkCj4g PiA+ICsqX19nZW1fbW1hcF9vZmZzZXQoaW50IGZkLCB1aW50MzJfdCBoYW5kbGUsIHVpbnQ2NF90 IG9mZnNldCwgdWludDY0X3Qgc2l6ZSwgdW5zaWduZWQgaW50IHByb3QsIHVpbnQ2NF90IGZsYWdz KQo+ID4gPiArewo+ID4gPiArICAgICBzdHJ1Y3QgbG9jYWxfZHJtX2k5MTVfZ2VtX21tYXBfb2Zm c2V0IGFyZzsKPiA+ID4gKyAgICAgdm9pZCAqcHRyOwo+ID4gPiArCj4gPiA+ICsgICAgIG1lbXNl dCgmYXJnLCAwLCBzaXplb2YoYXJnKSk7Cj4gPiA+ICsgICAgIGFyZy5oYW5kbGUgPSBoYW5kbGU7 Cj4gPiA+ICsgICAgIGFyZy5vZmZzZXQgPSBvZmZzZXQ7Cj4gPiA+ICsgICAgIGFyZy5mbGFncyA9 IGZsYWdzOwo+ID4gPiArCj4gPiA+ICsgICAgIGlmIChpZ3RfaW9jdGwoZmQsIExPQ0FMX0RSTV9J T0NUTF9JOTE1X0dFTV9NTUFQX09GRlNFVCwgJmFyZykpCj4gPiA+ICsgICAgICAgICAgICAgcmV0 dXJuIE5VTEw7Cj4gPiA+ICsKPiA+ID4gKyAgICAgcHRyID0gbW1hcDY0KDAsIHNpemUsIHByb3Qs IE1BUF9TSEFSRUQsIGZkLCBhcmcub2Zmc2V0KTsKPiA+ID4gKwo+ID4gPiArICAgICBpZiAocHRy ID09IE1BUF9GQUlMRUQpCj4gPiA+ICsgICAgICAgICAgICAgcHRyID0gTlVMTDsKPiA+ID4gKyAg ICAgZWxzZQo+ID4gPiArICAgICAgICAgICAgIGVycm5vID0gMDsKPiA+ID4gKwo+ID4gPiArICAg ICByZXR1cm4gcHRyOwo+ID4gPiArfQo+ID4gPiBkaWZmIC0tZ2l0IGEvbGliL2k5MTUvZ2VtX21t YW4uaCBiL2xpYi9pOTE1L2dlbV9tbWFuLmgKPiA+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiA+ ID4gaW5kZXggMDAwMDAwMDAuLjJmMjRjYTk5Cj4gPiA+IC0tLSAvZGV2L251bGwKPiA+ID4gKysr IGIvbGliL2k5MTUvZ2VtX21tYW4uaAo+ID4gPiBAQCAtMCwwICsxLDYxIEBACj4gPiA+ICsvKgo+ ID4gPiArICogQ29weXJpZ2h0IMKpIDIwMDcsIDIwMTEsIDIwMTMsIDIwMTQsIDIwMTkgSW50ZWwg Q29ycG9yYXRpb24KPiA+ID4gKyAqCj4gPiA+ICsgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFu dGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQo+ID4gPiArICog Y29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMg KHRoZSAiU29mdHdhcmUiKSwKPiA+ID4gKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhv dXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KPiA+ID4gKyAqIHRo ZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRl LCBzdWJsaWNlbnNlLAo+ID4gPiArICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2Fy ZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCj4gPiA+ICsgKiBTb2Z0d2FyZSBp cyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25z Ogo+ID4gPiArICoKPiA+ID4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlz IHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKPiA+ID4gKyAqIHBhcmFncmFw aCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9u cyBvZiB0aGUKPiA+ID4gKyAqIFNvZnR3YXJlLgo+ID4gPiArICoKPiA+ID4gKyAqIFRIRSBTT0ZU V0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBF WFBSRVNTIE9SCj4gPiA+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRP IFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKPiA+ID4gKyAqIEZJVE5FU1MgRk9S IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBT SEFMTAo+ID4gPiArICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxF IEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKPiA+ID4gKyAqIExJQUJJTElUWSwgV0hF VEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5H Cj4gPiA+ICsgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FS RSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCj4gPiA+ICsgKiBJTiBUSEUgU09GVFdBUkUu Cj4gPiA+ICsgKgo+ID4gPiArICovCj4gPiA+ICsKPiA+ID4gKyNpZm5kZWYgR0VNX01NQU5fSAo+ ID4gPiArI2RlZmluZSBHRU1fTU1BTl9ICj4gPiA+ICsKPiA+ID4gK3N0cnVjdCBsb2NhbF9kcm1f aTkxNV9nZW1fbW1hcF9vZmZzZXQgewo+ID4gPiArICAgICAvKiogSGFuZGxlIGZvciB0aGUgb2Jq ZWN0IGJlaW5nIG1hcHBlZC4gKi8KPiA+ID4gKyAgICAgX191MzIgaGFuZGxlOwo+ID4gPiArICAg ICBfX3UzMiBwYWQ7Cj4gPiA+ICsgICAgIC8qKgo+ID4gPiArICAgICAgKiBGYWtlIG9mZnNldCB0 byB1c2UgZm9yIHN1YnNlcXVlbnQgbW1hcCBjYWxsCj4gPiA+ICsgICAgICAqCj4gPiA+ICsgICAg ICAqIFRoaXMgaXMgYSBmaXhlZC1zaXplIHR5cGUgZm9yIDMyLzY0IGNvbXBhdGliaWxpdHkuCj4g PiA+ICsgICAgICAqLwo+ID4gPiArICAgICBfX3U2NCBvZmZzZXQ7Cj4gPiA+ICsKPiA+ID4gKyAg ICAgLyoqCj4gPiA+ICsgICAgICAqIEZsYWdzIGZvciBleHRlbmRlZCBiZWhhdmlvdXIuCj4gPiA+ ICsgICAgICAqCj4gPiA+ICsgICAgICAqIEl0IGlzIG1hbmRhdG9yeSB0aGF0IGVpdGhlciBvbmUg b2YgdGhlIF9XQy9fV0IgZmxhZ3MKPiA+ID4gKyAgICAgICogc2hvdWxkIGJlIHBhc3NlZCBoZXJl Lgo+ID4gPiArICAgICAgKi8KPiA+ID4gKyAgICAgX191NjQgZmxhZ3M7Cj4gPiA+ICt9Owo+ID4g PiArCj4gPiA+ICsjZGVmaW5lIExPQ0FMX0RSTV9JOTE1X0dFTV9NTUFQX09GRlNFVCAweDI0Cj4g PiA+ICsjZGVmaW5lIExPQ0FMX0k5MTVfTU1BUF9PRkZTRVRfV0MgKDEgPDwgMCkKPiA+ID4gKyNk ZWZpbmUgTE9DQUxfSTkxNV9NTUFQX09GRlNFVF9XQiAoMSA8PCAxKQo+ID4gPiArI2RlZmluZSBM T0NBTF9JOTE1X01NQVBfT0ZGU0VUX1VDICgxIDw8IDIpCj4gPiA+ICsKPiA+ID4gKyNkZWZpbmUg TE9DQUxfRFJNX0lPQ1RMX0k5MTVfR0VNX01NQVBfT0ZGU0VUIFwKPiA+ID4gKyAgICAgICAgICAg ICBEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgTE9DQUxfRFJNX0k5MTVfR0VNX01NQVBfT0ZG U0VULCBzdHJ1Y3QgbG9jYWxfZHJtX2k5MTVfZ2VtX21tYXBfb2Zmc2V0KQo+ID4gPiArCj4gPiA+ ICtib29sIGhhc19tbWFwX29mZnNldChpbnQgZmQpOwo+ID4gPiArCj4gPiA+ICt2b2lkICpfX2dl bV9tbWFwX29mZnNldChpbnQgZmQsIHVpbnQzMl90IGhhbmRsZSwgdWludDY0X3Qgb2Zmc2V0LCB1 aW50NjRfdCBzaXplLCB1bnNpZ25lZCBpbnQgcHJvdCwgdWludDY0X3QgZmxhZ3MpOwo+ID4gPiAr Cj4gPiA+ICsjZW5kaWYgLyogR0VNX01NQU5fSCAqLwo+ID4gPiArCj4gPiA+IGRpZmYgLS1naXQg YS9saWIvaW9jdGxfd3JhcHBlcnMuYyBiL2xpYi9pb2N0bF93cmFwcGVycy5jCj4gPiA+IGluZGV4 IDQwNGMyZmJmLi5jMTFiMDE0NiAxMDA2NDQKPiA+ID4gLS0tIGEvbGliL2lvY3RsX3dyYXBwZXJz LmMKPiA+ID4gKysrIGIvbGliL2lvY3RsX3dyYXBwZXJzLmMKPiA+ID4gQEAgLTcwNywzNSArNzA3 LDUwIEBAIGJvb2wgZ2VtX21tYXBfX2hhc193YyhpbnQgZmQpCj4gPiA+ICAgICAgIHN0YXRpYyBp bnQgaGFzX3djID0gLTE7Cj4gPiA+ICAgCj4gPiA+ICAgICAgIGlmIChoYXNfd2MgPT0gLTEpIHsK PiA+ID4gLSAgICAgICAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2V0cGFyYW0gZ3A7Cj4gPiA+IC0g ICAgICAgICAgICAgaW50IG1tYXBfdmVyc2lvbiA9IC0xOwo+ID4gPiAtICAgICAgICAgICAgIGlu dCBndHRfdmVyc2lvbiA9IC0xOwo+ID4gPiAgIAo+ID4gPiAgICAgICAgICAgICAgIGhhc193YyA9 IDA7Cj4gPiA+ICAgCj4gPiA+IC0gICAgICAgICAgICAgbWVtc2V0KCZncCwgMCwgc2l6ZW9mKGdw KSk7Cj4gPiA+IC0gICAgICAgICAgICAgZ3AucGFyYW0gPSBJOTE1X1BBUkFNX01NQVBfR1RUX1ZF UlNJT047Cj4gPiA+IC0gICAgICAgICAgICAgZ3AudmFsdWUgPSAmZ3R0X3ZlcnNpb247Cj4gPiA+ IC0gICAgICAgICAgICAgaW9jdGwoZmQsIERSTV9JT0NUTF9JOTE1X0dFVFBBUkFNLCAmZ3ApOwo+ ID4gPiAtCj4gPiA+IC0gICAgICAgICAgICAgbWVtc2V0KCZncCwgMCwgc2l6ZW9mKGdwKSk7Cj4g PiA+IC0gICAgICAgICAgICAgZ3AucGFyYW0gPSBJOTE1X1BBUkFNX01NQVBfVkVSU0lPTjsKPiA+ ID4gLSAgICAgICAgICAgICBncC52YWx1ZSA9ICZtbWFwX3ZlcnNpb247Cj4gPiA+IC0gICAgICAg ICAgICAgaW9jdGwoZmQsIERSTV9JT0NUTF9JOTE1X0dFVFBBUkFNLCAmZ3ApOwo+ID4gPiAtCj4g PiA+IC0gICAgICAgICAgICAgLyogRG8gd2UgaGF2ZSB0aGUgbmV3IG1tYXBfaW9jdGwgd2l0aCBE T01BSU5fV0M/ICovCj4gPiA+IC0gICAgICAgICAgICAgaWYgKG1tYXBfdmVyc2lvbiA+PSAxICYm IGd0dF92ZXJzaW9uID49IDIpIHsKPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBk cm1faTkxNV9nZW1fbW1hcCBhcmc7Cj4gPiA+ICsgICAgICAgICAgICAgLyogRG8gd2UgaGF2ZSB0 aGUgbmV3IG1tYXBfb2Zmc2V0IGlvY3RsPyAqLwo+ID4gPiArICAgICAgICAgICAgIGlmIChoYXNf bW1hcF9vZmZzZXQoZmQpKSB7Cj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgbG9j YWxfZHJtX2k5MTVfZ2VtX21tYXBfb2Zmc2V0IGFyZzsKPiA+ID4gICAKPiA+ID4gICAgICAgICAg ICAgICAgICAgICAgIC8qIERvZXMgdGhpcyBkZXZpY2Ugc3VwcG9ydCB3Yy1tbWFwcyA/ICovCj4g PiA+ICAgICAgICAgICAgICAgICAgICAgICBtZW1zZXQoJmFyZywgMCwgc2l6ZW9mKGFyZykpOwo+ ID4gPiAgICAgICAgICAgICAgICAgICAgICAgYXJnLmhhbmRsZSA9IGdlbV9jcmVhdGUoZmQsIDQw OTYpOwo+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgYXJnLm9mZnNldCA9IDA7Cj4gPiA+IC0g ICAgICAgICAgICAgICAgICAgICBhcmcuc2l6ZSA9IDQwOTY7Cj4gPiA+IC0gICAgICAgICAgICAg ICAgICAgICBhcmcuZmxhZ3MgPSBJOTE1X01NQVBfV0M7Cj4gPiA+IC0gICAgICAgICAgICAgICAg ICAgICBoYXNfd2MgPSBpZ3RfaW9jdGwoZmQsIERSTV9JT0NUTF9JOTE1X0dFTV9NTUFQLCAmYXJn KSA9PSAwOwo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgYXJnLmZsYWdzID0gTE9DQUxfSTkx NV9NTUFQX09GRlNFVF9XQzsKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgIGhhc193YyA9IGln dF9pb2N0bChmZCwgTE9DQUxfRFJNX0lPQ1RMX0k5MTVfR0VNX01NQVBfT0ZGU0VULCAmYXJnKSA9 PSAwOwo+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgZ2VtX2Nsb3NlKGZkLCBhcmcuaGFuZGxl KTsKPiA+ID4gKyAgICAgICAgICAgICB9IGVsc2Ugewo+ID4gPiArICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IGRybV9pOTE1X2dldHBhcmFtIGdwOwo+ID4gPiArICAgICAgICAgICAgICAgICAg ICAgaW50IG1tYXBfdmVyc2lvbiA9IC0xOwo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgaW50 IGd0dF92ZXJzaW9uID0gLTE7Cj4gPiA+ICsKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgIG1l bXNldCgmZ3AsIDAsIHNpemVvZihncCkpOwo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgZ3Au cGFyYW0gPSBJOTE1X1BBUkFNX01NQVBfR1RUX1ZFUlNJT047Cj4gPiA+ICsgICAgICAgICAgICAg ICAgICAgICBncC52YWx1ZSA9ICZndHRfdmVyc2lvbjsKPiA+ID4gKyAgICAgICAgICAgICAgICAg ICAgIGlvY3RsKGZkLCBEUk1fSU9DVExfSTkxNV9HRVRQQVJBTSwgJmdwKTsKPiA+ID4gKwo+ID4g PiArICAgICAgICAgICAgICAgICAgICAgbWVtc2V0KCZncCwgMCwgc2l6ZW9mKGdwKSk7Cj4gPiA+ ICsgICAgICAgICAgICAgICAgICAgICBncC5wYXJhbSA9IEk5MTVfUEFSQU1fTU1BUF9WRVJTSU9O Owo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgZ3AudmFsdWUgPSAmbW1hcF92ZXJzaW9uOwo+ ID4gPiArICAgICAgICAgICAgICAgICAgICAgaW9jdGwoZmQsIERSTV9JT0NUTF9JOTE1X0dFVFBB UkFNLCAmZ3ApOwo+ID4gPiArCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAvKiBEbyB3ZSBo YXZlIHRoZSBtbWFwX2lvY3RsIHdpdGggRE9NQUlOX1dDPyAqLwo+ID4gPiArICAgICAgICAgICAg ICAgICAgICAgaWYgKG1tYXBfdmVyc2lvbiA+PSAxICYmIGd0dF92ZXJzaW9uID49IDIpIHsKPiA+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9pOTE1X2dlbV9tbWFw IGFyZzsKPiA+ID4gKwo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBEb2Vz IHRoaXMgZGV2aWNlIHN1cHBvcnQgd2MtbW1hcHMgPyAqLwo+ID4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBtZW1zZXQoJmFyZywgMCwgc2l6ZW9mKGFyZykpOwo+ID4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhcmcuaGFuZGxlID0gZ2VtX2NyZWF0ZShmZCwgNDA5Nik7 Cj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZy5vZmZzZXQgPSAwOwo+ID4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmcuc2l6ZSA9IDQwOTY7Cj4gPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZy5mbGFncyA9IEk5MTVfTU1BUF9XQzsKPiA+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzX3djID0gaWd0X2lvY3RsKGZkLCBE Uk1fSU9DVExfSTkxNV9HRU1fTU1BUCwgJmFyZykgPT0gMDsKPiA+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ2VtX2Nsb3NlKGZkLCBhcmcuaGFuZGxlKTsKPiA+ID4gKyAgICAgICAg ICAgICAgICAgICAgIH0KPiA+ID4gICAgICAgICAgICAgICB9Cj4gPiA+ICsKPiA+ID4gICAgICAg ICAgICAgICBlcnJubyA9IDA7Cj4gPiA+ICAgICAgIH0KPiA+ID4gICAKPiA+ID4gQEAgLTc5NSw3 ICs4MTAsMTAgQEAgc3RhdGljIHZvaWQKPiA+ID4gICAgKi8KPiA+ID4gICB2b2lkICpfX2dlbV9t bWFwX193YyhpbnQgZmQsIHVpbnQzMl90IGhhbmRsZSwgdWludDY0X3Qgb2Zmc2V0LCB1aW50NjRf dCBzaXplLCB1bnNpZ25lZCBwcm90KQo+ID4gPiAgIHsKPiA+ID4gLSAgICAgcmV0dXJuIF9fZ2Vt X21tYXAoZmQsIGhhbmRsZSwgb2Zmc2V0LCBzaXplLCBwcm90LCBJOTE1X01NQVBfV0MpOwo+ID4g PiArICAgICBpZiAoaGFzX21tYXBfb2Zmc2V0KGZkKSkKPiA+ID4gKyAgICAgICAgICAgICByZXR1 cm4gX19nZW1fbW1hcF9vZmZzZXQoZmQsIGhhbmRsZSwgb2Zmc2V0LCBzaXplLCBwcm90LCBMT0NB TF9JOTE1X01NQVBfT0ZGU0VUX1dDKTsKPiA+ID4gKyAgICAgZWxzZQo+ID4gPiArICAgICAgICAg ICAgIHJldHVybiBfX2dlbV9tbWFwKGZkLCBoYW5kbGUsIG9mZnNldCwgc2l6ZSwgcHJvdCwgSTkx NV9NTUFQX1dDKTsKPiAKPiBTbyB0aGlzIGlzIGJhc2ljYWxseSwKPiAKPiBpZiAoX19nZW1fbW1h cF9vZmZzZXQoKSkKPiAgICAgICAgIHJldHVybiBfX2dlbV9tbWFwKCk7Cj4gCj4gYmVjYXVzZSBz dGF0aWNzIGFyZSBiYWQhCj4gCj4gRm9yIHRoZSBwdXJwb3NlcyBvZiBBUEkgdGVzdGluZywgd2Ug d2FudCB0byBiZSBhYmxlIHRvIHN0aWxsIGNhbGwKPiBfX2dlbV9tbWFwX193YyB3aXRob3V0IGFu eSBtYWdpYywgYW5kIHNpbWlsYXJseSBfX2dlbV9tbWFwX19vZmZzZXQKPiBkaXJlY3RseS4KPiAK PiBJIHdvdWxkIHN1Z2dlc3QgdGhhdCB3ZSBvbmx5IHB1dCB0aGUgbWFnaWMgZmFsbGJhY2sgaGFu ZGxpbmcgaW50bwo+IGdlbV9tbWFwX193YygpIGFuZCBrZWVwIF9fZ2VtX21tYXBfX3djIGFyb3Vu ZCBmb3IgdGhlIGV4cGxpY2l0IHRlc3RzIG9mCj4gdGhhdCBpb2N0bC4gU2FtZSBmb3IgX19nZW1f bW1hcF9fY3B1Lgo+IAo+IFRoZSBvbmx5IHByb2JsZW0gd2lsbCBiZSBzb21lIGNhbGxlcnMgb2Yg X19nZW1fbW1hcF9fd2Mgd291bGQgbGlrZSB0aGUKPiBuaWNlIGF1dG9tYWdpYyBjb252ZXJzaW9u LiBCdXQgaG9wZWZ1bGx5IHRoZXkgYXJlIGZldyBhbmQgZmFyIGluIGJldHdlZW4KPiBhbmQgY2Fu IGJlIGNvbnZlcnRlZCB0byB0aGUgaWd0X2Fzc2VydCB3aWVsZGluZyB2YXJpYW50cyBpbnN0ZWFk IC0tIG9yCj4gd2UgZmluZCBzb21lIG90aGVyIGNvbXByb21pc2UuCgpPbmUgY29tcHJvbWlzZSB3 b3VsZCBiZSB0byBzYXkgdGhhdCBhbGwgaW9jdGwgdGVzdGluZyBpcyBkb25lIGlzCmdlbV9tbWFw X3djIGV0YywgYW5kIHRoYXQgdGhleSBjYW4gaGF2ZSB0aGVpciBvd24gY3VzdG9tIGlvY3RsIHdy YXBwZXIuCkFuZCBpbiB0aGUgbGlicmFyeSBmb3IgZXZlcnlvbmUgZWxzZSwgd2UgcHV0IHRoZSBt YWdpYyB3cmFwcGVyIGFzIHRob3NlCmNhbGxlcnMgb25seSBjYXJlIGFib3V0IG9idGFpbmluZyBX QyBhY2Nlc3MgdG8gdGhlIGJvIG5vdCBob3cuCi1DaHJpcwpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2lndC1kZXY=