From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michel Thierry Subject: Re: [PATCH 3/3] drm/i915: More surgically unbreak the modeset vs reset deadlock Date: Mon, 14 Aug 2017 07:13:59 -0700 Message-ID: <8db636ac-e714-e1e5-36a7-7fbafe16fd38@intel.com> References: <20170808080828.23650-1-daniel.vetter@ffwll.ch> <20170808080828.23650-3-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 mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id EDB1F6E18D for ; Mon, 14 Aug 2017 14:14:00 +0000 (UTC) In-Reply-To: <20170808080828.23650-3-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: Daniel Vetter , Mika Kuoppala List-Id: intel-gfx@lists.freedesktop.org T24gOC84LzIwMTcgMTowOCBBTSwgRGFuaWVsIFZldHRlciB3cm90ZToKPiBUaGVyZSdzIG5vIHJl YXNvbiB0byBlbnRpcmVseSB3ZWRnZSB0aGUgZ3B1LCBmb3IgdGhlIG1pbmltYWwgZGVhZGxvY2sK PiBidWdmaXggd2Ugb25seSBuZWVkIHRvIHVuYnJlYWsvZGVjb3VwbGUgdGhlIGF0b21pYyBjb21t aXQgZnJvbSB0aGUgZ3B1Cj4gcmVzZXQuIFRoZSBzaW1wbGVzdCB3YXkgdG8gZml4IHRoYXQgaXMg YnkgcmVwbGFjaW5nIHRoZQo+IHVuY29uZGl0aW9uYWwgZmVuY2Ugd2FpdCBhIHRoZSB0b3Agb2Yg Y29tbWl0X3RhaWwgYnkgYSB3YWl0IHdoaWNoCj4gY29tcGxldGVzIGVpdGhlciB3aGVuIHRoZSBm ZW5jZXMgYXJlIGRvbmUgKG5vcm1hbCBjYXNlLCBvciB3aGVuIGEKPiByZXNldCBkb2Vzbid0IG5l ZWQgdG8gdG91Y2ggdGhlIGRpc3BsYXkgc3RhdGUpLiBPciB3aGVuIHRoZSBncHUgcmVzZXQKPiBu ZWVkcyB0byBmb3JjZS11bmJsb2NrIGFsbCBwZW5kaW5nIG1vZGVzZXQgc3RhdGVzLgo+IAo+IFRo ZSBsZXNzZXIgc291cmNlIG9mIGRlYWRsb2NrcyBpcyB3aGVuIHdlIHRyeSB0byBwaW4gYSBuZXcg ZnJhbWVidWZmZXIKPiBhbmQgcnVuIGludG8gYSBzdGFsbC4gVGhlcmUncyBhIGJ1bmNoIG9mIHBs YWNlcyB0aGlzIGNhbiBoYXBwZW4sIGxpa2UKPiBldmljdGlvbiwgY2hhbmdpbmcgdGhlIGNhY2hp bmcgbW9kZSwgYWNxdWlyaW5nIGEgZmVuY2Ugb24gb2xkZXIKPiBwbGF0Zm9ybXMuIEFuZCB3ZSBj YW4ndCBqdXN0IGJyZWFrIHRoZSBkZXBlbmN5IGxvb3AgYW5kIGtlZXAgZ29pbmcsCj4gdGhlIG9u bHkgd2F5IHdvdWxkIGJlIHRvIGJyZWFrIG91dCBhbmQgcmVzdGFydC4gQnV0IHRoZSBwcm9ibGVt IHdpdGgKPiB0aGF0IGFwcHJvYWNoIGlzIHRoYXQgd2UgbXVzdCBzdGFsbCBmb3IgdGhlIHJlc2V0 IHRvIGNvbXBsZXRlIGJlZm9yZQo+IHdlIGdyYWIgYW55IGxvY2tzLCBhbmQgd2l0aCB0aGUgYXRv bWljIGluZnJhc3RydWN0dXJlIHRoYXQncyBhIGJpdAo+IHRyaWNreS4gVGhlIG9ubHkgcGxhY2Ug aXMgdGhlIGlvY3RsIGNvZGUsIGFuZCB3ZSBkb24ndCB3YW50IHRvIGluc2VydAo+IGNvZGUgaW50 byBlLmcuIHRoZSBCVVNZIGlvY3RsLiBIZW5jZSBmb3IgdGhhdCBwcm9ibGVtIGp1c3QgY3JlYXRl IGEKPiBjcml0aWNhbCBzZWN0aW9uLCBhbmQgaWYgYW55IGNvZGUgaXMgaW4gdGhlcmUsIHdlZGdl IHRoZSBHUFUuIEZvciB0aGUKPiBzdGVhZHktc3RhdGUgdGhpcyBzaG91bGQgbmV2ZXIgYmUgYSBw cm9ibGVtLgo+IAo+IE5vdGUgdGhhdCBpbiBib3RoIGNhc2VzIFREUiBpdHNlbGYga2VlcHMgd29y a2luZywgc28gZnJvbSBhIHVzZXJzcGFjZQo+IHBvdiB0aGlzIHRyaWNrZXJ5IGlzbid0IG9ic2Vy dmFibGUuIFVzZXJzIHRoZW1zZWx2cyBtaWdodCBzcG90IGEgc2hvcnQKPiBnbGl0Y2ggd2hpbGUg dGhlIHJlbmRlcmluZyBpcyBjYXRjaGluZyB1cCBhZ2FpbiwgYnV0IHRoYXQncyBzdGlsbAo+IGJl dHRlciB0aGFuIHByZS1URFIgd2hlcmUgd2UndmUgdGhyb3duIGF3YXkgYWxsIHRoZSByZW5kZXJp bmcsCj4gaW5jbHVkaW5nIGlubm9jZW50IGJhdGNoZXMuIEFsc28sIHRoaXMgZml4ZXMgdGhlIHJl Z3Jlc3Npb24gVERSCj4gaW50cm9kdWNlZCBvZiBtYWtpbmcgZ3B1IHJlc2V0cyBkZWFkbG9jay1w cm9uZSB3aGVuIHdlIGRvIG5lZWQgdG8KPiB0b3VjaCB0aGUgZGlzcGxheS4KPiAKPiBPbmUgdGhp bmcgSSBub3RpY2VkIGlzIHRoYXQgZ3B1X2Vycm9yLmZsYWdzIHNlZW1zIHRvIHVzZSBib3RoIG91 ciBvd24KPiB3YWl0LXF1ZXVlIGluIGdwdV9lcnJvci53YWl0X3F1ZXVlLCBhbmQgdGhlIGdlbmVy aWMgd2FpdF9vbl9iaXQKPiBmYWNpbGl0aWVzLiBOb3QgZW50aXJlbHkgc3VyZSB3aHkgdGhpcyBp bmNvbnNpc3RlbmN5IGV4aXN0cywgSSBqdXN0Cj4gcGlja2VkIG9uZSBzdHlsZS4KPiAKPiBBIHBv c3NpYmxlIGZ1dHVyZSBhdmVudWUgY291bGQgYmUgdG8gaW5zZXJ0IHRoZSBncHUgcmVzZXQgaW4t YmV0d2Vlbgo+IG9uZ29pbmcgbW9kZXNldCBjaGFuZ2VzLCB3aGljaCB3b3VsZCBhdm9pZCB0aGUg bW9tZW50YXJ5IGdsaXRjaC4gQnV0Cj4gdGhhdCdzIGEgbG90IG1vcmUgd29yayB0byBpbXBsZW1l bnQgaW4gdGhlIGF0b21pYyBjb21taXQgbWFjaGluZXJ5LAo+IGFuZCBnaXZlbiB0aGF0IHdlIG9u bHkgbmVlZCB0aGlzIGZvciBwcmUtZzR4IGh3LCBvZiBxdWVzdGlvbmFibGUKPiB1dGlsaXR5IGp1 c3QgZm9yIHRoZSBzYWtlIG9mIHBvbGlzaGluZyBncHUgcmVzZXQgZXZlbiBtb3JlIG9uIHRob3Nl Cj4gb2xkIGJveGVzLiBJdCBtaWdodCBiZSB1c2VmdWwgZm9yIG90aGVyIGZlYXR1cmVzIHRob3Vn aC4KPiAKPiB2MjogUmViYXNlIG9udG8gNC4xMyB3aXRoIGEgcy93YWl0X3F1ZXVlX3Qvc3RydWN0 IHdhaXRfcXVldWVfZW50cnkvLgo+IAo+IHYzOiBSZWFsbHkgZW1hYmFycmFzc2luZyBmaXh1cCwg SSBjaGVja2VkIHRoZSB3cm9uZyBiaXQgYW5kIGJyb2tlIHRoZQo+IHVuYnJlYWsvd2FrZXVwIGxv Z2ljLgo+IAo+IHY0OiBBbHNvIGhhbmRsZSBkZWFkbG9ja3MgaW4gcGluX3RvX2Rpc3BsYXkuCj4g Cj4gdjU6IFJldmlldyBmcm9tIE1pY2hlbDoKPiAtIEZpeHVwIHRoZSBCVUlMRF9CVUdfT04KPiAt IERvbid0IGZvcmdldCBhYm91dCB0aGUgb3ZlcmxheQo+IAoKUmV2aWV3ZWQtYnk6IE1pY2hlbCBU aGllcnJ5IDxtaWNoZWwudGhpZXJyeUBpbnRlbC5jb20+Cgo+IENjOiBNaWNoZWwgVGhpZXJyeSA8 bWljaGVsLnRoaWVycnlAaW50ZWwuY29tPgo+IENjOiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlz LXdpbHNvbi5jby51az4KPiBDYzogTWlrYSBLdW9wcGFsYSA8bWlrYS5rdW9wcGFsYUBpbnRlbC5j b20+Cj4gQ2M6IEpvb25hcyBMYWh0aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNv bT4KPiBDYzogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4gKHYyKQo+ IENjOiBNaWNoZWwgVGhpZXJyeSA8bWljaGVsLnRoaWVycnlAaW50ZWwuY29tPgo+IFNpZ25lZC1v ZmYtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwuY29tPgo+IC0tLQo+ICAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgIHwgIDMgKysrCj4gICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jICAgICAgfCAgMiArLQo+ICAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgNDYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vdmVybGF5LmMgfCAxMSArKysr KysrLS0KPiAgIDQgZmlsZXMgY2hhbmdlZCwgNTIgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25z KC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggOTA3NjAzY2JhNDQ3Li40ZTY2 OWI3NzM4ZDkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAtMTUyOCw2ICsxNTI4 LDggQEAgc3RydWN0IGk5MTVfZ3B1X2Vycm9yIHsKPiAgIAkvKiBQcm90ZWN0ZWQgYnkgdGhlIGFi b3ZlIGRldi0+Z3B1X2Vycm9yLmxvY2suICovCj4gICAJc3RydWN0IGk5MTVfZ3B1X3N0YXRlICpm aXJzdF9lcnJvcjsKPiAgIAo+ICsJYXRvbWljX3QgcGVuZGluZ19mYl9waW47Cj4gKwo+ICAgCXVu c2lnbmVkIGxvbmcgbWlzc2VkX2lycV9yaW5nczsKPiAgIAo+ICAgCS8qKgo+IEBAIC0xNTg3LDYg KzE1ODksNyBAQCBzdHJ1Y3QgaTkxNV9ncHVfZXJyb3Igewo+ICAgCXVuc2lnbmVkIGxvbmcgZmxh Z3M7Cj4gICAjZGVmaW5lIEk5MTVfUkVTRVRfQkFDS09GRgkwCj4gICAjZGVmaW5lIEk5MTVfUkVT RVRfSEFORE9GRgkxCj4gKyNkZWZpbmUgSTkxNV9SRVNFVF9NT0RFU0VUCTIKPiAgICNkZWZpbmUg STkxNV9XRURHRUQJCShCSVRTX1BFUl9MT05HIC0gMSkKPiAgICNkZWZpbmUgSTkxNV9SRVNFVF9F TkdJTkUJKEk5MTVfV0VER0VEIC0gSTkxNV9OVU1fRU5HSU5FUykKPiAgIAo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9pcnEuYwo+IGluZGV4IGNiOWY5ODU1NWM3MS4uZjE4MWYxOWU4NDM2IDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2lycS5jCj4gQEAgLTI3MzEsNyArMjczMSw3IEBAIHZvaWQgaTkxNV9oYW5k bGVfZXJyb3Ioc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAgCSAqLwo+ICAg CWlmIChpbnRlbF9oYXNfcmVzZXRfZW5naW5lKGRldl9wcml2KSkgewo+ICAgCQlmb3JfZWFjaF9l bmdpbmVfbWFza2VkKGVuZ2luZSwgZGV2X3ByaXYsIGVuZ2luZV9tYXNrLCB0bXApIHsKPiAtCQkJ QlVJTERfQlVHX09OKEk5MTVfUkVTRVRfSEFORE9GRiA+PSBJOTE1X1JFU0VUX0VOR0lORSk7Cj4g KwkJCUJVSUxEX0JVR19PTihJOTE1X1JFU0VUX01PREVTRVQgPj0gSTkxNV9SRVNFVF9FTkdJTkUp Owo+ICAgCQkJaWYgKHRlc3RfYW5kX3NldF9iaXQoSTkxNV9SRVNFVF9FTkdJTkUgKyBlbmdpbmUt PmlkLAo+ICAgCQkJCQkgICAgICZkZXZfcHJpdi0+Z3B1X2Vycm9yLmZsYWdzKSkKPiAgIAkJCQlj b250aW51ZTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gaW5kZXggZGE4ZDBk M2IyYmMyLi5iNTYzMWQ5N2EzMTcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jCj4gQEAgLTIxNTcsNiArMjE1Nyw4IEBAIGludGVsX3Bpbl9hbmRfZmVuY2VfZmJfb2JqKHN0 cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLCB1bnNpZ25lZCBpbnQgcm90YXRpb24pCj4gICAJICov Cj4gICAJaW50ZWxfcnVudGltZV9wbV9nZXQoZGV2X3ByaXYpOwo+ICAgCj4gKwlhdG9taWNfaW5j KCZkZXZfcHJpdi0+Z3B1X2Vycm9yLnBlbmRpbmdfZmJfcGluKTsKPiArCj4gICAJdm1hID0gaTkx NV9nZW1fb2JqZWN0X3Bpbl90b19kaXNwbGF5X3BsYW5lKG9iaiwgYWxpZ25tZW50LCAmdmlldyk7 Cj4gICAJaWYgKElTX0VSUih2bWEpKQo+ICAgCQlnb3RvIGVycjsKPiBAQCAtMjE4NCw2ICsyMTg2 LDggQEAgaW50ZWxfcGluX2FuZF9mZW5jZV9mYl9vYmooc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAq ZmIsIHVuc2lnbmVkIGludCByb3RhdGlvbikKPiAgIAo+ICAgCWk5MTVfdm1hX2dldCh2bWEpOwo+ ICAgZXJyOgo+ICsJYXRvbWljX2RlYygmZGV2X3ByaXYtPmdwdV9lcnJvci5wZW5kaW5nX2ZiX3Bp bik7Cj4gKwo+ICAgCWludGVsX3J1bnRpbWVfcG1fcHV0KGRldl9wcml2KTsKPiAgIAlyZXR1cm4g dm1hOwo+ICAgfQo+IEBAIC0zNDU4LDEyICszNDYyLDE0IEBAIHZvaWQgaW50ZWxfcHJlcGFyZV9y ZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gICAJICAgICFncHVfcmVz ZXRfY2xvYmJlcnNfZGlzcGxheShkZXZfcHJpdikpCj4gICAJCXJldHVybjsKPiAgIAo+IC0JLyog V2UgaGF2ZSBhIG1vZGVzZXQgdnMgcmVzZXQgZGVhZGxvY2ssIGRlZmVuc2l2ZWx5IHVuYnJlYWsg aXQuCj4gLQkgKgo+IC0JICogRklYTUU6IFdlIGNhbiBkbyBhIF9sb3RfIGJldHRlciwgdGhpcyBp cyBqdXN0IGEgZmlyc3QgaXRlcmF0aW9uLgo+IC0JICovCj4gLQlpOTE1X2dlbV9zZXRfd2VkZ2Vk KGRldl9wcml2KTsKPiAtCURSTV9ERUJVR19EUklWRVIoIldlZGdpbmcgR1BVIHRvIGF2b2lkIGRl YWRsb2NrcyB3aXRoIHBlbmRpbmcgbW9kZXNldCB1cGRhdGVzXG4iKTsKPiArCS8qIFdlIGhhdmUg YSBtb2Rlc2V0IHZzIHJlc2V0IGRlYWRsb2NrLCBkZWZlbnNpdmVseSB1bmJyZWFrIGl0LiAqLwo+ ICsJc2V0X2JpdChJOTE1X1JFU0VUX01PREVTRVQsICZkZXZfcHJpdi0+Z3B1X2Vycm9yLmZsYWdz KTsKPiArCXdha2VfdXBfYWxsKCZkZXZfcHJpdi0+Z3B1X2Vycm9yLndhaXRfcXVldWUpOwo+ICsK PiArCWlmIChhdG9taWNfcmVhZCgmZGV2X3ByaXYtPmdwdV9lcnJvci5wZW5kaW5nX2ZiX3Bpbikp IHsKPiArCQlEUk1fREVCVUdfS01TKCJNb2Rlc2V0IHBvdGVudGlhbGx5IHN0dWNrLCB1bmJyZWFr aW5nIHRocm91Z2ggd2VkZ2luZ1xuIik7Cj4gKwkJaTkxNV9nZW1fc2V0X3dlZGdlZChkZXZfcHJp dik7Cj4gKwl9Cj4gICAKPiAgIAkvKgo+ICAgCSAqIE5lZWQgbW9kZV9jb25maWcubXV0ZXggc28g dGhhdCB3ZSBkb24ndAo+IEBAIC0zNTUxLDYgKzM1NTcsOCBAQCB2b2lkIGludGVsX2ZpbmlzaF9y ZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gICAJZHJtX21vZGVzZXRf ZHJvcF9sb2NrcyhjdHgpOwo+ICAgCWRybV9tb2Rlc2V0X2FjcXVpcmVfZmluaShjdHgpOwo+ICAg CW11dGV4X3VubG9jaygmZGV2LT5tb2RlX2NvbmZpZy5tdXRleCk7Cj4gKwo+ICsJY2xlYXJfYml0 KEk5MTVfUkVTRVRfTU9ERVNFVCwgJmRldl9wcml2LT5ncHVfZXJyb3IuZmxhZ3MpOwo+ICAgfQo+ ICAgCj4gICBzdGF0aWMgdm9pZCBpbnRlbF91cGRhdGVfcGlwZV9jb25maWcoc3RydWN0IGludGVs X2NydGMgKmNydGMsCj4gQEAgLTEyMDY5LDYgKzEyMDc3LDMwIEBAIHN0YXRpYyB2b2lkIGludGVs X2F0b21pY19oZWxwZXJfZnJlZV9zdGF0ZV93b3JrZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3Jr KQo+ICAgCWludGVsX2F0b21pY19oZWxwZXJfZnJlZV9zdGF0ZShkZXZfcHJpdik7Cj4gICB9Cj4g ICAKPiArc3RhdGljIHZvaWQgaW50ZWxfYXRvbWljX2NvbW1pdF9mZW5jZV93YWl0KHN0cnVjdCBp bnRlbF9hdG9taWNfc3RhdGUgKmludGVsX3N0YXRlKQo+ICt7Cj4gKwlzdHJ1Y3Qgd2FpdF9xdWV1 ZV9lbnRyeSB3YWl0X2ZlbmNlLCB3YWl0X3Jlc2V0Owo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9zdGF0ZS0+YmFzZS5kZXYpOwo+ICsKPiArCWlu aXRfd2FpdF9lbnRyeSgmd2FpdF9mZW5jZSwgMCk7Cj4gKwlpbml0X3dhaXRfZW50cnkoJndhaXRf cmVzZXQsIDApOwo+ICsJZm9yICg7Oykgewo+ICsJCXByZXBhcmVfdG9fd2FpdCgmaW50ZWxfc3Rh dGUtPmNvbW1pdF9yZWFkeS53YWl0LAo+ICsJCQkJJndhaXRfZmVuY2UsIFRBU0tfVU5JTlRFUlJV UFRJQkxFKTsKPiArCQlwcmVwYXJlX3RvX3dhaXQoJmRldl9wcml2LT5ncHVfZXJyb3Iud2FpdF9x dWV1ZSwKPiArCQkJCSZ3YWl0X3Jlc2V0LCBUQVNLX1VOSU5URVJSVVBUSUJMRSk7Cj4gKwo+ICsK PiArCQlpZiAoaTkxNV9zd19mZW5jZV9kb25lKCZpbnRlbF9zdGF0ZS0+Y29tbWl0X3JlYWR5KQo+ ICsJCSAgICB8fCB0ZXN0X2JpdChJOTE1X1JFU0VUX01PREVTRVQsICZkZXZfcHJpdi0+Z3B1X2Vy cm9yLmZsYWdzKSkKPiArCQkJYnJlYWs7Cj4gKwo+ICsJCXNjaGVkdWxlKCk7Cj4gKwl9Cj4gKwlm aW5pc2hfd2FpdCgmaW50ZWxfc3RhdGUtPmNvbW1pdF9yZWFkeS53YWl0LCAmd2FpdF9mZW5jZSk7 Cj4gKwlmaW5pc2hfd2FpdCgmZGV2X3ByaXYtPmdwdV9lcnJvci53YWl0X3F1ZXVlLCAmd2FpdF9y ZXNldCk7Cj4gK30KPiArCj4gICBzdGF0aWMgdm9pZCBpbnRlbF9hdG9taWNfY29tbWl0X3RhaWwo c3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICAgewo+ICAgCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBzdGF0ZS0+ZGV2Owo+IEBAIC0xMjA4Miw3ICsxMjExNCw3IEBAIHN0YXRpYyB2 b2lkIGludGVsX2F0b21pY19jb21taXRfdGFpbChzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3Rh dGUpCj4gICAJdW5zaWduZWQgY3J0Y192YmxhbmtfbWFzayA9IDA7Cj4gICAJaW50IGk7Cj4gICAK PiAtCWk5MTVfc3dfZmVuY2Vfd2FpdCgmaW50ZWxfc3RhdGUtPmNvbW1pdF9yZWFkeSk7Cj4gKwlp bnRlbF9hdG9taWNfY29tbWl0X2ZlbmNlX3dhaXQoaW50ZWxfc3RhdGUpOwo+ICAgCj4gICAJZHJt X2F0b21pY19oZWxwZXJfd2FpdF9mb3JfZGVwZW5kZW5jaWVzKHN0YXRlKTsKPiAgIAo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vdmVybGF5LmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9vdmVybGF5LmMKPiBpbmRleCBiOTZhZWQ5NDFiOTcuLmFhY2UyMmU3 Y2NhYyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vdmVybGF5LmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vdmVybGF5LmMKPiBAQCAtNzk5LDkg Kzc5OSwxMyBAQCBzdGF0aWMgaW50IGludGVsX292ZXJsYXlfZG9fcHV0X2ltYWdlKHN0cnVjdCBp bnRlbF9vdmVybGF5ICpvdmVybGF5LAo+ICAgCWlmIChyZXQgIT0gMCkKPiAgIAkJcmV0dXJuIHJl dDsKPiAgIAo+ICsJYXRvbWljX2luYygmZGV2X3ByaXYtPmdwdV9lcnJvci5wZW5kaW5nX2ZiX3Bp bik7Cj4gKwo+ICAgCXZtYSA9IGk5MTVfZ2VtX29iamVjdF9waW5fdG9fZGlzcGxheV9wbGFuZShu ZXdfYm8sIDAsIE5VTEwpOwo+IC0JaWYgKElTX0VSUih2bWEpKQo+IC0JCXJldHVybiBQVFJfRVJS KHZtYSk7Cj4gKwlpZiAoSVNfRVJSKHZtYSkpIHsKPiArCQlyZXQgPSBQVFJfRVJSKHZtYSk7Cj4g KwkJZ290byBvdXRfcGluX3NlY3Rpb247Cj4gKwl9Cj4gICAKPiAgIAlyZXQgPSBpOTE1X3ZtYV9w dXRfZmVuY2Uodm1hKTsKPiAgIAlpZiAocmV0KQo+IEBAIC04ODYsNiArODkwLDkgQEAgc3RhdGlj IGludCBpbnRlbF9vdmVybGF5X2RvX3B1dF9pbWFnZShzdHJ1Y3QgaW50ZWxfb3ZlcmxheSAqb3Zl cmxheSwKPiAgIAo+ICAgb3V0X3VucGluOgo+ICAgCWk5MTVfZ2VtX29iamVjdF91bnBpbl9mcm9t X2Rpc3BsYXlfcGxhbmUodm1hKTsKPiArb3V0X3Bpbl9zZWN0aW9uOgo+ICsJYXRvbWljX2RlYygm ZGV2X3ByaXYtPmdwdV9lcnJvci5wZW5kaW5nX2ZiX3Bpbik7Cj4gKwo+ICAgCXJldHVybiByZXQ7 Cj4gICB9Cj4gICAKPiAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4Cg==