From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michel Thierry Subject: Re: [PATCH 3/7] drm/i915: More surgically unbreak the modeset vs reset deadlock Date: Thu, 3 Aug 2017 12:35:48 -0700 Message-ID: <87d4c03a-831d-4fe2-e74c-127cc601edcd@intel.com> References: <20170720175754.30751-1-daniel.vetter@ffwll.ch> <20170720175754.30751-4-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5C0766E262 for ; Thu, 3 Aug 2017 19:35:49 +0000 (UTC) In-Reply-To: <20170720175754.30751-4-daniel.vetter@ffwll.ch> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter , Intel Graphics Development Cc: "Vetter, Daniel" , "Kuoppala, Mika" List-Id: intel-gfx@lists.freedesktop.org SGksCgpGaXJzdCBzb3JyeSBhYm91dCB0aGUgZGVsYXkuLi4KCk9uIDcvMjAvMjAxNyAxMDo1NyBB TSwgRGFuaWVsIFZldHRlciB3cm90ZToKPiBUaGVyZSdzIG5vIHJlYXNvbiB0byBlbnRpcmVseSB3 ZWRnZSB0aGUgZ3B1LCBmb3IgdGhlIG1pbmltYWwgZGVhZGxvY2sKPiBidWdmaXggd2Ugb25seSBu ZWVkIHRvIHVuYnJlYWsvZGVjb3VwbGUgdGhlIGF0b21pYyBjb21taXQgZnJvbSB0aGUgZ3B1Cj4g cmVzZXQuIFRoZSBzaW1wbGVzdCB3YXkgdG8gZml4IHRoYXQgaXMgYnkgcmVwbGFjaW5nIHRoZQo+ IHVuY29uZGl0aW9uYWwgZmVuY2Ugd2FpdCBhIHRoZSB0b3Agb2YgY29tbWl0X3RhaWwgYnkgYSB3 YWl0IHdoaWNoCj4gY29tcGxldGVzIGVpdGhlciB3aGVuIHRoZSBmZW5jZXMgYXJlIGRvbmUgKG5v cm1hbCBjYXNlLCBvciB3aGVuIGEKPiByZXNldCBkb2Vzbid0IG5lZWQgdG8gdG91Y2ggdGhlIGRp c3BsYXkgc3RhdGUpLiBPciB3aGVuIHRoZSBncHUgcmVzZXQKPiBuZWVkcyB0byBmb3JjZS11bmJs b2NrIGFsbCBwZW5kaW5nIG1vZGVzZXQgc3RhdGVzLgo+IAo+IFRoZSBsZXNzZXIgc291cmNlIG9m IGRlYWRsb2NrcyBpcyB3aGVuIHdlIHRyeSB0byBwaW4gYSBuZXcgZnJhbWVidWZmZXIKPiBhbmQg cnVuIGludG8gYSBzdGFsbC4gVGhlcmUncyBhIGJ1bmNoIG9mIHBsYWNlcyB0aGlzIGNhbiBoYXBw ZW4sIGxpa2UKPiBldmljdGlvbiwgY2hhbmdpbmcgdGhlIGNhY2hpbmcgbW9kZSwgYWNxdWlyaW5n IGEgZmVuY2Ugb24gb2xkZXIKPiBwbGF0Zm9ybXMuIEFuZCB3ZSBjYW4ndCBqdXN0IGJyZWFrIHRo ZSBkZXBlbmN5IGxvb3AgYW5kIGtlZXAgZ29pbmcsCj4gdGhlIG9ubHkgd2F5IHdvdWxkIGJlIHRv IGJyZWFrIG91dCBhbmQgcmVzdGFydC4gQnV0IHRoZSBwcm9ibGVtIHdpdGgKPiB0aGF0IGFwcHJv YWNoIGlzIHRoYXQgd2UgbXVzdCBzdGFsbCBmb3IgdGhlIHJlc2V0IHRvIGNvbXBsZXRlIGJlZm9y ZQo+IHdlIGdyYWIgYW55IGxvY2tzLCBhbmQgd2l0aCB0aGUgYXRvbWljIGluZnJhc3RydWN0dXJl IHRoYXQncyBhIGJpdAo+IHRyaWNreS4gVGhlIG9ubHkgcGxhY2UgaXMgdGhlIGlvY3RsIGNvZGUs IGFuZCB3ZSBkb24ndCB3YW50IHRvIGluc2VydAo+IGNvZGUgaW50byBlLmcuIHRoZSBCVVNZIGlv Y3RsLiBIZW5jZSBmb3IgdGhhdCBwcm9ibGVtIGp1c3QgY3JlYXRlIGEKPiBjcml0aWNhbCBzZWN0 aW9uLCBhbmQgaWYgYW55IGNvZGUgaXMgaW4gdGhlcmUsIHdlZGdlIHRoZSBHUFUuIEZvciB0aGUK PiBzdGVhZHktc3RhdGUgdGhpcyBzaG91bGQgbmV2ZXIgYmUgYSBwcm9ibGVtLgo+IAo+IE5vdGUg dGhhdCBpbiBib3RoIGNhc2VzIFREUiBpdHNlbGYga2VlcHMgd29ya2luZywgc28gZnJvbSBhIHVz ZXJzcGFjZQo+IHBvdiB0aGlzIHRyaWNrZXJ5IGlzbid0IG9ic2VydmFibGUuIFVzZXJzIHRoZW1z ZWx2cyBtaWdodCBzcG90IGEgc2hvcnQKPiBnbGl0Y2ggd2hpbGUgdGhlIHJlbmRlcmluZyBpcyBj YXRjaGluZyB1cCBhZ2FpbiwgYnV0IHRoYXQncyBzdGlsbAo+IGJldHRlciB0aGFuIHByZS1URFIg d2hlcmUgd2UndmUgdGhyb3duIGF3YXkgYWxsIHRoZSByZW5kZXJpbmcsCj4gaW5jbHVkaW5nIGlu bm9jZW50IGJhdGNoZXMuIEFsc28sIHRoaXMgZml4ZXMgdGhlIHJlZ3Jlc3Npb24gVERSCj4gaW50 cm9kdWNlZCBvZiBtYWtpbmcgZ3B1IHJlc2V0cyBkZWFkbG9jay1wcm9uZSB3aGVuIHdlIGRvIG5l ZWQgdG8KPiB0b3VjaCB0aGUgZGlzcGxheS4KPiAKPiBPbmUgdGhpbmcgSSBub3RpY2VkIGlzIHRo YXQgZ3B1X2Vycm9yLmZsYWdzIHNlZW1zIHRvIHVzZSBib3RoIG91ciBvd24KPiB3YWl0LXF1ZXVl IGluIGdwdV9lcnJvci53YWl0X3F1ZXVlLCBhbmQgdGhlIGdlbmVyaWMgd2FpdF9vbl9iaXQKPiBm YWNpbGl0aWVzLiBOb3QgZW50aXJlbHkgc3VyZSB3aHkgdGhpcyBpbmNvbnNpc3RlbmN5IGV4aXN0 cywgSSBqdXN0Cj4gcGlja2VkIG9uZSBzdHlsZS4KPiAKPiBBIHBvc3NpYmxlIGZ1dHVyZSBhdmVu dWUgY291bGQgYmUgdG8gaW5zZXJ0IHRoZSBncHUgcmVzZXQgaW4tYmV0d2Vlbgo+IG9uZ29pbmcg bW9kZXNldCBjaGFuZ2VzLCB3aGljaCB3b3VsZCBhdm9pZCB0aGUgbW9tZW50YXJ5IGdsaXRjaC4g QnV0Cj4gdGhhdCdzIGEgbG90IG1vcmUgd29yayB0byBpbXBsZW1lbnQgaW4gdGhlIGF0b21pYyBj b21taXQgbWFjaGluZXJ5LAo+IGFuZCBnaXZlbiB0aGF0IHdlIG9ubHkgbmVlZCB0aGlzIGZvciBw cmUtZzR4IGh3LCBvZiBxdWVzdGlvbmFibGUKPiB1dGlsaXR5IGp1c3QgZm9yIHRoZSBzYWtlIG9m IHBvbGlzaGluZyBncHUgcmVzZXQgZXZlbiBtb3JlIG9uIHRob3NlCj4gb2xkIGJveGVzLiBJdCBt aWdodCBiZSB1c2VmdWwgZm9yIG90aGVyIGZlYXR1cmVzIHRob3VnaC4KPiAKPiB2MjogUmViYXNl IG9udG8gNC4xMyB3aXRoIGEgcy93YWl0X3F1ZXVlX3Qvc3RydWN0IHdhaXRfcXVldWVfZW50cnkv Lgo+IAo+IHYzOiBSZWFsbHkgZW1hYmFycmFzc2luZyBmaXh1cCwgSSBjaGVja2VkIHRoZSB3cm9u ZyBiaXQgYW5kIGJyb2tlIHRoZQo+IHVuYnJlYWsvd2FrZXVwIGxvZ2ljLgo+IAo+IHY0OiBBbHNv IGhhbmRsZSBkZWFkbG9ja3MgaW4gcGluX3RvX2Rpc3BsYXkuCj4gCj4gQ2M6IENocmlzIFdpbHNv biA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+IENjOiBNaWthIEt1b3BwYWxhIDxtaWthLmt1 b3BwYWxhQGludGVsLmNvbT4KPiBDYzogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5A bGludXguaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52 ZXR0ZXJAaW50ZWwuY29tPgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aCAgICAgIHwgIDMgKysrCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMg fCA0NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KPiAgIDIgZmlsZXMgY2hh bmdlZCwgNDIgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKPiBpbmRleCAwN2U5OGIwN2M1YmMuLjliMDU1ZGVjYTM2ZCAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaAo+IEBAIC0xNTA1LDYgKzE1MDUsOCBAQCBzdHJ1Y3QgaTkxNV9ncHVf ZXJyb3Igewo+ICAgICAgICAgIC8qIFByb3RlY3RlZCBieSB0aGUgYWJvdmUgZGV2LT5ncHVfZXJy b3IubG9jay4gKi8KPiAgICAgICAgICBzdHJ1Y3QgaTkxNV9ncHVfc3RhdGUgKmZpcnN0X2Vycm9y Owo+IAo+ICsgICAgICAgYXRvbWljX3QgcGVuZGluZ19mYl9waW47Cj4gKwo+ICAgICAgICAgIHVu c2lnbmVkIGxvbmcgbWlzc2VkX2lycV9yaW5nczsKPiAKPiAgICAgICAgICAvKioKPiBAQCAtMTU2 NCw2ICsxNTY2LDcgQEAgc3RydWN0IGk5MTVfZ3B1X2Vycm9yIHsKPiAgICAgICAgICB1bnNpZ25l ZCBsb25nIGZsYWdzOwo+ICAgI2RlZmluZSBJOTE1X1JFU0VUX0JBQ0tPRkYgICAgIDAKPiAgICNk ZWZpbmUgSTkxNV9SRVNFVF9IQU5ET0ZGICAgICAxCj4gKyNkZWZpbmUgSTkxNV9SRVNFVF9NT0RF U0VUICAgICAyCj4gICAjZGVmaW5lIEk5MTVfV0VER0VEICAgICAgICAgICAgKEJJVFNfUEVSX0xP TkcgLSAxKQo+ICAgI2RlZmluZSBJOTE1X1JFU0VUX0VOR0lORSAgICAgIChJOTE1X1dFREdFRCAt IEk5MTVfTlVNX0VOR0lORVMpCj4gCgpTaW5jZSB5b3Ugc3RpbGwgbmVlZCB0byByZXNlbmQgdGhp cywgY291bGQgeW91IGFsc28gdXBkYXRlIHRoZSAKSTkxNV9SRVNFVF9FTkdJTkUgb3ZlcmZsb3cg Y2hlY2sgaW4gaTkxNV9oYW5kbGVfZXJyb3I/IGkuZS46CgotLS1CVUlMRF9CVUdfT04oSTkxNV9S RVNFVF9IQU5ET0ZGID49IEk5MTVfUkVTRVRfRU5HSU5FKTsKKysrQlVJTERfQlVHX09OKEk5MTVf UkVTRVRfTU9ERVNFVCA+PSBJOTE1X1JFU0VUX0VOR0lORSk7CgpOb3QgdGhhdCB3ZSB3b3VsZCBo YXZlIHRoaXMgcHJvYmxlbSBhbnl0aW1lIHNvb24uLi4KCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYwo+IGluZGV4IGY2YmQ2MjgyZDdmNy4uNjNlYThkNmIyZWJkIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC0yMTYyLDYgKzIxNjIsOCBAQCBpbnRl bF9waW5fYW5kX2ZlbmNlX2ZiX29iaihzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwgdW5zaWdu ZWQgaW50IHJvdGF0aW9uKQo+ICAgICAgICAgICAqLwo+ICAgICAgICAgIGludGVsX3J1bnRpbWVf cG1fZ2V0KGRldl9wcml2KTsKPiAKPiArICAgICAgIGF0b21pY19pbmMoJmRldl9wcml2LT5ncHVf ZXJyb3IucGVuZGluZ19mYl9waW4pOwo+ICsKCkRvIHdlIGFsc28gbmVlZCB0aGlzIGluIGludGVs X292ZXJsYXlfZG9fcHV0X2ltYWdlPyBJdCBpcyBhbHNvIGJlaW5nIApjYWxsZWQgd2hlbiB0aGUg c3RydWN0X211dGV4IGlzIGhlbGQuCgoKPiAgICAgICAgICB2bWEgPSBpOTE1X2dlbV9vYmplY3Rf cGluX3RvX2Rpc3BsYXlfcGxhbmUob2JqLCBhbGlnbm1lbnQsICZ2aWV3KTsKPiAgICAgICAgICBp ZiAoSVNfRVJSKHZtYSkpCj4gICAgICAgICAgICAgICAgICBnb3RvIGVycjsKPiBAQCAtMjE4OSw2 ICsyMTkxLDggQEAgaW50ZWxfcGluX2FuZF9mZW5jZV9mYl9vYmooc3RydWN0IGRybV9mcmFtZWJ1 ZmZlciAqZmIsIHVuc2lnbmVkIGludCByb3RhdGlvbikKPiAKPiAgICAgICAgICBpOTE1X3ZtYV9n ZXQodm1hKTsKPiAgIGVycjoKPiArICAgICAgIGF0b21pY19kZWMoJmRldl9wcml2LT5ncHVfZXJy b3IucGVuZGluZ19mYl9waW4pOwo+ICsKPiAgICAgICAgICBpbnRlbF9ydW50aW1lX3BtX3B1dChk ZXZfcHJpdik7Cj4gICAgICAgICAgcmV0dXJuIHZtYTsKPiAgIH0KPiBAQCAtMzQ3MSwxMSArMzQ3 NSwxNCBAQCB2b2lkIGludGVsX3ByZXBhcmVfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQo+ICAgICAgICAgICAgICAhZ3B1X3Jlc2V0X2Nsb2JiZXJzX2Rpc3BsYXkoZGV2 X3ByaXYpKQo+ICAgICAgICAgICAgICAgICAgcmV0dXJuOwo+IAo+IC0gICAgICAgLyogV2UgaGF2 ZSBhIG1vZGVzZXQgdnMgcmVzZXQgZGVhZGxvY2ssIGRlZmVuc2l2ZWx5IHVuYnJlYWsgaXQuCj4g LSAgICAgICAgKgo+IC0gICAgICAgICogRklYTUU6IFdlIGNhbiBkbyBhIF9sb3RfIGJldHRlciwg dGhpcyBpcyBqdXN0IGEgZmlyc3QgaXRlcmF0aW9uLiovCj4gLSAgICAgICBpOTE1X2dlbV9zZXRf d2VkZ2VkKGRldl9wcml2KTsKPiAtICAgICAgIERSTV9ERUJVR19EUklWRVIoIldlZGdpbmcgR1BV IHRvIGF2b2lkIGRlYWRsb2NrcyB3aXRoIHBlbmRpbmcgbW9kZXNldCB1cGRhdGVzXG4iKTsKPiAr ICAgICAgIC8qIFdlIGhhdmUgYSBtb2Rlc2V0IHZzIHJlc2V0IGRlYWRsb2NrLCBkZWZlbnNpdmVs eSB1bmJyZWFrIGl0LiAqLwo+ICsgICAgICAgc2V0X2JpdChJOTE1X1JFU0VUX01PREVTRVQsICZk ZXZfcHJpdi0+Z3B1X2Vycm9yLmZsYWdzKTsKPiArICAgICAgIHdha2VfdXBfYWxsKCZkZXZfcHJp di0+Z3B1X2Vycm9yLndhaXRfcXVldWUpOwo+ICsKPiArICAgICAgIGlmIChhdG9taWNfcmVhZCgm ZGV2X3ByaXYtPmdwdV9lcnJvci5wZW5kaW5nX2ZiX3BpbikpIHsKPiArICAgICAgICAgICAgICAg RFJNX0RFQlVHX0tNUygiTW9kZXNldCBwb3RlbnRpYWxseSBzdHVjaywgdW5icmVha2luZyB0aHJv dWdoIHdlZGdpbmdcbiIpOwo+ICsgICAgICAgICAgICAgICBpOTE1X2dlbV9zZXRfd2VkZ2VkKGRl dl9wcml2KTsKPiArICAgICAgIH0KPiAKPiAgICAgICAgICAvKgo+ICAgICAgICAgICAqIE5lZWQg bW9kZV9jb25maWcubXV0ZXggc28gdGhhdCB3ZSBkb24ndAo+IEBAIC0zNTcwLDYgKzM1NzcsOCBA QCB2b2lkIGludGVsX2ZpbmlzaF9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCj4gICAgICAgICAgZHJtX21vZGVzZXRfZHJvcF9sb2NrcyhjdHgpOwo+ICAgICAgICAgIGRy bV9tb2Rlc2V0X2FjcXVpcmVfZmluaShjdHgpOwo+ICAgICAgICAgIG11dGV4X3VubG9jaygmZGV2 LT5tb2RlX2NvbmZpZy5tdXRleCk7Cj4gKwo+ICsgICAgICAgY2xlYXJfYml0KEk5MTVfUkVTRVRf TU9ERVNFVCwgJmRldl9wcml2LT5ncHVfZXJyb3IuZmxhZ3MpOwo+ICAgfQo+IAo+ICAgc3RhdGlj IGJvb2wgYWJvcnRfZmxpcF9vbl9yZXNldChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKCQleXl4g dGhpcyBpcyB0aGUgb25seSByZWFzb24gb2Ygd2h5IHdlIG5lZWQgYSByZWJhc2UuCgo+IEBAIC0x MjM4MSw2ICsxMjM5MCwzMCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9hdG9taWNfaGVscGVyX2ZyZWVf c3RhdGVfd29ya2VyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiAgICAgICAgICBpbnRlbF9h dG9taWNfaGVscGVyX2ZyZWVfc3RhdGUoZGV2X3ByaXYpOwo+ICAgfQo+IAo+ICtzdGF0aWMgdm9p ZCBpbnRlbF9hdG9taWNfY29tbWl0X2ZlbmNlX3dhaXQoc3RydWN0IGludGVsX2F0b21pY19zdGF0 ZSAqaW50ZWxfc3RhdGUpCj4gK3sKPiArICAgICAgIHN0cnVjdCB3YWl0X3F1ZXVlX2VudHJ5IHdh aXRfZmVuY2UsIHdhaXRfcmVzZXQ7Cj4gKyAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX3N0YXRlLT5iYXNlLmRldik7Cj4gKwo+ICsgICAgICAg aW5pdF93YWl0X2VudHJ5KCZ3YWl0X2ZlbmNlLCAwKTsKPiArICAgICAgIGluaXRfd2FpdF9lbnRy eSgmd2FpdF9yZXNldCwgMCk7Cj4gKyAgICAgICBmb3IgKDs7KSB7Cj4gKyAgICAgICAgICAgICAg IHByZXBhcmVfdG9fd2FpdCgmaW50ZWxfc3RhdGUtPmNvbW1pdF9yZWFkeS53YWl0LAo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJndhaXRfZmVuY2UsIFRBU0tfVU5JTlRFUlJVUFRJ QkxFKTsKPiArICAgICAgICAgICAgICAgcHJlcGFyZV90b193YWl0KCZkZXZfcHJpdi0+Z3B1X2Vy cm9yLndhaXRfcXVldWUsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmd2FpdF9y ZXNldCwgVEFTS19VTklOVEVSUlVQVElCTEUpOwo+ICsKPiArCj4gKyAgICAgICAgICAgICAgIGlm IChpOTE1X3N3X2ZlbmNlX2RvbmUoJmludGVsX3N0YXRlLT5jb21taXRfcmVhZHkpCj4gKyAgICAg ICAgICAgICAgICAgICB8fCB0ZXN0X2JpdChJOTE1X1JFU0VUX01PREVTRVQsICZkZXZfcHJpdi0+ Z3B1X2Vycm9yLmZsYWdzKSkKPiArICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKPiArCj4g KyAgICAgICAgICAgICAgIHNjaGVkdWxlKCk7Cj4gKyAgICAgICB9Cj4gKyAgICAgICBmaW5pc2hf d2FpdCgmaW50ZWxfc3RhdGUtPmNvbW1pdF9yZWFkeS53YWl0LCAmd2FpdF9mZW5jZSk7Cj4gKyAg ICAgICBmaW5pc2hfd2FpdCgmZGV2X3ByaXYtPmdwdV9lcnJvci53YWl0X3F1ZXVlLCAmd2FpdF9y ZXNldCk7Cj4gK30KPiArCj4gICBzdGF0aWMgdm9pZCBpbnRlbF9hdG9taWNfY29tbWl0X3RhaWwo c3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICAgewo+ICAgICAgICAgIHN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBzdGF0ZS0+ZGV2Owo+IEBAIC0xMjM5NCw3ICsxMjQyNyw3IEBAIHN0 YXRpYyB2b2lkIGludGVsX2F0b21pY19jb21taXRfdGFpbChzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSAqc3RhdGUpCj4gICAgICAgICAgdW5zaWduZWQgY3J0Y192YmxhbmtfbWFzayA9IDA7Cj4gICAg ICAgICAgaW50IGk7Cj4gCj4gLSAgICAgICBpOTE1X3N3X2ZlbmNlX3dhaXQoJmludGVsX3N0YXRl LT5jb21taXRfcmVhZHkpOwo+ICsgICAgICAgaW50ZWxfYXRvbWljX2NvbW1pdF9mZW5jZV93YWl0 KGludGVsX3N0YXRlKTsKPiAKPiAgICAgICAgICBkcm1fYXRvbWljX2hlbHBlcl93YWl0X2Zvcl9k ZXBlbmRlbmNpZXMoc3RhdGUpOwo+IAoKTG9va3MgZ29vZCB0byBtZS4KCi1NaWNoZWwKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==