From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michel Thierry Subject: Re: [PATCH v7 02/20] drm/i915: Modify error handler for per engine hang recovery Date: Mon, 8 May 2017 11:31:08 -0700 Message-ID: <5ec0c6e1-31cf-139a-5ff3-91ca9cae6b9e@intel.com> References: <20170427231300.32841-1-michel.thierry@intel.com> <20170427231300.32841-3-michel.thierry@intel.com> <20170429141949.GC30926@nuc-i3427.alporthouse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id A793A6E2A0 for ; Mon, 8 May 2017 18:31:08 +0000 (UTC) In-Reply-To: <20170429141949.GC30926@nuc-i3427.alporthouse.com> 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, Mika Kuoppala List-Id: intel-gfx@lists.freedesktop.org Ck9uIDQvMjkvMjAxNyA3OjE5IEFNLCBDaHJpcyBXaWxzb24gd3JvdGU6Cj4gT24gVGh1LCBBcHIg MjcsIDIwMTcgYXQgMDQ6MTI6NDJQTSAtMDcwMCwgTWljaGVsIFRoaWVycnkgd3JvdGU6Cj4+IEZy b206IEFydW4gU2lsdXZlcnkgPGFydW4uc2lsdXZlcnlAbGludXguaW50ZWwuY29tPgo+Pgo+PiBU aGlzIGlzIGEgcHJlcGFyYXRvcnkgcGF0Y2ggd2hpY2ggbW9kaWZpZXMgZXJyb3IgaGFuZGxlciB0 byBkbyBwZXIgZW5naW5lCj4+IGhhbmcgcmVjb3ZlcnkuIFRoZSBhY3R1YWwgcGF0Y2ggd2hpY2gg aW1wbGVtZW50cyB0aGlzIHNlcXVlbmNlIGZvbGxvd3MKPj4gbGF0ZXIgaW4gdGhlIHNlcmllcy4g VGhlIGFpbSBpcyB0byBwcmVwYXJlIGV4aXN0aW5nIHJlY292ZXJ5IGZ1bmN0aW9uIHRvCj4+IGFk YXB0IHRvIHRoaXMgbmV3IGZ1bmN0aW9uIHdoZXJlIGFwcGxpY2FibGUgKHdoaWNoIGZhaWxzIGF0 IHRoaXMgcG9pbnQKPj4gYmVjYXVzZSBjb3JlIGltcGxlbWVudGF0aW9uIGlzIGxhY2tpbmcpIGFu ZCBjb250aW51ZSByZWNvdmVyeSB1c2luZyBsZWdhY3kKPj4gZnVsbCBncHUgcmVzZXQuCj4+Cj4+ IEEgaGVscGVyIGZ1bmN0aW9uIGlzIGFsc28gYWRkZWQgdG8gcXVlcnkgdGhlIGF2YWlsYWJpbGl0 eSBvZiBlbmdpbmUKPj4gcmVzZXQuCj4+Cj4+IFRoZSBlcnJvciBldmVudHMgYmVoYXZpb3VyIHRo YXQgYXJlIHVzZWQgdG8gbm90aWZ5IHVzZXIgb2YgcmVzZXQgYXJlCj4+IGFkYXB0ZWQgdG8gZW5n aW5lIHJlc2V0IHN1Y2ggdGhhdCBpdCBkb2Vzbid0IGJyZWFrIHVzZXJzIGxpc3RlbmluZyB0byB0 aGVzZQo+PiBldmVudHMuIEluIGxlZ2FjeSB3ZSByZXBvcnQgYW4gZXJyb3IgZXZlbnQsIGEgcmVz ZXQgZXZlbnQgYmVmb3JlIHJlc2V0dGluZwo+PiB0aGUgZ3B1IGFuZCBhIHJlc2V0IGRvbmUgZXZl bnQgbWFya2luZyB0aGUgY29tcGxldGlvbiBvZiByZXNldC4gVGhlIHNhbWUKPj4gYmVoYXZpb3Vy IGlzIGFkYXB0ZWQgYnV0IHJlc2V0IGV2ZW50IGlzIG9ubHkgZGlzcGF0Y2hlZCBvbmNlIGV2ZW4g d2hlbgo+PiBtdWx0aXBsZSBlbmdpbmVzIGFyZSBodW5nLiBGaW5hbGx5IG9uY2UgcmVzZXQgaXMg Y29tcGxldGUgd2Ugc2VuZCByZXNldAo+PiBkb25lIGV2ZW50IGFzIHVzdWFsLgo+Pgo+PiBOb3Rl IHRoYXQgdGhpcyBpbXBsZW1lbnRhdGlvbiBvZiBlbmdpbmUgcmVzZXQgaXMgZm9yIGk5MTUgZGly ZWN0bHkKPj4gc3VibWl0dGluZyB0byB0aGUgRUxTUCwgd2hlcmUgdGhlIGRyaXZlciBtYW5hZ2Vz IHRoZSBoYW5nIGRldGVjdGlvbiwKPj4gcmVjb3ZlcnkgYW5kIHJlc3VibWlzc2lvbi4gV2l0aCBH dUMgc3VibWlzc2lvbiB0aGVzZSB0YXNrcyBhcmUgc2hhcmVkCj4+IGJldHdlZW4gZHJpdmVyIGFu ZCBmaXJtd2FyZTsgaTkxNSB3aWxsIHN0aWxsIHJlc3BvbnNpYmxlIGZvciBkZXRlY3RpbmcgYQo+ PiBoYW5nLCBhbmQgd2hlbiBpdCBkb2VzIGl0IHdpbGwgaGF2ZSB0byByZXF1ZXN0IEd1QyB0byBy ZXNldCB0aGF0IEVuZ2luZSBhbmQKPj4gcmVtaW5kIHRoZSBmaXJtd2FyZSBhYm91dCB0aGUgb3V0 c3RhbmRpbmcgc3VibWlzc2lvbnMuIFRoaXMgd2lsbCBiZQo+PiBhZGRlZCBpbiBkaWZmZXJlbnQg cGF0Y2guCj4+Cj4+IHYyOiByZWJhc2UsIGFkdmVydGlzZSBlbmdpbmUgcmVzZXQgYXZhaWxhYmls aXR5IGluIHBsYXRmb3JtIGRlZmluaXRpb24sCj4+IGFkZCBub3RlIGFib3V0IEd1QyBzdWJtaXNz aW9uLgo+PiB2Mzogcy8qZW5naW5lX3Jlc2V0Ki8qcmVzZXRfZW5naW5lKi8uIChDaHJpcykKPj4g SGFuZGxlIHJlc2V0IGFzIDIgbGV2ZWwgcmVzZXRzLCBieSBmaXJzdCBnb2luZyB0byBlbmdpbmUg b25seSBhbmQgZmFsbAo+PiBiYWNraW5nIHRvIGZ1bGwvY2hpcCByZXNldCBhcyBuZWVkZWQsIGku ZS4gcmVzZXRfZW5naW5lIHdpbGwgbmVlZCB0aGUKPj4gc3RydWN0X211dGV4Lgo+PiB2NDogUGFz cyB0aGUgZW5naW5lIG1hc2sgdG8gaTkxNV9yZXNldC4gKENocmlzKQo+PiB2NTogUmViYXNlLCB1 cGRhdGUgc2VsZnRlc3RzLgo+PiB2NjogUmViYXNlLCBwcmVwYXJlIGZvciBtdXRleC1sZXNzIHJl c2V0IGVuZ2luZS4KPj4gdjc6IFBhc3MgcmVzZXRfZW5naW5lIG1hc2sgYXMgYSBmdW5jdGlvbiBw YXJhbWV0ZXIsIGFuZCBpdGVyYXRlIG92ZXIgdGhlCj4+IGVuZ2luZSBtYXNrIGZvciByZXNldF9l bmdpbmUuIChDaHJpcykKPj4KPj4gQ2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29u LmNvLnVrPgo+PiBDYzogTWlrYSBLdW9wcGFsYSA8bWlrYS5rdW9wcGFsYUBsaW51eC5pbnRlbC5j b20+Cj4+IFNpZ25lZC1vZmYtYnk6IElhbiBMaXN0ZXIgPGlhbi5saXN0ZXJAaW50ZWwuY29tPgo+ PiBTaWduZWQtb2ZmLWJ5OiBUb21hcyBFbGYgPHRvbWFzLmVsZkBpbnRlbC5jb20+Cj4+IFNpZ25l ZC1vZmYtYnk6IEFydW4gU2lsdXZlcnkgPGFydW4uc2lsdXZlcnlAbGludXguaW50ZWwuY29tPgo+ PiBTaWduZWQtb2ZmLWJ5OiBNaWNoZWwgVGhpZXJyeSA8bWljaGVsLnRoaWVycnlAaW50ZWwuY29t Pgo+PiAtLS0KPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgICAgIHwgMTUgKysr KysrKysrKysrKysrCj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICB8ICAz ICsrKwo+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyAgICAgfCAzMyArKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0KPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cGNpLmMgICAgIHwgIDUgKysrKy0KPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29y ZS5jIHwgMTEgKysrKysrKysrKysKPj4gIDUgZmlsZXMgY2hhbmdlZCwgNjMgaW5zZXJ0aW9ucygr KSwgNCBkZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4+IGluZGV4IGM3 ZDY4ZTc4OTY0Mi4uNDhjOGI2OWQ5YmRlIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMK Pj4gQEAgLTE4MDAsNiArMTgwMCw4IEBAIHZvaWQgaTkxNV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCj4+ICAJaWYgKCF0ZXN0X2JpdChJOTE1X1JFU0VUX0hBTkRPRkYs ICZlcnJvci0+ZmxhZ3MpKQo+PiAgCQlyZXR1cm47Cj4+Cj4+ICsJRFJNX0RFQlVHX0RSSVZFUigi cmVzZXR0aW5nIGNoaXBcbiIpOwo+Cj4gVGhpcyBpcyByZWR1bmRhbnQgc2luY2Ugd2UgaGF2ZSBh ICJSZXNldHRpbmcgY2hpcCIgYWxyZWFkeSBoZXJlLiBKdXN0Cj4ga2lsbCBpdC4KPgo+PiArCj4+ ICAJLyogQ2xlYXIgYW55IHByZXZpb3VzIGZhaWxlZCBhdHRlbXB0cyBhdCByZWNvdmVyeS4gVGlt ZSB0byB0cnkgYWdhaW4uICovCj4+ICAJaWYgKCFpOTE1X2dlbV91bnNldF93ZWRnZWQoZGV2X3By aXYpKQo+PiAgCQlnb3RvIHdha2V1cDsKPj4gQEAgLTE4NjMsNiArMTg2NSwxOSBAQCB2b2lkIGk5 MTVfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+PiAgCWdvdG8gZmlu aXNoOwo+PiAgfQo+Pgo+PiArLyoqCj4+ICsgKiBpOTE1X3Jlc2V0X2VuZ2luZSAtIHJlc2V0IEdQ VSBlbmdpbmUgdG8gcmVjb3ZlciBmcm9tIGEgaGFuZwo+PiArICogQGVuZ2luZTogZW5naW5lIHRv IHJlc2V0Cj4+ICsgKgo+PiArICogUmVzZXQgYSBzcGVjaWZpYyBHUFUgZW5naW5lLiBVc2VmdWwg aWYgYSBoYW5nIGlzIGRldGVjdGVkLgo+PiArICogUmV0dXJucyB6ZXJvIG9uIHN1Y2Nlc3NmdWwg cmVzZXQgb3Igb3RoZXJ3aXNlIGFuIGVycm9yIGNvZGUuCj4+ICsgKi8KPj4gK2ludCBpOTE1X3Jl c2V0X2VuZ2luZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4+ICt7Cj4+ICsJLyog RklYTUU6IHJlcGxhY2UgbWUgd2l0aCBlbmdpbmUgcmVzZXQgc2VxdWVuY2UgKi8KPj4gKwlyZXR1 cm4gLUVOT0RFVjsKPj4gK30KPj4gKwo+PiAgc3RhdGljIGludCBpOTE1X3BtX3N1c3BlbmQoc3Ry dWN0IGRldmljZSAqa2RldikKPj4gIHsKPj4gIAlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IHRvX3Bj aV9kZXYoa2Rldik7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+PiBpbmRleCBlMDZhZjQ2ZjVh NTcuLmFiN2U2ODYyNmM0OSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+IEBAIC04 MTQsNiArODE0LDcgQEAgc3RydWN0IGludGVsX2NzciB7Cj4+ICAJZnVuYyhoYXNfZGRpKTsgXAo+ PiAgCWZ1bmMoaGFzX2RlY291cGxlZF9tbWlvKTsgXAo+PiAgCWZ1bmMoaGFzX2RwX21zdCk7IFwK Pj4gKwlmdW5jKGhhc19yZXNldF9lbmdpbmUpOyBcCj4+ICAJZnVuYyhoYXNfZmJjKTsgXAo+PiAg CWZ1bmMoaGFzX2ZwZ2FfZGJnKTsgXAo+PiAgCWZ1bmMoaGFzX2Z1bGxfcHBndHQpOyBcCj4+IEBA IC0zMDE5LDYgKzMwMjAsOCBAQCBleHRlcm4gdm9pZCBpOTE1X2RyaXZlcl91bmxvYWQoc3RydWN0 IGRybV9kZXZpY2UgKmRldik7Cj4+ICBleHRlcm4gaW50IGludGVsX2dwdV9yZXNldChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBlbmdpbmVfbWFzayk7Cj4+ICBleHRlcm4g Ym9vbCBpbnRlbF9oYXNfZ3B1X3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dik7Cj4+ICBleHRlcm4gdm9pZCBpOTE1X3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdik7Cj4+ICtleHRlcm4gaW50IGk5MTVfcmVzZXRfZW5naW5lKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSk7Cj4+ICtleHRlcm4gYm9vbCBpbnRlbF9oYXNfcmVzZXRfZW5naW5l KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4+ICBleHRlcm4gaW50IGludGVs X2d1Y19yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+PiAgZXh0ZXJu IHZvaWQgaW50ZWxfZW5naW5lX2luaXRfaGFuZ2NoZWNrKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSk7Cj4+ICBleHRlcm4gdm9pZCBpbnRlbF9oYW5nY2hlY2tfaW5pdChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPj4gaW5k ZXggZmQ5N2ZlMDBjZDBkLi4zYTU5ZWYxMzY3ZWMgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfaXJxLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9p cnEuYwo+PiBAQCAtMjYzNSwxMSArMjYzNSwxMyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgZ2VuOF9p cnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcpCj4+ICAvKioKPj4gICAqIGk5MTVfcmVzZXRf YW5kX3dha2V1cCAtIGRvIHByb2Nlc3MgY29udGV4dCBlcnJvciBoYW5kbGluZyB3b3JrCj4+ICAg KiBAZGV2X3ByaXY6IGk5MTUgZGV2aWNlIHByaXZhdGUKPj4gKyAqIEBlbmdpbmVfbWFzazogZW5n aW5lKHMpIGh1bmcgLSBmb3IgcmVzZXQtZW5naW5lIG9ubHkuCj4+ICAgKgo+PiAgICogRmlyZSBh biBlcnJvciB1ZXZlbnQgc28gdXNlcnNwYWNlIGNhbiBzZWUgdGhhdCBhIGhhbmcgb3IgZXJyb3IK Pj4gICAqIHdhcyBkZXRlY3RlZC4KPj4gICAqLwo+PiAtc3RhdGljIHZvaWQgaTkxNV9yZXNldF9h bmRfd2FrZXVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPj4gK3N0YXRpYyB2 b2lkCj4+ICtpOTE1X3Jlc2V0X2FuZF93YWtldXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LCB1MzIgZW5naW5lX21hc2spCj4+ICB7Cj4+ICAJc3RydWN0IGtvYmplY3QgKmtvYmog PSAmZGV2X3ByaXYtPmRybS5wcmltYXJ5LT5rZGV2LT5rb2JqOwo+PiAgCWNoYXIgKmVycm9yX2V2 ZW50W10gPSB7IEk5MTVfRVJST1JfVUVWRU5UICI9MSIsIE5VTEwgfTsKPj4gQEAgLTI2NDgsOSAr MjY1MCwzMyBAQCBzdGF0aWMgdm9pZCBpOTE1X3Jlc2V0X2FuZF93YWtldXAoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQo+Pgo+PiAgCWtvYmplY3RfdWV2ZW50X2Vudihrb2JqLCBL T0JKX0NIQU5HRSwgZXJyb3JfZXZlbnQpOwo+Pgo+PiAtCURSTV9ERUJVR19EUklWRVIoInJlc2V0 dGluZyBjaGlwXG4iKTsKPj4gKwkvKgo+PiArCSAqIFRoaXMgZXZlbnQgbmVlZHMgdG8gYmUgc2Vu dCBiZWZvcmUgcGVyZm9ybWluZyBncHUgcmVzZXQuIFdoZW4KPj4gKwkgKiBlbmdpbmUgcmVzZXRz IGFyZSBzdXBwb3J0ZWQgd2UgaXRlcmF0ZSB0aHJvdWdoIGFsbCBlbmdpbmVzIGFuZAo+PiArCSAq IHJlc2V0IGh1bmcgZW5naW5lcyBpbmRpdmlkdWFsbHkuIFRvIGtlZXAgdGhlIGV2ZW50IGRpc3Bh dGNoCj4+ICsJICogbWVjaGFuaXNtIGNvbnNpc3RlbnQgd2l0aCBmdWxsIGdwdSByZXNldCwgdGhp cyBpcyBvbmx5IHNlbnQgb25jZQo+PiArCSAqIGV2ZW4gd2hlbiBtdWx0aXBsZSBlbmdpbmVzIGFy ZSBodW5nLiBJdCBpcyBhbHNvIHNhZmUgdG8gbW92ZSB0aGlzCj4+ICsJICogaGVyZSBiZWNhdXNl IHdoZW4gd2UgYXJlIGluIHRoaXMgZnVuY3Rpb24sIHdlIHdpbGwgZGVmaW5pdGVseQo+PiArCSAq IHBlcmZvcm0gZ3B1IHJlc2V0Lgo+PiArCSAqLwo+PiAgCWtvYmplY3RfdWV2ZW50X2Vudihrb2Jq LCBLT0JKX0NIQU5HRSwgcmVzZXRfZXZlbnQpOwo+Pgo+PiArCS8qIHRyeSBlbmdpbmUgcmVzZXQg Zmlyc3QsIGFuZCBjb250aW51ZSBpZiBmYWlsczsgbG9vayBtb20sIG5vIG11dGV4ISAqLwo+PiAr CWlmIChpbnRlbF9oYXNfcmVzZXRfZW5naW5lKGRldl9wcml2KSkgewo+PiArCQlzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmU7Cj4+ICsJCXVuc2lnbmVkIGludCB0bXA7Cj4+ICsKPj4gKwkJ Zm9yX2VhY2hfZW5naW5lX21hc2tlZChlbmdpbmUsIGRldl9wcml2LCBlbmdpbmVfbWFzaywgdG1w KSB7Cj4+ICsJCQlpZiAoaTkxNV9yZXNldF9lbmdpbmUoZW5naW5lKSA9PSAwKQo+PiArCQkJCWVu Z2luZV9tYXNrICY9IH5pbnRlbF9lbmdpbmVfZmxhZyhlbmdpbmUpOwo+PiArCQl9Cj4+ICsKPj4g KwkJaWYgKGVuZ2luZV9tYXNrKQo+PiArCQkJRFJNX1dBUk4oInBlci1lbmdpbmUgcmVzZXQgZmFp bGVkLCBwcm9tb3RpbmcgdG8gZnVsbCBncHUgcmVzZXRcbiIpOwo+PiArCQllbHNlCj4+ICsJCQln b3RvIGZpbmlzaDsKPgo+IFRoaXMgd2lsbCBsb29rIG5pY2VyIGlmIHdlIGRpZCBqdXN0IHRyeSBw ZXItZW5naW5lIHJlc2V0IGFuZCB0aGVuCj4gcXVpdGVseSBwcm9tb3RlIChpdCdzIG5vdCB0aGF0 IHF1aWV0IGFzIHdlIGRvIGdldCBsb2dnaW5nKSB0byBnbG9iYWwuCj4KPiBmb3JfZWFjaF9lbmdp bmVfbWFza2VkKCkge30KPiBpZiAoIWVuZ2luZV9tYXNrKQo+Cj4KPj4gKwl9Cj4+ICsKPj4gIAlp bnRlbF9wcmVwYXJlX3Jlc2V0KGRldl9wcml2KTsKPj4KPj4gIAlzZXRfYml0KEk5MTVfUkVTRVRf SEFORE9GRiwgJmRldl9wcml2LT5ncHVfZXJyb3IuZmxhZ3MpOwo+PiBAQCAtMjY4MCw2ICsyNzA2 LDcgQEAgc3RhdGljIHZvaWQgaTkxNV9yZXNldF9hbmRfd2FrZXVwKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKPj4gIAkJa29iamVjdF91ZXZlbnRfZW52KGtvYmosCj4+ICAJCQkJ ICAgS09CSl9DSEFOR0UsIHJlc2V0X2RvbmVfZXZlbnQpOwo+Pgo+PiArZmluaXNoOgo+PiAgCS8q Cj4+ICAJICogTm90ZTogVGhlIHdha2VfdXAgYWxzbyBzZXJ2ZXMgYXMgYSBtZW1vcnkgYmFycmll ciBzbyB0aGF0Cj4+ICAJICogd2FpdGVycyBzZWUgdGhlIHVwZGF0ZWQgdmFsdWUgb2YgdGhlIGRl dl9wcml2LT5ncHVfZXJyb3IuCj4+IEBAIC0yNzgxLDcgKzI4MDgsNyBAQCB2b2lkIGk5MTVfaGFu ZGxlX2Vycm9yKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPj4gIAkJCSAgICAg JmRldl9wcml2LT5ncHVfZXJyb3IuZmxhZ3MpKQo+PiAgCQlnb3RvIG91dDsKPj4KPj4gLQlpOTE1 X3Jlc2V0X2FuZF93YWtldXAoZGV2X3ByaXYpOwo+PiArCWk5MTVfcmVzZXRfYW5kX3dha2V1cChk ZXZfcHJpdiwgZW5naW5lX21hc2spOwo+Cj4gPyBZb3UgZG9uJ3QgbmVlZCB0byB3YWtldXAgdGhl IHN0cnVjdF9tdXRleCBzbyB3ZSBkb24ndCBuZWVkIHRoaXMgYWZ0ZXIKPiBwZXItZW5naW5lIHJl c2V0cy4gVGltZSB0byBzcGxpdCB1cCBpOTE1X3Jlc2V0X2FuZF93YWtldXAoKSwgYmVjYXVzZSB3 ZQo+IGNlcnRhaW5seSBzaG91bGRuJ3QgYmUgY2FsbGluZyBpbnRlbF9maW5pc2hfcmVzZXQoKSB3 aXRob3V0IGZpcnN0IGNhbGxpbmcKPiBpbnRlbF9wcmVwYXJlX3Jlc2V0KCkuIFdoaWNoIGlzIHJp Z2h0IGhlcmUgaW4gbXkgdHJlZS4uLgo+CgpMb29raW5nIGF0IHlvdXIgdHJlZSwgaXQgd291bGRu J3QgY2FsbCBmaW5pc2hfcmVzZXQgdGhlcmUgZWl0aGVyLCBvbmx5IAp0aGVzZSB0d28gYXJlIGNh bGxlZCBhZnRlciBhIHN1Y2Nlc3NmdWwgcmVzZXQ6CgpmaW5pc2g6CgljbGVhcl9iaXQoSTkxNV9S RVNFVF9CQUNLT0ZGLCAmZGV2X3ByaXYtPmdwdV9lcnJvci5mbGFncyk7Cgl3YWtlX3VwX2FsbCgm ZGV2X3ByaXYtPmdwdV9lcnJvci5yZXNldF9xdWV1ZSk7CgpCdXQgeW91J3JlIHJpZ2h0LCB3ZSBv bmx5IG5lZWQgdG8gY2xlYXIgdGhlIGVycm9yIGZsYWcsIG5vIG5lZWQgdG8gY2FsbCAKd2FrZV91 cF9hbGwuCgpTaG91bGQgSSBtb3ZlIHRoZSBwZXItZW5naW5lIHJlc2V0IHRvIGk5MTVfaGFuZGxl X2Vycm9yLCBhbmQgdGhlbiBsZWF2ZSAKaTkxNV9yZXNldF9hbmRfd2FrZXVwIGp1c3QgZm9yIGZ1 bGwgcmVzZXRzPwpUaGF0IHdvdWxkIGFsc28gbWFrZSB0aGUgcHJvbW90aW9uIGZyb20gcGVyLWVu Z2luZSB0byBnbG9iYWwgbG9vayBhIGJpdCAKJ2NsZWFyZXInLgoKVGhhbmtzLAoKPj4gKy8qCj4+ ICsgKiBXaGVuIEd1QyBzdWJtaXNzaW9uIGlzIGVuYWJsZWQsIEd1QyBtYW5hZ2VzIEVMU1AgYW5k IGNhbiBpbml0aWF0ZSB0aGUKPj4gKyAqIGVuZ2luZSByZXNldCB0b28uIEZvciBub3csIGZhbGwg YmFjayB0byBmdWxsIEdQVSByZXNldCBpZiBpdCBpcyBlbmFibGVkLgo+PiArICovCj4+ICtib29s IGludGVsX2hhc19yZXNldF9lbmdpbmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQo+PiArewo+PiArCXJldHVybiAoZGV2X3ByaXYtPmluZm8uaGFzX3Jlc2V0X2VuZ2luZSAmJgo+ PiArCQkhZGV2X3ByaXYtPmd1Yy5leGVjYnVmX2NsaWVudCAmJgo+PiArCQlpOTE1LnJlc2V0ID09 IDIpOwo+Cj4gaTkxNS5yZXNldCA+PSAyCj4gLUNocmlzCj4KX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==