From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Sharma, Shashank" Subject: Re: [PATCH v3 5/6] drm/i915: enable scrambling Date: Tue, 21 Feb 2017 13:32:19 +0530 Message-ID: <41ba3915-5837-90d8-bc6b-e7cfa32348c8@intel.com> References: <1486744168-7857-1-git-send-email-shashank.sharma@intel.com> <1486744168-7857-6-git-send-email-shashank.sharma@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst , dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, jose.abreu@synopsys.com, jani.nikula@linux.intel.com Cc: daniel.vetter@intel.com, treding@nvidia.com List-Id: intel-gfx@lists.freedesktop.org VGhhbmtzIGZvciB0aGUgcmV2aWV3IE1hYXJ0ZW4uCgpNeSBjb21tZW50cyBpbmxpbmUuCgoKUmVn YXJkcwoKU2hhc2hhbmsKCgpPbiAyLzIwLzIwMTcgNTo0OCBQTSwgTWFhcnRlbiBMYW5raG9yc3Qg d3JvdGU6Cj4gT3AgMTAtMDItMTcgb20gMTc6Mjkgc2NocmVlZiBTaGFzaGFuayBTaGFybWE6Cj4+ IEdlbWluaWxha2UgcGxhdGZvcm0gc3BvcnRzIGEgbmF0aXZlIEhETUkgMi4wIGNvbnRyb2xsZXIs IGFuZCBpcwo+PiBjYXBhYmxlIG9mIGRyaXZpbmcgcGl4ZWwtY2xvY2tzIHVwdG8gNTk0TWh6LiBI RE1JIDIuMCBzcGVjCj4+IG1lbmRhdGVzIHNjcmFtYmxpbmcgZm9yIHRoZXNlIGhpZ2hlciBjbG9j a3MsIGZvciByZWR1Y2VkIFJGIGZvb3RwcmludC4KPj4KPj4gVGhpcyBwYXRjaCBjaGVja3MgaWYg dGhlIG1vbml0b3Igc3VwcG9ydHMgc2NyYW1ibGluZywgYW5kIGlmIHJlcXVpcmVkLAo+PiBlbmFi bGVzIGl0IGR1cmluZyB0aGUgbW9kZXNldC4KPj4KPj4gVjI6IEFkZHJlc3NlZCByZXZpZXcgY29t bWVudHMgZnJvbSBWaWxsZToKPj4gLSBEbyBub3QgdHJhY2sgc2NyYW1ibGluZyBzdGF0dXMgaW4g RFJNIGxheWVyLCB0cmFjayBzb21ld2hlcmUgaW4KPj4gICAgZHJpdmVyIGxpa2UgaW4gaW50ZWxf Y3J0Y19zdGF0ZS4KPj4gLSBEb24ndCB0YWxrIHRvIG1vbml0b3IgYXQgc3VjaCBhIGxvdyBsYXll ciwgc2V0IG1vbml0b3Igc2NyYW1ibGluZwo+PiAgICBpbiBpbnRlbF9lbmFibGVfZGRpKCkgYmVm b3JlIGVuYWJsaW5nIHRoZSBwb3J0Lgo+Pgo+PiBWMzogQWRkcmVzc2VkIHJldmlldyBjb21tZW50 cyBmcm9tIEphbmkKPj4gLSBJbiBjb21tZW50cywgZnVuY3Rpb24gbmFtZXMsIHVzZSAic2luayIg aW5zdGVhZCBvZiAibW9uaXRvciIsCj4+ICAgIHNvIHRoYXQgdGhlIGltcGxlbWVudGF0aW9uIGNv dWxkIGJlIGNsb3NlIHRvIHRoZSBsYW5ndWFnZSBvZgo+PiAgICBIRE1JIHNwZWMuCj4+Cj4+IFNp Z25lZC1vZmYtYnk6IFNoYXNoYW5rIFNoYXJtYSA8c2hhc2hhbmsuc2hhcm1hQGludGVsLmNvbT4K Pj4gLS0tCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgIHwgICA0ICsrCj4+ ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMgIHwgIDI4ICsrKysrKysrKysKPj4g ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgfCAgMTQgKysrKysKPj4gICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgfCAxMDYgKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysKPj4gICA0IGZpbGVzIGNoYW5nZWQsIDE1MiBpbnNlcnRpb25zKCsp Cj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+PiBpbmRleCAxNDFhNWMxLi44MWNmMTBiIDEw MDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPj4gQEAgLTc4MTksNyArNzgxOSwxMSBAQCBl bnVtIHsKPj4gICAjZGVmaW5lICBUUkFOU19ERElfRURQX0lOUFVUX0JfT05PRkYJKDU8PDEyKQo+ PiAgICNkZWZpbmUgIFRSQU5TX0RESV9FRFBfSU5QVVRfQ19PTk9GRgkoNjw8MTIpCj4+ICAgI2Rl ZmluZSAgVFJBTlNfRERJX0RQX1ZDX1BBWUxPQURfQUxMT0MJKDE8PDgpCj4+ICsjZGVmaW5lICBU UkFOU19ERElfSERNSV9TQ1JBTUJMRVJfQ1RTX0VOQUJMRSAoMTw8NykKPj4gKyNkZWZpbmUgIFRS QU5TX0RESV9IRE1JX1NDUkFNQkxFUl9SRVNFVF9GUkVRICgxPDw2KQo+PiAgICNkZWZpbmUgIFRS QU5TX0RESV9CRklfRU5BQkxFCQkoMTw8NCkKPj4gKyNkZWZpbmUgIFRSQU5TX0RESV9ISUdIX1RN RFNfQ0hBUl9SQVRFCSgxPDw0KQo+PiArI2RlZmluZSAgVFJBTlNfRERJX0hETUlfU0NSQU1CTElO RwkoMTw8MCkKPj4gICAKPj4gICAvKiBEaXNwbGF5UG9ydCBUcmFuc3BvcnQgQ29udHJvbCAqLwo+ PiAgICNkZWZpbmUgX0RQX1RQX0NUTF9BCQkJMHg2NDA0MAo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k ZGkuYwo+PiBpbmRleCBjZDZmZWRkLi5iZDgyOTNkIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kZGkuYwo+PiBAQCAtMTI3OCw2ICsxMjc4LDExIEBAIHZvaWQgaW50ZWxfZGRpX2VuYWJsZV90 cmFuc2NvZGVyX2Z1bmMoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+PiAgIAkJCXRlbXAgfD0gVFJB TlNfRERJX01PREVfU0VMRUNUX0hETUk7Cj4+ICAgCQllbHNlCj4+ICAgCQkJdGVtcCB8PSBUUkFO U19ERElfTU9ERV9TRUxFQ1RfRFZJOwo+PiArCj4+ICsJCWlmIChJU19HRU1JTklMQUtFKGRldl9w cml2KSkKPj4gKwkJCXRlbXAgPSBpbnRlbF9oZG1pX2hhbmRsZV9zb3VyY2Vfc2NyYW1ibGluZygK Pj4gKwkJCQlpbnRlbF9lbmNvZGVyLAo+PiArCQkJCSZpbnRlbF9jcnRjLT5jb25maWctPmJhc2Uu YWRqdXN0ZWRfbW9kZSwgdGVtcCk7Cj4+ICAgCX0gZWxzZSBpZiAodHlwZSA9PSBJTlRFTF9PVVRQ VVRfQU5BTE9HKSB7Cj4+ICAgCQl0ZW1wIHw9IFRSQU5TX0RESV9NT0RFX1NFTEVDVF9GREk7Cj4+ ICAgCQl0ZW1wIHw9IChpbnRlbF9jcnRjLT5jb25maWctPmZkaV9sYW5lcyAtIDEpIDw8IDE7Cj4+ IEBAIC0xODQzLDYgKzE4NDgsMjEgQEAgc3RhdGljIHZvaWQgaW50ZWxfZW5hYmxlX2RkaShzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciwKPj4gICAJCXN0cnVjdCBpbnRlbF9kaWdp dGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0KPj4gICAJCQllbmNfdG9fZGlnX3BvcnQoZW5jb2Rl cik7Cj4+ICAgCj4+ICsJCWlmIChJU19HRU1JTklMQUtFKGRldl9wcml2KSkgewo+PiArCQkJc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGVuY29kZXItPmNydGMpOwo+PiAr CQkJLyoKPj4gKwkJCSAqIEdMSyBzcG9ydHMgYSBuYXRpdmUgSERNSSAyLjAgY29udHJvbGxlci4g SWYgcmVxdWlyZWQKPj4gKwkJCSAqIGNsb2NrIHJhdGUgaXMgPiAzNDAgTWh6ICYmIHNjcmFtYmxp bmcgaXMgc3VwcG9ydGVkCj4+ICsJCQkgKiBieSBzaW5rLCBlbmFibGUgc2NyYW1ibGluZyBiZWZv cmUgZW5hYmxpbmcgdGhlCj4+ICsJCQkgKiBIRE1JIDIuMCBwb3J0LiBUaGUgc2luayBjYW4gY2hv b3NlIHRvIGRpc2FibGUgdGhlCj4+ICsJCQkgKiBzY3JhbWJsaW5nIGlmIGl0IGRvZXNuJ3QgZGV0 ZWN0IGEgc2NyYW1ibGVkIHdpdGhpbgo+PiArCQkJICogMTAwIG1zLgo+PiArCQkJICovCj4+ICsJ CQlpbnRlbF9oZG1pX2hhbmRsZV9zaW5rX3NjcmFtYmxpbmcoaW50ZWxfZW5jb2RlciwKPj4gKwkJ CQkJCWNvbm5fc3RhdGUtPmNvbm5lY3RvciwKPj4gKwkJCQkJCWNydGMtPmNvbmZpZywgdHJ1ZSk7 Cj4+ICsJCX0KPj4gKwo+PiAgIAkJLyogSW4gSERNSS9EVkkgbW9kZSwgdGhlIHBvcnQgd2lkdGgs IGFuZCBzd2luZy9lbXBoYXNpcyB2YWx1ZXMKPj4gICAJCSAqIGFyZSBpZ25vcmVkIHNvIG5vdGhp bmcgc3BlY2lhbCBuZWVkcyB0byBiZSBkb25lIGJlc2lkZXMKPj4gICAJCSAqIGVuYWJsaW5nIHRo ZSBwb3J0Lgo+PiBAQCAtMTg3NSw2ICsxODk1LDE0IEBAIHN0YXRpYyB2b2lkIGludGVsX2Rpc2Fi bGVfZGRpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyLAo+PiAgIAlpZiAob2xk X2NydGNfc3RhdGUtPmhhc19hdWRpbykKPj4gICAJCWludGVsX2F1ZGlvX2NvZGVjX2Rpc2FibGUo aW50ZWxfZW5jb2Rlcik7Cj4+ICAgCj4+ICsJaWYgKHR5cGUgPT0gSU5URUxfT1VUUFVUX0hETUkp IHsKPj4gKwkJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGVu Y29kZXItPmNydGMpOwo+PiArCj4+ICsJCWludGVsX2hkbWlfaGFuZGxlX3Npbmtfc2NyYW1ibGlu ZyhpbnRlbF9lbmNvZGVyLAo+PiArCQkJCQlvbGRfY29ubl9zdGF0ZS0+Y29ubmVjdG9yLAo+PiAr CQkJCQlpbnRlbF9jcnRjLT5jb25maWcsIGZhbHNlKTsKPj4gKwl9Cj4+ICsKPj4gICAJaWYgKHR5 cGUgPT0gSU5URUxfT1VUUFVUX0VEUCkgewo+PiAgIAkJc3RydWN0IGludGVsX2RwICppbnRlbF9k cCA9IGVuY190b19pbnRlbF9kcChlbmNvZGVyKTsKPj4gICAKPj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgKPj4gaW5kZXggNmUzN2ZiYS4uZGYwMTcwYjg4IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaAo+PiBAQCAtNjkxLDYgKzY5MSwxMiBAQCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSB7Cj4+ICAgCj4+ICAgCS8qIEdhbW1hIG1vZGUgcHJvZ3JhbW1lZCBvbiB0aGUgcGlwZSAqLwo+ PiAgIAl1aW50MzJfdCBnYW1tYV9tb2RlOwo+PiArCj4+ICsJLyogSERNSSBzY3JhbWJsaW5nIHN0 YXR1cyAoc2luaykgKi8KPj4gKwlib29sIHNjcmFtYmxpbmc7Cj4+ICsKPj4gKwkvKiBIRE1JIEhp Z2ggVE1EUyBjaGFyIHJhdGUgcmF0aW8gKHNpbmspICovCj4+ICsJYm9vbCBoaWdoX3RtZHNfY2xv Y2tfcmF0aW87Cj4+ICAgfTsKPiBTaW5jZSB0aGlzIGlzIGZvciBoZG1pLCBtYXliZSBhZGQgdGhh dCB0byB0aGUgdmFyaWFibGUgbmFtZSB0b28/Clllcywgd2UgY2FuIHZlcnkgd2VsbCBkbyB0aGlz LiBJIHdpbGwgYWRkcmVzcyB0aGlzLgo+IE90aGVyd2lzZSBsb29rcyBzYW5lLCBJIHdpc2ggaW50 ZWxfY3J0Yy0+Y29uZmlnIHdhcyBnb25lIGFuZCBpbnRlbF9jcnRjX3N0YXRlIGV4cGxpY2l0bHkg cGFzc2VkLCBidXQgdGhhdCB3b24ndCBoYXBwZW4ganVzdCB5ZXQuLgpZZWFoLCBJIGtub3csIHRo YXQgd291bGQgYmUgY2xlYW5lci4gQnV0IGluIHRoZSBjdXJyZW50IGNvZGUgdGhpcyBpcyAKbW9y ZSBmZWFzaWJsZSB0byBkbywgaXNuJ3QgaXQgPwoKLSBTaGFzaGFuawo+PiAgIHN0cnVjdCB2bHZf d21fc3RhdGUgewo+PiBAQCAtMTYwOSw2ICsxNjE1LDE0IEBAIHZvaWQgaW50ZWxfaGRtaV9pbml0 X2Nvbm5lY3RvcihzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKPj4g ICBib29sIGludGVsX2hkbWlfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCj4+ICAgCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZp ZywKPj4gICAJCQkgICAgICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUp Owo+PiArdWludDMyX3QKPj4gK2ludGVsX2hkbWlfaGFuZGxlX3NvdXJjZV9zY3JhbWJsaW5nKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyLAo+PiArCQkJCQlzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSAqbW9kZSwKPj4gKwkJCQkJdWludDMyX3QgY29uZmlnKTsKPj4gK3ZvaWQgaW50 ZWxfaGRtaV9oYW5kbGVfc2lua19zY3JhbWJsaW5nKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRl bF9lbmNvZGVyLAo+PiArCQkJCQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+PiAr CQkJCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY29uZmlnLAo+PiArCQkJCQlib29sIGVuYWJs ZSk7Cj4+ICAgdm9pZCBpbnRlbF9kcF9kdWFsX21vZGVfc2V0X3RtZHNfb3V0cHV0KHN0cnVjdCBp bnRlbF9oZG1pICpoZG1pLCBib29sIGVuYWJsZSk7Cj4+ICAgCj4+ICAgCj4+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9oZG1pLmMKPj4gaW5kZXggYTU4MGRlOC4uOTk3MDEzMSAxMDA2NDQKPj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2hkbWkuYwo+PiBAQCAtMzQsNiArMzQsNyBAQAo+PiAgICNpbmNsdWRlIDxk cm0vZHJtX2F0b21pY19oZWxwZXIuaD4KPj4gICAjaW5jbHVkZSA8ZHJtL2RybV9jcnRjLmg+Cj4+ ICAgI2luY2x1ZGUgPGRybS9kcm1fZWRpZC5oPgo+PiArI2luY2x1ZGUgPGRybS9kcm1fc2NkY19o ZWxwZXIuaD4KPj4gICAjaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCj4+ICAgI2luY2x1ZGUgPGRybS9p OTE1X2RybS5oPgo+PiAgICNpbmNsdWRlIDxkcm0vaW50ZWxfbHBlX2F1ZGlvLmg+Cj4+IEBAIC0x Nzk1LDYgKzE3OTYsMTExIEBAIHN0YXRpYyB2b2lkIGludGVsX2hkbWlfZGVzdHJveShzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+PiAgIAlpbnRlbF9oZG1pLT5hc3BlY3RfcmF0aW8g PSBIRE1JX1BJQ1RVUkVfQVNQRUNUX05PTkU7Cj4+ICAgfQo+PiAgIAo+PiArdm9pZCBpbnRlbF9o ZG1pX2hhbmRsZV9zaW5rX3NjcmFtYmxpbmcoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2Vu Y29kZXIsCj4+ICsJCQkJICAgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4+ ICsJCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjb25maWcsCj4+ICsJCQkJICAg ICAgIGJvb2wgZW5hYmxlKQo+PiArewo+PiArCXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1p ID0gZW5jX3RvX2ludGVsX2hkbWkoJmludGVsX2VuY29kZXItPmJhc2UpOwo+PiArCXN0cnVjdCBk cm1fc2NkYyAqc2NkYyA9ICZjb25uZWN0b3ItPmRpc3BsYXlfaW5mby5oZG1pLnNjZGM7Cj4+ICsJ c3RydWN0IGRybV9zY3JhbWJsaW5nICpzY3JhbWJsaW5nID0gJnNjZGMtPnNjcmFtYmxpbmc7Cj4+ ICsJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUgPSAmY29uZmlnLT5iYXNlLmFkanVzdGVk X21vZGU7Cj4+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gY29ubmVjdG9y LT5kZXYtPmRldl9wcml2YXRlOwo+PiArCXN0cnVjdCBpMmNfYWRhcHRlciAqYWRwdHIgPSBpbnRl bF9nbWJ1c19nZXRfYWRhcHRlcihkZXZfcHJpdiwKPj4gKwkJCQkJCQkgIGludGVsX2hkbWktPmRk Y19idXMpOwo+PiArCj4+ICsJaWYgKCFzY3JhbWJsaW5nLT5zdXBwb3J0ZWQpCj4+ICsJCXJldHVy bjsKPj4gKwo+PiArCURSTV9ERUJVR19LTVMoIlNldHRpbmcgc2luayBzY3JhbWJsaW5nIGZvciBl bmM6JXMgY29ubmVjdG9yOiVzXG4iLAo+PiArCQkJaW50ZWxfZW5jb2Rlci0+YmFzZS5uYW1lLCBj b25uZWN0b3ItPm5hbWUpOwo+PiArCj4+ICsJaWYgKGVuYWJsZSkgewo+PiArCj4+ICsJCWlmICht b2RlLT5jbG9jayA+IDM0MDAwMCkgewo+PiArCQkJLyogU2V0IFRNRFMgYml0IGNsb2NrIHJhdGlv IHRvIDEvNDAgKi8KPj4gKwkJCWNvbmZpZy0+aGlnaF90bWRzX2Nsb2NrX3JhdGlvID0KPj4gKwkJ CQlkcm1fc2NkY19zZXRfaGlnaF90bWRzX2Nsb2NrX3JhdGlvKGFkcHRyKTsKPj4gKwkJCWlmICgh Y29uZmlnLT5oaWdoX3RtZHNfY2xvY2tfcmF0aW8pIHsKPj4gKwkJCQlEUk1fRVJST1IoIlNldCBo aWdoIFRNRFMgcmF0aW8gZmFpbGVkXG4iKTsKPj4gKwkJCQlyZXR1cm47Cj4+ICsJCQl9Cj4+ICsK Pj4gKwkJCS8qIEVuYWJsZSBzaW5rIHNjcmFtYmxpbmcgKi8KPj4gKwkJCWNvbmZpZy0+c2NyYW1i bGluZyA9IGRybV9zY2RjX2VuYWJsZV9zY3JhbWJsaW5nKGFkcHRyKTsKPj4gKwkJCWlmICghY29u ZmlnLT5zY3JhbWJsaW5nKSB7Cj4+ICsJCQkJRFJNX0VSUk9SKCJDYW4ndCBlbmFibGUgc2luayBz Y3JhbWJsaW5nXG4iKTsKPj4gKwkJCQlyZXR1cm47Cj4+ICsJCQl9Cj4+ICsJCX0KPj4gKwo+PiAr CQkvKiBGZXcgc2lua3Mgc3VwcG9ydCBzY3JhbWJsaW5nIGF0IGNsb2NrcyA8PTM0MCBNSHogdG9v ICovCj4+ICsJCWlmICghY29uZmlnLT5zY3JhbWJsaW5nICYmIHNjcmFtYmxpbmctPmxvd19yYXRl cykgewo+PiArCQkJY29uZmlnLT5zY3JhbWJsaW5nID0gZHJtX3NjZGNfZW5hYmxlX3NjcmFtYmxp bmcoYWRwdHIpOwo+PiArCQkJaWYgKCFjb25maWctPnNjcmFtYmxpbmcpCj4+ICsJCQkJRFJNX0VS Uk9SKCJDYW4ndCBlbmFibGUgc2luayBzY3JhbWJsaW5nXG4iKTsKPj4gKwkJfQo+PiArCj4+ICsJ CXJldHVybjsKPj4gKwl9Cj4+ICsKPj4gKwlpZiAoY29uZmlnLT5oaWdoX3RtZHNfY2xvY2tfcmF0 aW8pIHsKPj4gKwkJLyogU2V0IFRNRFMgYml0IGNsb2NrIHJhdGlvIGJhY2sgdG8gMS8xMCAqLwo+ PiArCQljb25maWctPmhpZ2hfdG1kc19jbG9ja19yYXRpbyA9Cj4+ICsJCQkhKGRybV9zY2RjX2Ns ZWFyX2hpZ2hfdG1kc19jbG9ja19yYXRpbyhhZHB0cikpOwo+PiArCQlpZiAoY29uZmlnLT5oaWdo X3RtZHNfY2xvY2tfcmF0aW8pCj4+ICsJCQlEUk1fRVJST1IoIlJlc2V0IGhpZ2ggVE1EUyByYXRp byBmYWlsZWRcbiIpOwo+PiArCX0KPj4gKwo+PiArCWlmIChjb25maWctPnNjcmFtYmxpbmcpIHsK Pj4gKwkJLyogRGlzYWJsZSBzaW5rIHNjcmFtYmxpbmcgKi8KPj4gKwkJY29uZmlnLT5zY3JhbWJs aW5nID0gIShkcm1fc2NkY19kaXNhYmxlX3NjcmFtYmxpbmcoYWRwdHIpKTsKPj4gKwkJaWYgKGNv bmZpZy0+c2NyYW1ibGluZykKPj4gKwkJCURSTV9FUlJPUigiRGlzYWJsZSBzaW5rIHNjcmFtYmxp bmcgZmFpbGVkXG4iKTsKPj4gKwl9Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBpbmxpbmUgdWludDMy X3QgX2ludGVsX2hkbWlfc2V0X3NvdXJjZV9zY3JhbWJsaW5nKHVpbnQzMl90IGhkbWlfY29uZmln KQo+PiArewo+PiArCXJldHVybiBoZG1pX2NvbmZpZyB8PSAoVFJBTlNfRERJX0hETUlfU0NSQU1C TElORyB8Cj4+ICsJCQlUUkFOU19ERElfSERNSV9TQ1JBTUJMRVJfUkVTRVRfRlJFUSB8Cj4+ICsJ CQlUUkFOU19ERElfSERNSV9TQ1JBTUJMRVJfQ1RTX0VOQUJMRSk7Cj4+ICt9Cj4+ICsKPj4gK3Vp bnQzMl90Cj4+ICtpbnRlbF9oZG1pX2hhbmRsZV9zb3VyY2Vfc2NyYW1ibGluZyhzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciwKPj4gKwkJCXN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICptb2RlLCB1aW50MzJfdCBoZG1pX2NvbmZpZykKPj4gK3sKPj4gKwlzdHJ1Y3QgaW50ZWxfaGRt aSAqaW50ZWxfaGRtaSA9IGVuY190b19pbnRlbF9oZG1pKCZpbnRlbF9lbmNvZGVyLT5iYXNlKTsK Pj4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gJmludGVsX2hkbWktPmF0dGFj aGVkX2Nvbm5lY3Rvci0+YmFzZTsKPj4gKwlzdHJ1Y3QgZHJtX2hkbWlfaW5mbyAqaGRtaV9pbmZv ID0gJmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhkbWk7Cj4+ICsJc3RydWN0IGRybV9zY3JhbWJs aW5nICpzY3JhbWJsaW5nID0gJmhkbWlfaW5mby0+c2NkYy5zY3JhbWJsaW5nOwo+PiArCj4+ICsJ RFJNX0RFQlVHX0tNUygiU2V0dGluZyBzY3JhbWJsaW5nIGZvciBlbmM6JXMgY29ubmVjdG9yOiVz XG4iLAo+PiArCQkJaW50ZWxfZW5jb2Rlci0+YmFzZS5uYW1lLCBjb25uZWN0b3ItPm5hbWUpOwo+ PiArCj4+ICsJaGRtaV9jb25maWcgJj0gfihUUkFOU19ERElfSERNSV9TQ1JBTUJMSU5HIHwKPj4g KwkJVFJBTlNfRERJX0hJR0hfVE1EU19DSEFSX1JBVEUgfAo+PiArCQlUUkFOU19ERElfSERNSV9T Q1JBTUJMRVJfUkVTRVRfRlJFUSB8Cj4+ICsJCVRSQU5TX0RESV9IRE1JX1NDUkFNQkxFUl9DVFNf RU5BQkxFKTsKPj4gKwo+PiArCWlmIChtb2RlLT5jbG9jayA8PSAzNDAwMDApIHsKPj4gKwkJLyog RmV3IHNpbmtzIHN1cHBvcnQgc2NyYW1ibGluZyBhdCByYXRlIDwgMzQwIE1IeiB0b28gKi8KPj4g KwkJaWYgKHNjcmFtYmxpbmctPmxvd19yYXRlcykKPj4gKwkJCWhkbWlfY29uZmlnID0KPj4gKwkJ CQlfaW50ZWxfaGRtaV9zZXRfc291cmNlX3NjcmFtYmxpbmcoaGRtaV9jb25maWcpOwo+PiArCQly ZXR1cm4gaGRtaV9jb25maWc7Cj4+ICsJfQo+PiArCj4+ICsJLyogU2NyYW1ibGluZyBvciBub3Qs IGlmIGNsb2NrID4gMzQwIE1Ieiwgc2V0IGhpZ2ggY2hhciByYXRlICovCj4+ICsJaGRtaV9jb25m aWcgfD0gVFJBTlNfRERJX0hJR0hfVE1EU19DSEFSX1JBVEU7Cj4+ICsKPj4gKwlpZiAoc2NyYW1i bGluZy0+c3VwcG9ydGVkKQo+PiArCQloZG1pX2NvbmZpZyA9IF9pbnRlbF9oZG1pX3NldF9zb3Vy Y2Vfc2NyYW1ibGluZyhoZG1pX2NvbmZpZyk7Cj4+ICsKPj4gKwlyZXR1cm4gaGRtaV9jb25maWc7 Cj4+ICt9Cj4+ICsKPj4gICBzdGF0aWMgdTggaW50ZWxfaGRtaV9kZGNfcGluKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPj4gICAJCQkgICAgIGVudW0gcG9ydCBwb3J0KQo+PiAg IHsKPgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==