From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan De Oliveira Subject: Re: [PATCH 02/15] drm/i915: Don't pass *DP around to link training functions Date: Mon, 19 Oct 2015 11:56:17 +0300 Message-ID: <1445244977.3042.50.camel@gmail.com> References: <1444028487-6501-1-git-send-email-ander.conselvan.de.oliveira@intel.com> <1444028487-6501-3-git-send-email-ander.conselvan.de.oliveira@intel.com> <56247569.7000203@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pa0-f50.google.com (mail-pa0-f50.google.com [209.85.220.50]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6C9246E6BC for ; Mon, 19 Oct 2015 01:56:21 -0700 (PDT) Received: by pasz6 with SMTP id z6so24599502pas.2 for ; Mon, 19 Oct 2015 01:56:21 -0700 (PDT) In-Reply-To: <56247569.7000203@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Thulasimani, Sivakumar" , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCAyMDE1LTEwLTE5IGF0IDEwOjE1ICswNTMwLCBUaHVsYXNpbWFuaSwgU2l2YWt1bWFy IHdyb3RlOgo+IAo+IE9uIDEwLzUvMjAxNSAxMjozMSBQTSwgQW5kZXIgQ29uc2VsdmFuIGRlIE9s aXZlaXJhIHdyb3RlOgo+ID4gSXQganVzdCBtYWtlcyB0aGUgY29kZSBtb3JlIGNvbmZ1c2luZywg c28ganVzdCByZWZlcmVuY2UgaW50ZWxfZHBfPkRQCj4gPiBkaXJlY3RseS4gVGhlIG9sZCBiZWhh dmlvciBvZiBub3QgdXBkYXRpbmcgdGhlIHZhbHVlIGluIGludGVsX2RwIGlmIGxpbmsKPiA+IHRy YWluaW5nIGZhaWwgaXMgcHJlc2VydmVkIGJ5IHNhdmluZyB0aGUgcHJldmlvdXMgdmFsdWUgb2Yg RFAgaW4gdGhlCj4gPiBzdGFjayBhbmQgcmVzdG9yaW5nIHRoZSBvbGQgdmFsdWUgaW4gY2FzZSBv ZiBmYWlsdXJlLgo+ID4gCj4gPiBTaWduZWQtb2ZmLWJ5OiBBbmRlciBDb25zZWx2YW4gZGUgT2xp dmVpcmEgPAo+ID4gYW5kZXIuY29uc2VsdmFuLmRlLm9saXZlaXJhQGludGVsLmNvbT4KPiA+IC0t Cj4gPiAKPiA+IEknbSBub3Qgc3VyZSB0aGUgb2xkIGJlaGF2aW9yIGlzIGNvcnJlY3QsIGJ1dCB0 byBlcnIgaW4gdGhlIHNpZGUgb2YKPiA+IGNhdXRpb24gSSB0cmllZCBub3QgdG8gY2hhbmdlIGl0 Lgo+ID4gCj4gPiAtLS0KPiA+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyB8IDY2 ICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0KPiA+IC0tLS0KPiA+ICAgMSBm aWxlIGNoYW5nZWQsIDMzIGluc2VydGlvbnMoKyksIDMzIGRlbGV0aW9ucygtKQo+ID4gCj4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiBpbmRleCBjNDIwZWRmLi4zOTFhMzY3IDEwMDY0 NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gQEAgLTM2MDEsNyArMzYwMSw2IEBAIGlu dGVsX2RwX3NldF9zaWduYWxfbGV2ZWxzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiB1 aW50MzJfdCAqRFApCj4gPiAgIAo+ID4gICBzdGF0aWMgYm9vbAo+ID4gICBpbnRlbF9kcF9zZXRf bGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4gLQkJCXVpbnQzMl90ICpE UCwKPiA+ICAgCQkJdWludDhfdCBkcF90cmFpbl9wYXQpCj4gPiAgIHsKPiA+ICAgCXN0cnVjdCBp bnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0KPiA+IGRwX3RvX2RpZ19wb3J0KGlu dGVsX2RwKTsKPiA+IEBAIC0zNjEwLDkgKzM2MDksOSBAQCBpbnRlbF9kcF9zZXRfbGlua190cmFp bihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4gICAJdWludDhfdCBidWZbc2l6ZW9mKGlu dGVsX2RwLT50cmFpbl9zZXQpICsgMV07Cj4gPiAgIAlpbnQgcmV0LCBsZW47Cj4gPiAgIAo+ID4g LQlfaW50ZWxfZHBfc2V0X2xpbmtfdHJhaW4oaW50ZWxfZHAsIERQLCBkcF90cmFpbl9wYXQpOwo+ ID4gKwlfaW50ZWxfZHBfc2V0X2xpbmtfdHJhaW4oaW50ZWxfZHAsICZpbnRlbF9kcC0+RFAsIGRw X3RyYWluX3BhdCk7Cj4gPiAgIAo+ID4gLQlJOTE1X1dSSVRFKGludGVsX2RwLT5vdXRwdXRfcmVn LCAqRFApOwo+ID4gKwlJOTE1X1dSSVRFKGludGVsX2RwLT5vdXRwdXRfcmVnLCBpbnRlbF9kcC0+ RFApOwo+ID4gICAJUE9TVElOR19SRUFEKGludGVsX2RwLT5vdXRwdXRfcmVnKTsKPiA+ICAgCj4g PiAgIAlidWZbMF0gPSBkcF90cmFpbl9wYXQ7Cj4gPiBAQCAtMzYzMywxNyArMzYzMiwxNyBAQCBp bnRlbF9kcF9zZXRfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4gICB9 Cj4gPiAgIAo+ID4gICBzdGF0aWMgYm9vbAo+ID4gLWludGVsX2RwX3Jlc2V0X2xpbmtfdHJhaW4o c3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgdWludDMyX3QgKkRQLAo+ID4gK2ludGVsX2RwX3Jl c2V0X2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiA+ICAgCQkJdWludDhf dCBkcF90cmFpbl9wYXQpCj4gPiAgIHsKPiA+ICAgCWlmICghaW50ZWxfZHAtPnRyYWluX3NldF92 YWxpZCkKPiA+ICAgCQltZW1zZXQoaW50ZWxfZHAtPnRyYWluX3NldCwgMCwgc2l6ZW9mKGludGVs X2RwCj4gPiAtPnRyYWluX3NldCkpOwo+ID4gLQlpbnRlbF9kcF9zZXRfc2lnbmFsX2xldmVscyhp bnRlbF9kcCwgRFApOwo+ID4gLQlyZXR1cm4gaW50ZWxfZHBfc2V0X2xpbmtfdHJhaW4oaW50ZWxf ZHAsIERQLCBkcF90cmFpbl9wYXQpOwo+ID4gKwlpbnRlbF9kcF9zZXRfc2lnbmFsX2xldmVscyhp bnRlbF9kcCwgJmludGVsX2RwLT5EUCk7Cj4gPiArCXJldHVybiBpbnRlbF9kcF9zZXRfbGlua190 cmFpbihpbnRlbF9kcCwgZHBfdHJhaW5fcGF0KTsKPiA+ICAgfQo+ID4gICAKPiA+ICAgc3RhdGlj IGJvb2wKPiA+IC1pbnRlbF9kcF91cGRhdGVfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwLCB1aW50MzJfdCAqRFAsCj4gPiAraW50ZWxfZHBfdXBkYXRlX2xpbmtfdHJhaW4oc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCwKPiA+ICAgCQkJICAgY29uc3QgdWludDhfdCBsaW5rX3N0 YXR1c1tEUF9MSU5LX1NUQVRVU19TSVpFXSkKPiA+ICAgewo+ID4gICAJc3RydWN0IGludGVsX2Rp Z2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPQo+ID4gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHAp Owo+ID4gQEAgLTM2NTIsOSArMzY1MSw5IEBAIGludGVsX2RwX3VwZGF0ZV9saW5rX3RyYWluKHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiB1aW50MzJfdCAqRFAsCj4gPiAgIAlpbnQgcmV0 Owo+ID4gICAKPiA+ICAgCWludGVsX2dldF9hZGp1c3RfdHJhaW4oaW50ZWxfZHAsIGxpbmtfc3Rh dHVzKTsKPiA+IC0JaW50ZWxfZHBfc2V0X3NpZ25hbF9sZXZlbHMoaW50ZWxfZHAsIERQKTsKPiA+ ICsJaW50ZWxfZHBfc2V0X3NpZ25hbF9sZXZlbHMoaW50ZWxfZHAsICZpbnRlbF9kcC0+RFApOwo+ ID4gICAKPiA+IC0JSTkxNV9XUklURShpbnRlbF9kcC0+b3V0cHV0X3JlZywgKkRQKTsKPiA+ICsJ STkxNV9XUklURShpbnRlbF9kcC0+b3V0cHV0X3JlZywgaW50ZWxfZHAtPkRQKTsKPiA+ICAgCVBP U1RJTkdfUkVBRChpbnRlbF9kcC0+b3V0cHV0X3JlZyk7Cj4gPiAgIAo+ID4gICAJcmV0ID0gZHJt X2RwX2RwY2Rfd3JpdGUoJmludGVsX2RwLT5hdXgsIERQX1RSQUlOSU5HX0xBTkUwX1NFVCwKPiA+ IEBAIC0zNjk1LDcgKzM2OTQsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kcF9zZXRfaWRsZV9saW5r X3RyYWluKHN0cnVjdAo+ID4gaW50ZWxfZHAgKmludGVsX2RwKQo+ID4gICB9Cj4gPiAgIAo+ID4g ICAvKiBFbmFibGUgY29ycmVzcG9uZGluZyBwb3J0IGFuZCBzdGFydCB0cmFpbmluZyBwYXR0ZXJu IDEgKi8KPiA+IC1zdGF0aWMgdm9pZAo+ID4gK3N0YXRpYyBib29sCj4gPiAgIGludGVsX2RwX2xp bmtfdHJhaW5pbmdfY2xvY2tfcmVjb3Zlcnkoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ ICAgewo+ID4gICAJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0gJmRwX3RvX2RpZ19wb3J0 KGludGVsX2RwKQo+ID4gLT5iYXNlLmJhc2U7Cj4gPiBAQCAtMzcwMyw5ICszNzAyLDkgQEAgaW50 ZWxfZHBfbGlua190cmFpbmluZ19jbG9ja19yZWNvdmVyeShzdHJ1Y3QgaW50ZWxfZHAKPiA+ICpp bnRlbF9kcCkKPiA+ICAgCWludCBpOwo+ID4gICAJdWludDhfdCB2b2x0YWdlOwo+ID4gICAJaW50 IHZvbHRhZ2VfdHJpZXMsIGxvb3BfdHJpZXM7Cj4gPiAtCXVpbnQzMl90IERQID0gaW50ZWxfZHAt PkRQOwo+ID4gICAJdWludDhfdCBsaW5rX2NvbmZpZ1syXTsKPiA+ICAgCXVpbnQ4X3QgbGlua19i dywgcmF0ZV9zZWxlY3Q7Cj4gPiArCXVpbnQ4X3QgbGlua19zdGF0dXNbRFBfTElOS19TVEFUVVNf U0laRV07Cj4gPiAgIAo+ID4gICAJaWYgKEhBU19EREkoZGV2KSkKPiA+ICAgCQlpbnRlbF9kZGlf cHJlcGFyZV9saW5rX3JldHJhaW4oZW5jb2Rlcik7Cj4gPiBAQCAtMzcyNywyMiArMzcyNiwyMCBA QCBpbnRlbF9kcF9saW5rX3RyYWluaW5nX2Nsb2NrX3JlY292ZXJ5KHN0cnVjdAo+ID4gaW50ZWxf ZHAgKmludGVsX2RwKQo+ID4gICAJbGlua19jb25maWdbMV0gPSBEUF9TRVRfQU5TSV84QjEwQjsK PiA+ICAgCWRybV9kcF9kcGNkX3dyaXRlKCZpbnRlbF9kcC0+YXV4LCBEUF9ET1dOU1BSRUFEX0NU UkwsIGxpbmtfY29uZmlnLAo+ID4gMik7Cj4gPiAgIAo+ID4gLQlEUCB8PSBEUF9QT1JUX0VOOwo+ ID4gKwlpbnRlbF9kcC0+RFAgfD0gRFBfUE9SVF9FTjsKPiA+ICAgCj4gPiAgIAkvKiBjbG9jayBy ZWNvdmVyeSAqLwo+ID4gLQlpZiAoIWludGVsX2RwX3Jlc2V0X2xpbmtfdHJhaW4oaW50ZWxfZHAs ICZEUCwKPiA+ICsJaWYgKCFpbnRlbF9kcF9yZXNldF9saW5rX3RyYWluKGludGVsX2RwLAo+ID4g ICAJCQkJICAgICAgIERQX1RSQUlOSU5HX1BBVFRFUk5fMSB8Cj4gPiAgIAkJCQkgICAgICAgRFBf TElOS19TQ1JBTUJMSU5HX0RJU0FCTEUpKSB7Cj4gPiAgIAkJRFJNX0VSUk9SKCJmYWlsZWQgdG8g ZW5hYmxlIGxpbmsgdHJhaW5pbmdcbiIpOwo+ID4gLQkJcmV0dXJuOwo+ID4gKwkJcmV0dXJuIGZh bHNlOwo+ID4gICAJfQo+ID4gICAKPiA+ICAgCXZvbHRhZ2UgPSAweGZmOwo+ID4gICAJdm9sdGFn ZV90cmllcyA9IDA7Cj4gPiAgIAlsb29wX3RyaWVzID0gMDsKPiA+ICAgCWZvciAoOzspIHsKPiA+ IC0JCXVpbnQ4X3QgbGlua19zdGF0dXNbRFBfTElOS19TVEFUVVNfU0laRV07Cj4gPiAtCj4gPiAg IAkJZHJtX2RwX2xpbmtfdHJhaW5fY2xvY2tfcmVjb3ZlcnlfZGVsYXkoaW50ZWxfZHAtPmRwY2Qp Owo+ID4gICAJCWlmICghaW50ZWxfZHBfZ2V0X2xpbmtfc3RhdHVzKGludGVsX2RwLCBsaW5rX3N0 YXR1cykpIHsKPiA+ICAgCQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gZ2V0IGxpbmsgc3RhdHVzXG4i KTsKPiA+IEBAIC0zNzYyLDExICszNzU5LDExIEBAIGludGVsX2RwX2xpbmtfdHJhaW5pbmdfY2xv Y2tfcmVjb3Zlcnkoc3RydWN0Cj4gPiBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiAgIAkJCURSTV9E RUJVR19LTVMoImNsb2NrIHJlY292ZXJ5IG5vdCBvaywgcmVzZXQiKTsKPiA+ICAgCQkJLyogY2xl YXIgdGhlIGZsYWcgYXMgd2UgYXJlIG5vdCByZXVzaW5nIHRyYWluIHNldAo+ID4gKi8KPiA+ICAg CQkJaW50ZWxfZHAtPnRyYWluX3NldF92YWxpZCA9IGZhbHNlOwo+ID4gLQkJCWlmICghaW50ZWxf ZHBfcmVzZXRfbGlua190cmFpbihpbnRlbF9kcCwgJkRQLAo+ID4gKwkJCWlmICghaW50ZWxfZHBf cmVzZXRfbGlua190cmFpbihpbnRlbF9kcCwKPiA+ICAgCQkJCQkJICAgICAgCj4gPiAgRFBfVFJB SU5JTkdfUEFUVEVSTl8xIHwKPiA+ICAgCQkJCQkJICAgICAgCj4gPiAgRFBfTElOS19TQ1JBTUJM SU5HX0RJU0FCTEUpKSB7Cj4gPiAgIAkJCQlEUk1fRVJST1IoImZhaWxlZCB0byBlbmFibGUgbGlu awo+ID4gdHJhaW5pbmdcbiIpOwo+ID4gLQkJCQlyZXR1cm47Cj4gPiArCQkJCXJldHVybiBmYWxz ZTsKPiA+ICAgCQkJfQo+ID4gICAJCQljb250aW51ZTsKPiA+ICAgCQl9Cj4gPiBAQCAtMzc4MSw3 ICszNzc4LDcgQEAgaW50ZWxfZHBfbGlua190cmFpbmluZ19jbG9ja19yZWNvdmVyeShzdHJ1Y3Qg aW50ZWxfZHAKPiA+ICppbnRlbF9kcCkKPiA+ICAgCQkJCURSTV9FUlJPUigidG9vIG1hbnkgZnVs bCByZXRyaWVzLCBnaXZlCj4gPiB1cFxuIik7Cj4gPiAgIAkJCQlicmVhazsKPiA+ICAgCQkJfQo+ ID4gLQkJCWludGVsX2RwX3Jlc2V0X2xpbmtfdHJhaW4oaW50ZWxfZHAsICZEUCwKPiA+ICsJCQlp bnRlbF9kcF9yZXNldF9saW5rX3RyYWluKGludGVsX2RwLAo+ID4gICAJCQkJCQkgIERQX1RSQUlO SU5HX1BBVFRFUk5fMSB8Cj4gPiAgIAkJCQkJCSAKPiA+ICBEUF9MSU5LX1NDUkFNQkxJTkdfRElT QUJMRSk7Cj4gPiAgIAkJCXZvbHRhZ2VfdHJpZXMgPSAwOwo+ID4gQEAgLTM4MDAsMjMgKzM3OTcs MjIgQEAgaW50ZWxfZHBfbGlua190cmFpbmluZ19jbG9ja19yZWNvdmVyeShzdHJ1Y3QKPiA+IGlu dGVsX2RwICppbnRlbF9kcCkKPiA+ICAgCQl2b2x0YWdlID0gaW50ZWxfZHAtPnRyYWluX3NldFsw XSAmCj4gPiBEUF9UUkFJTl9WT0xUQUdFX1NXSU5HX01BU0s7Cj4gPiAgIAo+ID4gICAJCS8qIFVw ZGF0ZSB0cmFpbmluZyBzZXQgYXMgcmVxdWVzdGVkIGJ5IHRhcmdldCAqLwo+ID4gLQkJaWYgKCFp bnRlbF9kcF91cGRhdGVfbGlua190cmFpbihpbnRlbF9kcCwgJkRQLAo+ID4gbGlua19zdGF0dXMp KSB7Cj4gPiArCQlpZiAoIWludGVsX2RwX3VwZGF0ZV9saW5rX3RyYWluKGludGVsX2RwLCBsaW5r X3N0YXR1cykpIHsKPiA+ICAgCQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gdXBkYXRlIGxpbmsgdHJh aW5pbmdcbiIpOwo+ID4gICAJCQlicmVhazsKPiA+ICAgCQl9Cj4gPiAgIAl9Cj4gPiAgIAo+ID4g LQlpbnRlbF9kcC0+RFAgPSBEUDsKPiA+ICsJcmV0dXJuIGRybV9kcF9jbG9ja19yZWNvdmVyeV9v ayhsaW5rX3N0YXR1cywgaW50ZWxfZHAtPmxhbmVfY291bnQpOwo+IHdoeSBhcmUgd2UgY2FsbGlu ZyB0aGUgc2FtZSBmdW5jdGlvbiBhZ2Fpbj8gaW4gYmVzdCBjYXNlIHRoaXMgZnVuY3Rpb24gCj4g aXMgY2FsbGVkIGFuZCByZXR1cm5lZCB0cnVlLAo+ICAgb3Igd29yc3QgY2FzZSBpdCB3YXMgbmV2 ZXIgY2FsbGVkLiBzbyBpdCB3aWxsIGJlIHNpbXBsZXIgaWYgd2Ugc3RvcmUgCj4gdGhlIHJldHVy biB2YWx1ZSBvZiB0aGlzIGZ1bmN0aW9uCj4gaW5zaWRlIHRoZSBsb29wIGFuZCByZXR1cm4gdGhh dCBoZXJlID8KCkkgbWlzc2VkIHRoaXMgY29tbWVudCBlYXJsaWVyLiBJIGRvbid0IHRoaW5rIGNh bGxpbmcgZHJtX2RwX2Nsb2NrX3JlY292ZXJ5X29rKCkKd291bGQgaGF2ZSBhIGJpZyBpbXBhY3Qs IHNpbmNlIGl0IGlzIGEgdmVyeSBzaW1wbGUgZnVuY3Rpb24uIEJ1dCBJIGNhbiBhZGQgYQp2YXJp YWJsZSBpZiB0aGF0IGlzIHByZWZlcnJlZC4KCkFuZGVyCgoKPiA+ICAgfQo+ID4gICAKPiA+IC1z dGF0aWMgdm9pZAo+ID4gK3N0YXRpYyBib29sCj4gPiAgIGludGVsX2RwX2xpbmtfdHJhaW5pbmdf Y2hhbm5lbF9lcXVhbGl6YXRpb24oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ICAgewo+ ID4gICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBkcF90b19kaWdfcG9y dChpbnRlbF9kcCk7Cj4gPiAgIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZGlnX3BvcnQtPmJh c2UuYmFzZS5kZXY7Cj4gPiAgIAlib29sIGNoYW5uZWxfZXEgPSBmYWxzZTsKPiA+ICAgCWludCB0 cmllcywgY3JfdHJpZXM7Cj4gPiAtCXVpbnQzMl90IERQID0gaW50ZWxfZHAtPkRQOwo+ID4gICAJ dWludDMyX3QgdHJhaW5pbmdfcGF0dGVybiA9IERQX1RSQUlOSU5HX1BBVFRFUk5fMjsKPiA+ICAg Cj4gPiAgIAkvKgo+ID4gQEAgLTM4MzUsMTEgKzM4MzEsMTEgQEAgaW50ZWxfZHBfbGlua190cmFp bmluZ19jaGFubmVsX2VxdWFsaXphdGlvbihzdHJ1Y3QKPiA+IGludGVsX2RwICppbnRlbF9kcCkK PiA+ICAgCQlEUk1fRVJST1IoIjUuNCBHYnBzIGxpbmsgcmF0ZSB3aXRob3V0IEhCUjIvVFBTMwo+ ID4gc3VwcG9ydFxuIik7Cj4gPiAgIAo+ID4gICAJLyogY2hhbm5lbCBlcXVhbGl6YXRpb24gKi8K PiA+IC0JaWYgKCFpbnRlbF9kcF9zZXRfbGlua190cmFpbihpbnRlbF9kcCwgJkRQLAo+ID4gKwlp ZiAoIWludGVsX2RwX3NldF9saW5rX3RyYWluKGludGVsX2RwLAo+ID4gICAJCQkJICAgICB0cmFp bmluZ19wYXR0ZXJuIHwKPiA+ICAgCQkJCSAgICAgRFBfTElOS19TQ1JBTUJMSU5HX0RJU0FCTEUp KSB7Cj4gPiAgIAkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gc3RhcnQgY2hhbm5lbCBlcXVhbGl6YXRp b25cbiIpOwo+ID4gLQkJcmV0dXJuOwo+ID4gKwkJcmV0dXJuIGZhbHNlOwo+ID4gICAJfQo+ID4g ICAKPiA+ICAgCXRyaWVzID0gMDsKPiA+IEBAIC0zODY0LDcgKzM4NjAsNyBAQCBpbnRlbF9kcF9s aW5rX3RyYWluaW5nX2NoYW5uZWxfZXF1YWxpemF0aW9uKHN0cnVjdAo+ID4gaW50ZWxfZHAgKmlu dGVsX2RwKQo+ID4gICAJCQkJCSAgICAgIGludGVsX2RwLT5sYW5lX2NvdW50KSkgewo+ID4gICAJ CQlpbnRlbF9kcC0+dHJhaW5fc2V0X3ZhbGlkID0gZmFsc2U7Cj4gPiAgIAkJCWludGVsX2RwX2xp bmtfdHJhaW5pbmdfY2xvY2tfcmVjb3ZlcnkoaW50ZWxfZHApOwo+ID4gLQkJCWludGVsX2RwX3Nl dF9saW5rX3RyYWluKGludGVsX2RwLCAmRFAsCj4gPiArCQkJaW50ZWxfZHBfc2V0X2xpbmtfdHJh aW4oaW50ZWxfZHAsCj4gPiAgIAkJCQkJCXRyYWluaW5nX3BhdHRlcm4gfAo+ID4gICAJCQkJCQlE UF9MSU5LX1NDUkFNQkxJTkdfRElTQUJMRQo+ID4gKTsKPiA+ICAgCQkJY3JfdHJpZXMrKzsKPiA+ IEBAIC0zODgxLDcgKzM4NzcsNyBAQCBpbnRlbF9kcF9saW5rX3RyYWluaW5nX2NoYW5uZWxfZXF1 YWxpemF0aW9uKHN0cnVjdAo+ID4gaW50ZWxfZHAgKmludGVsX2RwKQo+ID4gICAJCWlmICh0cmll cyA+IDUpIHsKPiA+ICAgCQkJaW50ZWxfZHAtPnRyYWluX3NldF92YWxpZCA9IGZhbHNlOwo+ID4g ICAJCQlpbnRlbF9kcF9saW5rX3RyYWluaW5nX2Nsb2NrX3JlY292ZXJ5KGludGVsX2RwKTsKPiA+ IC0JCQlpbnRlbF9kcF9zZXRfbGlua190cmFpbihpbnRlbF9kcCwgJkRQLAo+ID4gKwkJCWludGVs X2RwX3NldF9saW5rX3RyYWluKGludGVsX2RwLAo+ID4gICAJCQkJCQl0cmFpbmluZ19wYXR0ZXJu IHwKPiA+ICAgCQkJCQkJRFBfTElOS19TQ1JBTUJMSU5HX0RJU0FCTEUKPiA+ICk7Cj4gPiAgIAkJ CXRyaWVzID0gMDsKPiA+IEBAIC0zODkwLDcgKzM4ODYsNyBAQCBpbnRlbF9kcF9saW5rX3RyYWlu aW5nX2NoYW5uZWxfZXF1YWxpemF0aW9uKHN0cnVjdAo+ID4gaW50ZWxfZHAgKmludGVsX2RwKQo+ ID4gICAJCX0KPiA+ICAgCj4gPiAgIAkJLyogVXBkYXRlIHRyYWluaW5nIHNldCBhcyByZXF1ZXN0 ZWQgYnkgdGFyZ2V0ICovCj4gPiAtCQlpZiAoIWludGVsX2RwX3VwZGF0ZV9saW5rX3RyYWluKGlu dGVsX2RwLCAmRFAsCj4gPiBsaW5rX3N0YXR1cykpIHsKPiA+ICsJCWlmICghaW50ZWxfZHBfdXBk YXRlX2xpbmtfdHJhaW4oaW50ZWxfZHAsIGxpbmtfc3RhdHVzKSkgewo+ID4gICAJCQlEUk1fRVJS T1IoImZhaWxlZCB0byB1cGRhdGUgbGluayB0cmFpbmluZ1xuIik7Cj4gPiAgIAkJCWJyZWFrOwo+ ID4gICAJCX0KPiA+IEBAIC0zODk5LDI1ICszODk1LDI5IEBAIGludGVsX2RwX2xpbmtfdHJhaW5p bmdfY2hhbm5lbF9lcXVhbGl6YXRpb24oc3RydWN0Cj4gPiBpbnRlbF9kcCAqaW50ZWxfZHApCj4g PiAgIAo+ID4gICAJaW50ZWxfZHBfc2V0X2lkbGVfbGlua190cmFpbihpbnRlbF9kcCk7Cj4gPiAg IAo+ID4gLQlpbnRlbF9kcC0+RFAgPSBEUDsKPiA+IC0KPiA+ICAgCWlmIChjaGFubmVsX2VxKSB7 Cj4gPiAgIAkJaW50ZWxfZHAtPnRyYWluX3NldF92YWxpZCA9IHRydWU7Cj4gPiAgIAkJRFJNX0RF QlVHX0tNUygiQ2hhbm5lbCBFUSBkb25lLiBEUCBUcmFpbmluZwo+ID4gc3VjY2Vzc2Z1bFxuIik7 Cj4gPiArCQlyZXR1cm4gdHJ1ZTsKPiA+ICsJfSBlbHNlIHsKPiA+ICsJCXJldHVybiBmYWxzZTsK PiA+ICAgCX0KPiA+ICAgfQo+ID4gICAKPiA+ICAgdm9pZCBpbnRlbF9kcF9zdG9wX2xpbmtfdHJh aW4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ICAgewo+ID4gLQlpbnRlbF9kcF9zZXRf bGlua190cmFpbihpbnRlbF9kcCwgJmludGVsX2RwLT5EUCwKPiA+ICsJaW50ZWxfZHBfc2V0X2xp bmtfdHJhaW4oaW50ZWxfZHAsCj4gPiAgIAkJCQlEUF9UUkFJTklOR19QQVRURVJOX0RJU0FCTEUp Owo+ID4gICB9Cj4gPiAgIAo+ID4gICB2b2lkCj4gPiAgIGludGVsX2RwX3N0YXJ0X2xpbmtfdHJh aW4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ICAgewo+ID4gLQlpbnRlbF9kcF9saW5r X3RyYWluaW5nX2Nsb2NrX3JlY292ZXJ5KGludGVsX2RwKTsKPiA+IC0JaW50ZWxfZHBfbGlua190 cmFpbmluZ19jaGFubmVsX2VxdWFsaXphdGlvbihpbnRlbF9kcCk7Cj4gPiArCXVpbnQzMl90IERQ ID0gaW50ZWxfZHAtPkRQOwo+ID4gKwo+ID4gKwlpZiAoIWludGVsX2RwX2xpbmtfdHJhaW5pbmdf Y2xvY2tfcmVjb3ZlcnkoaW50ZWxfZHApIHx8Cj4gPiArCSAgICAhaW50ZWxfZHBfbGlua190cmFp bmluZ19jaGFubmVsX2VxdWFsaXphdGlvbihpbnRlbF9kcCkpCj4gPiArCQlpbnRlbF9kcC0+RFAg PSBEUDsKPiBpdCBpcyB3cm9uZyB0byByZXN0b3JlIHRoZSB2YWx1ZSBvZiBEUCBoZXJlLCB3ZSBo YXZlIG1vZGlmaWVkIHRoZSB2YWx1ZSAKPiBvZiBwb3J0L2RkaSBhbHJlYWR5IGluc2lkZSB0aGUg dHdvIGZ1bmN0aW9ucy4KPiBpZiBlaXRoZXIgb2YgdGhlc2UgdHdvIHN0ZXBzIGZhaWwgd2Ugc2hv dWxkIGNhbGwgc3RvcCBsaW5rIHRyYWluaW5nIGFuZCAKPiBmb2xsb3cgaXQgd2l0aCBic3BlYyBk aXNhYmxlIHNlcXVlbmNlLgo+IHNvIHNhdmluZyBhbmQgcmVzdG9yaW5nIHdpbGwgbm90IGhlbHAg dXMgaW4gYW55d2F5IGJ1dCBtb3JlIGhpZGUgdGhlIAo+IHJlYWwgc3RhdHVzIG9mIEhXLgo+ID4g ICB9Cj4gPiAgIAo+ID4gICBzdGF0aWMgdm9pZAo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==