From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH] drm/i915: Remove partial attempt to swizzle on pread/pwrite Date: Thu, 11 Oct 2018 15:44:19 +0100 Message-ID: References: <20180723090208.27226-1-chris@chris-wilson.co.uk> <153926820875.2691.13008364990856358719@skylake-alporthouse-com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id A8E7A6E079 for ; Thu, 11 Oct 2018 14:44:25 +0000 (UTC) In-Reply-To: <153926820875.2691.13008364990856358719@skylake-alporthouse-com> Content-Language: en-GB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDExLzEwLzIwMTggMTU6MzAsIENocmlzIFdpbHNvbiB3cm90ZToKPiBRdW90aW5nIFR2cnRr byBVcnN1bGluICgyMDE4LTEwLTExIDE0OjM4OjQxKQo+Pgo+PiBPbiAyMy8wNy8yMDE4IDEwOjAy LCBDaHJpcyBXaWxzb24gd3JvdGU6Cj4+PiBPdXIgYXR0ZW1wdCB0byBhY2NvdW50IGZvciBiaXQx NyBzd2l6emxpbmcgb2YgcHJlYWQvcHdyaXRlIG9udG8gdGlsZWQKPj4+IG9iamVjdHMgd2FzIGZs YXdlZCBkdWUgdG8gdGhlIHNpbXBsZSBmYWN0IHRoYXQgd2UgZG8gbm90IGFsd2F5cyBrbm93IHRo ZQo+Pj4gc3dpenpsaW5nIGZvciBhIHBhcnRpY3VsYXIgcGFnZSAoZHVlIHRvIHRoZSBzd2l6emxp bmcgdmFyeWluZyBiYXNlZCBvbgo+Pj4gbG9jYXRpb24gaW4gY2VydGFpbiB1bmJhbGFuY2VkIGNv bmZpZ3VyYXRpb25zKS4gRnVydGhlcm1vcmUsIHRoZQo+Pj4gcHJlYWQvcHdyaXRlIHBhdGhzIGFy ZSBub3cgdW5iYWxhbmNlZCBpbiB0aGF0IHdlIGFyZSByZXF1aXJlZCB0byB1c2UgdGhlCj4+PiBH VFQgYXMgaW4gc29tZSBjYXNlcyB3ZSBkbyBub3QgaGF2ZSBkaXJlY3QgQ1BVIGFjY2VzcyB0byB0 aGUgYmFja2luZwo+Pj4gcGh5c2ljYWwgcGFnZXMgKHRodXMgc29tZSBwYXRocyB0cnlpbmcgdG8g YWNjb3VudCBmb3IgdGhlIHN3aXp6bGUsIGJ1dAo+Pj4gb3RoZXJzIG5lZ2xlY3RpbmcsIGNoYW9z IGVuc3VlcykuCj4+Pgo+Pj4gVGhlcmUgYXJlIG5vIGtub3duIHVzZXJzIHdobyBkbyB1c2UgcHJl YWQvcHdyaXRlIGludG8gYSB0aWxlZCBvYmplY3QKPj4+ICh5b3UgbmVlZCB0byBtYW51YWxseSBk ZXRpbGUgYW55d2F5LCBzbyB3aHkgbm93IGp1c3QgdXNlIG1tYXAgYW5kIGF2b2lkCj4+PiB0aGUg Y29weT8pIGFuZCBubyB1c2VyIGJ1ZyByZXBvcnRzIHRvIGluZGljYXRlIHRoYXQgaXQgaXMgYmVp bmcgdXNlZCBpbgo+Pj4gdGhlIHdpbGQuIEFzIG5vIG9uZSBpcyBoaXR0aW5nIHRoZSBidWdneSBw YXRoLCB3ZSBjYW4ganVzdCByZW1vdmUgdGhlCj4+PiBidWdneSBjb2RlLgo+Pj4KPj4+IFJlZmVy ZW5jZXM6IGZlMTE1NjI4ZDU2NyAoImRybS9pOTE1OiBJbXBsZW1lbnQgcHdyaXRlIHdpdGhvdXQg c3RydWN0LW11dGV4IikKPj4+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hy aXMtd2lsc29uLmNvLnVrPgo+Pj4gQ2M6IEpvb25hcyBMYWh0aW5lbiA8am9vbmFzLmxhaHRpbmVu QGxpbnV4LmludGVsLmNvbT4KPj4+IC0tLQo+Pj4gICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW0uYyB8IDE5MSArKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4gICAgMSBm aWxlIGNoYW5nZWQsIDMwIGluc2VydGlvbnMoKyksIDE2MSBkZWxldGlvbnMoLSkKPj4+Cj4+PiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMKPj4+IGluZGV4IDhiNTJjYjc2OGE2Ny4uNzNhNjkzNTJlMGQ0 IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+Pj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+Pj4gQEAgLTg1OSw1OCArODU5LDYg QEAgZmx1c2hfd3JpdGVfZG9tYWluKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosIHVu c2lnbmVkIGludCBmbHVzaF9kb21haW5zKQo+Pj4gICAgICAgIG9iai0+d3JpdGVfZG9tYWluID0g MDsKPj4+ICAgIH0KPj4+ICAgIAo+Pj4gLXN0YXRpYyBpbmxpbmUgaW50Cj4+PiAtX19jb3B5X3Rv X3VzZXJfc3dpenpsZWQoY2hhciBfX3VzZXIgKmNwdV92YWRkciwKPj4+IC0gICAgICAgICAgICAg ICAgICAgICBjb25zdCBjaGFyICpncHVfdmFkZHIsIGludCBncHVfb2Zmc2V0LAo+Pj4gLSAgICAg ICAgICAgICAgICAgICAgIGludCBsZW5ndGgpCj4+PiAtewo+Pj4gLSAgICAgaW50IHJldCwgY3B1 X29mZnNldCA9IDA7Cj4+PiAtCj4+PiAtICAgICB3aGlsZSAobGVuZ3RoID4gMCkgewo+Pj4gLSAg ICAgICAgICAgICBpbnQgY2FjaGVsaW5lX2VuZCA9IEFMSUdOKGdwdV9vZmZzZXQgKyAxLCA2NCk7 Cj4+PiAtICAgICAgICAgICAgIGludCB0aGlzX2xlbmd0aCA9IG1pbihjYWNoZWxpbmVfZW5kIC0g Z3B1X29mZnNldCwgbGVuZ3RoKTsKPj4+IC0gICAgICAgICAgICAgaW50IHN3aXp6bGVkX2dwdV9v ZmZzZXQgPSBncHVfb2Zmc2V0IF4gNjQ7Cj4+PiAtCj4+PiAtICAgICAgICAgICAgIHJldCA9IF9f Y29weV90b191c2VyKGNwdV92YWRkciArIGNwdV9vZmZzZXQsCj4+PiAtICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGdwdV92YWRkciArIHN3aXp6bGVkX2dwdV9vZmZzZXQsCj4+PiAt ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNfbGVuZ3RoKTsKPj4+IC0gICAg ICAgICAgICAgaWYgKHJldCkKPj4+IC0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmV0ICsg bGVuZ3RoOwo+Pj4gLQo+Pj4gLSAgICAgICAgICAgICBjcHVfb2Zmc2V0ICs9IHRoaXNfbGVuZ3Ro Owo+Pj4gLSAgICAgICAgICAgICBncHVfb2Zmc2V0ICs9IHRoaXNfbGVuZ3RoOwo+Pj4gLSAgICAg ICAgICAgICBsZW5ndGggLT0gdGhpc19sZW5ndGg7Cj4+PiAtICAgICB9Cj4+PiAtCj4+PiAtICAg ICByZXR1cm4gMDsKPj4+IC19Cj4+PiAtCj4+PiAtc3RhdGljIGlubGluZSBpbnQKPj4+IC1fX2Nv cHlfZnJvbV91c2VyX3N3aXp6bGVkKGNoYXIgKmdwdV92YWRkciwgaW50IGdwdV9vZmZzZXQsCj4+ PiAtICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyIF9fdXNlciAqY3B1X3ZhZGRyLAo+ Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbmd0aCkKPj4+IC17Cj4+PiAtICAgICBp bnQgcmV0LCBjcHVfb2Zmc2V0ID0gMDsKPj4+IC0KPj4+IC0gICAgIHdoaWxlIChsZW5ndGggPiAw KSB7Cj4+PiAtICAgICAgICAgICAgIGludCBjYWNoZWxpbmVfZW5kID0gQUxJR04oZ3B1X29mZnNl dCArIDEsIDY0KTsKPj4+IC0gICAgICAgICAgICAgaW50IHRoaXNfbGVuZ3RoID0gbWluKGNhY2hl bGluZV9lbmQgLSBncHVfb2Zmc2V0LCBsZW5ndGgpOwo+Pj4gLSAgICAgICAgICAgICBpbnQgc3dp enpsZWRfZ3B1X29mZnNldCA9IGdwdV9vZmZzZXQgXiA2NDsKPj4+IC0KPj4+IC0gICAgICAgICAg ICAgcmV0ID0gX19jb3B5X2Zyb21fdXNlcihncHVfdmFkZHIgKyBzd2l6emxlZF9ncHVfb2Zmc2V0 LAo+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNwdV92YWRkciArIGNw dV9vZmZzZXQsCj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpc19s ZW5ndGgpOwo+Pj4gLSAgICAgICAgICAgICBpZiAocmV0KQo+Pj4gLSAgICAgICAgICAgICAgICAg ICAgIHJldHVybiByZXQgKyBsZW5ndGg7Cj4+PiAtCj4+PiAtICAgICAgICAgICAgIGNwdV9vZmZz ZXQgKz0gdGhpc19sZW5ndGg7Cj4+PiAtICAgICAgICAgICAgIGdwdV9vZmZzZXQgKz0gdGhpc19s ZW5ndGg7Cj4+PiAtICAgICAgICAgICAgIGxlbmd0aCAtPSB0aGlzX2xlbmd0aDsKPj4+IC0gICAg IH0KPj4+IC0KPj4+IC0gICAgIHJldHVybiAwOwo+Pj4gLX0KPj4+IC0KPj4+ICAgIC8qCj4+PiAg ICAgKiBQaW5zIHRoZSBzcGVjaWZpZWQgb2JqZWN0J3MgcGFnZXMgYW5kIHN5bmNocm9uaXplcyB0 aGUgb2JqZWN0IHdpdGgKPj4+ICAgICAqIEdQVSBhY2Nlc3Nlcy4gU2V0cyBuZWVkc19jbGZsdXNo IHRvIG5vbi16ZXJvIGlmIHRoZSBjYWxsZXIgc2hvdWxkCj4+PiBAQCAtMTAzMCw3MiArOTc4LDI5 IEBAIGludCBpOTE1X2dlbV9vYmpfcHJlcGFyZV9zaG1lbV93cml0ZShzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqb2JqLAo+Pj4gICAgICAgIHJldHVybiByZXQ7Cj4+PiAgICB9Cj4+PiAgICAK Pj4+IC1zdGF0aWMgdm9pZAo+Pj4gLXNobWVtX2NsZmx1c2hfc3dpenpsZWRfcmFuZ2UoY2hhciAq YWRkciwgdW5zaWduZWQgbG9uZyBsZW5ndGgsCj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAg ICBib29sIHN3aXp6bGVkKQo+Pj4gLXsKPj4+IC0gICAgIGlmICh1bmxpa2VseShzd2l6emxlZCkp IHsKPj4+IC0gICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBzdGFydCA9ICh1bnNpZ25lZCBsb25n KSBhZGRyOwo+Pj4gLSAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGVuZCA9ICh1bnNpZ25lZCBs b25nKSBhZGRyICsgbGVuZ3RoOwo+Pj4gLQo+Pj4gLSAgICAgICAgICAgICAvKiBGb3Igc3dpenps aW5nIHNpbXBseSBlbnN1cmUgdGhhdCB3ZSBhbHdheXMgZmx1c2ggYm90aAo+Pj4gLSAgICAgICAg ICAgICAgKiBjaGFubmVscy4gTGFtZSwgYnV0IHNpbXBsZSBhbmQgaXQgd29ya3MuIFN3aXp6bGVk Cj4+PiAtICAgICAgICAgICAgICAqIHB3cml0ZS9wcmVhZCBpcyBmYXIgZnJvbSBhIGhvdHBhdGgg LSBjdXJyZW50IHVzZXJzcGFjZQo+Pj4gLSAgICAgICAgICAgICAgKiBkb2Vzbid0IHVzZSBpdCBh dCBhbGwuICovCj4+PiAtICAgICAgICAgICAgIHN0YXJ0ID0gcm91bmRfZG93bihzdGFydCwgMTI4 KTsKPj4+IC0gICAgICAgICAgICAgZW5kID0gcm91bmRfdXAoZW5kLCAxMjgpOwo+Pj4gLQo+Pj4g LSAgICAgICAgICAgICBkcm1fY2xmbHVzaF92aXJ0X3JhbmdlKCh2b2lkICopc3RhcnQsIGVuZCAt IHN0YXJ0KTsKPj4+IC0gICAgIH0gZWxzZSB7Cj4+PiAtICAgICAgICAgICAgIGRybV9jbGZsdXNo X3ZpcnRfcmFuZ2UoYWRkciwgbGVuZ3RoKTsKPj4+IC0gICAgIH0KPj4+IC0KPj4+IC19Cj4+PiAt Cj4+PiAtLyogT25seSBkaWZmZXJlbmNlIHRvIHRoZSBmYXN0LXBhdGggZnVuY3Rpb24gaXMgdGhh dCB0aGlzIGNhbiBoYW5kbGUgYml0MTcKPj4+IC0gKiBhbmQgdXNlcyBub24tYXRvbWljIGNvcHkg YW5kIGttYXAgZnVuY3Rpb25zLiAqLwo+Pj4gICAgc3RhdGljIGludAo+Pj4gLXNobWVtX3ByZWFk X3Nsb3coc3RydWN0IHBhZ2UgKnBhZ2UsIGludCBvZmZzZXQsIGludCBsZW5ndGgsCj4+PiAtICAg ICAgICAgICAgICBjaGFyIF9fdXNlciAqdXNlcl9kYXRhLAo+Pj4gLSAgICAgICAgICAgICAgYm9v bCBwYWdlX2RvX2JpdDE3X3N3aXp6bGluZywgYm9vbCBuZWVkc19jbGZsdXNoKQo+Pj4gK3NobWVt X3ByZWFkKHN0cnVjdCBwYWdlICpwYWdlLCBpbnQgb2Zmc2V0LCBpbnQgbGVuLCBjaGFyIF9fdXNl ciAqdXNlcl9kYXRhLAo+Pj4gKyAgICAgICAgIGJvb2wgbmVlZHNfY2xmbHVzaCkKPj4+ICAgIHsK Pj4+ICAgICAgICBjaGFyICp2YWRkcjsKPj4+ICAgICAgICBpbnQgcmV0Owo+Pj4gICAgCj4+PiAt ICAgICB2YWRkciA9IGttYXAocGFnZSk7Cj4+PiAtICAgICBpZiAobmVlZHNfY2xmbHVzaCkKPj4+ IC0gICAgICAgICAgICAgc2htZW1fY2xmbHVzaF9zd2l6emxlZF9yYW5nZSh2YWRkciArIG9mZnNl dCwgbGVuZ3RoLAo+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHBhZ2VfZG9fYml0MTdfc3dpenpsaW5nKTsKPj4+IC0KPj4+IC0gICAgIGlmIChwYWdlX2RvX2Jp dDE3X3N3aXp6bGluZykKPj4+IC0gICAgICAgICAgICAgcmV0ID0gX19jb3B5X3RvX3VzZXJfc3dp enpsZWQodXNlcl9kYXRhLCB2YWRkciwgb2Zmc2V0LCBsZW5ndGgpOwo+Pj4gLSAgICAgZWxzZQo+ Pj4gLSAgICAgICAgICAgICByZXQgPSBfX2NvcHlfdG9fdXNlcih1c2VyX2RhdGEsIHZhZGRyICsg b2Zmc2V0LCBsZW5ndGgpOwo+Pj4gLSAgICAga3VubWFwKHBhZ2UpOwo+Pj4gKyAgICAgdmFkZHIg PSBrbWFwX2F0b21pYyhwYWdlKTsKPj4+ICAgIAo+Pj4gLSAgICAgcmV0dXJuIHJldCA/IC0gRUZB VUxUIDogMDsKPj4+IC19Cj4+PiArICAgICBpZiAobmVlZHNfY2xmbHVzaCkKPj4+ICsgICAgICAg ICAgICAgZHJtX2NsZmx1c2hfdmlydF9yYW5nZSh2YWRkciArIG9mZnNldCwgbGVuKTsKPj4+ICAg IAo+Pj4gLXN0YXRpYyBpbnQKPj4+IC1zaG1lbV9wcmVhZChzdHJ1Y3QgcGFnZSAqcGFnZSwgaW50 IG9mZnNldCwgaW50IGxlbmd0aCwgY2hhciBfX3VzZXIgKnVzZXJfZGF0YSwKPj4+IC0gICAgICAg ICBib29sIHBhZ2VfZG9fYml0MTdfc3dpenpsaW5nLCBib29sIG5lZWRzX2NsZmx1c2gpCj4+PiAt ewo+Pj4gLSAgICAgaW50IHJldDsKPj4+ICsgICAgIHJldCA9IF9fY29weV90b191c2VyX2luYXRv bWljKHVzZXJfZGF0YSwgdmFkZHIgKyBvZmZzZXQsIGxlbik7Cj4+Cj4+IEtlcm5lbGRvYyBzYXlz IHVzZXJzcGFjZSBtZW1vcnkgbXVzdCBiZSBwaW5uZWQgc28gcG90ZW50aWFsIHBhZ2UgZmF1bHRz Cj4+IGFyZSBhdm9pZGVkLiBJIGRvbid0IHNlZSB0aGF0IG91ciBjb2RlIGRvZXMgdGhhdC4KPiAK PiBrbWFwX2F0b21pYyBvbmNlIHVwb24gYSB0aW1lIGdhdmUgYXNzdXJhbmNlcyB0aGF0IF9pbmF0 b21pYyB3YXMgc2FmZS4KPiBJdCdzIG5vdCBpbXBvcnRhbnQsIGttYXAoKSBpcyBnb29kIGVub3Vn aCAob25jZSB1cG9uIGEgdGltZSB0aGVyZSB3YXMgYQo+IG1ham9yIGRpZmZlcmVuY2UgZm9yIGtt YXBfYXRvbWljIGFzIHlvdSBoYWQgdG8gdXNlIHByZWFsbG9jYXRlZCBzbG90cywKPiB0aGUgZ29v ZCBvbGQgZGF5cyA7KQoKa21hcF9hdG9taWMgaXMgYWxzbyB0aGUgb3RoZXIgZW5kIG9mIHRoZSBj b3B5LiB1c2VyX2RhdGEgaXMgd2hpY2ggYWxzbyAKbXVzdG4ndCBmYXVsdCwgYnV0IG5ldmVyIG1p bmQsIGttYXAgb25seSBwYXRoIHNvdW5kcyBpbmRlZWQgZmluZS4KCj4gICAKPj4+IC0gICAgIHJl dCA9IC1FTk9ERVY7Cj4+PiAtICAgICBpZiAoIXBhZ2VfZG9fYml0MTdfc3dpenpsaW5nKSB7Cj4+ PiAtICAgICAgICAgICAgIGNoYXIgKnZhZGRyID0ga21hcF9hdG9taWMocGFnZSk7Cj4+PiArICAg ICBrdW5tYXBfYXRvbWljKHZhZGRyKTsKPj4+ICAgIAo+Pj4gLSAgICAgICAgICAgICBpZiAobmVl ZHNfY2xmbHVzaCkKPj4+IC0gICAgICAgICAgICAgICAgICAgICBkcm1fY2xmbHVzaF92aXJ0X3Jh bmdlKHZhZGRyICsgb2Zmc2V0LCBsZW5ndGgpOwo+Pj4gLSAgICAgICAgICAgICByZXQgPSBfX2Nv cHlfdG9fdXNlcl9pbmF0b21pYyh1c2VyX2RhdGEsIHZhZGRyICsgb2Zmc2V0LCBsZW5ndGgpOwo+ Pj4gLSAgICAgICAgICAgICBrdW5tYXBfYXRvbWljKHZhZGRyKTsKPj4+ICsgICAgIGlmIChyZXQp IHsKPj4+ICsgICAgICAgICAgICAgdmFkZHIgPSBrbWFwKHBhZ2UpOwo+Pj4gKyAgICAgICAgICAg ICByZXQgPSBfX2NvcHlfdG9fdXNlcih1c2VyX2RhdGEsIHZhZGRyICsgb2Zmc2V0LCBsZW4pOwo+ Pj4gKyAgICAgICAgICAgICBrdW5tYXAocGFnZSk7Cj4+PiAgICAgICAgfQo+Pj4gLSAgICAgaWYg KHJldCA9PSAwKQo+Pj4gLSAgICAgICAgICAgICByZXR1cm4gMDsKPj4+ICAgIAo+Pj4gLSAgICAg cmV0dXJuIHNobWVtX3ByZWFkX3Nsb3cocGFnZSwgb2Zmc2V0LCBsZW5ndGgsIHVzZXJfZGF0YSwK Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VfZG9fYml0MTdfc3dpenpsaW5n LCBuZWVkc19jbGZsdXNoKTsKPj4+ICsgICAgIHJldHVybiByZXQgPyAtIEVGQVVMVCA6IDA7Cj4+ Cj4+IFdoeSB0aGUgc3BhY2UgYmV0d2VlbiAtIGFuZCBFRkFVTFQ/IE9yIHdoeSBub3QganVzdCBy ZXR1cm4gcmV0Pwo+IAo+IEZhdCBmaW5nZXJzLgo+IAo+Pj4gICAgfQo+Pj4gICAgCj4+PiAgICBz dGF0aWMgaW50Cj4+PiBAQCAtMTEwNCwxNSArMTAwOSwxMCBAQCBpOTE1X2dlbV9zaG1lbV9wcmVh ZChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+Pj4gICAgewo+Pj4gICAgICAgIGNo YXIgX191c2VyICp1c2VyX2RhdGE7Cj4+PiAgICAgICAgdTY0IHJlbWFpbjsKPj4+IC0gICAgIHVu c2lnbmVkIGludCBvYmpfZG9fYml0MTdfc3dpenpsaW5nOwo+Pj4gICAgICAgIHVuc2lnbmVkIGlu dCBuZWVkc19jbGZsdXNoOwo+Pj4gICAgICAgIHVuc2lnbmVkIGludCBpZHgsIG9mZnNldDsKPj4+ ICAgICAgICBpbnQgcmV0Owo+Pj4gICAgCj4+PiAtICAgICBvYmpfZG9fYml0MTdfc3dpenpsaW5n ID0gMDsKPj4+IC0gICAgIGlmIChpOTE1X2dlbV9vYmplY3RfbmVlZHNfYml0MTdfc3dpenpsZShv YmopKQo+Pj4gLSAgICAgICAgICAgICBvYmpfZG9fYml0MTdfc3dpenpsaW5nID0gQklUKDE3KTsK Pj4+IC0KPj4+ICAgICAgICByZXQgPSBtdXRleF9sb2NrX2ludGVycnVwdGlibGUoJm9iai0+YmFz ZS5kZXYtPnN0cnVjdF9tdXRleCk7Cj4+PiAgICAgICAgaWYgKHJldCkKPj4+ICAgICAgICAgICAg ICAgIHJldHVybiByZXQ7Cj4+PiBAQCAtMTEzNCw3ICsxMDM0LDYgQEAgaTkxNV9nZW1fc2htZW1f cHJlYWQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPj4+ICAgICAgICAgICAgICAg ICAgICAgICAgbGVuZ3RoID0gUEFHRV9TSVpFIC0gb2Zmc2V0Owo+Pgo+PiBJdCdzIHByZS1leGlz dGluZywgYnV0IHRoZXJlIHNlZW1zIHRvIGJlIGEgcG90ZW50aWFsIG92ZXJmbG93IG9mIGludAo+ PiBsZW5ndGggPSB1NjQgcmVtYWluIGEgZmV3IGxpbmVzIGFib3ZlIHRoaXMuCj4gCj4gSG1tLiBJ ZiBzbywgdGhhdCdzIG9uZSB0aGF0IGVzY2FwZWQgbXkgcGVydXNhbC4gVGltZSBmb3Igc2FuaXR5 IGNoZWNrcwo+IHByb2JhYmx5LgoKRmVlbCBmcmVlIHRvIGxlYXZlIGl0IGZvciBhIHNlcGFyYXRl IHBhdGNoL3NlcmllcywgaXQgd2FzIGp1c3QgYW4gCm9ic2VydmF0aW9uLiBPciBldmVuIHNlZSBp ZiB5b3UgY2FuIGRlbGVnYXRlIGl0LiA6KQoKUmVnYXJkcywKClR2cnRrbwpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK