From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] drm/i915: Add a way to test the modeset done during gpu reset. Date: Tue, 5 Apr 2016 16:01:50 +0300 Message-ID: <20160405130150.GT4329@intel.com> References: <1459853797-30180-1-git-send-email-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1459853797-30180-1-git-send-email-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst Cc: intel-gfx@lists.freedesktop.org, drm-intel-fixes@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBBcHIgMDUsIDIwMTYgYXQgMTI6NTY6MzdQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gQWRkIGZvcmNlX3Jlc2V0X21vZGVzZXRfdGVzdCBhcyBhIHBhcmFtZXRlciB0 byBmb3JjZSB0aGUgbW9kZXNldCBwYXRoIGR1cmluZyBncHUgcmVzZXQuCj4gVGhpcyBhbGxvd3Mg YSBJR1QgdGVzdCB0byBzZXQgdGhlIGtub2IgYW5kIHRyaWdnZXIgYSBoYW5nIHRvIGZvcmNlIHRo ZSBncHUgcmVzZXQuCj4gCj4gU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0 ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KPiBGaXhlczogZTJjOGI4NzAxZTJkICgiZHJt L2k5MTU6IFVzZSBhdG9taWMgaGVscGVycyBmb3Igc3VzcGVuZCwgdjIuIikKPiBDYzogZHJtLWlu dGVsLWZpeGVzQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwoKU2VlbXMgbGlrZSB0aGlzIHNob3VsZCBi ZSB0d28gcGF0Y2hlczsgT25lIHRvIGZpeCB0aGUgbG9ja2luZyBhbmQKYW5vdGhlciB0byBhZGQg dGhlIGRlYnVnIGtub2IuCgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFt cy5jICAgfCAgIDYgKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wYXJhbXMuaCAgIHwg ICAxICsKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgMTYxICsrKysr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tCj4gIDMgZmlsZXMgY2hhbmdlZCwgMTE2IGlu c2VydGlvbnMoKyksIDUyIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wYXJh bXMuYwo+IGluZGV4IDE3NzlmMDJlNmRmOC4uODBjZTU4MTc5M2RjIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFyYW1zLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3BhcmFtcy5jCj4gQEAgLTQ1LDYgKzQ1LDcgQEAgc3RydWN0IGk5MTVfcGFyYW1z IGk5MTUgX19yZWFkX21vc3RseSA9IHsKPiAgCS5mYXN0Ym9vdCA9IDAsCj4gIAkucHJlZmF1bHRf ZGlzYWJsZSA9IDAsCj4gIAkubG9hZF9kZXRlY3RfdGVzdCA9IDAsCj4gKwkuZm9yY2VfcmVzZXRf bW9kZXNldF90ZXN0ID0gMCwKPiAgCS5yZXNldCA9IHRydWUsCj4gIAkuaW52ZXJ0X2JyaWdodG5l c3MgPSAwLAo+ICAJLmRpc2FibGVfZGlzcGxheSA9IDAsCj4gQEAgLTE1OCw2ICsxNTksMTEgQEAg TU9EVUxFX1BBUk1fREVTQyhsb2FkX2RldGVjdF90ZXN0LAo+ICAJIkZvcmNlLWVuYWJsZSB0aGUg VkdBIGxvYWQgZGV0ZWN0IGNvZGUgZm9yIHRlc3RpbmcgKGRlZmF1bHQ6ZmFsc2UpLiAiCj4gIAki Rm9yIGRldmVsb3BlcnMgb25seS4iKTsKPiAgCj4gK21vZHVsZV9wYXJhbV9uYW1lZF91bnNhZmUo Zm9yY2VfcmVzZXRfbW9kZXNldF90ZXN0LCBpOTE1LmZvcmNlX3Jlc2V0X21vZGVzZXRfdGVzdCwg Ym9vbCwgMDYwMCk7Cj4gK01PRFVMRV9QQVJNX0RFU0MoZm9yY2VfcmVzZXRfbW9kZXNldF90ZXN0 LAo+ICsJIkZvcmNlIGEgbW9kZXNldCBkdXJpbmcgZ3B1IHJlc2V0IGZvciB0ZXN0aW5nIChkZWZh dWx0OmZhbHNlKS4gIgo+ICsJIkZvciBkZXZlbG9wZXJzIG9ubHkuIik7Cj4gKwo+ICBtb2R1bGVf cGFyYW1fbmFtZWRfdW5zYWZlKGludmVydF9icmlnaHRuZXNzLCBpOTE1LmludmVydF9icmlnaHRu ZXNzLCBpbnQsIDA2MDApOwo+ICBNT0RVTEVfUEFSTV9ERVNDKGludmVydF9icmlnaHRuZXNzLAo+ ICAJIkludmVydCBiYWNrbGlnaHQgYnJpZ2h0bmVzcyAiCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcGFyYW1zLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Bh cmFtcy5oCj4gaW5kZXggMDJiYzI3ODA0MjkxLi4zOTM0YzQzMDA0MjcgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wYXJhbXMuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcGFyYW1zLmgKPiBAQCAtNTUsNiArNTUsNyBAQCBzdHJ1Y3QgaTkxNV9wYXJh bXMgewo+ICAJYm9vbCBmYXN0Ym9vdDsKPiAgCWJvb2wgcHJlZmF1bHRfZGlzYWJsZTsKPiAgCWJv b2wgbG9hZF9kZXRlY3RfdGVzdDsKPiArCWJvb2wgZm9yY2VfcmVzZXRfbW9kZXNldF90ZXN0Owo+ ICAJYm9vbCByZXNldDsKPiAgCWJvb2wgZGlzYWJsZV9kaXNwbGF5Owo+ICAJYm9vbCBlbmFibGVf Z3VjX3N1Ym1pc3Npb247Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IGluZGV4 IGFmNzRjZGJhNzA4MS4uYWNjYTA4Nzk3MTIzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYwo+IEBAIC0zMTE5LDI3ICszMTE5LDk0IEBAIHN0YXRpYyB2b2lkIGludGVsX3Vw ZGF0ZV9wcmltYXJ5X3BsYW5lcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJfQo+ICB9Cj4g IAo+ICtzdGF0aWMgaW50Cj4gK19faW50ZWxfZGlzcGxheV9yZXN1bWUoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKPiArCQkgICAgICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ICsJ CSAgICAgICBib29sICpzZXR1cCkKPiArewo+ICsJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRj X3N0YXRlOwo+ICsJc3RydWN0IGRybV9jcnRjICpjcnRjOwo+ICsJaW50IGk7Cj4gKwo+ICsJaWYg KCFzZXR1cCB8fCAhKnNldHVwKSB7Cj4gKwkJaWYgKHNldHVwKQo+ICsJCQkqc2V0dXAgPSB0cnVl Owo+ICsKPiArCQlpbnRlbF9tb2Rlc2V0X3NldHVwX2h3X3N0YXRlKGRldik7Cj4gKwkJaTkxNV9y ZWRpc2FibGVfdmdhKGRldik7Cj4gKwl9Cj4gKwo+ICsJaWYgKCFzdGF0ZSkKPiArCQlyZXR1cm4g MDsKPiArCj4gKwlmb3JfZWFjaF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRl LCBpKSB7Cj4gKwkJLyoKPiArCQkgKiBGb3JjZSByZWNhbGN1bGF0aW9uIGV2ZW4gaWYgd2UgcmVz dG9yZQo+ICsJCSAqIGN1cnJlbnQgc3RhdGUuIFdpdGggZmFzdCBtb2Rlc2V0IHRoaXMgbWF5IG5v dCByZXN1bHQKPiArCQkgKiBpbiBhIG1vZGVzZXQgd2hlbiB0aGUgc3RhdGUgaXMgY29tcGF0aWJs ZS4KPiArCQkgKi8KPiArCQljcnRjX3N0YXRlLT5tb2RlX2NoYW5nZWQgPSB0cnVlOwo+ICsJfQo+ ICsKPiArCXJldHVybiBkcm1fYXRvbWljX2NvbW1pdChzdGF0ZSk7Cj4gK30KPiArCj4gIHZvaWQg aW50ZWxfcHJlcGFyZV9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICB7Cj4gKwlib29s IHJlcXVpcmVzX2Rpc3BsYXlfcmVzZXQgPSB0cnVlOwo+ICsJc3RydWN0IGRybV9hdG9taWNfc3Rh dGUgKnN0YXRlOwo+ICsJc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpwY3R4Owo+ICsJ aW50IHJldDsKPiArCj4gIAkvKiBubyByZXNldCBzdXBwb3J0IGZvciBnZW4yICovCj4gIAlpZiAo SVNfR0VOMihkZXYpKQo+ICAJCXJldHVybjsKPiAgCj4gIAkvKiByZXNldCBkb2Vzbid0IHRvdWNo IHRoZSBkaXNwbGF5ICovCj4gLQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gNSB8fCBJU19H NFgoZGV2KSkKPiAtCQlyZXR1cm47Cj4gKwlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gNSB8 fCBJU19HNFgoZGV2KSkgewo+ICsJCWlmICghaTkxNS5mb3JjZV9yZXNldF9tb2Rlc2V0X3Rlc3Qp Cj4gKwkJCXJldHVybjsKPiArCj4gKwkJcmVxdWlyZXNfZGlzcGxheV9yZXNldCA9IGZhbHNlOwoK Q2FuJ3Qgd2UganVzdCBydW4gdGhlIGZ1bGwgY29kZSBvbiBnNHgrIGFueXdheT8gV291bGQgbGVh dmUgdGhlIGNvZGUKbXVjaCBzaW1wbGVyLgoKPiArCX0KPiAgCj4gIAlkcm1fbW9kZXNldF9sb2Nr X2FsbChkZXYpOwo+ICsJcGN0eCA9IGRldi0+bW9kZV9jb25maWcuYWNxdWlyZV9jdHg7CgpwY3R4 IG1ha2VzIG1lIHRoaW5rIG9mIHBvd2VyIGNvbnRleHQuCgo+ICsKPiAgCS8qCj4gIAkgKiBEaXNh YmxpbmcgdGhlIGNydGNzIGdyYWNlZnVsbHkgc2VlbXMgbmljZXIuIEFsc28gdGhlCj4gIAkgKiBn MzMgZG9jcyBzYXkgd2Ugc2hvdWxkIGF0IGxlYXN0IGRpc2FibGUgYWxsIHRoZSBwbGFuZXMuCj4g IAkgKi8KPiAtCWludGVsX2Rpc3BsYXlfc3VzcGVuZChkZXYpOwo+ICsKPiArCXN0YXRlID0gZHJt X2F0b21pY19oZWxwZXJfZHVwbGljYXRlX3N0YXRlKGRldiwgcGN0eCk7Cj4gKwlpZiAoSVNfRVJS KHN0YXRlKSkgewo+ICsJCXJldCA9IFBUUl9FUlIoc3RhdGUpOwo+ICsJCXN0YXRlID0gTlVMTDsK PiArCQlEUk1fRVJST1IoIkR1cGxpY2F0aW5nIHN0YXRlIGZhaWxlZCB3aXRoICVpXG4iLCByZXQp Owo+ICsJCWdvdG8gZXJyOwo+ICsJfQo+ICsKPiArCXJldCA9IGRybV9hdG9taWNfaGVscGVyX2Rp c2FibGVfYWxsKGRldiwgcGN0eCk7Cj4gKwlpZiAocmV0KSB7Cj4gKwkJRFJNX0VSUk9SKCJTdXNw ZW5kaW5nIGNydGMncyBmYWlsZWQgd2l0aCAlaVxuIiwgcmV0KTsKPiArCQlnb3RvIGVycjsKPiAr CX0KPiArCj4gKwl0b19pOTE1KGRldiktPm1vZGVzZXRfcmVzdG9yZV9zdGF0ZSA9IHN0YXRlOwo+ ICsJcmV0dXJuOwo+ICsKPiArZXJyOgo+ICsJZHJtX2F0b21pY19zdGF0ZV9mcmVlKHN0YXRlKTsK PiArCWlmICghcmVxdWlyZXNfZGlzcGxheV9yZXNldCkKPiArCQlkcm1fbW9kZXNldF91bmxvY2tf YWxsKGRldik7Cj4gIH0KPiAgCj4gIHZvaWQgaW50ZWxfZmluaXNoX3Jlc2V0KHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZGV2KTsKPiArCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IGRldl9w cml2LT5tb2Rlc2V0X3Jlc3RvcmVfc3RhdGU7Cj4gKwlib29sIGhwZF9pbml0Owo+ICsJaW50IHJl dDsKPiAgCj4gIAkvKgo+ICAJICogRmxpcHMgaW4gdGhlIHJpbmdzIHdpbGwgYmUgbnVrZWQgYnkg dGhlIHJlc2V0LAo+IEBAIC0zMTU0LDM2ICszMjIxLDQ4IEBAIHZvaWQgaW50ZWxfZmluaXNoX3Jl c2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAo+ICAJLyogcmVzZXQgZG9lc24ndCB0b3Vj aCB0aGUgZGlzcGxheSAqLwo+ICAJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDUgfHwgSVNf RzRYKGRldikpIHsKPiArCQlocGRfaW5pdCA9IGZhbHNlOwo+ICsKPiArCQlpZiAoIXN0YXRlKSB7 Cj4gKwkJCS8qCj4gKwkJCSAqIEZsaXBzIGluIHRoZSByaW5ncyBoYXZlIGJlZW4gbnVrZWQgYnkg dGhlIHJlc2V0LAo+ICsJCQkgKiBzbyB1cGRhdGUgdGhlIGJhc2UgYWRkcmVzcyBvZiBhbGwgcHJp bWFyeQo+ICsJCQkgKiBwbGFuZXMgdG8gdGhlIHRoZSBsYXN0IGZiIHRvIG1ha2Ugc3VyZSB3ZSdy ZQo+ICsJCQkgKiBzaG93aW5nIHRoZSBjb3JyZWN0IGZiIGFmdGVyIGEgcmVzZXQuCj4gKwkJCSAq Cj4gKwkJCSAqIEZJWE1FOiBBdG9taWMgd2lsbCBtYWtlIHRoaXMgb2Jzb2xldGUgc2luY2Ugd2Ug d29uJ3Qgc2NoZWR1bGUKPiArCQkJICogQ1MtYmFzZWQgZmxpcHMgKHdoaWNoIG1pZ2h0IGdldCBs b3N0IGluIGdwdSByZXNldHMpIGFueSBtb3JlLgo+ICsJCQkgKi8KPiArCQkJaW50ZWxfdXBkYXRl X3ByaW1hcnlfcGxhbmVzKGRldik7Cj4gKwkJCXJldHVybjsKPiArCQl9Cj4gKwl9IGVsc2Ugewo+ ICAJCS8qCj4gLQkJICogRmxpcHMgaW4gdGhlIHJpbmdzIGhhdmUgYmVlbiBudWtlZCBieSB0aGUg cmVzZXQsCj4gLQkJICogc28gdXBkYXRlIHRoZSBiYXNlIGFkZHJlc3Mgb2YgYWxsIHByaW1hcnkK PiAtCQkgKiBwbGFuZXMgdG8gdGhlIHRoZSBsYXN0IGZiIHRvIG1ha2Ugc3VyZSB3ZSdyZQo+IC0J CSAqIHNob3dpbmcgdGhlIGNvcnJlY3QgZmIgYWZ0ZXIgYSByZXNldC4KPiAtCQkgKgo+IC0JCSAq IEZJWE1FOiBBdG9taWMgd2lsbCBtYWtlIHRoaXMgb2Jzb2xldGUgc2luY2Ugd2Ugd29uJ3Qgc2No ZWR1bGUKPiAtCQkgKiBDUy1iYXNlZCBmbGlwcyAod2hpY2ggbWlnaHQgZ2V0IGxvc3QgaW4gZ3B1 IHJlc2V0cykgYW55IG1vcmUuCj4gKwkJICogVGhlIGRpc3BsYXkgaGFzIGJlZW4gcmVzZXQgYXMg d2VsbCwKPiArCQkgKiBzbyBuZWVkIGEgZnVsbCByZS1pbml0aWFsaXphdGlvbi4KPiAgCQkgKi8K PiAtCQlpbnRlbF91cGRhdGVfcHJpbWFyeV9wbGFuZXMoZGV2KTsKPiAtCQlyZXR1cm47Cj4gLQl9 Cj4gKwkJaHBkX2luaXQgPSB0cnVlOwo+ICsJCWludGVsX3J1bnRpbWVfcG1fZGlzYWJsZV9pbnRl cnJ1cHRzKGRldl9wcml2KTsKPiArCQlpbnRlbF9ydW50aW1lX3BtX2VuYWJsZV9pbnRlcnJ1cHRz KGRldl9wcml2KTsKPiAgCj4gLQkvKgo+IC0JICogVGhlIGRpc3BsYXkgaGFzIGJlZW4gcmVzZXQg YXMgd2VsbCwKPiAtCSAqIHNvIG5lZWQgYSBmdWxsIHJlLWluaXRpYWxpemF0aW9uLgo+IC0JICov Cj4gLQlpbnRlbF9ydW50aW1lX3BtX2Rpc2FibGVfaW50ZXJydXB0cyhkZXZfcHJpdik7Cj4gLQlp bnRlbF9ydW50aW1lX3BtX2VuYWJsZV9pbnRlcnJ1cHRzKGRldl9wcml2KTsKPiArCQlpbnRlbF9t b2Rlc2V0X2luaXRfaHcoZGV2KTsKPiAgCj4gLQlpbnRlbF9tb2Rlc2V0X2luaXRfaHcoZGV2KTsK PiArCQlzcGluX2xvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwo+ICsJCWlmIChkZXZfcHJp di0+ZGlzcGxheS5ocGRfaXJxX3NldHVwKQo+ICsJCQlkZXZfcHJpdi0+ZGlzcGxheS5ocGRfaXJx X3NldHVwKGRldik7Cj4gKwkJc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwo+ ICsJfQo+ICAKPiAtCXNwaW5fbG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9jayk7Cj4gLQlpZiAo ZGV2X3ByaXYtPmRpc3BsYXkuaHBkX2lycV9zZXR1cCkKPiAtCQlkZXZfcHJpdi0+ZGlzcGxheS5o cGRfaXJxX3NldHVwKGRldik7Cj4gLQlzcGluX3VubG9ja19pcnEoJmRldl9wcml2LT5pcnFfbG9j ayk7Cj4gKwlkZXZfcHJpdi0+bW9kZXNldF9yZXN0b3JlX3N0YXRlID0gTlVMTDsKPiArCWlmIChz dGF0ZSkKPiArCQlzdGF0ZS0+YWNxdWlyZV9jdHggPSBkZXYtPm1vZGVfY29uZmlnLmFjcXVpcmVf Y3R4Owo+ICAKPiAtCWludGVsX2Rpc3BsYXlfcmVzdW1lKGRldik7Cj4gKwlyZXQgPSBfX2ludGVs X2Rpc3BsYXlfcmVzdW1lKGRldiwgc3RhdGUsIE5VTEwpOwo+ICsJaWYgKHJldCkKPiArCQlEUk1f RVJST1IoIlJlc3RvcmluZyBvbGQgc3RhdGUgZmFpbGVkIHdpdGggJWlcbiIsIHJldCk7Cj4gIAo+ IC0JaW50ZWxfaHBkX2luaXQoZGV2X3ByaXYpOwo+ICsJaWYgKGhwZF9pbml0KQo+ICsJCWludGVs X2hwZF9pbml0KGRldl9wcml2KTsKPiAgCj4gIAlkcm1fbW9kZXNldF91bmxvY2tfYWxsKGRldik7 Cj4gIH0KPiBAQCAtMTU4NzYsNiArMTU5NTUsOCBAQCB2b2lkIGludGVsX2Rpc3BsYXlfcmVzdW1l KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAlib29sIHNldHVwID0gZmFsc2U7Cj4gIAo+ICAJ ZGV2X3ByaXYtPm1vZGVzZXRfcmVzdG9yZV9zdGF0ZSA9IE5VTEw7Cj4gKwlpZiAoc3RhdGUpCj4g KwkJc3RhdGUtPmFjcXVpcmVfY3R4ID0gJmN0eDsKPiAgCj4gIAkvKgo+ICAJICogVGhpcyBpcyBh IGNsdWRnZSBiZWNhdXNlIHdpdGggcmVhbCBhdG9taWMgbW9kZXNldCBtb2RlX2NvbmZpZy5tdXRl eAo+IEBAIC0xNTg4OCwzMiArMTU5NjksOCBAQCB2b2lkIGludGVsX2Rpc3BsYXlfcmVzdW1lKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAo+ICByZXRyeToKPiAgCXJldCA9IGRybV9tb2Rlc2V0 X2xvY2tfYWxsX2N0eChkZXYsICZjdHgpOwo+IC0KPiAtCWlmIChyZXQgPT0gMCAmJiAhc2V0dXAp IHsKPiAtCQlzZXR1cCA9IHRydWU7Cj4gLQo+IC0JCWludGVsX21vZGVzZXRfc2V0dXBfaHdfc3Rh dGUoZGV2KTsKPiAtCQlpOTE1X3JlZGlzYWJsZV92Z2EoZGV2KTsKPiAtCX0KPiAtCj4gLQlpZiAo cmV0ID09IDAgJiYgc3RhdGUpIHsKPiAtCQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3Rh dGU7Cj4gLQkJc3RydWN0IGRybV9jcnRjICpjcnRjOwo+IC0JCWludCBpOwo+IC0KPiAtCQlzdGF0 ZS0+YWNxdWlyZV9jdHggPSAmY3R4Owo+IC0KPiAtCQlmb3JfZWFjaF9jcnRjX2luX3N0YXRlKHN0 YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKSB7Cj4gLQkJCS8qCj4gLQkJCSAqIEZvcmNlIHJlY2Fs Y3VsYXRpb24gZXZlbiBpZiB3ZSByZXN0b3JlCj4gLQkJCSAqIGN1cnJlbnQgc3RhdGUuIFdpdGgg ZmFzdCBtb2Rlc2V0IHRoaXMgbWF5IG5vdCByZXN1bHQKPiAtCQkJICogaW4gYSBtb2Rlc2V0IHdo ZW4gdGhlIHN0YXRlIGlzIGNvbXBhdGlibGUuCj4gLQkJCSAqLwo+IC0JCQljcnRjX3N0YXRlLT5t b2RlX2NoYW5nZWQgPSB0cnVlOwo+IC0JCX0KPiAtCj4gLQkJcmV0ID0gZHJtX2F0b21pY19jb21t aXQoc3RhdGUpOwo+IC0JfQo+ICsJaWYgKCFyZXQpCj4gKwkJcmV0ID0gX19pbnRlbF9kaXNwbGF5 X3Jlc3VtZShkZXYsIHN0YXRlLCAmc2V0dXApOwo+ICAKPiAgCWlmIChyZXQgPT0gLUVERUFETEsp IHsKPiAgCQlkcm1fbW9kZXNldF9iYWNrb2ZmKCZjdHgpOwo+IC0tIAo+IDIuMS4wCj4gCj4gX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZngg bWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKVmls bGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZngK