From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [Intel-gfx] [PATCH 2/2] drm/i915: Get rid of intel_dp_dpcd_read_wake() Date: Fri, 18 Mar 2016 16:57:21 +0100 Message-ID: <20160318155720.GG14170@phenom.ffwll.local> References: <1458229245-8634-1-git-send-email-cpaul@redhat.com> <1458229245-8634-2-git-send-email-cpaul@redhat.com> <877fh1htta.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x22d.google.com (mail-wm0-x22d.google.com [IPv6:2a00:1450:400c:c09::22d]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9AE506EC01 for ; Fri, 18 Mar 2016 15:56:33 +0000 (UTC) Received: by mail-wm0-x22d.google.com with SMTP id p65so43471409wmp.0 for ; Fri, 18 Mar 2016 08:56:33 -0700 (PDT) Content-Disposition: inline In-Reply-To: <877fh1htta.fsf@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Jani Nikula Cc: intel-gfx@lists.freedesktop.org, arthur.j.runyan@intel.com, open list , dri-devel@lists.freedesktop.org, Daniel Vetter , Lyude List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBNYXIgMTcsIDIwMTYgYXQgMDc6NTY6MzNQTSArMDIwMCwgSmFuaSBOaWt1bGEgd3Jv dGU6Cj4gT24gVGh1LCAxNyBNYXIgMjAxNiwgTHl1ZGUgPGNwYXVsQHJlZGhhdC5jb20+IHdyb3Rl Ogo+ID4gU2luY2Ugd2UndmUgZml4ZWQgdXAgZHJtX2RwX2RwY2RfcmVhZCgpIHRvIGFsbG93IGZv ciByZXRyaWVzIHdoZW4gdGhpbmdzCj4gPiB0aW1lb3V0LCB0aGVyZSdzIG5vIHVzZSBmb3IgaGF2 aW5nIHRoaXMgZnVuY3Rpb24gYW55bW9yZS4gR29vZCByaWRkZW5zLgo+ID4KPiA+IFNpZ25lZC1v ZmYtYnk6IEx5dWRlIDxjcGF1bEByZWRoYXQuY29tPgo+ID4gLS0tCj4gPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHAuYyB8IDc5ICsrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCj4gPiAgMSBmaWxlIGNoYW5nZWQsIDIyIGluc2VydGlvbnMoKyksIDU3IGRlbGV0 aW9ucygtKQo+ID4KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gaW5kZXggY2RjMmMxNS4u ZmI0Y2JiZTUgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5j Cj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiBAQCAtMzE5MCw0 NyArMzE5MCwxNCBAQCBzdGF0aWMgdm9pZCBjaHZfZHBfcG9zdF9wbGxfZGlzYWJsZShzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiA+ICB9Cj4gPiAgCj4gPiAgLyoKPiA+IC0gKiBOYXRp dmUgcmVhZCB3aXRoIHJldHJ5IGZvciBsaW5rIHN0YXR1cyBhbmQgcmVjZWl2ZXIgY2FwYWJpbGl0 eSByZWFkcyBmb3IKPiA+IC0gKiBjYXNlcyB3aGVyZSB0aGUgc2luayBtYXkgc3RpbGwgYmUgYXNs ZWVwLgo+ID4gLSAqCj4gPiAtICogU2lua3MgYXJlICpzdXBwb3NlZCogdG8gY29tZSB1cCB3aXRo aW4gMW1zIGZyb20gYW4gb2ZmIHN0YXRlLCBidXQgd2UncmUgYWxzbwo+ID4gLSAqIHN1cHBvc2Vk IHRvIHJldHJ5IDMgdGltZXMgcGVyIHRoZSBzcGVjLgo+ID4gLSAqLwo+ID4gLXN0YXRpYyBzc2l6 ZV90Cj4gPiAtaW50ZWxfZHBfZHBjZF9yZWFkX3dha2Uoc3RydWN0IGRybV9kcF9hdXggKmF1eCwg dW5zaWduZWQgaW50IG9mZnNldCwKPiA+IC0JCQl2b2lkICpidWZmZXIsIHNpemVfdCBzaXplKQo+ ID4gLXsKPiA+IC0Jc3NpemVfdCByZXQ7Cj4gPiAtCWludCBpOwo+ID4gLQo+ID4gLQkvKgo+ID4g LQkgKiBTb21ldGltZSB3ZSBqdXN0IGdldCB0aGUgc2FtZSBpbmNvcnJlY3QgYnl0ZSByZXBlYXRl ZAo+ID4gLQkgKiBvdmVyIHRoZSBlbnRpcmUgYnVmZmVyLiBEb2luZyBqdXN0IG9uZSB0aHJvdyBh d2F5IHJlYWQKPiA+IC0JICogaW5pdGlhbGx5IHNlZW1zIHRvICJzb2x2ZSIgaXQuCj4gPiAtCSAq Lwo+ID4gLQlkcm1fZHBfZHBjZF9yZWFkKGF1eCwgRFBfRFBDRF9SRVYsIGJ1ZmZlciwgMSk7Cj4g Cj4gTGFzdCB0aW1lIGFyb3VuZCBJIGR1ZyBvdXQgdGhlIGNvbW1pdCBhZGRpbmcgdGhlIGxpbmUg YWJvdmUsIHdoaWNoIGZpeGVkCj4gYSBidWcsIGFuZCBzYWlkIGl0IHNob3VsZCBiZSBhY2NvdW50 ZWQgZm9yIHNvbWVob3cuIEJ1dCBJJ3ZlIGhhZCBhCj4gY2hhbmdlIG9mIGhlYXJ0LiBJIHdhbnQg dGhpcyBmdW5jdGlvbiBnb25lIGFscmVhZHkuIFdlJ3ZlIGltcHJvdmVkIHRoZQo+IGRwIGhlbHBl cnMgY29uc2lkZXJhYmx5LCBhbmQgaWYgdGhpcyByZWdyZXNzZXMsIHdlIG5lZWQgdG8gbG9vayBh dAo+IGZpeGluZyB0aGlzIGVpdGhlciBhdCB0aGUgZHJtIGxldmVsIG9yIGluIG91ciAtPnRyYW5z ZmVyIGhvb2suCj4gCj4gQWNrZWQtYnk6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBpbnRlbC5j b20+CgpIbSwgbXkgaWRlYSB3YXMgYWN0dWFsbHkgdG8gMToxIG1vdmUgaW50ZWxfZHBfZHBjZF9y ZWFkX3dha2UgbG9naWMgaW50bwpkcm1fZHBfZHBjZF9yZWFkLCB3aXRob3V0IGFueSBmdW5jdGlv bmFsIGNoYW5nZSBmb3IgaTkxNS5rby4gQW5kIGV2ZXJ5b25lCmVsc2Ugc2hvdWxkbid0IGNvbXBs YWluIGFib3V0IGEgZmV3IG1vcmUgcmV0cmllcyBlaXRoZXIuCgpUaGF0IHdvdWxkIGFsc28gYWRk cmVzcyBWaWxsZSdzIGdydW1weSBuYWNrLgotRGFuaWVsCgo+IAo+IAo+ID4gLQo+ID4gLQlmb3Ig KGkgPSAwOyBpIDwgMzsgaSsrKSB7Cj4gPiAtCQlyZXQgPSBkcm1fZHBfZHBjZF9yZWFkKGF1eCwg b2Zmc2V0LCBidWZmZXIsIHNpemUpOwo+ID4gLQkJaWYgKHJldCA9PSBzaXplKQo+ID4gLQkJCXJl dHVybiByZXQ7Cj4gPiAtCQltc2xlZXAoMSk7Cj4gPiAtCX0KPiA+IC0KPiA+IC0JcmV0dXJuIHJl dDsKPiA+IC19Cj4gPiAtCj4gPiAtLyoKPiA+ICAgKiBGZXRjaCBBVVggQ0ggcmVnaXN0ZXJzIDB4 MjAyIC0gMHgyMDcgd2hpY2ggY29udGFpbgo+ID4gICAqIGxpbmsgc3RhdHVzIGluZm9ybWF0aW9u Cj4gPiAgICovCj4gPiAgYm9vbAo+ID4gIGludGVsX2RwX2dldF9saW5rX3N0YXR1cyhzdHJ1Y3Qg aW50ZWxfZHAgKmludGVsX2RwLCB1aW50OF90IGxpbmtfc3RhdHVzW0RQX0xJTktfU1RBVFVTX1NJ WkVdKQo+ID4gIHsKPiA+IC0JcmV0dXJuIGludGVsX2RwX2RwY2RfcmVhZF93YWtlKCZpbnRlbF9k cC0+YXV4LAo+ID4gLQkJCQkgICAgICAgRFBfTEFORTBfMV9TVEFUVVMsCj4gPiAtCQkJCSAgICAg ICBsaW5rX3N0YXR1cywKPiA+IC0JCQkJICAgICAgIERQX0xJTktfU1RBVFVTX1NJWkUpID09IERQ X0xJTktfU1RBVFVTX1NJWkU7Cj4gPiArCXJldHVybiBkcm1fZHBfZHBjZF9yZWFkKCZpbnRlbF9k cC0+YXV4LCBEUF9MQU5FMF8xX1NUQVRVUywgbGlua19zdGF0dXMsCj4gPiArCQkJCURQX0xJTktf U1RBVFVTX1NJWkUpID09IERQX0xJTktfU1RBVFVTX1NJWkU7Cj4gPiAgfQo+ID4gIAo+ID4gIC8q IFRoZXNlIGFyZSBzb3VyY2Utc3BlY2lmaWMgdmFsdWVzLiAqLwo+ID4gQEAgLTM4NjUsOCArMzgz Miw4IEBAIGludGVsX2RwX2dldF9kcGNkKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiAg CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4g PiAgCXVpbnQ4X3QgcmV2Owo+ID4gIAo+ID4gLQlpZiAoaW50ZWxfZHBfZHBjZF9yZWFkX3dha2Uo JmludGVsX2RwLT5hdXgsIDB4MDAwLCBpbnRlbF9kcC0+ZHBjZCwKPiA+IC0JCQkJICAgIHNpemVv ZihpbnRlbF9kcC0+ZHBjZCkpIDwgMCkKPiA+ICsJaWYgKGRybV9kcF9kcGNkX3JlYWQoJmludGVs X2RwLT5hdXgsIDB4MDAwLCBpbnRlbF9kcC0+ZHBjZCwKPiA+ICsJCQkgICAgIHNpemVvZihpbnRl bF9kcC0+ZHBjZCkpIDwgMCkKPiA+ICAJCXJldHVybiBmYWxzZTsgLyogYXV4IHRyYW5zZmVyIGZh aWxlZCAqLwo+ID4gIAo+ID4gIAlEUk1fREVCVUdfS01TKCJEUENEOiAlKnBoXG4iLCAoaW50KSBz aXplb2YoaW50ZWxfZHAtPmRwY2QpLCBpbnRlbF9kcC0+ZHBjZCk7Cj4gPiBAQCAtMzg3Nyw5ICsz ODQ0LDkgQEAgaW50ZWxfZHBfZ2V0X2RwY2Qoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ ICAJLyogQ2hlY2sgaWYgdGhlIHBhbmVsIHN1cHBvcnRzIFBTUiAqLwo+ID4gIAltZW1zZXQoaW50 ZWxfZHAtPnBzcl9kcGNkLCAwLCBzaXplb2YoaW50ZWxfZHAtPnBzcl9kcGNkKSk7Cj4gPiAgCWlm IChpc19lZHAoaW50ZWxfZHApKSB7Cj4gPiAtCQlpbnRlbF9kcF9kcGNkX3JlYWRfd2FrZSgmaW50 ZWxfZHAtPmF1eCwgRFBfUFNSX1NVUFBPUlQsCj4gPiAtCQkJCQlpbnRlbF9kcC0+cHNyX2RwY2Qs Cj4gPiAtCQkJCQlzaXplb2YoaW50ZWxfZHAtPnBzcl9kcGNkKSk7Cj4gPiArCQlkcm1fZHBfZHBj ZF9yZWFkKCZpbnRlbF9kcC0+YXV4LCBEUF9QU1JfU1VQUE9SVCwKPiA+ICsJCQkJIGludGVsX2Rw LT5wc3JfZHBjZCwKPiA+ICsJCQkJIHNpemVvZihpbnRlbF9kcC0+cHNyX2RwY2QpKTsKPiA+ICAJ CWlmIChpbnRlbF9kcC0+cHNyX2RwY2RbMF0gJiBEUF9QU1JfSVNfU1VQUE9SVEVEKSB7Cj4gPiAg CQkJZGV2X3ByaXYtPnBzci5zaW5rX3N1cHBvcnQgPSB0cnVlOwo+ID4gIAkJCURSTV9ERUJVR19L TVMoIkRldGVjdGVkIEVEUCBQU1IgUGFuZWwuXG4iKTsKPiA+IEBAIC0zODkwLDkgKzM4NTcsOSBA QCBpbnRlbF9kcF9nZXRfZHBjZChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ID4gIAkJCXVp bnQ4X3QgZnJhbWVfc3luY19jYXA7Cj4gPiAgCj4gPiAgCQkJZGV2X3ByaXYtPnBzci5zaW5rX3N1 cHBvcnQgPSB0cnVlOwo+ID4gLQkJCWludGVsX2RwX2RwY2RfcmVhZF93YWtlKCZpbnRlbF9kcC0+ YXV4LAo+ID4gLQkJCQkJRFBfU0lOS19ERVZJQ0VfQVVYX0ZSQU1FX1NZTkNfQ0FQLAo+ID4gLQkJ CQkJJmZyYW1lX3N5bmNfY2FwLCAxKTsKPiA+ICsJCQlkcm1fZHBfZHBjZF9yZWFkKCZpbnRlbF9k cC0+YXV4LAo+ID4gKwkJCQkJIERQX1NJTktfREVWSUNFX0FVWF9GUkFNRV9TWU5DX0NBUCwKPiA+ ICsJCQkJCSAmZnJhbWVfc3luY19jYXAsIDEpOwo+ID4gIAkJCWRldl9wcml2LT5wc3IuYXV4X2Zy YW1lX3N5bmMgPSBmcmFtZV9zeW5jX2NhcCA/IHRydWUgOiBmYWxzZTsKPiA+ICAJCQkvKiBQU1Iy IG5lZWRzIGZyYW1lIHN5bmMgYXMgd2VsbCAqLwo+ID4gIAkJCWRldl9wcml2LT5wc3IucHNyMl9z dXBwb3J0ID0gZGV2X3ByaXYtPnBzci5hdXhfZnJhbWVfc3luYzsKPiA+IEBAIC0zOTA4LDE1ICsz ODc1LDEzIEBAIGludGVsX2RwX2dldF9kcGNkKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4g PiAgCS8qIEludGVybWVkaWF0ZSBmcmVxdWVuY3kgc3VwcG9ydCAqLwo+ID4gIAlpZiAoaXNfZWRw KGludGVsX2RwKSAmJgo+ID4gIAkgICAgKGludGVsX2RwLT5kcGNkW0RQX0VEUF9DT05GSUdVUkFU SU9OX0NBUF0gJglEUF9EUENEX0RJU1BMQVlfQ09OVFJPTF9DQVBBQkxFKSAmJgo+ID4gLQkgICAg KGludGVsX2RwX2RwY2RfcmVhZF93YWtlKCZpbnRlbF9kcC0+YXV4LCBEUF9FRFBfRFBDRF9SRVYs ICZyZXYsIDEpID09IDEpICYmCj4gPiArCSAgICAoZHJtX2RwX2RwY2RfcmVhZCgmaW50ZWxfZHAt PmF1eCwgRFBfRURQX0RQQ0RfUkVWLCAmcmV2LCAxKSA9PSAxKSAmJgo+ID4gIAkgICAgKHJldiA+ PSAweDAzKSkgeyAvKiBlRHAgdjEuNCBvciBoaWdoZXIgKi8KPiA+ICAJCV9fbGUxNiBzaW5rX3Jh dGVzW0RQX01BWF9TVVBQT1JURURfUkFURVNdOwo+ID4gIAkJaW50IGk7Cj4gPiAgCj4gPiAtCQlp bnRlbF9kcF9kcGNkX3JlYWRfd2FrZSgmaW50ZWxfZHAtPmF1eCwKPiA+IC0JCQkJRFBfU1VQUE9S VEVEX0xJTktfUkFURVMsCj4gPiAtCQkJCXNpbmtfcmF0ZXMsCj4gPiAtCQkJCXNpemVvZihzaW5r X3JhdGVzKSk7Cj4gPiArCQlkcm1fZHBfZHBjZF9yZWFkKCZpbnRlbF9kcC0+YXV4LCBEUF9TVVBQ T1JURURfTElOS19SQVRFUywKPiA+ICsJCQkJc2lua19yYXRlcywgc2l6ZW9mKHNpbmtfcmF0ZXMp KTsKPiA+ICAKPiA+ICAJCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHNpbmtfcmF0ZXMpOyBp KyspIHsKPiA+ICAJCQlpbnQgdmFsID0gbGUxNl90b19jcHUoc2lua19yYXRlc1tpXSk7Cj4gPiBA QCAtMzkzOSw5ICszOTA0LDkgQEAgaW50ZWxfZHBfZ2V0X2RwY2Qoc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCkKPiA+ICAJaWYgKGludGVsX2RwLT5kcGNkW0RQX0RQQ0RfUkVWXSA9PSAweDEwKQo+ ID4gIAkJcmV0dXJuIHRydWU7IC8qIG5vIHBlci1wb3J0IGRvd25zdHJlYW0gaW5mbyAqLwo+ID4g IAo+ID4gLQlpZiAoaW50ZWxfZHBfZHBjZF9yZWFkX3dha2UoJmludGVsX2RwLT5hdXgsIERQX0RP V05TVFJFQU1fUE9SVF8wLAo+ID4gLQkJCQkgICAgaW50ZWxfZHAtPmRvd25zdHJlYW1fcG9ydHMs Cj4gPiAtCQkJCSAgICBEUF9NQVhfRE9XTlNUUkVBTV9QT1JUUykgPCAwKQo+ID4gKwlpZiAoZHJt X2RwX2RwY2RfcmVhZCgmaW50ZWxfZHAtPmF1eCwgRFBfRE9XTlNUUkVBTV9QT1JUXzAsCj4gPiAr CQkJICAgICBpbnRlbF9kcC0+ZG93bnN0cmVhbV9wb3J0cywKPiA+ICsJCQkgICAgIERQX01BWF9E T1dOU1RSRUFNX1BPUlRTKSA8IDApCj4gPiAgCQlyZXR1cm4gZmFsc2U7IC8qIGRvd25zdHJlYW0g cG9ydCBzdGF0dXMgZmV0Y2ggZmFpbGVkICovCj4gPiAgCj4gPiAgCXJldHVybiB0cnVlOwo+ID4g QEAgLTM5NTUsMTEgKzM5MjAsMTEgQEAgaW50ZWxfZHBfcHJvYmVfb3VpKHN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHApCj4gPiAgCWlmICghKGludGVsX2RwLT5kcGNkW0RQX0RPV05fU1RSRUFNX1BP UlRfQ09VTlRdICYgRFBfT1VJX1NVUFBPUlQpKQo+ID4gIAkJcmV0dXJuOwo+ID4gIAo+ID4gLQlp ZiAoaW50ZWxfZHBfZHBjZF9yZWFkX3dha2UoJmludGVsX2RwLT5hdXgsIERQX1NJTktfT1VJLCBi dWYsIDMpID09IDMpCj4gPiArCWlmIChkcm1fZHBfZHBjZF9yZWFkKCZpbnRlbF9kcC0+YXV4LCBE UF9TSU5LX09VSSwgYnVmLCAzKSA9PSAzKQo+ID4gIAkJRFJNX0RFQlVHX0tNUygiU2luayBPVUk6 ICUwMmh4JTAyaHglMDJoeFxuIiwKPiA+ICAJCQkgICAgICBidWZbMF0sIGJ1ZlsxXSwgYnVmWzJd KTsKPiA+ICAKPiA+IC0JaWYgKGludGVsX2RwX2RwY2RfcmVhZF93YWtlKCZpbnRlbF9kcC0+YXV4 LCBEUF9CUkFOQ0hfT1VJLCBidWYsIDMpID09IDMpCj4gPiArCWlmIChkcm1fZHBfZHBjZF9yZWFk KCZpbnRlbF9kcC0+YXV4LCBEUF9CUkFOQ0hfT1VJLCBidWYsIDMpID09IDMpCj4gPiAgCQlEUk1f REVCVUdfS01TKCJCcmFuY2ggT1VJOiAlMDJoeCUwMmh4JTAyaHhcbiIsCj4gPiAgCQkJICAgICAg YnVmWzBdLCBidWZbMV0sIGJ1ZlsyXSk7Cj4gPiAgfQo+ID4gQEAgLTM5NzUsNyArMzk0MCw3IEBA IGludGVsX2RwX3Byb2JlX21zdChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ID4gIAlpZiAo aW50ZWxfZHAtPmRwY2RbRFBfRFBDRF9SRVZdIDwgMHgxMikKPiA+ICAJCXJldHVybiBmYWxzZTsK PiA+ICAKPiA+IC0JaWYgKGludGVsX2RwX2RwY2RfcmVhZF93YWtlKCZpbnRlbF9kcC0+YXV4LCBE UF9NU1RNX0NBUCwgYnVmLCAxKSkgewo+ID4gKwlpZiAoZHJtX2RwX2RwY2RfcmVhZCgmaW50ZWxf ZHAtPmF1eCwgRFBfTVNUTV9DQVAsIGJ1ZiwgMSkpIHsKPiA+ICAJCWlmIChidWZbMF0gJiBEUF9N U1RfQ0FQKSB7Cj4gPiAgCQkJRFJNX0RFQlVHX0tNUygiU2luayBpcyBNU1QgY2FwYWJsZVxuIik7 Cj4gPiAgCQkJaW50ZWxfZHAtPmlzX21zdCA9IHRydWU7Cj4gPiBAQCAtNDExMiw3ICs0MDc3LDcg QEAgc3RvcDoKPiA+ICBzdGF0aWMgYm9vbAo+ID4gIGludGVsX2RwX2dldF9zaW5rX2lycShzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwLCB1OCAqc2lua19pcnFfdmVjdG9yKQo+ID4gIHsKPiA+IC0J cmV0dXJuIGludGVsX2RwX2RwY2RfcmVhZF93YWtlKCZpbnRlbF9kcC0+YXV4LAo+ID4gKwlyZXR1 cm4gZHJtX2RwX2RwY2RfcmVhZCgmaW50ZWxfZHAtPmF1eCwKPiA+ICAJCQkJICAgICAgIERQX0RF VklDRV9TRVJWSUNFX0lSUV9WRUNUT1IsCj4gPiAgCQkJCSAgICAgICBzaW5rX2lycV92ZWN0b3Is IDEpID09IDE7Cj4gPiAgfQo+ID4gQEAgLTQxMjIsNyArNDA4Nyw3IEBAIGludGVsX2RwX2dldF9z aW5rX2lycV9lc2koc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgdTggKnNpbmtfaXJxX3ZlY3Rv cikKPiA+ICB7Cj4gPiAgCWludCByZXQ7Cj4gPiAgCj4gPiAtCXJldCA9IGludGVsX2RwX2RwY2Rf cmVhZF93YWtlKCZpbnRlbF9kcC0+YXV4LAo+ID4gKwlyZXQgPSBkcm1fZHBfZHBjZF9yZWFkKCZp bnRlbF9kcC0+YXV4LAo+ID4gIAkJCQkJICAgICBEUF9TSU5LX0NPVU5UX0VTSSwKPiA+ICAJCQkJ CSAgICAgc2lua19pcnFfdmVjdG9yLCAxNCk7Cj4gPiAgCWlmIChyZXQgIT0gMTQpCj4gPiBAQCAt NDM4Myw3ICs0MzQ4LDcgQEAgaW50ZWxfZHBfZGV0ZWN0X2RwY2Qoc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCkKPiA+ICAJICAgIGludGVsX2RwLT5kb3duc3RyZWFtX3BvcnRzWzBdICYgRFBfRFNf UE9SVF9IUEQpIHsKPiA+ICAJCXVpbnQ4X3QgcmVnOwo+ID4gIAo+ID4gLQkJaWYgKGludGVsX2Rw X2RwY2RfcmVhZF93YWtlKCZpbnRlbF9kcC0+YXV4LCBEUF9TSU5LX0NPVU5ULAo+ID4gKwkJaWYg KGRybV9kcF9kcGNkX3JlYWQoJmludGVsX2RwLT5hdXgsIERQX1NJTktfQ09VTlQsCj4gPiAgCQkJ CQkgICAgJnJlZywgMSkgPCAwKQo+ID4gIAkJCXJldHVybiBjb25uZWN0b3Jfc3RhdHVzX3Vua25v d247Cj4gCj4gLS0gCj4gSmFuaSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNlIFRlY2hub2xvZ3kg Q2VudGVyCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K PiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y Zwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4CgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRp b24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vZHJpLWRldmVsCg==