From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH] drm/i915/selftests: Teach workarounds to take intel_gt as its argument Date: Wed, 16 Oct 2019 13:41:33 +0100 Message-ID: References: <20191016114902.24388-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id F100B6E965 for ; Wed, 16 Oct 2019 12:41:38 +0000 (UTC) In-Reply-To: <20191016114902.24388-1-chris@chris-wilson.co.uk> 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: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDE2LzEwLzIwMTkgMTI6NDksIENocmlzIFdpbHNvbiB3cm90ZToKPiBUaGUgd29ya2Fyb3Vu ZHMgc2VsZnRlc3RzIGFyZSBoYXJkd2FyZSBjZW50cmljIGFuZCBzbyB3YW50IHRvIHVzZSB0aGUg Z3QKPiBhcyBpdHMgdGFyZ2V0Lgo+IAo+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hy aXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+IENjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3Vs aW5AaW50ZWwuY29tPgo+IC0tLQo+ICAgLi4uL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF93b3Jr YXJvdW5kcy5jICAgIHwgMTI4ICsrKysrKysrKy0tLS0tLS0tLQo+ICAgMSBmaWxlIGNoYW5nZWQs IDY1IGluc2VydGlvbnMoKyksIDYzIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF93b3JrYXJvdW5kcy5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3Qvc2VsZnRlc3Rfd29ya2Fyb3VuZHMuYwo+IGluZGV4IGRjMTFmN2FkNTBhMi4u ODg1NmM2YzQ2Y2M0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0 ZXN0X3dvcmthcm91bmRzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVz dF93b3JrYXJvdW5kcy5jCj4gQEAgLTU4LDcgKzU4LDcgQEAgc3RhdGljIGludCByZXF1ZXN0X2Fk ZF9zcGluKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCBzdHJ1Y3QgaWd0X3NwaW5uZXIgKnNwaW4p Cj4gICB9Cj4gICAKPiAgIHN0YXRpYyB2b2lkCj4gLXJlZmVyZW5jZV9saXN0c19pbml0KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1LCBzdHJ1Y3Qgd2FfbGlzdHMgKmxpc3RzKQo+ICtyZWZl cmVuY2VfbGlzdHNfaW5pdChzdHJ1Y3QgaW50ZWxfZ3QgKmd0LCBzdHJ1Y3Qgd2FfbGlzdHMgKmxp c3RzKQo+ICAgewo+ICAgCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKPiAgIAllbnVt IGludGVsX2VuZ2luZV9pZCBpZDsKPiBAQCAtNjYsMTAgKzY2LDEwIEBAIHJlZmVyZW5jZV9saXN0 c19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCBzdHJ1Y3Qgd2FfbGlzdHMgKmxp c3RzKQo+ICAgCW1lbXNldChsaXN0cywgMCwgc2l6ZW9mKCpsaXN0cykpOwo+ICAgCj4gICAJd2Ff aW5pdF9zdGFydCgmbGlzdHMtPmd0X3dhX2xpc3QsICJHVF9SRUYiLCAiZ2xvYmFsIik7Cj4gLQln dF9pbml0X3dvcmthcm91bmRzKGk5MTUsICZsaXN0cy0+Z3Rfd2FfbGlzdCk7Cj4gKwlndF9pbml0 X3dvcmthcm91bmRzKGd0LT5pOTE1LCAmbGlzdHMtPmd0X3dhX2xpc3QpOwo+ICAgCXdhX2luaXRf ZmluaXNoKCZsaXN0cy0+Z3Rfd2FfbGlzdCk7Cj4gICAKPiAtCWZvcl9lYWNoX2VuZ2luZShlbmdp bmUsIGk5MTUsIGlkKSB7Cj4gKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndC0+aTkxNSwgaWQp IHsKCl5eXgoKPiAgIAkJc3RydWN0IGk5MTVfd2FfbGlzdCAqd2FsID0gJmxpc3RzLT5lbmdpbmVb aWRdLndhX2xpc3Q7Cj4gICAKPiAgIAkJd2FfaW5pdF9zdGFydCh3YWwsICJSRUYiLCBlbmdpbmUt Pm5hbWUpOwo+IEBAIC04MywxMiArODMsMTIgQEAgcmVmZXJlbmNlX2xpc3RzX2luaXQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIHN0cnVjdCB3YV9saXN0cyAqbGlzdHMpCj4gICB9Cj4g ICAKPiAgIHN0YXRpYyB2b2lkCj4gLXJlZmVyZW5jZV9saXN0c19maW5pKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICppOTE1LCBzdHJ1Y3Qgd2FfbGlzdHMgKmxpc3RzKQo+ICtyZWZlcmVuY2VfbGlz dHNfZmluaShzdHJ1Y3QgaW50ZWxfZ3QgKmd0LCBzdHJ1Y3Qgd2FfbGlzdHMgKmxpc3RzKQo+ICAg ewo+ICAgCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKPiAgIAllbnVtIGludGVsX2Vu Z2luZV9pZCBpZDsKPiAgIAo+IC0JZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgaTkxNSwgaWQpCj4g Kwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBndC0+aTkxNSwgaWQpCj4gICAJCWludGVsX3dhX2xp c3RfZnJlZSgmbGlzdHMtPmVuZ2luZVtpZF0ud2FfbGlzdCk7Cj4gICAKPiAgIAlpbnRlbF93YV9s aXN0X2ZyZWUoJmxpc3RzLT5ndF93YV9saXN0KTsKPiBAQCAtMjE1LDEwICsyMTUsMTAgQEAgc3Rh dGljIGludCBjaGVja193aGl0ZWxpc3Qoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKPiAg IAo+ICAgCWVyciA9IDA7Cj4gICAJaTkxNV9nZW1fb2JqZWN0X2xvY2socmVzdWx0cyk7Cj4gLQlp bnRlbF93ZWRnZV9vbl90aW1lb3V0KCZ3ZWRnZSwgJmN0eC0+aTkxNS0+Z3QsIEhaIC8gNSkgLyog c2FmZXR5IG5ldCEgKi8KPiArCWludGVsX3dlZGdlX29uX3RpbWVvdXQoJndlZGdlLCBlbmdpbmUt Pmd0LCBIWiAvIDUpIC8qIHNhZmV0eSBuZXQhICovCj4gICAJCWVyciA9IGk5MTVfZ2VtX29iamVj dF9zZXRfdG9fY3B1X2RvbWFpbihyZXN1bHRzLCBmYWxzZSk7Cj4gICAJaTkxNV9nZW1fb2JqZWN0 X3VubG9jayhyZXN1bHRzKTsKPiAtCWlmIChpbnRlbF9ndF9pc193ZWRnZWQoJmN0eC0+aTkxNS0+ Z3QpKQo+ICsJaWYgKGludGVsX2d0X2lzX3dlZGdlZChlbmdpbmUtPmd0KSkKPiAgIAkJZXJyID0g LUVJTzsKPiAgIAlpZiAoZXJyKQo+ICAgCQlnb3RvIG91dF9wdXQ7Cj4gQEAgLTYwNSw3ICs2MDUs NyBAQCBzdGF0aWMgaW50IGNoZWNrX2RpcnR5X3doaXRlbGlzdChzdHJ1Y3QgaTkxNV9nZW1fY29u dGV4dCAqY3R4LAo+ICAgCQlpZiAoZXJyKSB7Cj4gICAJCQlwcl9lcnIoIiVzOiBGdXR6aW5nICV4 IHRpbWVkb3V0OyBjYW5jZWxsaW5nIHRlc3RcbiIsCj4gICAJCQkgICAgICAgZW5naW5lLT5uYW1l LCByZWcpOwo+IC0JCQlpbnRlbF9ndF9zZXRfd2VkZ2VkKCZjdHgtPmk5MTUtPmd0KTsKPiArCQkJ aW50ZWxfZ3Rfc2V0X3dlZGdlZChlbmdpbmUtPmd0KTsKPiAgIAkJCWdvdG8gb3V0X2JhdGNoOwo+ ICAgCQl9Cj4gICAKPiBAQCAtNzA0LDcgKzcwNCw3IEBAIHN0YXRpYyBpbnQgY2hlY2tfZGlydHlf d2hpdGVsaXN0KHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCj4gICAKPiAgIHN0YXRpYyBp bnQgbGl2ZV9kaXJ0eV93aGl0ZWxpc3Qodm9pZCAqYXJnKQo+ICAgewo+IC0Jc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmk5MTUgPSBhcmc7Cj4gKwlzdHJ1Y3QgaW50ZWxfZ3QgKmd0ID0gYXJnOwo+ ICAgCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKPiAgIAlzdHJ1Y3QgaTkxNV9nZW1f Y29udGV4dCAqY3R4Owo+ICAgCWVudW0gaW50ZWxfZW5naW5lX2lkIGlkOwo+IEBAIC03MTMsMjAg KzcxMywyMCBAQCBzdGF0aWMgaW50IGxpdmVfZGlydHlfd2hpdGVsaXN0KHZvaWQgKmFyZykKPiAg IAo+ICAgCS8qIENhbiB0aGUgdXNlciB3cml0ZSB0byB0aGUgd2hpdGVsaXN0ZWQgcmVnaXN0ZXJz PyAqLwo+ICAgCj4gLQlpZiAoSU5URUxfR0VOKGk5MTUpIDwgNykgLyogbWluaW11bSByZXF1aXJl bWVudCBmb3IgTFJJLCBTUk0sIExSTSAqLwo+ICsJaWYgKElOVEVMX0dFTihndC0+aTkxNSkgPCA3 KSAvKiBtaW5pbXVtIHJlcXVpcmVtZW50IGZvciBMUkksIFNSTSwgTFJNICovCj4gICAJCXJldHVy biAwOwo+ICAgCj4gLQlmaWxlID0gbW9ja19maWxlKGk5MTUpOwo+ICsJZmlsZSA9IG1vY2tfZmls ZShndC0+aTkxNSk7Cj4gICAJaWYgKElTX0VSUihmaWxlKSkKPiAgIAkJcmV0dXJuIFBUUl9FUlIo ZmlsZSk7Cj4gICAKPiAtCWN0eCA9IGxpdmVfY29udGV4dChpOTE1LCBmaWxlKTsKPiArCWN0eCA9 IGxpdmVfY29udGV4dChndC0+aTkxNSwgZmlsZSk7Cj4gICAJaWYgKElTX0VSUihjdHgpKSB7Cj4g ICAJCWVyciA9IFBUUl9FUlIoY3R4KTsKPiAgIAkJZ290byBvdXRfZmlsZTsKPiAgIAl9Cj4gICAK PiAtCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGk5MTUsIGlkKSB7Cj4gKwlmb3JfZWFjaF9lbmdp bmUoZW5naW5lLCBndC0+aTkxNSwgaWQpIHsKCl5eXgoKPiAgIAkJaWYgKGVuZ2luZS0+d2hpdGVs aXN0LmNvdW50ID09IDApCj4gICAJCQljb250aW51ZTsKPiAgIAo+IEBAIC03MzYsNDEgKzczNiw0 MyBAQCBzdGF0aWMgaW50IGxpdmVfZGlydHlfd2hpdGVsaXN0KHZvaWQgKmFyZykKPiAgIAl9Cj4g ICAKPiAgIG91dF9maWxlOgo+IC0JbW9ja19maWxlX2ZyZWUoaTkxNSwgZmlsZSk7Cj4gKwltb2Nr X2ZpbGVfZnJlZShndC0+aTkxNSwgZmlsZSk7Cj4gICAJcmV0dXJuIGVycjsKPiAgIH0KPiAgIAo+ ICAgc3RhdGljIGludCBsaXZlX3Jlc2V0X3doaXRlbGlzdCh2b2lkICphcmcpCj4gICB7Cj4gLQlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGFyZzsKPiAtCXN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZSA9IGk5MTUtPmVuZ2luZVtSQ1MwXTsKPiArCXN0cnVjdCBpbnRlbF9ndCAq Z3QgPSBhcmc7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Cj4gKwllbnVtIGlu dGVsX2VuZ2luZV9pZCBpZDsKPiAgIAlpbnQgZXJyID0gMDsKPiAgIAo+ICAgCS8qIElmIHdlIHJl c2V0IHRoZSBncHUsIHdlIHNob3VsZCBub3QgbG9zZSB0aGUgUklOR19OT05QUklWICovCj4gKwlp Z3RfZ2xvYmFsX3Jlc2V0X2xvY2soZ3QpOwo+ICAgCj4gLQlpZiAoIWVuZ2luZSB8fCBlbmdpbmUt PndoaXRlbGlzdC5jb3VudCA9PSAwKQo+IC0JCXJldHVybiAwOwo+IC0KPiAtCWlndF9nbG9iYWxf cmVzZXRfbG9jaygmaTkxNS0+Z3QpOwo+ICsJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZ3QtPmk5 MTUsIGlkKSB7CgpeXl4KCj4gKwkJaWYgKGVuZ2luZS0+d2hpdGVsaXN0LmNvdW50ID09IDApCj4g KwkJCWNvbnRpbnVlOwo+ICAgCj4gLQlpZiAoaW50ZWxfaGFzX3Jlc2V0X2VuZ2luZSgmaTkxNS0+ Z3QpKSB7Cj4gLQkJZXJyID0gY2hlY2tfd2hpdGVsaXN0X2Fjcm9zc19yZXNldChlbmdpbmUsCj4g LQkJCQkJCSAgIGRvX2VuZ2luZV9yZXNldCwKPiAtCQkJCQkJICAgImVuZ2luZSIpOwo+IC0JCWlm IChlcnIpCj4gLQkJCWdvdG8gb3V0Owo+IC0JfQo+ICsJCWlmIChpbnRlbF9oYXNfcmVzZXRfZW5n aW5lKGd0KSkgewo+ICsJCQllcnIgPSBjaGVja193aGl0ZWxpc3RfYWNyb3NzX3Jlc2V0KGVuZ2lu ZSwKPiArCQkJCQkJCSAgIGRvX2VuZ2luZV9yZXNldCwKPiArCQkJCQkJCSAgICJlbmdpbmUiKTsK PiArCQkJaWYgKGVycikKPiArCQkJCWdvdG8gb3V0Owo+ICsJCX0KPiAgIAo+IC0JaWYgKGludGVs X2hhc19ncHVfcmVzZXQoJmk5MTUtPmd0KSkgewo+IC0JCWVyciA9IGNoZWNrX3doaXRlbGlzdF9h Y3Jvc3NfcmVzZXQoZW5naW5lLAo+IC0JCQkJCQkgICBkb19kZXZpY2VfcmVzZXQsCj4gLQkJCQkJ CSAgICJkZXZpY2UiKTsKPiAtCQlpZiAoZXJyKQo+IC0JCQlnb3RvIG91dDsKPiArCQlpZiAoaW50 ZWxfaGFzX2dwdV9yZXNldChndCkpIHsKPiArCQkJZXJyID0gY2hlY2tfd2hpdGVsaXN0X2Fjcm9z c19yZXNldChlbmdpbmUsCj4gKwkJCQkJCQkgICBkb19kZXZpY2VfcmVzZXQsCj4gKwkJCQkJCQkg ICAiZGV2aWNlIik7Cj4gKwkJCWlmIChlcnIpCj4gKwkJCQlnb3RvIG91dDsKPiArCQl9Cj4gICAJ fQo+ICAgCj4gICBvdXQ6Cj4gLQlpZ3RfZ2xvYmFsX3Jlc2V0X3VubG9jaygmaTkxNS0+Z3QpOwo+ ICsJaWd0X2dsb2JhbF9yZXNldF91bmxvY2soZ3QpOwo+ICAgCXJldHVybiBlcnI7Cj4gICB9Cj4g ICAKPiBAQCAtOTk2LDcgKzk5OCw3IEBAIGNoZWNrX3doaXRlbGlzdGVkX3JlZ2lzdGVycyhzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCj4gICAKPiAgIHN0YXRpYyBpbnQgbGl2ZV9pc29s YXRlZF93aGl0ZWxpc3Qodm9pZCAqYXJnKQo+ICAgewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmk5MTUgPSBhcmc7Cj4gKwlzdHJ1Y3QgaW50ZWxfZ3QgKmd0ID0gYXJnOwo+ICAgCXN0cnVj dCB7Cj4gICAJCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHg7Cj4gICAJCXN0cnVjdCBpOTE1 X3ZtYSAqc2NyYXRjaFsyXTsKPiBAQCAtMTAxMCwxNyArMTAxMiwxNCBAQCBzdGF0aWMgaW50IGxp dmVfaXNvbGF0ZWRfd2hpdGVsaXN0KHZvaWQgKmFyZykKPiAgIAkgKiBpbnZpc2libGUgdG8gYSBz ZWNvbmQgY29udGV4dC4KPiAgIAkgKi8KPiAgIAo+IC0JaWYgKCFpbnRlbF9lbmdpbmVzX2hhc19j b250ZXh0X2lzb2xhdGlvbihpOTE1KSkKPiAtCQlyZXR1cm4gMDsKPiAtCj4gLQlpZiAoIWk5MTUt Pmtlcm5lbF9jb250ZXh0LT52bSkKPiArCWlmICghaW50ZWxfZW5naW5lc19oYXNfY29udGV4dF9p c29sYXRpb24oZ3QtPmk5MTUpKQo+ICAgCQlyZXR1cm4gMDsKPiAgIAo+ICAgCWZvciAoaSA9IDA7 IGkgPCBBUlJBWV9TSVpFKGNsaWVudCk7IGkrKykgewo+ICAgCQlzdHJ1Y3QgaTkxNV9hZGRyZXNz X3NwYWNlICp2bTsKPiAgIAkJc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmM7Cj4gICAKPiAtCQlj ID0ga2VybmVsX2NvbnRleHQoaTkxNSk7Cj4gKwkJYyA9IGtlcm5lbF9jb250ZXh0KGd0LT5pOTE1 KTsKPiAgIAkJaWYgKElTX0VSUihjKSkgewo+ICAgCQkJZXJyID0gUFRSX0VSUihjKTsKPiAgIAkJ CWdvdG8gZXJyOwo+IEBAIC0xMDQ5LDcgKzEwNDgsMTAgQEAgc3RhdGljIGludCBsaXZlX2lzb2xh dGVkX3doaXRlbGlzdCh2b2lkICphcmcpCj4gICAJCWk5MTVfdm1fcHV0KHZtKTsKPiAgIAl9Cj4g ICAKPiAtCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGk5MTUsIGlkKSB7Cj4gKwlmb3JfZWFjaF9l bmdpbmUoZW5naW5lLCBndC0+aTkxNSwgaWQpIHsKCl5eXgoKPiArCQlpZiAoIWVuZ2luZS0+a2Vy bmVsX2NvbnRleHQtPnZtKQo+ICsJCQljb250aW51ZTsKPiArCj4gICAJCWlmICghd2hpdGVsaXN0 X3dyaXRhYmxlX2NvdW50KGVuZ2luZSkpCj4gICAJCQljb250aW51ZTsKPiAgIAo+IEBAIC0xMTAz LDcgKzExMDUsNyBAQCBzdGF0aWMgaW50IGxpdmVfaXNvbGF0ZWRfd2hpdGVsaXN0KHZvaWQgKmFy ZykKPiAgIAkJa2VybmVsX2NvbnRleHRfY2xvc2UoY2xpZW50W2ldLmN0eCk7Cj4gICAJfQo+ICAg Cj4gLQlpZiAoaWd0X2ZsdXNoX3Rlc3QoaTkxNSkpCj4gKwlpZiAoaWd0X2ZsdXNoX3Rlc3QoZ3Qt Pmk5MTUpKQo+ICAgCQllcnIgPSAtRUlPOwo+ICAgCj4gICAJcmV0dXJuIGVycjsKPiBAQCAtMTEz OCwxNiArMTE0MCwxNiBAQCB2ZXJpZnlfd2FfbGlzdHMoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQg KmN0eCwgc3RydWN0IHdhX2xpc3RzICpsaXN0cywKPiAgIHN0YXRpYyBpbnQKPiAgIGxpdmVfZ3B1 X3Jlc2V0X3dvcmthcm91bmRzKHZvaWQgKmFyZykKPiAgIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICppOTE1ID0gYXJnOwo+ICsJc3RydWN0IGludGVsX2d0ICpndCA9IGFyZzsKPiAgIAlz dHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4Owo+ICAgCWludGVsX3dha2VyZWZfdCB3YWtlcmVm Owo+ICAgCXN0cnVjdCB3YV9saXN0cyBsaXN0czsKPiAgIAlib29sIG9rOwo+ICAgCj4gLQlpZiAo IWludGVsX2hhc19ncHVfcmVzZXQoJmk5MTUtPmd0KSkKPiArCWlmICghaW50ZWxfaGFzX2dwdV9y ZXNldChndCkpCj4gICAJCXJldHVybiAwOwo+ICAgCj4gLQljdHggPSBrZXJuZWxfY29udGV4dChp OTE1KTsKPiArCWN0eCA9IGtlcm5lbF9jb250ZXh0KGd0LT5pOTE1KTsKPiAgIAlpZiAoSVNfRVJS KGN0eCkpCj4gICAJCXJldHVybiBQVFJfRVJSKGN0eCk7Cj4gICAKPiBAQCAtMTE1NSwyNSArMTE1 NywyNSBAQCBsaXZlX2dwdV9yZXNldF93b3JrYXJvdW5kcyh2b2lkICphcmcpCj4gICAKPiAgIAlw cl9pbmZvKCJWZXJpZnlpbmcgYWZ0ZXIgR1BVIHJlc2V0Li4uXG4iKTsKPiAgIAo+IC0JaWd0X2ds b2JhbF9yZXNldF9sb2NrKCZpOTE1LT5ndCk7Cj4gLQl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9w bV9nZXQoJmk5MTUtPnJ1bnRpbWVfcG0pOwo+ICsJaWd0X2dsb2JhbF9yZXNldF9sb2NrKGd0KTsK PiArCXdha2VyZWYgPSBpbnRlbF9ydW50aW1lX3BtX2dldChndC0+dW5jb3JlLT5ycG0pOwo+ICAg Cj4gLQlyZWZlcmVuY2VfbGlzdHNfaW5pdChpOTE1LCAmbGlzdHMpOwo+ICsJcmVmZXJlbmNlX2xp c3RzX2luaXQoZ3QsICZsaXN0cyk7Cj4gICAKPiAgIAlvayA9IHZlcmlmeV93YV9saXN0cyhjdHgs ICZsaXN0cywgImJlZm9yZSByZXNldCIpOwo+ICAgCWlmICghb2spCj4gICAJCWdvdG8gb3V0Owo+ ICAgCj4gLQlpbnRlbF9ndF9yZXNldCgmaTkxNS0+Z3QsIEFMTF9FTkdJTkVTLCAibGl2ZV93b3Jr YXJvdW5kcyIpOwo+ICsJaW50ZWxfZ3RfcmVzZXQoZ3QsIEFMTF9FTkdJTkVTLCAibGl2ZV93b3Jr YXJvdW5kcyIpOwo+ICAgCj4gICAJb2sgPSB2ZXJpZnlfd2FfbGlzdHMoY3R4LCAmbGlzdHMsICJh ZnRlciByZXNldCIpOwo+ICAgCj4gICBvdXQ6Cj4gICAJaTkxNV9nZW1fY29udGV4dF91bmxvY2tf ZW5naW5lcyhjdHgpOwo+ICAgCWtlcm5lbF9jb250ZXh0X2Nsb3NlKGN0eCk7Cj4gLQlyZWZlcmVu Y2VfbGlzdHNfZmluaShpOTE1LCAmbGlzdHMpOwo+IC0JaW50ZWxfcnVudGltZV9wbV9wdXQoJmk5 MTUtPnJ1bnRpbWVfcG0sIHdha2VyZWYpOwo+IC0JaWd0X2dsb2JhbF9yZXNldF91bmxvY2soJmk5 MTUtPmd0KTsKPiArCXJlZmVyZW5jZV9saXN0c19maW5pKGd0LCAmbGlzdHMpOwo+ICsJaW50ZWxf cnVudGltZV9wbV9wdXQoZ3QtPnVuY29yZS0+cnBtLCB3YWtlcmVmKTsKPiArCWlndF9nbG9iYWxf cmVzZXRfdW5sb2NrKGd0KTsKPiAgIAo+ICAgCXJldHVybiBvayA/IDAgOiAtRVNSQ0g7Cj4gICB9 Cj4gQEAgLTExODEsNyArMTE4Myw3IEBAIGxpdmVfZ3B1X3Jlc2V0X3dvcmthcm91bmRzKHZvaWQg KmFyZykKPiAgIHN0YXRpYyBpbnQKPiAgIGxpdmVfZW5naW5lX3Jlc2V0X3dvcmthcm91bmRzKHZv aWQgKmFyZykKPiAgIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gYXJnOwo+ ICsJc3RydWN0IGludGVsX2d0ICpndCA9IGFyZzsKPiAgIAlzdHJ1Y3QgaTkxNV9nZW1fZW5naW5l c19pdGVyIGl0Owo+ICAgCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHg7Cj4gICAJc3RydWN0 IGludGVsX2NvbnRleHQgKmNlOwo+IEBAIC0xMTkxLDE3ICsxMTkzLDE3IEBAIGxpdmVfZW5naW5l X3Jlc2V0X3dvcmthcm91bmRzKHZvaWQgKmFyZykKPiAgIAlzdHJ1Y3Qgd2FfbGlzdHMgbGlzdHM7 Cj4gICAJaW50IHJldCA9IDA7Cj4gICAKPiAtCWlmICghaW50ZWxfaGFzX3Jlc2V0X2VuZ2luZSgm aTkxNS0+Z3QpKQo+ICsJaWYgKCFpbnRlbF9oYXNfcmVzZXRfZW5naW5lKGd0KSkKPiAgIAkJcmV0 dXJuIDA7Cj4gICAKPiAtCWN0eCA9IGtlcm5lbF9jb250ZXh0KGk5MTUpOwo+ICsJY3R4ID0ga2Vy bmVsX2NvbnRleHQoZ3QtPmk5MTUpOwo+ICAgCWlmIChJU19FUlIoY3R4KSkKPiAgIAkJcmV0dXJu IFBUUl9FUlIoY3R4KTsKPiAgIAo+IC0JaWd0X2dsb2JhbF9yZXNldF9sb2NrKCZpOTE1LT5ndCk7 Cj4gLQl3YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQoJmk5MTUtPnJ1bnRpbWVfcG0pOwo+ ICsJaWd0X2dsb2JhbF9yZXNldF9sb2NrKGd0KTsKPiArCXdha2VyZWYgPSBpbnRlbF9ydW50aW1l X3BtX2dldChndC0+dW5jb3JlLT5ycG0pOwo+ICAgCj4gLQlyZWZlcmVuY2VfbGlzdHNfaW5pdChp OTE1LCAmbGlzdHMpOwo+ICsJcmVmZXJlbmNlX2xpc3RzX2luaXQoZ3QsICZsaXN0cyk7Cj4gICAK PiAgIAlmb3JfZWFjaF9nZW1fZW5naW5lKGNlLCBpOTE1X2dlbV9jb250ZXh0X2xvY2tfZW5naW5l cyhjdHgpLCBpdCkgewo+ICAgCQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSBjZS0+ ZW5naW5lOwo+IEBAIC0xMjU0LDEyICsxMjU2LDEyIEBAIGxpdmVfZW5naW5lX3Jlc2V0X3dvcmth cm91bmRzKHZvaWQgKmFyZykKPiAgIAl9Cj4gICBlcnI6Cj4gICAJaTkxNV9nZW1fY29udGV4dF91 bmxvY2tfZW5naW5lcyhjdHgpOwo+IC0JcmVmZXJlbmNlX2xpc3RzX2ZpbmkoaTkxNSwgJmxpc3Rz KTsKPiAtCWludGVsX3J1bnRpbWVfcG1fcHV0KCZpOTE1LT5ydW50aW1lX3BtLCB3YWtlcmVmKTsK PiAtCWlndF9nbG9iYWxfcmVzZXRfdW5sb2NrKCZpOTE1LT5ndCk7Cj4gKwlyZWZlcmVuY2VfbGlz dHNfZmluaShndCwgJmxpc3RzKTsKPiArCWludGVsX3J1bnRpbWVfcG1fcHV0KGd0LT51bmNvcmUt PnJwbSwgd2FrZXJlZik7Cj4gKwlpZ3RfZ2xvYmFsX3Jlc2V0X3VubG9jayhndCk7Cj4gICAJa2Vy bmVsX2NvbnRleHRfY2xvc2UoY3R4KTsKPiAgIAo+IC0JaWd0X2ZsdXNoX3Rlc3QoaTkxNSk7Cj4g KwlpZ3RfZmx1c2hfdGVzdChndC0+aTkxNSk7Cj4gICAKPiAgIAlyZXR1cm4gcmV0Owo+ICAgfQo+ IEBAIC0xMjc3LDUgKzEyNzksNSBAQCBpbnQgaW50ZWxfd29ya2Fyb3VuZHNfbGl2ZV9zZWxmdGVz dHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4gICAJaWYgKGludGVsX2d0X2lzX3dl ZGdlZCgmaTkxNS0+Z3QpKQo+ICAgCQlyZXR1cm4gMDsKPiAgIAo+IC0JcmV0dXJuIGk5MTVfc3Vi dGVzdHModGVzdHMsIGk5MTUpOwo+ICsJcmV0dXJuIGludGVsX2d0X2xpdmVfc3VidGVzdHModGVz dHMsICZpOTE1LT5ndCk7Cj4gICB9Cj4gCgpXaXRoIGd0IGluc3RlYWQgb2YgZ3QtPmk5MTUgaW4g Zm9yX2VhY2hfZW5naW5lOgoKUmV2aWV3ZWQtYnk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJz dWxpbkBpbnRlbC5jb20+CgpSZWdhcmRzLAoKVHZydGtvCgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4