From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 55F38898EE for ; Fri, 22 Feb 2019 22:01:44 +0000 (UTC) References: <20190221192745.31178-3-antonio.argenziano@intel.com> <20190222215931.5881-1-antonio.argenziano@intel.com> From: Antonio Argenziano Message-ID: <12df703a-94f8-10de-5d64-234433a51caf@intel.com> Date: Fri, 22 Feb 2019 14:01:43 -0800 MIME-Version: 1.0 In-Reply-To: <20190222215931.5881-1-antonio.argenziano@intel.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: igt-dev@lists.freedesktop.org Cc: Janulgue Abdiel , Matthew Auld List-ID: CgpPbiAyMi8wMi8xOSAxMzo1OSwgQW50b25pbyBBcmdlbnppYW5vIHdyb3RlOgo+IEZyb206ICJL YWxhbWFyeiwgTHVrYXN6IiA8bHVrYXN6LmthbGFtYXJ6QGludGVsLmNvbT4KPiAKPiBXaXRoIHJl Y2VudGx5IHByb3Bvc2VkIGNoYW5nZXMsIElHVCBuZWVkIHRvIHN0YXJ0IHN1cHBvcnRpbmcgbmV3 Cj4gd2F5IG9mIG1tYXBpbmcgb2JqZWN0LCB3aGljaCB3aWxsIGJlIHVzZWQgZnJvbSBub3cgYnkg ZGVmYXVsdC4KPiBUaGlzIHBhdGNoIG1vZGlmeSBnZW1fbW1hcF93YyBhbmQgZ2VtX21tYXAgZnVu Y3Rpb25zIHRvIGJlCj4gaW4gc3luYyB3aXRoIHRob3NlIGNoYW5nZXMuCj4gCj4gdjI6Cj4gCS0g Rml4IElPQ1RMIG51bWJlci4gKERhbmllbGUpCj4gCS0gTW92ZSB3cmFwcGVycyB0byBuZXcgZmls ZS4gKENocmlzKQoKTm90IHN1cmUgaG93IG11Y2ggb2YgdGhlIG90aGVyIHN0dWZmIHdlIG1pZ2h0 IHdhbnQgdG8gYnJpbmcgb3ZlciBzbyBJJ3ZlIAptb3ZlZCBvbmx5IHRoZSBuZXcgd3JhcHBlcnMg Zm9yIG5vdy4KCkFudG9uaW8KCj4gCj4gU2lnbmVkLW9mZi1ieTogTHVrYXN6IEthbGFtYXJ6IDxs dWthc3oua2FsYW1hcnpAaW50ZWwuY29tPgo+IENjOiBKYW51bGd1ZSBBYmRpZWwgPGFiZGllbC5q YW51bGd1ZUBpbnRlbC5jb20+Cj4gQ2M6IE1hdHRoZXcgQXVsZCA8bWF0dGhldy5hdWxkQGludGVs LmNvbT4KPiBDYzogTWljaGFsIFdpbmlhcnNraSA8bWljaGFsLndpbmlhcnNraUBpbnRlbC5jb20+ Cj4gQ2M6IEFudG9uaW8gQXJnZW56aWFubyA8YW50b25pby5hcmdlbnppYW5vQGludGVsLmNvbT4K PiBDYzogRGFuaWVsZSBTcHVyaW8gQ2VyYW9sbyA8ZGFuaWVsZS5jZXJhb2xvc3B1cmlvQGludGVs LmNvbT4KPiBDYzogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5AbGludXguaW50ZWwu Y29tPgo+IENjOiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiBTaWdu ZWQtb2ZmLWJ5OiBBbnRvbmlvIEFyZ2Vuemlhbm8gPGFudG9uaW8uYXJnZW56aWFub0BpbnRlbC5j b20+Cj4gLS0tCj4gICBsaWIvaTkxNS9nZW1fbW1hbi5jICB8IDg3ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gICBsaWIvaTkxNS9nZW1fbW1hbi5oICB8IDYx ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgIGxpYi9pb2N0bF93cmFwcGVycy5j IHwgNjcgKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQo+ICAgbGliL2lvY3RsX3dy YXBwZXJzLmggfCAgMSArCj4gICBsaWIvbWVzb24uYnVpbGQgICAgICB8ICAxICsKPiAgIDUgZmls ZXMgY2hhbmdlZCwgMTk2IGluc2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQo+ICAgY3JlYXRl IG1vZGUgMTAwNjQ0IGxpYi9pOTE1L2dlbV9tbWFuLmMKPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBs aWIvaTkxNS9nZW1fbW1hbi5oCj4gCj4gZGlmZiAtLWdpdCBhL2xpYi9pOTE1L2dlbV9tbWFuLmMg Yi9saWIvaTkxNS9nZW1fbW1hbi5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAw MDAwMC4uZmI5NDlmNDQKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvbGliL2k5MTUvZ2VtX21tYW4u Ywo+IEBAIC0wLDAgKzEsODcgQEAKPiArLyoKPiArICogQ29weXJpZ2h0IMKpIDIwMDcsIDIwMTEs IDIwMTMsIDIwMTQsIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KPiArICoKPiArICogUGVybWlzc2lv biBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWlu aW5nIGEKPiArICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50 YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKPiArICogdG8gZGVhbCBpbiB0aGUgU29mdHdh cmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgo+ICsg KiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJp YnV0ZSwgc3VibGljZW5zZSwKPiArICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2Fy ZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCj4gKyAqIFNvZnR3YXJlIGlzIGZ1 cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Cj4g KyAqCj4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24g bm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKPiArICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNs dWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQo+ICsgKiBT b2Z0d2FyZS4KPiArICoKPiArICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJ VEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKPiArICogSU1QTElFRCwgSU5D TFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ VFksCj4gKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5H RU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAo+ICsgKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQg SE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgo+ICsgKiBM SUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVS V0lTRSwgQVJJU0lORwo+ICsgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRI RSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCj4gKyAqIElOIFRIRSBTT0ZU V0FSRS4KPiArICoKPiArICovCj4gKwo+ICsjaW5jbHVkZSA8c3RkYm9vbC5oPgo+ICsjaW5jbHVk ZSA8c3lzL2lvY3RsLmg+Cj4gKwo+ICsjaW5jbHVkZSAiaWd0X2NvcmUuaCIKPiArI2luY2x1ZGUg ImlvY3RsX3dyYXBwZXJzLmgiCj4gKwo+ICsjaW5jbHVkZSAiZ2VtX21tYW4uaCIKPiArCj4gKwo+ ICtib29sIGhhc19tbWFwX29mZnNldChpbnQgZmQpCj4gK3sKPiArCXN0YXRpYyBpbnQgaGFzX21t YXBfb2Zmc2V0ID0gLTE7Cj4gKwo+ICsJaWYgKGhhc19tbWFwX29mZnNldCA9PSAtMSkgewo+ICsJ CXN0cnVjdCBkcm1faTkxNV9nZXRwYXJhbSBncDsKPiArCj4gKwkJaGFzX21tYXBfb2Zmc2V0ID0g MDsKPiArCj4gKwkJbWVtc2V0KCZncCwgMCwgc2l6ZW9mKGdwKSk7Cj4gKwkJZ3AucGFyYW0gPSAw eDU1OyAvKiBJOTE1X1BBUkFNX01NQVBfT0ZGU0VUX1ZFUlNJT04gKi8KPiArCQlncC52YWx1ZSA9 ICZoYXNfbW1hcF9vZmZzZXQ7Cj4gKwkJaW9jdGwoZmQsIERSTV9JT0NUTF9JOTE1X0dFVFBBUkFN LCAmZ3ApOwo+ICsJfQo+ICsKPiArCXJldHVybiBoYXNfbW1hcF9vZmZzZXQgPiAwOwo+ICt9Cj4g Kwo+ICsvKioKPiArICogX19nZW1fbW1hcF9vZmZzZXQ6Cj4gKyAqIEBmZDogb3BlbiBpOTE1IGRy bSBmaWxlIGRlc2NyaXB0b3IKPiArICogQGhhbmRsZTogZ2VtIGJ1ZmZlciBvYmplY3QgaGFuZGxl Cj4gKyAqIEBvZmZzZXQ6IG9mZnNldCBpbiB0aGUgZ2VtIGJ1ZmZlciBvZiB0aGUgbW1hcCBhcmVu YQo+ICsgKiBAc2l6ZTogc2l6ZSBvZiB0aGUgbW1hcCBhcmVuYQo+ICsgKiBAcHJvdDogbWVtb3J5 IHByb3RlY3Rpb24gYml0cyBhcyB1c2VkIGJ5IG1tYXAoKQo+ICsgKiBAZmxhZ3M6IGZsYWdzIHVz ZWQgdG8gZGV0ZXJtaW5lIGNhY2hpbmcKPiArICoKPiArICogU2ltaWxhciB0byBfX2dlbV9tbWFw IGJ1dCB1c2UgTU1BUF9PRkZTRVQgSU9DVEwuCj4gKyAqCj4gKyAqIFJldHVybnM6IEEgcG9pbnRl ciB0byB0aGUgY3JlYXRlZCBtZW1vcnkgbWFwcGluZywgTlVMTCBvbiBmYWlsdXJlLgo+ICsgKi8K PiArdm9pZAo+ICsqX19nZW1fbW1hcF9vZmZzZXQoaW50IGZkLCB1aW50MzJfdCBoYW5kbGUsIHVp bnQ2NF90IG9mZnNldCwgdWludDY0X3Qgc2l6ZSwgdW5zaWduZWQgaW50IHByb3QsIHVpbnQ2NF90 IGZsYWdzKQo+ICt7Cj4gKwlzdHJ1Y3QgbG9jYWxfZHJtX2k5MTVfZ2VtX21tYXBfb2Zmc2V0IGFy ZzsKPiArCXZvaWQgKnB0cjsKPiArCj4gKwltZW1zZXQoJmFyZywgMCwgc2l6ZW9mKGFyZykpOwo+ ICsJYXJnLmhhbmRsZSA9IGhhbmRsZTsKPiArCWFyZy5vZmZzZXQgPSBvZmZzZXQ7Cj4gKwlhcmcu ZmxhZ3MgPSBmbGFnczsKPiArCj4gKwlpZiAoaWd0X2lvY3RsKGZkLCBMT0NBTF9EUk1fSU9DVExf STkxNV9HRU1fTU1BUF9PRkZTRVQsICZhcmcpKQo+ICsJCXJldHVybiBOVUxMOwo+ICsKPiArCXB0 ciA9IG1tYXA2NCgwLCBzaXplLCBwcm90LCBNQVBfU0hBUkVELCBmZCwgYXJnLm9mZnNldCk7Cj4g Kwo+ICsJaWYgKHB0ciA9PSBNQVBfRkFJTEVEKQo+ICsJCXB0ciA9IE5VTEw7Cj4gKwllbHNlCj4g KwkJZXJybm8gPSAwOwo+ICsKPiArCXJldHVybiBwdHI7Cj4gK30KPiBkaWZmIC0tZ2l0IGEvbGli L2k5MTUvZ2VtX21tYW4uaCBiL2xpYi9pOTE1L2dlbV9tbWFuLmgKPiBuZXcgZmlsZSBtb2RlIDEw MDY0NAo+IGluZGV4IDAwMDAwMDAwLi4yZjI0Y2E5OQo+IC0tLSAvZGV2L251bGwKPiArKysgYi9s aWIvaTkxNS9nZW1fbW1hbi5oCj4gQEAgLTAsMCArMSw2MSBAQAo+ICsvKgo+ICsgKiBDb3B5cmln aHQgwqkgMjAwNywgMjAxMSwgMjAxMywgMjAxNCwgMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgo+ICsg Kgo+ICsgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8g YW55IHBlcnNvbiBvYnRhaW5pbmcgYQo+ICsgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFz c29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAo+ICsgKiB0byBk ZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91 dCBsaW1pdGF0aW9uCj4gKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdl LCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAo+ICsgKiBhbmQvb3Igc2VsbCBjb3Bp ZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKPiAr ICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dp bmcgY29uZGl0aW9uczoKPiArICoKPiArICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5k IHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAo+ICsgKiBwYXJhZ3Jh cGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlv bnMgb2YgdGhlCj4gKyAqIFNvZnR3YXJlLgo+ICsgKgo+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJP VklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+ ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVT IE9GIE1FUkNIQU5UQUJJTElUWSwKPiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCj4gKyAqIFRIRSBBVVRI T1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VT IE9SIE9USEVSCj4gKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJB Q1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCj4gKyAqIEZST00sIE9VVCBPRiBPUiBJTiBD T05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MK PiArICogSU4gVEhFIFNPRlRXQVJFLgo+ICsgKgo+ICsgKi8KPiArCj4gKyNpZm5kZWYgR0VNX01N QU5fSAo+ICsjZGVmaW5lIEdFTV9NTUFOX0gKPiArCj4gK3N0cnVjdCBsb2NhbF9kcm1faTkxNV9n ZW1fbW1hcF9vZmZzZXQgewo+ICsJLyoqIEhhbmRsZSBmb3IgdGhlIG9iamVjdCBiZWluZyBtYXBw ZWQuICovCj4gKwlfX3UzMiBoYW5kbGU7Cj4gKwlfX3UzMiBwYWQ7Cj4gKwkvKioKPiArCSAqIEZh a2Ugb2Zmc2V0IHRvIHVzZSBmb3Igc3Vic2VxdWVudCBtbWFwIGNhbGwKPiArCSAqCj4gKwkgKiBU aGlzIGlzIGEgZml4ZWQtc2l6ZSB0eXBlIGZvciAzMi82NCBjb21wYXRpYmlsaXR5Lgo+ICsJICov Cj4gKwlfX3U2NCBvZmZzZXQ7Cj4gKwo+ICsJLyoqCj4gKwkgKiBGbGFncyBmb3IgZXh0ZW5kZWQg YmVoYXZpb3VyLgo+ICsJICoKPiArCSAqIEl0IGlzIG1hbmRhdG9yeSB0aGF0IGVpdGhlciBvbmUg b2YgdGhlIF9XQy9fV0IgZmxhZ3MKPiArCSAqIHNob3VsZCBiZSBwYXNzZWQgaGVyZS4KPiArCSAq Lwo+ICsJX191NjQgZmxhZ3M7Cj4gK307Cj4gKwo+ICsjZGVmaW5lIExPQ0FMX0RSTV9JOTE1X0dF TV9NTUFQX09GRlNFVCAweDI0Cj4gKyNkZWZpbmUgTE9DQUxfSTkxNV9NTUFQX09GRlNFVF9XQyAo MSA8PCAwKQo+ICsjZGVmaW5lIExPQ0FMX0k5MTVfTU1BUF9PRkZTRVRfV0IgKDEgPDwgMSkKPiAr I2RlZmluZSBMT0NBTF9JOTE1X01NQVBfT0ZGU0VUX1VDICgxIDw8IDIpCj4gKwo+ICsjZGVmaW5l IExPQ0FMX0RSTV9JT0NUTF9JOTE1X0dFTV9NTUFQX09GRlNFVCBcCj4gKwkJRFJNX0lPV1IoRFJN X0NPTU1BTkRfQkFTRSArIExPQ0FMX0RSTV9JOTE1X0dFTV9NTUFQX09GRlNFVCwgc3RydWN0IGxv Y2FsX2RybV9pOTE1X2dlbV9tbWFwX29mZnNldCkKPiArCj4gK2Jvb2wgaGFzX21tYXBfb2Zmc2V0 KGludCBmZCk7Cj4gKwo+ICt2b2lkICpfX2dlbV9tbWFwX29mZnNldChpbnQgZmQsIHVpbnQzMl90 IGhhbmRsZSwgdWludDY0X3Qgb2Zmc2V0LCB1aW50NjRfdCBzaXplLCB1bnNpZ25lZCBpbnQgcHJv dCwgdWludDY0X3QgZmxhZ3MpOwo+ICsKPiArI2VuZGlmIC8qIEdFTV9NTUFOX0ggKi8KPiArCj4g ZGlmZiAtLWdpdCBhL2xpYi9pb2N0bF93cmFwcGVycy5jIGIvbGliL2lvY3RsX3dyYXBwZXJzLmMK PiBpbmRleCA0MDRjMmZiZi4uYzExYjAxNDYgMTAwNjQ0Cj4gLS0tIGEvbGliL2lvY3RsX3dyYXBw ZXJzLmMKPiArKysgYi9saWIvaW9jdGxfd3JhcHBlcnMuYwo+IEBAIC03MDcsMzUgKzcwNyw1MCBA QCBib29sIGdlbV9tbWFwX19oYXNfd2MoaW50IGZkKQo+ICAgCXN0YXRpYyBpbnQgaGFzX3djID0g LTE7Cj4gICAKPiAgIAlpZiAoaGFzX3djID09IC0xKSB7Cj4gLQkJc3RydWN0IGRybV9pOTE1X2dl dHBhcmFtIGdwOwo+IC0JCWludCBtbWFwX3ZlcnNpb24gPSAtMTsKPiAtCQlpbnQgZ3R0X3ZlcnNp b24gPSAtMTsKPiAgIAo+ICAgCQloYXNfd2MgPSAwOwo+ICAgCj4gLQkJbWVtc2V0KCZncCwgMCwg c2l6ZW9mKGdwKSk7Cj4gLQkJZ3AucGFyYW0gPSBJOTE1X1BBUkFNX01NQVBfR1RUX1ZFUlNJT047 Cj4gLQkJZ3AudmFsdWUgPSAmZ3R0X3ZlcnNpb247Cj4gLQkJaW9jdGwoZmQsIERSTV9JT0NUTF9J OTE1X0dFVFBBUkFNLCAmZ3ApOwo+IC0KPiAtCQltZW1zZXQoJmdwLCAwLCBzaXplb2YoZ3ApKTsK PiAtCQlncC5wYXJhbSA9IEk5MTVfUEFSQU1fTU1BUF9WRVJTSU9OOwo+IC0JCWdwLnZhbHVlID0g Jm1tYXBfdmVyc2lvbjsKPiAtCQlpb2N0bChmZCwgRFJNX0lPQ1RMX0k5MTVfR0VUUEFSQU0sICZn cCk7Cj4gLQo+IC0JCS8qIERvIHdlIGhhdmUgdGhlIG5ldyBtbWFwX2lvY3RsIHdpdGggRE9NQUlO X1dDPyAqLwo+IC0JCWlmIChtbWFwX3ZlcnNpb24gPj0gMSAmJiBndHRfdmVyc2lvbiA+PSAyKSB7 Cj4gLQkJCXN0cnVjdCBkcm1faTkxNV9nZW1fbW1hcCBhcmc7Cj4gKwkJLyogRG8gd2UgaGF2ZSB0 aGUgbmV3IG1tYXBfb2Zmc2V0IGlvY3RsPyAqLwo+ICsJCWlmIChoYXNfbW1hcF9vZmZzZXQoZmQp KSB7Cj4gKwkJCXN0cnVjdCBsb2NhbF9kcm1faTkxNV9nZW1fbW1hcF9vZmZzZXQgYXJnOwo+ICAg Cj4gICAJCQkvKiBEb2VzIHRoaXMgZGV2aWNlIHN1cHBvcnQgd2MtbW1hcHMgPyAqLwo+ICAgCQkJ bWVtc2V0KCZhcmcsIDAsIHNpemVvZihhcmcpKTsKPiAgIAkJCWFyZy5oYW5kbGUgPSBnZW1fY3Jl YXRlKGZkLCA0MDk2KTsKPiAgIAkJCWFyZy5vZmZzZXQgPSAwOwo+IC0JCQlhcmcuc2l6ZSA9IDQw OTY7Cj4gLQkJCWFyZy5mbGFncyA9IEk5MTVfTU1BUF9XQzsKPiAtCQkJaGFzX3djID0gaWd0X2lv Y3RsKGZkLCBEUk1fSU9DVExfSTkxNV9HRU1fTU1BUCwgJmFyZykgPT0gMDsKPiArCQkJYXJnLmZs YWdzID0gTE9DQUxfSTkxNV9NTUFQX09GRlNFVF9XQzsKPiArCQkJaGFzX3djID0gaWd0X2lvY3Rs KGZkLCBMT0NBTF9EUk1fSU9DVExfSTkxNV9HRU1fTU1BUF9PRkZTRVQsICZhcmcpID09IDA7Cj4g ICAJCQlnZW1fY2xvc2UoZmQsIGFyZy5oYW5kbGUpOwo+ICsJCX0gZWxzZSB7Cj4gKwkJCXN0cnVj dCBkcm1faTkxNV9nZXRwYXJhbSBncDsKPiArCQkJaW50IG1tYXBfdmVyc2lvbiA9IC0xOwo+ICsJ CQlpbnQgZ3R0X3ZlcnNpb24gPSAtMTsKPiArCj4gKwkJCW1lbXNldCgmZ3AsIDAsIHNpemVvZihn cCkpOwo+ICsJCQlncC5wYXJhbSA9IEk5MTVfUEFSQU1fTU1BUF9HVFRfVkVSU0lPTjsKPiArCQkJ Z3AudmFsdWUgPSAmZ3R0X3ZlcnNpb247Cj4gKwkJCWlvY3RsKGZkLCBEUk1fSU9DVExfSTkxNV9H RVRQQVJBTSwgJmdwKTsKPiArCj4gKwkJCW1lbXNldCgmZ3AsIDAsIHNpemVvZihncCkpOwo+ICsJ CQlncC5wYXJhbSA9IEk5MTVfUEFSQU1fTU1BUF9WRVJTSU9OOwo+ICsJCQlncC52YWx1ZSA9ICZt bWFwX3ZlcnNpb247Cj4gKwkJCWlvY3RsKGZkLCBEUk1fSU9DVExfSTkxNV9HRVRQQVJBTSwgJmdw KTsKPiArCj4gKwkJCS8qIERvIHdlIGhhdmUgdGhlIG1tYXBfaW9jdGwgd2l0aCBET01BSU5fV0M/ ICovCj4gKwkJCWlmIChtbWFwX3ZlcnNpb24gPj0gMSAmJiBndHRfdmVyc2lvbiA+PSAyKSB7Cj4g KwkJCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX21tYXAgYXJnOwo+ICsKPiArCQkJCS8qIERvZXMgdGhp cyBkZXZpY2Ugc3VwcG9ydCB3Yy1tbWFwcyA/ICovCj4gKwkJCQltZW1zZXQoJmFyZywgMCwgc2l6 ZW9mKGFyZykpOwo+ICsJCQkJYXJnLmhhbmRsZSA9IGdlbV9jcmVhdGUoZmQsIDQwOTYpOwo+ICsJ CQkJYXJnLm9mZnNldCA9IDA7Cj4gKwkJCQlhcmcuc2l6ZSA9IDQwOTY7Cj4gKwkJCQlhcmcuZmxh Z3MgPSBJOTE1X01NQVBfV0M7Cj4gKwkJCQloYXNfd2MgPSBpZ3RfaW9jdGwoZmQsIERSTV9JT0NU TF9JOTE1X0dFTV9NTUFQLCAmYXJnKSA9PSAwOwo+ICsJCQkJZ2VtX2Nsb3NlKGZkLCBhcmcuaGFu ZGxlKTsKPiArCQkJfQo+ICAgCQl9Cj4gKwo+ICAgCQllcnJubyA9IDA7Cj4gICAJfQo+ICAgCj4g QEAgLTc5NSw3ICs4MTAsMTAgQEAgc3RhdGljIHZvaWQKPiAgICAqLwo+ICAgdm9pZCAqX19nZW1f bW1hcF9fd2MoaW50IGZkLCB1aW50MzJfdCBoYW5kbGUsIHVpbnQ2NF90IG9mZnNldCwgdWludDY0 X3Qgc2l6ZSwgdW5zaWduZWQgcHJvdCkKPiAgIHsKPiAtCXJldHVybiBfX2dlbV9tbWFwKGZkLCBo YW5kbGUsIG9mZnNldCwgc2l6ZSwgcHJvdCwgSTkxNV9NTUFQX1dDKTsKPiArCWlmIChoYXNfbW1h cF9vZmZzZXQoZmQpKQo+ICsJCXJldHVybiBfX2dlbV9tbWFwX29mZnNldChmZCwgaGFuZGxlLCBv ZmZzZXQsIHNpemUsIHByb3QsIExPQ0FMX0k5MTVfTU1BUF9PRkZTRVRfV0MpOwo+ICsJZWxzZQo+ ICsJCXJldHVybiBfX2dlbV9tbWFwKGZkLCBoYW5kbGUsIG9mZnNldCwgc2l6ZSwgcHJvdCwgSTkx NV9NTUFQX1dDKTsKPiAgIH0KPiAgIAo+ICAgLyoqCj4gQEAgLTgzMiw3ICs4NTAsMTQgQEAgdm9p ZCAqZ2VtX21tYXBfX3djKGludCBmZCwgdWludDMyX3QgaGFuZGxlLCB1aW50NjRfdCBvZmZzZXQs IHVpbnQ2NF90IHNpemUsIHVuc2kKPiAgICAqLwo+ICAgdm9pZCAqX19nZW1fbW1hcF9fY3B1KGlu dCBmZCwgdWludDMyX3QgaGFuZGxlLCB1aW50NjRfdCBvZmZzZXQsIHVpbnQ2NF90IHNpemUsIHVu c2lnbmVkIHByb3QpCj4gICB7Cj4gLQlyZXR1cm4gX19nZW1fbW1hcChmZCwgaGFuZGxlLCBvZmZz ZXQsIHNpemUsIHByb3QsIDApOwo+ICsJdm9pZCAqcHRyOwo+ICsKPiArCWlmIChoYXNfbW1hcF9v ZmZzZXQoZmQpKQo+ICsJCXB0ciA9IF9fZ2VtX21tYXBfb2Zmc2V0KGZkLCBoYW5kbGUsIG9mZnNl dCwgc2l6ZSwgcHJvdCwgTE9DQUxfSTkxNV9NTUFQX09GRlNFVF9XQik7Cj4gKwllbHNlCj4gKwkJ cHRyID0gX19nZW1fbW1hcChmZCwgaGFuZGxlLCBvZmZzZXQsIHNpemUsIHByb3QsIDApOwo+ICsK PiArCXJldHVybiBwdHI7Cj4gICB9Cj4gICAKPiAgIC8qKgo+IGRpZmYgLS1naXQgYS9saWIvaW9j dGxfd3JhcHBlcnMuaCBiL2xpYi9pb2N0bF93cmFwcGVycy5oCj4gaW5kZXggYjIyYjM2YjAuLmZm NGU3NjgxIDEwMDY0NAo+IC0tLSBhL2xpYi9pb2N0bF93cmFwcGVycy5oCj4gKysrIGIvbGliL2lv Y3RsX3dyYXBwZXJzLmgKPiBAQCAtMzgsNiArMzgsNyBAQAo+ICAgCj4gICAjaW5jbHVkZSAiaTkx NS9nZW1fY29udGV4dC5oIgo+ICAgI2luY2x1ZGUgImk5MTUvZ2VtX3NjaGVkdWxlci5oIgo+ICsj aW5jbHVkZSAiaTkxNS9nZW1fbW1hbi5oIgo+ICAgCj4gICAvKioKPiAgICAqIGlndF9pb2N0bDoK PiBkaWZmIC0tZ2l0IGEvbGliL21lc29uLmJ1aWxkIGIvbGliL21lc29uLmJ1aWxkCj4gaW5kZXgg ZGQzNmY4MTguLjBlYjU1ODVkIDEwMDY0NAo+IC0tLSBhL2xpYi9tZXNvbi5idWlsZAo+ICsrKyBi L2xpYi9tZXNvbi5idWlsZAo+IEBAIC00LDYgKzQsNyBAQCBsaWJfc291cmNlcyA9IFsKPiAgIAkn aTkxNS9nZW1fc2NoZWR1bGVyLmMnLAo+ICAgCSdpOTE1L2dlbV9zdWJtaXNzaW9uLmMnLAo+ICAg CSdpOTE1L2dlbV9yaW5nLmMnLAo+ICsJJ2k5MTUvZ2VtX21tYW4uYycsCj4gICAJJ2lndF9jb2xv cl9lbmNvZGluZy5jJywKPiAgIAknaWd0X2RlYnVnZnMuYycsCj4gICAJJ2lndF9kZXZpY2UuYycs Cj4gCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1k ZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldg==