From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: Re: [PATCH] drm/i915: Reduce context HW ID lifetime Date: Fri, 31 Aug 2018 13:36:56 +0100 Message-ID: <153571901687.20986.6449971785579224771@skylake-alporthouse-com> References: <20180830102454.26956-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8A29A6E8DB for ; Fri, 31 Aug 2018 12:37:04 +0000 (UTC) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Tvrtko Ursulin , intel-gfx@lists.freedesktop.org Cc: Oscar Mateo , Mika Kuoppala List-Id: intel-gfx@lists.freedesktop.org UXVvdGluZyBUdnJ0a28gVXJzdWxpbiAoMjAxOC0wOC0zMCAxNzoyMzo0MykKPiAKPiBPbiAzMC8w OC8yMDE4IDExOjI0LCBDaHJpcyBXaWxzb24gd3JvdGU6Cj4gPiArc3RhdGljIGludCBzdGVhbF9o d19pZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPiA+ICt7Cj4gPiArICAgICBzdHJ1 Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LCAqY247Cj4gPiArICAgICBMSVNUX0hFQUQocGlubmVk KTsKPiA+ICsgICAgIGludCBpZCA9IC1FTk9TUEM7Cj4gPiArCj4gPiArICAgICBsb2NrZGVwX2Fz c2VydF9oZWxkKCZpOTE1LT5jb250ZXh0cy5tdXRleCk7Cj4gPiArCj4gPiArICAgICBsaXN0X2Zv cl9lYWNoX2VudHJ5X3NhZmUoY3R4LCBjbiwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAmaTkxNS0+Y29udGV4dHMuaHdfaWRfbGlzdCwgaHdfaWRfbGluaykgewo+ID4gKyAgICAg ICAgICAgICBpZiAoYXRvbWljX3JlYWQoJmN0eC0+cGluX2h3X2lkKSkgewo+ID4gKyAgICAgICAg ICAgICAgICAgICAgIGxpc3RfbW92ZV90YWlsKCZjdHgtPmh3X2lkX2xpbmssICZwaW5uZWQpOwo+ ID4gKyAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+ID4gKyAgICAgICAgICAgICB9Cj4g PiArCj4gPiArICAgICAgICAgICAgIEdFTV9CVUdfT04oIWN0eC0+aHdfaWQpOyAvKiBwZXJtYS1w aW5uZWQga2VybmVsIGNvbnRleHQgKi8KPiA+ICsgICAgICAgICAgICAgbGlzdF9kZWxfaW5pdCgm Y3R4LT5od19pZF9saW5rKTsKPiA+ICsgICAgICAgICAgICAgaWQgPSBjdHgtPmh3X2lkOwo+ID4g KyAgICAgICAgICAgICBicmVhazsKPiA+ICsgICAgIH0KPiA+ICsKPiA+ICsgICAgIGxpc3Rfc3Bs aWNlX3RhaWwoJnBpbm5lZCwgJmk5MTUtPmNvbnRleHRzLmh3X2lkX2xpc3QpOwo+IAo+IFB1dCBh IGNvbW1lbnQgd2hhdCBpcyB0aGlzIGNvZGUgZG9pbmcgcGxlYXNlLiBUcnlpbmcgdG8gY3JlYXRl IHNvbWUgc29ydCAKPiBvZiBMUlUgb3JkZXI/CgpMUlNlYXJjaGVkLiBTYW1lIGFzIHRoZSBzaHJp bmtlciwgYW5kIGV2aWN0aW9uIGNvZGUgaWYgeW91IHdvdWxkIGFsc28KcmV2aWV3IHRoYXQgOykK Cj4gCj4gPiArICAgICByZXR1cm4gaWQ7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyBpbnQgYXNz aWduX2h3X2lkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCB1bnNpZ25lZCBpbnQgKm91 dCkKPiA+ICt7Cj4gPiArICAgICBpbnQgcmV0Owo+ID4gKwo+ID4gKyAgICAgbG9ja2RlcF9hc3Nl cnRfaGVsZCgmaTkxNS0+Y29udGV4dHMubXV0ZXgpOwo+ID4gKwo+ID4gKyAgICAgcmV0ID0gbmV3 X2h3X2lkKGk5MTUsIEdGUF9LRVJORUwgfCBfX0dGUF9SRVRSWV9NQVlGQUlMIHwgX19HRlBfTk9X QVJOKTsKPiA+ICsgICAgIGlmICh1bmxpa2VseShyZXQgPCAwKSkgewo+ID4gKyAgICAgICAgICAg ICByZXQgPSBzdGVhbF9od19pZChpOTE1KTsKPiA+ICsgICAgICAgICAgICAgaWYgKHJldCA8IDAp IC8qIG9uY2UgYWdhaW4gZm9yIHRoZSBjb3JyZWN0IGVycm8gY29kZSAqLwo+IAo+IGVycm5vCj4g Cj4gPiArICAgICAgICAgICAgICAgICAgICAgcmV0ID0gbmV3X2h3X2lkKGk5MTUsIEdGUF9LRVJO RUwpOwo+IAo+IEhtbS4uIHNob3VsZG4ndCB5b3UgdHJ5IEdGUF9LRVJORUwgYmVmb3JlIGF0dGVt cHRpbmcgdG8gc3RlYWw/IEFjdHVhbGx5IAo+IEkgdGhpbmsgeW91IHNob3VsZCBicmFuY2ggYmFz ZWQgb24gLUVOT1NQQyAoc3RlYWwpIHZzIC1FTk9NRU0gKHJldHJ5IAo+IHdpdGggR0ZQX0tFUk5F TCkuIFdoaWNoIHdvdWxkIGFjdHVhbGx5IG1lYW4gc29tZXRoaW5nIGxpa2U6CgpJIHdhcyBhcHBs eWluZyB0aGUgc2FtZSBzdHJhdGVneSBhcyB3ZSB1c2UgZWxzZXdoZXJlLiBQZW5hbGlzZSBhbnkK ZHJpdmVyIGNhY2hlIGJlZm9yZSBoaXR0aW5nIHJlY2xhaW0uCgpJIHRoaW5rIHRoYXQgaXMgZmFp ciBmcm9tIGFuIGFwcGxpY2F0aW9uIG9mIHNvZnQgYmFja3ByZXNzdXJlIHBvaW50IG9mCnZpZXcu IChMYWNrIG9mIGJhY2twcmVzc3VyZSBpcyBwcm9iYWJseSBhIHNvcmUgcG9pbnQgZm9yIG1hbnku KQoKPiA+IC0gICAgIHJldCA9IGlkYV9zaW1wbGVfZ2V0KCZkZXZfcHJpdi0+Y29udGV4dHMuaHdf aWRhLAo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgbWF4LCBHRlBfS0VSTkVMKTsK PiAKPiBBbHRob3VnaCBub3cgdGhhdCBJIHNlZSB0aGlzIEkgYW0gc3RydWdnbGluZyBub3QgdG8g c2F5IHRoZSBjaGFuZ2UgdG8gCj4gdHJ5IGEgbGlnaHRlciB3ZWlnaHQgYWxsb2NhdGlvbiBzdHJh dGVneSBmaXJzdCAoZ2ZwIG1heSBmYWlsKSBuZWVkcyB0byAKPiBiZSBzcGxpdCBvdXQgdG8gYSBz ZXBhcmF0ZSBwYXRjaC4KClBhcmRvbj8gSSBhcHBlYXIgdG8gc3VkZGVubHkgYmUgaGFyZCBvZiBo ZWFyaW5nLgoKVGhlIHBhdGNoIHdhcyBhbGwgYWJvdXQgdGhlIHN0ZWFsX2h3X2lkKCkuCgo+ID4g LSAgICAgaWYgKHJldCA8IDApIHsKPiA+IC0gICAgICAgICAgICAgLyogQ29udGV4dHMgYXJlIG9u bHkgcmVsZWFzZWQgd2hlbiBubyBsb25nZXIgYWN0aXZlLgo+ID4gLSAgICAgICAgICAgICAgKiBG bHVzaCBhbnkgcGVuZGluZyByZXRpcmVzIHRvIGhvcGVmdWxseSByZWxlYXNlIHNvbWUKPiA+IC0g ICAgICAgICAgICAgICogc3RhbGUgY29udGV4dHMgYW5kIHRyeSBhZ2Fpbi4KPiA+IC0gICAgICAg ICAgICAgICovCj4gPiAtICAgICAgICAgICAgIGk5MTVfcmV0aXJlX3JlcXVlc3RzKGRldl9wcml2 KTsKPiA+IC0gICAgICAgICAgICAgcmV0ID0gaWRhX3NpbXBsZV9nZXQoJmRldl9wcml2LT5jb250 ZXh0cy5od19pZGEsCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIG1h eCwgR0ZQX0tFUk5FTCk7Cj4gPiAtICAgICAgICAgICAgIGlmIChyZXQgPCAwKQo+ID4gLSAgICAg ICAgICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gPiAtICAgICB9Cj4gPiAtCj4gPiAtICAgICAq b3V0ID0gcmV0Owo+ID4gLSAgICAgcmV0dXJuIDA7Cj4gPiAtfQo+ID4gLQo+ID4gICBzdGF0aWMg dTMyIGRlZmF1bHRfZGVzY190ZW1wbGF0ZShjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq aTkxNSwKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgaTkx NV9od19wcGd0dCAqcHBndHQpCj4gPiAgIHsKPiA+IEBAIC0yNzYsMTIgKzMyNCw2IEBAIF9fY3Jl YXRlX2h3X2NvbnRleHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gICAg ICAgaWYgKGN0eCA9PSBOVUxMKQo+ID4gICAgICAgICAgICAgICByZXR1cm4gRVJSX1BUUigtRU5P TUVNKTsKPiA+ICAgCj4gPiAtICAgICByZXQgPSBhc3NpZ25faHdfaWQoZGV2X3ByaXYsICZjdHgt Pmh3X2lkKTsKPiA+IC0gICAgIGlmIChyZXQpIHsKPiA+IC0gICAgICAgICAgICAga2ZyZWUoY3R4 KTsKPiA+IC0gICAgICAgICAgICAgcmV0dXJuIEVSUl9QVFIocmV0KTsKPiA+IC0gICAgIH0KPiA+ IC0KPiA+ICAgICAgIGtyZWZfaW5pdCgmY3R4LT5yZWYpOwo+ID4gICAgICAgbGlzdF9hZGRfdGFp bCgmY3R4LT5saW5rLCAmZGV2X3ByaXYtPmNvbnRleHRzLmxpc3QpOwo+ID4gICAgICAgY3R4LT5p OTE1ID0gZGV2X3ByaXY7Cj4gPiBAQCAtMjk1LDYgKzMzNyw3IEBAIF9fY3JlYXRlX2h3X2NvbnRl eHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gICAKPiA+ICAgICAgIElO SVRfUkFESVhfVFJFRSgmY3R4LT5oYW5kbGVzX3ZtYSwgR0ZQX0tFUk5FTCk7Cj4gPiAgICAgICBJ TklUX0xJU1RfSEVBRCgmY3R4LT5oYW5kbGVzX2xpc3QpOwo+ID4gKyAgICAgSU5JVF9MSVNUX0hF QUQoJmN0eC0+aHdfaWRfbGluayk7Cj4gPiAgIAo+ID4gICAgICAgLyogRGVmYXVsdCBjb250ZXh0 IHdpbGwgbmV2ZXIgaGF2ZSBhIGZpbGVfcHJpdiAqLwo+ID4gICAgICAgcmV0ID0gREVGQVVMVF9D T05URVhUX0hBTkRMRTsKPiA+IEBAIC00MjEsMTUgKzQ2NCwzNSBAQCBpOTE1X2dlbV9jb250ZXh0 X2NyZWF0ZV9ndnQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+ICAgICAgIHJldHVybiBjdHg7 Cj4gPiAgIH0KPiA+ICAgCj4gPiArc3RhdGljIHZvaWQKPiA+ICtkZXN0cm95X2tlcm5lbF9jb250 ZXh0KHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICoqY3R4cCkKPiA+ICt7Cj4gPiArICAgICBzdHJ1 Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4Owo+ID4gKwo+ID4gKyAgICAgLyogS2VlcCB0aGUgY29u dGV4dCByZWYgc28gdGhhdCB3ZSBjYW4gZnJlZSBpdCBpbW1lZGlhdGVseSBvdXJzZWx2ZXMgKi8K PiA+ICsgICAgIGN0eCA9IGk5MTVfZ2VtX2NvbnRleHRfZ2V0KGZldGNoX2FuZF96ZXJvKGN0eHAp KTsKPiA+ICsgICAgIEdFTV9CVUdfT04oIWk5MTVfZ2VtX2NvbnRleHRfaXNfa2VybmVsKGN0eCkp Owo+ID4gKwo+ID4gKyAgICAgY29udGV4dF9jbG9zZShjdHgpOwo+ID4gKyAgICAgaTkxNV9nZW1f Y29udGV4dF9mcmVlKGN0eCk7Cj4gPiArfQo+ID4gKwo+ID4gICBzdHJ1Y3QgaTkxNV9nZW1fY29u dGV4dCAqCj4gPiAgIGk5MTVfZ2VtX2NvbnRleHRfY3JlYXRlX2tlcm5lbChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqaTkxNSwgaW50IHByaW8pCj4gPiAgIHsKPiA+ICAgICAgIHN0cnVjdCBpOTE1 X2dlbV9jb250ZXh0ICpjdHg7Cj4gPiArICAgICBpbnQgZXJyOwo+ID4gICAKPiA+ICAgICAgIGN0 eCA9IGk5MTVfZ2VtX2NyZWF0ZV9jb250ZXh0KGk5MTUsIE5VTEwpOwo+ID4gICAgICAgaWYgKElT X0VSUihjdHgpKQo+ID4gICAgICAgICAgICAgICByZXR1cm4gY3R4Owo+ID4gICAKPiA+ICsgICAg IGVyciA9IGk5MTVfZ2VtX2NvbnRleHRfcGluX2h3X2lkKGN0eCk7Cj4gPiArICAgICBpZiAoZXJy KSB7Cj4gPiArICAgICAgICAgICAgIGRlc3Ryb3lfa2VybmVsX2NvbnRleHQoJmN0eCk7Cj4gPiAr ICAgICAgICAgICAgIHJldHVybiBFUlJfUFRSKGVycik7Cj4gPiArICAgICB9Cj4gPiArCj4gPiAg ICAgICBpOTE1X2dlbV9jb250ZXh0X2NsZWFyX2Jhbm5hYmxlKGN0eCk7Cj4gPiAgICAgICBjdHgt PnNjaGVkLnByaW9yaXR5ID0gcHJpbzsKPiA+ICAgICAgIGN0eC0+cmluZ19zaXplID0gUEFHRV9T SVpFOwo+ID4gQEAgLTQzOSwxNyArNTAyLDE5IEBAIGk5MTVfZ2VtX2NvbnRleHRfY3JlYXRlX2tl cm5lbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgaW50IHByaW8pCj4gPiAgICAgICBy ZXR1cm4gY3R4Owo+ID4gICB9Cj4gPiAgIAo+ID4gLXN0YXRpYyB2b2lkCj4gPiAtZGVzdHJveV9r ZXJuZWxfY29udGV4dChzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqKmN0eHApCj4gPiArc3RhdGlj IHZvaWQgaW5pdF9jb250ZXh0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPiA+ICAg ewo+ID4gLSAgICAgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eDsKPiA+ICsgICAgIG11dGV4 X2luaXQoJmk5MTUtPmNvbnRleHRzLm11dGV4KTsKPiA+ICsgICAgIElOSVRfTElTVF9IRUFEKCZp OTE1LT5jb250ZXh0cy5saXN0KTsKPiA+ICAgCj4gPiAtICAgICAvKiBLZWVwIHRoZSBjb250ZXh0 IHJlZiBzbyB0aGF0IHdlIGNhbiBmcmVlIGl0IGltbWVkaWF0ZWx5IG91cnNlbHZlcyAqLwo+ID4g LSAgICAgY3R4ID0gaTkxNV9nZW1fY29udGV4dF9nZXQoZmV0Y2hfYW5kX3plcm8oY3R4cCkpOwo+ ID4gLSAgICAgR0VNX0JVR19PTighaTkxNV9nZW1fY29udGV4dF9pc19rZXJuZWwoY3R4KSk7Cj4g PiArICAgICAvKiBVc2luZyB0aGUgc2ltcGxlIGlkYSBpbnRlcmZhY2UsIHRoZSBtYXggaXMgbGlt aXRlZCBieSBzaXplb2YoaW50KSAqLwo+ID4gKyAgICAgQlVJTERfQlVHX09OKE1BWF9DT05URVhU X0hXX0lEID4gSU5UX01BWCk7Cj4gPiArICAgICBCVUlMRF9CVUdfT04oR0VOMTFfTUFYX0NPTlRF WFRfSFdfSUQgPiBJTlRfTUFYKTsKPiA+ICsgICAgIGlkYV9pbml0KCZpOTE1LT5jb250ZXh0cy5o d19pZGEpOwo+ID4gKyAgICAgSU5JVF9MSVNUX0hFQUQoJmk5MTUtPmNvbnRleHRzLmh3X2lkX2xp c3QpOwo+ID4gICAKPiA+IC0gICAgIGNvbnRleHRfY2xvc2UoY3R4KTsKPiA+IC0gICAgIGk5MTVf Z2VtX2NvbnRleHRfZnJlZShjdHgpOwo+ID4gKyAgICAgSU5JVF9XT1JLKCZpOTE1LT5jb250ZXh0 cy5mcmVlX3dvcmssIGNvbnRleHRzX2ZyZWVfd29ya2VyKTsKPiA+ICsgICAgIGluaXRfbGxpc3Rf aGVhZCgmaTkxNS0+Y29udGV4dHMuZnJlZV9saXN0KTsKPiAKPiB1Z2ggZGlmZi4uIDopIGxvb2tz IGxpa2UgcHVyZSBtb3ZlbWVudCBmcm9tIHBlcnNwZWN0aXZlIG9mIAo+IGRlc3Ryb3lfa2VybmVs X2NvbnRleHQuCj4gCj4gPiAgIH0KPiA+ICAgCj4gPiAgIHN0YXRpYyBib29sIG5lZWRzX3ByZWVt cHRfY29udGV4dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPiA+IEBAIC00NzAsMTQg KzUzNSw3IEBAIGludCBpOTE1X2dlbV9jb250ZXh0c19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKPiA+ICAgICAgIGlmIChyZXQpCj4gPiAgICAgICAgICAgICAgIHJldHVy biByZXQ7Cj4gPiAgIAo+ID4gLSAgICAgSU5JVF9MSVNUX0hFQUQoJmRldl9wcml2LT5jb250ZXh0 cy5saXN0KTsKPiA+IC0gICAgIElOSVRfV09SSygmZGV2X3ByaXYtPmNvbnRleHRzLmZyZWVfd29y aywgY29udGV4dHNfZnJlZV93b3JrZXIpOwo+ID4gLSAgICAgaW5pdF9sbGlzdF9oZWFkKCZkZXZf cHJpdi0+Y29udGV4dHMuZnJlZV9saXN0KTsKPiA+IC0KPiA+IC0gICAgIC8qIFVzaW5nIHRoZSBz aW1wbGUgaWRhIGludGVyZmFjZSwgdGhlIG1heCBpcyBsaW1pdGVkIGJ5IHNpemVvZihpbnQpICov Cj4gPiAtICAgICBCVUlMRF9CVUdfT04oTUFYX0NPTlRFWFRfSFdfSUQgPiBJTlRfTUFYKTsKPiA+ IC0gICAgIEJVSUxEX0JVR19PTihHRU4xMV9NQVhfQ09OVEVYVF9IV19JRCA+IElOVF9NQVgpOwo+ ID4gLSAgICAgaWRhX2luaXQoJmRldl9wcml2LT5jb250ZXh0cy5od19pZGEpOwo+ID4gKyAgICAg aW5pdF9jb250ZXh0cyhkZXZfcHJpdik7Cj4gPiAgIAo+ID4gICAgICAgLyogbG93ZXN0IHByaW9y aXR5OyBpZGxlIHRhc2sgKi8KPiA+ICAgICAgIGN0eCA9IGk5MTVfZ2VtX2NvbnRleHRfY3JlYXRl X2tlcm5lbChkZXZfcHJpdiwgSTkxNV9QUklPUklUWV9NSU4pOwo+ID4gQEAgLTQ5MCw2ICs1NDgs NyBAQCBpbnQgaTkxNV9nZW1fY29udGV4dHNfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCj4gPiAgICAgICAgKiBhbGwgdXNlciBjb250ZXh0cyB3aWxsIGhhdmUgbm9uLXpl cm8gaHdfaWQuCj4gPiAgICAgICAgKi8KPiA+ICAgICAgIEdFTV9CVUdfT04oY3R4LT5od19pZCk7 Cj4gPiArICAgICBHRU1fQlVHX09OKCFhdG9taWNfcmVhZCgmY3R4LT5waW5faHdfaWQpKTsKPiAK PiAvKiBLZXJuZWwgY29udGV4dCBpcyBwZXJtYS1waW5uZWQgKi8KPiAKPiA+ICAgICAgIGRldl9w cml2LT5rZXJuZWxfY29udGV4dCA9IGN0eDsKPiA+ICAgCj4gPiAgICAgICAvKiBoaWdoZXN0IHBy aW9yaXR5OyBwcmVlbXB0aW5nIHRhc2sgKi8KPiA+IEBAIC01MjcsNiArNTg2LDcgQEAgdm9pZCBp OTE1X2dlbV9jb250ZXh0c19maW5pKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+ID4g ICAgICAgZGVzdHJveV9rZXJuZWxfY29udGV4dCgmaTkxNS0+a2VybmVsX2NvbnRleHQpOwo+ID4g ICAKPiA+ICAgICAgIC8qIE11c3QgZnJlZSBhbGwgZGVmZXJyZWQgY29udGV4dHMgKHZpYSBmbHVz aF93b3JrcXVldWUpIGZpcnN0ICovCj4gPiArICAgICBHRU1fQlVHX09OKCFsaXN0X2VtcHR5KCZp OTE1LT5jb250ZXh0cy5od19pZF9saXN0KSk7Cj4gPiAgICAgICBpZGFfZGVzdHJveSgmaTkxNS0+ Y29udGV4dHMuaHdfaWRhKTsKPiA+ICAgfQo+ID4gICAKPiA+IEBAIC05MzIsNiArOTkyLDMzIEBA IGludCBpOTE1X2dlbV9jb250ZXh0X3Jlc2V0X3N0YXRzX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCj4gPiAgICAgICByZXR1cm4gcmV0Owo+ID4gICB9Cj4gPiAgIAo+ID4gK2ludCBfX2k5 MTVfZ2VtX2NvbnRleHRfcGluX2h3X2lkKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgpCj4g PiArewo+ID4gKyAgICAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBjdHgtPmk5MTU7 Cj4gPiArICAgICBpbnQgZXJyID0gMDsKPiA+ICsKPiA+ICsgICAgIG11dGV4X2xvY2soJmk5MTUt PmNvbnRleHRzLm11dGV4KTsKPiA+ICsKPiA+ICsgICAgIEdFTV9CVUdfT04oaTkxNV9nZW1fY29u dGV4dF9pc19jbG9zZWQoY3R4KSk7Cj4gPiArCj4gPiArICAgICBpZiAobGlzdF9lbXB0eSgmY3R4 LT5od19pZF9saW5rKSkgewo+ID4gKyAgICAgICAgICAgICBHRU1fQlVHX09OKGF0b21pY19yZWFk KCZjdHgtPnBpbl9od19pZCkpOwo+ID4gKwo+ID4gKyAgICAgICAgICAgICBlcnIgPSBhc3NpZ25f aHdfaWQoaTkxNSwgJmN0eC0+aHdfaWQpOwo+ID4gKyAgICAgICAgICAgICBpZiAoZXJyKQo+ID4g KyAgICAgICAgICAgICAgICAgICAgIGdvdG8gb3V0X3VubG9jazsKPiA+ICsKPiA+ICsgICAgICAg ICAgICAgbGlzdF9hZGRfdGFpbCgmY3R4LT5od19pZF9saW5rLCAmaTkxNS0+Y29udGV4dHMuaHdf aWRfbGlzdCk7Cj4gPiArICAgICB9Cj4gPiArCj4gPiArICAgICBHRU1fQlVHX09OKGF0b21pY19y ZWFkKCZjdHgtPnBpbl9od19pZCkgPT0gfjB1KTsKPiA+ICsgICAgIGF0b21pY19pbmMoJmN0eC0+ cGluX2h3X2lkKTsKPiA+ICsKPiA+ICtvdXRfdW5sb2NrOgo+ID4gKyAgICAgbXV0ZXhfdW5sb2Nr KCZpOTE1LT5jb250ZXh0cy5tdXRleCk7Cj4gPiArICAgICByZXR1cm4gZXJyOwo+ID4gK30KPiA+ ICsKPiA+ICAgI2lmIElTX0VOQUJMRUQoQ09ORklHX0RSTV9JOTE1X1NFTEZURVNUKQo+ID4gICAj aW5jbHVkZSAic2VsZnRlc3RzL21vY2tfY29udGV4dC5jIgo+ID4gICAjaW5jbHVkZSAic2VsZnRl c3RzL2k5MTVfZ2VtX2NvbnRleHQuYyIKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9jb250ZXh0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9j b250ZXh0LmgKPiA+IGluZGV4IDg1MWRhZDZkZWNkNy4uYzczYWM2MTRmNThjIDEwMDY0NAo+ID4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5oCj4gPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmgKPiA+IEBAIC0xMzYsNiArMTM2 LDggQEAgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgewo+ID4gICAgICAgICogaWQgZm9yIHRoZSBs aWZldGltZSBvZiB0aGUgY29udGV4dC4KPiA+ICAgICAgICAqLwo+ID4gICAgICAgdW5zaWduZWQg aW50IGh3X2lkOwo+ID4gKyAgICAgYXRvbWljX3QgcGluX2h3X2lkOwo+IAo+IEkgdGhpbmsgbm93 IHdlIG5lZWQgc2hvcnQgY29tbWVudHMgZGVzY3JpYmluZyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVu IHRoZSAKPiB0d28uCgpPbmUgaXMgMzJiaXRzIHVuc2lnbmVkLCB1bnNlcmlhbGlzZWQuIFRoZSBv dGhlciBpcyAzMmJpdHMgc2lnbmVkLCBhbmQKdmVyeSBsb29zZWx5IHNlcmlhbGlzZWQgOikKCj4g PiArICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGh3X2lkX2xpbms7Cj4gCj4gQW5kIGZvciB0aGlzIG9u ZS4KCltzbmlwXQoKPiBTbyBpbiBlc3NlbmNlIHRoZXJlIHdpbGwgYmUgYSBsaXR0bGUgYml0IG1v cmUgY29zdCB3aGVuIHBpbm5pbmcgaW4gdGhlIAo+IG5vcm1hbCBjYXNlLCBvciBhIGJpdCBiaXQg bW9yZSBpbiB0aGUgc3RlYWxpbmcvcGF0aG9sb2dpY2FsIGNhc2UsIGJ1dCBhcyAKPiBsb25nIGFz IHdlIHN0YXkgYmVsb3cgb3Zlci1zdWJzY3JpcHRpb24gdGhlIGNvc3QgaXMgb25seSBvbiBmaXJz dCBwaW4uIAo+IE5vIGNvbXBsYWludHMgdGhlcmUuIERlYnVnIGFsc28gd29uJ3QgYmUgY29uZnVz aW5nIGluIHRoZSBub3JtYWwgY2FzZSAKPiBzaW5jZSBudW1iZXJzIHdpbGwgYmUgc3RhYmxlLgoK WXVwLiBOaWNlIGFkZGl0aW9uIHRvIHRoZSBjaGFuZ2Vsb2csIHRoYW5rcy4KIAo+IERvZXMgaXQg aGF2ZSBhbnkgbmVnYXRpdmUgY29ubm90YXRpb25zIGluIHRoZSB3b3JsZCBvZiBPQSBpcyB0aGUg Cj4gcXVlc3Rpb24gZm9yIExpb25lbD8KCkxpb25lbCBrZXB0IHByb21pc2luZyBtZSB0aGlzIHdh cyBvaywgdGhhdCBoZS9ncHV0b3Agd2FzIHF1aXRlIHJlYWR5IGZvcgpzaG9ydGVyIGxpdmVkIGN0 eCBpZCwgYW5kIHJldXNlLgotQ2hyaXMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4Cg==