From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v5 5/6] drm/i915: enable scrambling Date: Wed, 1 Mar 2017 17:11:30 +0200 Message-ID: <20170301151130.GW31595@intel.com> References: <1488271150-7423-1-git-send-email-shashank.sharma@intel.com> <1488271150-7423-6-git-send-email-shashank.sharma@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: <1488271150-7423-6-git-send-email-shashank.sharma@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Shashank Sharma Cc: jose.abreu@synopsys.com, ander.conselvan.de.oliveira@intel.com, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, daniel.vetter@intel.com, treding@nvidia.com List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBGZWIgMjgsIDIwMTcgYXQgMDI6MDk6MDlQTSArMDUzMCwgU2hhc2hhbmsgU2hhcm1h IHdyb3RlOgo+IEdlbWluaWxha2UgcGxhdGZvcm0gc3BvcnRzIGEgbmF0aXZlIEhETUkgMi4wIGNv bnRyb2xsZXIsIGFuZCBpcwo+IGNhcGFibGUgb2YgZHJpdmluZyBwaXhlbC1jbG9ja3MgdXB0byA1 OTRNaHouIEhETUkgMi4wIHNwZWMKPiBtZW5kYXRlcyBzY3JhbWJsaW5nIGZvciB0aGVzZSBoaWdo ZXIgY2xvY2tzLCBmb3IgcmVkdWNlZCBSRiBmb290cHJpbnQuCj4gCj4gVGhpcyBwYXRjaCBjaGVj a3MgaWYgdGhlIG1vbml0b3Igc3VwcG9ydHMgc2NyYW1ibGluZywgYW5kIGlmIHJlcXVpcmVkLAo+ IGVuYWJsZXMgaXQgZHVyaW5nIHRoZSBtb2Rlc2V0Lgo+IAo+IFYyOiBBZGRyZXNzZWQgcmV2aWV3 IGNvbW1lbnRzIGZyb20gVmlsbGU6Cj4gLSBEbyBub3QgdHJhY2sgc2NyYW1ibGluZyBzdGF0dXMg aW4gRFJNIGxheWVyLCB0cmFjayBzb21ld2hlcmUgaW4KPiAgIGRyaXZlciBsaWtlIGluIGludGVs X2NydGNfc3RhdGUuCj4gLSBEb24ndCB0YWxrIHRvIG1vbml0b3IgYXQgc3VjaCBhIGxvdyBsYXll ciwgc2V0IG1vbml0b3Igc2NyYW1ibGluZwo+ICAgaW4gaW50ZWxfZW5hYmxlX2RkaSgpIGJlZm9y ZSBlbmFibGluZyB0aGUgcG9ydC4KPiAKPiBWMzogQWRkcmVzc2VkIHJldmlldyBjb21tZW50cyBm cm9tIEphbmkKPiAgLSBJbiBjb21tZW50cywgZnVuY3Rpb24gbmFtZXMsIHVzZSAic2luayIgaW5z dGVhZCBvZiAibW9uaXRvciIsCj4gICAgc28gdGhhdCB0aGUgaW1wbGVtZW50YXRpb24gY291bGQg YmUgY2xvc2UgdG8gdGhlIGxhbmd1YWdlIG9mCj4gICAgSERNSSBzcGVjLgo+IAo+IFY0OiBBZGRy ZXNzZWQgcmV2aWV3IGNvbW1lbnQgZnJvbSBNYWFydGVuCj4gIC0gc2NyYW1ibGluZyAtPiBoZG1p X3NjcmFtYmxpbmcKPiAgICBoaWdoX3RtZHNfY2xvY2tfcmF0aW8gLT4gaGRtaV9oaWdoX3RtZHNf Y2xvY2tfcmF0aW8KPiAKPiBWNTogQWRkcmVzc2VkIHJldmlldyBjb21tZW50cyBmcm9tIFZpbGxl IGFuZCBBbmRlcgo+ICAtIERvIG5vdCBtb2RpZml5IHRoZSBjcnRjX3N0YXRlIGFmdGVyIGNvbXB1 dGVfY29uZmlnLiBNb3ZlIGFsbAo+ICAgIHNjcmFtYmxpbmcgYW5kIHRtZHNfY2xvY2tfcmF0aW8g Y2FsY3V0YXRpb25zIHRvIGNvbXB1dGVfY29uZmlnLgo+ICAtIFdoaWxlIHNldHRpbmcgc2NyYW1i bGluZyBmb3Igc291cmNlL3NpbmssIGRvIG5vdCBjaGVjayB0aGUKPiAgICBjb25kaXRpb25zIGFn YWluLCBqdXN0IGdvIGJ5IHRoZSBjcnRjX3N0YXRlIGZsYWdzLiBUaGlzIHdpbGwKPiAgICBzaW1w bHlmeSB0aGUgY29uZGl0aW9uIGNoZWNrcy4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBTaGFzaGFuayBT aGFybWEgPHNoYXNoYW5rLnNoYXJtYUBpbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcmVnLmggICB8ICA0ICsrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RkaS5jICB8IDI5ICsrKysrKysrKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaCAgfCAxNCArKysrKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jIHwg OTggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gIDQgZmlsZXMgY2hh bmdlZCwgMTQ1IGluc2VydGlvbnMoKykKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBpbmRl eCBjZTZmMDk2Li4xNzU5YjY0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcmVnLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gQEAgLTc4 MjQsNyArNzgyNCwxMSBAQCBlbnVtIHsKPiAgI2RlZmluZSAgVFJBTlNfRERJX0VEUF9JTlBVVF9C X09OT0ZGCSg1PDwxMikKPiAgI2RlZmluZSAgVFJBTlNfRERJX0VEUF9JTlBVVF9DX09OT0ZGCSg2 PDwxMikKPiAgI2RlZmluZSAgVFJBTlNfRERJX0RQX1ZDX1BBWUxPQURfQUxMT0MJKDE8PDgpCj4g KyNkZWZpbmUgIFRSQU5TX0RESV9IRE1JX1NDUkFNQkxFUl9DVFNfRU5BQkxFICgxPDw3KQo+ICsj ZGVmaW5lICBUUkFOU19ERElfSERNSV9TQ1JBTUJMRVJfUkVTRVRfRlJFUSAoMTw8NikKPiAgI2Rl ZmluZSAgVFJBTlNfRERJX0JGSV9FTkFCTEUJCSgxPDw0KQo+ICsjZGVmaW5lICBUUkFOU19ERElf SElHSF9UTURTX0NIQVJfUkFURQkoMTw8NCkKPiArI2RlZmluZSAgVFJBTlNfRERJX0hETUlfU0NS QU1CTElORwkoMTw8MCkKPiAgCj4gIC8qIERpc3BsYXlQb3J0IFRyYW5zcG9ydCBDb250cm9sICov Cj4gICNkZWZpbmUgX0RQX1RQX0NUTF9BCQkJMHg2NDA0MAo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rk aS5jCj4gaW5kZXggYTdjMDhkNy4uMjRiYzNhOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kZGkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rk aS5jCj4gQEAgLTEzMTEsNiArMTMxMSwxMSBAQCB2b2lkIGludGVsX2RkaV9lbmFibGVfdHJhbnNj b2Rlcl9mdW5jKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgCQkJdGVtcCB8PSBUUkFOU19ERElf TU9ERV9TRUxFQ1RfSERNSTsKPiAgCQllbHNlCj4gIAkJCXRlbXAgfD0gVFJBTlNfRERJX01PREVf U0VMRUNUX0RWSTsKPiArCj4gKwkJaWYgKElTX0dFTUlOSUxBS0UoZGV2X3ByaXYpKQo+ICsJCQl0 ZW1wID0gaW50ZWxfaGRtaV9oYW5kbGVfc291cmNlX3NjcmFtYmxpbmcoCj4gKwkJCQlpbnRlbF9l bmNvZGVyLAo+ICsJCQkJaW50ZWxfY3J0Yy0+Y29uZmlnLCB0ZW1wKTsKPiAgCX0gZWxzZSBpZiAo dHlwZSA9PSBJTlRFTF9PVVRQVVRfQU5BTE9HKSB7Cj4gIAkJdGVtcCB8PSBUUkFOU19ERElfTU9E RV9TRUxFQ1RfRkRJOwo+ICAJCXRlbXAgfD0gKGludGVsX2NydGMtPmNvbmZpZy0+ZmRpX2xhbmVz IC0gMSkgPDwgMTsKPiBAQCAtMTg4NSw2ICsxODkwLDIxIEBAIHN0YXRpYyB2b2lkIGludGVsX2Vu YWJsZV9kZGkoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIsCj4gIAkJc3RydWN0 IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPQo+ICAJCQllbmNfdG9fZGlnX3Bv cnQoZW5jb2Rlcik7Cj4gIAo+ICsJCWlmIChJU19HRU1JTklMQUtFKGRldl9wcml2KSkgewo+ICsJ CQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoZW5jb2Rlci0+Y3J0Yyk7 Cj4gKwkJCS8qCj4gKwkJCSAqIEdMSyBzcG9ydHMgYSBuYXRpdmUgSERNSSAyLjAgY29udHJvbGxl ci4gSWYgcmVxdWlyZWQKPiArCQkJICogY2xvY2sgcmF0ZSBpcyA+IDM0MCBNaHogJiYgc2NyYW1i bGluZyBpcyBzdXBwb3J0ZWQKPiArCQkJICogYnkgc2luaywgZW5hYmxlIHNjcmFtYmxpbmcgYmVm b3JlIGVuYWJsaW5nIHRoZQo+ICsJCQkgKiBIRE1JIDIuMCBwb3J0LiBUaGUgc2luayBjYW4gY2hv b3NlIHRvIGRpc2FibGUgdGhlCj4gKwkJCSAqIHNjcmFtYmxpbmcgaWYgaXQgZG9lc24ndCBkZXRl Y3QgYSBzY3JhbWJsZWQgd2l0aGluCj4gKwkJCSAqIDEwMCBtcy4KPiArCQkJICovCj4gKwkJCWlu dGVsX2hkbWlfaGFuZGxlX3Npbmtfc2NyYW1ibGluZyhpbnRlbF9lbmNvZGVyLAo+ICsJCQkJCQlj b25uX3N0YXRlLT5jb25uZWN0b3IsCj4gKwkJCQkJCWNydGMtPmNvbmZpZywgdHJ1ZSk7Cj4gKwkJ fQo+ICsKPiAgCQkvKiBJbiBIRE1JL0RWSSBtb2RlLCB0aGUgcG9ydCB3aWR0aCwgYW5kIHN3aW5n L2VtcGhhc2lzIHZhbHVlcwo+ICAJCSAqIGFyZSBpZ25vcmVkIHNvIG5vdGhpbmcgc3BlY2lhbCBu ZWVkcyB0byBiZSBkb25lIGJlc2lkZXMKPiAgCQkgKiBlbmFibGluZyB0aGUgcG9ydC4KPiBAQCAt MTkxMiwxMSArMTkzMiwyMCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX2RkaShzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciwKPiAgCQkJICAgICAgc3RydWN0IGRybV9jb25u ZWN0b3Jfc3RhdGUgKm9sZF9jb25uX3N0YXRlKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2VuY29kZXIg KmVuY29kZXIgPSAmaW50ZWxfZW5jb2Rlci0+YmFzZTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IGVuY29kZXItPmRldi0+ZGV2X3ByaXZhdGU7Cj4gIAlpbnQgdHlwZSA9 IGludGVsX2VuY29kZXItPnR5cGU7Cj4gIAo+ICAJaWYgKG9sZF9jcnRjX3N0YXRlLT5oYXNfYXVk aW8pCj4gIAkJaW50ZWxfYXVkaW9fY29kZWNfZGlzYWJsZShpbnRlbF9lbmNvZGVyKTsKPiAgCj4g KwlpZiAoKHR5cGUgPT0gSU5URUxfT1VUUFVUX0hETUkpICYmIElTX0dFTUlOSUxBS0UoZGV2X3By aXYpKSB7CiAgICAgICAgICAgIF4gICAgICAgICAgICAgICAgICAgICAgICAgXgoKUG9pbnRsZXNz IHBhcmVucy4gQWxzbyBJJ20gbm9yIHN1cmUgd2Ugd2FudCB0aGUgcGxhdGZvcm0gY2hlY2sgaGVy ZS4KU2VlbXMgdG8gbWUgdGhhdCB3ZSBzaG91bGQgYmUgYWJsZSB0byBqdXN0IGV4cGxpY2l0bHkg Y29uZmlndXJlIHRoZSBzaW5rCm9uIGV2ZXJ5IHBsYXRmb3JtLCBpZmYgdGhlIHNpbmsgc3VwcG9y dHMgU0NEQyBvZiBjb3Vyc2UuCgo+ICsJCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0g dG9faW50ZWxfY3J0YyhlbmNvZGVyLT5jcnRjKTsKPiArCj4gKwkJaW50ZWxfaGRtaV9oYW5kbGVf c2lua19zY3JhbWJsaW5nKGludGVsX2VuY29kZXIsCj4gKwkJCQkJb2xkX2Nvbm5fc3RhdGUtPmNv bm5lY3RvciwKPiArCQkJCQlpbnRlbF9jcnRjLT5jb25maWcsIGZhbHNlKTsKPiArCX0KPiArCj4g IAlpZiAodHlwZSA9PSBJTlRFTF9PVVRQVVRfRURQKSB7Cj4gIAkJc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCA9IGVuY190b19pbnRlbF9kcChlbmNvZGVyKTsKPiAgCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmgKPiBpbmRleCA5MDdmYjAwLi4wZTUzZmNkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmgKPiBAQCAtNjk1LDYgKzY5NSwxMiBAQCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSB7 Cj4gIAo+ICAJLyogR2FtbWEgbW9kZSBwcm9ncmFtbWVkIG9uIHRoZSBwaXBlICovCj4gIAl1aW50 MzJfdCBnYW1tYV9tb2RlOwo+ICsKPiArCS8qIEhETUkgc2NyYW1ibGluZyBzdGF0dXMgKHNpbmsp ICovCj4gKwlib29sIGhkbWlfc2NyYW1ibGluZzsKPiArCj4gKwkvKiBIRE1JIEhpZ2ggVE1EUyBj aGFyIHJhdGUgcmF0aW8gKHNpbmspICovCj4gKwlib29sIGhkbWlfaGlnaF90bWRzX2Nsb2NrX3Jh dGlvOwo+ICB9Owo+ICAKPiAgc3RydWN0IHZsdl93bV9zdGF0ZSB7Cj4gQEAgLTE2MjYsNiArMTYz MiwxNCBAQCB2b2lkIGludGVsX2hkbWlfaW5pdF9jb25uZWN0b3Ioc3RydWN0IGludGVsX2RpZ2l0 YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCj4gIGJvb2wgaW50ZWxfaGRtaV9jb21wdXRlX2NvbmZp ZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCQkJICAgICAgIHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiAgCQkJICAgICAgIHN0cnVjdCBkcm1fY29ubmVj dG9yX3N0YXRlICpjb25uX3N0YXRlKTsKPiArdWludDMyX3QKPiAraW50ZWxfaGRtaV9oYW5kbGVf c291cmNlX3NjcmFtYmxpbmcoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIsCj4g KwkJCQkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNvbmZpZywKPiArCQkJCQl1aW50MzJfdCBo ZG1pX2NvbmZpZyk7Cj4gK3ZvaWQgaW50ZWxfaGRtaV9oYW5kbGVfc2lua19zY3JhbWJsaW5nKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyLAo+ICsJCQkJCXN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3IsCj4gKwkJCQkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNvbmZp ZywKPiArCQkJCQlib29sIGVuYWJsZSk7Cj4gIHZvaWQgaW50ZWxfZHBfZHVhbF9tb2RlX3NldF90 bWRzX291dHB1dChzdHJ1Y3QgaW50ZWxfaGRtaSAqaGRtaSwgYm9vbCBlbmFibGUpOwo+ICAKPiAg Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+IGluZGV4IGMyMTg0ZjcuLmZkYmVlZmQgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCj4gQEAgLTM0LDYgKzM0LDcgQEAKPiAgI2lu Y2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgo+ICAjaW5jbHVkZSA8ZHJtL2RybV9jcnRj Lmg+Cj4gICNpbmNsdWRlIDxkcm0vZHJtX2VkaWQuaD4KPiArI2luY2x1ZGUgPGRybS9kcm1fc2Nk Y19oZWxwZXIuaD4KPiAgI2luY2x1ZGUgImludGVsX2Rydi5oIgo+ICAjaW5jbHVkZSA8ZHJtL2k5 MTVfZHJtLmg+Cj4gICNpbmNsdWRlIDxkcm0vaW50ZWxfbHBlX2F1ZGlvLmg+Cj4gQEAgLTEzMTYs NiArMTMxNyw3IEBAIGJvb2wgaW50ZWxfaGRtaV9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKPiAgCXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0gZW5j X3RvX2ludGVsX2hkbWkoJmVuY29kZXItPmJhc2UpOwo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gIAlzdHJ1Y3QgZHJt X2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3Rl ZF9tb2RlOwo+ICsJc3RydWN0IGRybV9zY2RjICpzY2RjID0gJmNvbm5fc3RhdGUtPmNvbm5lY3Rv ci0+ZGlzcGxheV9pbmZvLmhkbWkuc2NkYzsKPiAgCWludCBjbG9ja184YnBjID0gcGlwZV9jb25m aWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrOwo+ICAJaW50IGNsb2NrXzEyYnBjID0g Y2xvY2tfOGJwYyAqIDMgLyAyOwo+ICAJaW50IGRlc2lyZWRfYnBwOwo+IEBAIC0xMzg1LDYgKzEz ODcsMTYgQEAgYm9vbCBpbnRlbF9oZG1pX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAo+ICAKPiAgCXBpcGVfY29uZmlnLT5sYW5lX2NvdW50ID0gNDsKPiAgCj4g KwlpZiAoc2NkYy0+c2NyYW1ibGluZy5zdXBwb3J0ZWQpIHsKCkhlcmUgd2Ugc2hvdWxkIGhhdmUg YSBjaGVjayB3aGV0aGVyIHRoZSBzb3VyY2Ugc3VwcG9ydCBzY3JhbWJsaW5nIG9yIG5vdC4KCj4g KwkJaWYgKHNjZGMtPnNjcmFtYmxpbmcubG93X3JhdGVzKQo+ICsJCQlwaXBlX2NvbmZpZy0+aGRt aV9zY3JhbWJsaW5nID0gdHJ1ZTsKPiArCj4gKwkJaWYgKHBpcGVfY29uZmlnLT5wb3J0X2Nsb2Nr ID4gMzQwMDAwKSB7Cj4gKwkJCXBpcGVfY29uZmlnLT5oZG1pX3NjcmFtYmxpbmcgPSB0cnVlOwo+ ICsJCQlwaXBlX2NvbmZpZy0+aGRtaV9oaWdoX3RtZHNfY2xvY2tfcmF0aW8gPSB0cnVlOwo+ICsJ CX0KPiArCX0KPiArCj4gIAlyZXR1cm4gdHJ1ZTsKPiAgfQo+ICAKPiBAQCAtMTc5NCw2ICsxODA2 LDkyIEBAIHN0YXRpYyB2b2lkIGludGVsX2hkbWlfZGVzdHJveShzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yKQo+ICAJaW50ZWxfaGRtaS0+YXNwZWN0X3JhdGlvID0gSERNSV9QSUNUVVJF X0FTUEVDVF9OT05FOwo+ICB9Cj4gIAo+ICt2b2lkIGludGVsX2hkbWlfaGFuZGxlX3Npbmtfc2Ny YW1ibGluZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciwKPiArCQkJCSAgICAg ICBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICsJCQkJICAgICAgIHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjb25maWcsCj4gKwkJCQkgICAgICAgYm9vbCBlbmFibGUpCj4gK3sK PiArCXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0gZW5jX3RvX2ludGVsX2hkbWkoJmlu dGVsX2VuY29kZXItPmJhc2UpOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gY29ubmVjdG9yLT5kZXYtPmRldl9wcml2YXRlOwo+ICsJc3RydWN0IGRybV9zY3JhbWJsaW5n ICpzY3JhbWJsaW5nID0KPiArCQkJCSZjb25uZWN0b3ItPmRpc3BsYXlfaW5mby5oZG1pLnNjZGMu c2NyYW1ibGluZzsKPiArCXN0cnVjdCBpMmNfYWRhcHRlciAqYWRwdHIgPSBpbnRlbF9nbWJ1c19n ZXRfYWRhcHRlcihkZXZfcHJpdiwKPiArCQkJCQkJCSAgaW50ZWxfaGRtaS0+ZGRjX2J1cyk7Cj4g Kwlib29sIHJldDsKPiArCj4gKwlpZiAoIXNjcmFtYmxpbmctPnN1cHBvcnRlZCkKPiArCQlyZXR1 cm47Cj4gKwo+ICsJRFJNX0RFQlVHX0tNUygiU2V0dGluZyBzaW5rIHNjcmFtYmxpbmcgZm9yIGVu YzolcyBjb25uZWN0b3I6JXNcbiIsCj4gKwkJCWludGVsX2VuY29kZXItPmJhc2UubmFtZSwgY29u bmVjdG9yLT5uYW1lKTsKPiArCj4gKwlpZiAoZW5hYmxlKSB7Cj4gKwo+ICsJCWlmIChjb25maWct PmhkbWlfaGlnaF90bWRzX2Nsb2NrX3JhdGlvKSB7Cj4gKwkJCS8qIFNldCBUTURTIGJpdCBjbG9j ayByYXRpbyB0byAxLzQwICovCj4gKwkJCXJldCA9IGRybV9zY2RjX3NldF9oaWdoX3RtZHNfY2xv Y2tfcmF0aW8oYWRwdHIsIHRydWUpOwo+ICsJCQlpZiAoIXJldCkgewo+ICsJCQkJRFJNX0VSUk9S KCJTZXQgaGlnaCBUTURTIHJhdGlvIGZhaWxlZFxuIik7Cj4gKwkJCQlyZXR1cm47Cj4gKwkJCX0K PiArCQl9Cj4gKwo+ICsJCWlmIChjb25maWctPmhkbWlfc2NyYW1ibGluZykgewo+ICsJCQkvKiBF bmFibGUgc2luayBzY3JhbWJsaW5nICovCj4gKwkJCXJldCA9IGRybV9zY2RjX3NldF9zY3JhbWJs aW5nKGFkcHRyLCB0cnVlKTsKPiArCQkJaWYgKCFyZXQpIHsKPiArCQkJCURSTV9FUlJPUigiQ2Fu J3QgZW5hYmxlIHNpbmsgc2NyYW1ibGluZ1xuIik7Cj4gKwkJCQlyZXR1cm47Cj4gKwkJCX0KPiAr CQl9Cj4gKwo+ICsJCURSTV9ERUJVR19LTVMoInNpbmsgc2NyYW1ibGluZyBlbmFibGVkXG4iKTsK PiArCQlyZXR1cm47Cj4gKwl9Cj4gKwo+ICsJaWYgKGNvbmZpZy0+aGRtaV9oaWdoX3RtZHNfY2xv Y2tfcmF0aW8pIHsKPiArCQkvKiBTZXQgVE1EUyBiaXQgY2xvY2sgcmF0aW8gYmFjayB0byAxLzEw ICovCj4gKwkJcmV0ID0gIShkcm1fc2NkY19zZXRfaGlnaF90bWRzX2Nsb2NrX3JhdGlvKGFkcHRy LCBmYWxzZSkpOwo+ICsJCWlmIChyZXQpCj4gKwkJCURSTV9FUlJPUigiUmVzZXQgaGlnaCBUTURT IHJhdGlvIGZhaWxlZFxuIik7Cj4gKwl9Cj4gKwo+ICsJaWYgKGNvbmZpZy0+aGRtaV9zY3JhbWJs aW5nKSB7Cj4gKwkJLyogRGlzYWJsZSBzaW5rIHNjcmFtYmxpbmcgKi8KPiArCQlyZXQgPSAhKGRy bV9zY2RjX3NldF9zY3JhbWJsaW5nKGFkcHRyLCBmYWxzZSkpOwo+ICsJCWlmIChyZXQpCj4gKwkJ CURSTV9FUlJPUigiRGlzYWJsZSBzaW5rIHNjcmFtYmxpbmcgZmFpbGVkXG4iKTsKPiArCX0KClNl ZW1zIGEgbGl0dGxlIGNvbXBsaWNhdGVkIGZvciB3aGF0IGl0J3MgZG9pbmcuCgpJJ2QgZ28gZm9y IHNvbWV0aGluZyBzaW1wbGUgbGlrZToKCmZvbyhib29sIHNjcmFtYmxpbmcsIGJvb2wgY2xvY2tf cmF0aW8pCnsKCXNldF9zY3JhbWJsaW5nKHNjcmFtYmxpbmcpOwoJc2V0X2Nsb2NrX3JhdGlvKGNs b2NrX3JhdGlvKTsKfQoKZW5hYmxlKCkKewoJZm9vKGNydGNfc3RhdGUtPmhkbWlfc2NyYW1ibGlu ZywgY3J0Y19zdGF0ZS0+Y2xvY2tfcmF0aW8pOwp9CgpkaXNhYmxlKCkKewoJZm9vKGZhbHNlLCBm YWxzZSk7Cn0KCj4gKwo+ICsJRFJNX0RFQlVHX0tNUygic2luayBzY3JhbWJsaW5nIGRpc2FibGVk XG4iKTsKPiArfQo+ICsKPiArdWludDMyX3QKPiAraW50ZWxfaGRtaV9oYW5kbGVfc291cmNlX3Nj cmFtYmxpbmcoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIsCj4gKwkJCXN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjb25maWcsIHVpbnQzMl90IGhkbWlfY29uZmlnKQo+ICt7Cj4g KwlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSA9IGVuY190b19pbnRlbF9oZG1pKCZpbnRl bF9lbmNvZGVyLT5iYXNlKTsKPiArCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSAm aW50ZWxfaGRtaS0+YXR0YWNoZWRfY29ubmVjdG9yLT5iYXNlOwo+ICsKPiArCURSTV9ERUJVR19L TVMoIlNldHRpbmcgc2NyYW1ibGluZyBmb3IgZW5jOiVzIGNvbm5lY3Rvcjolc1xuIiwKPiArCQkJ aW50ZWxfZW5jb2Rlci0+YmFzZS5uYW1lLCBjb25uZWN0b3ItPm5hbWUpOwo+ICsKPiArCWhkbWlf Y29uZmlnICY9IH4oVFJBTlNfRERJX0hETUlfU0NSQU1CTElORyB8Cj4gKwkJVFJBTlNfRERJX0hJ R0hfVE1EU19DSEFSX1JBVEUgfAo+ICsJCVRSQU5TX0RESV9IRE1JX1NDUkFNQkxFUl9SRVNFVF9G UkVRIHwKPiArCQlUUkFOU19ERElfSERNSV9TQ1JBTUJMRVJfQ1RTX0VOQUJMRSk7Cj4gKwo+ICsJ aWYgKGNvbmZpZy0+aGRtaV9zY3JhbWJsaW5nKQo+ICsJCWhkbWlfY29uZmlnIHw9IChUUkFOU19E RElfSERNSV9TQ1JBTUJMSU5HIHwKPiArCQkJVFJBTlNfRERJX0hETUlfU0NSQU1CTEVSX1JFU0VU X0ZSRVEgfAo+ICsJCQlUUkFOU19ERElfSERNSV9TQ1JBTUJMRVJfQ1RTX0VOQUJMRSk7Cj4gKwo+ ICsJaWYgKGNvbmZpZy0+aGRtaV9oaWdoX3RtZHNfY2xvY2tfcmF0aW8pCj4gKwkJaGRtaV9jb25m aWcgfD0gVFJBTlNfRERJX0hJR0hfVE1EU19DSEFSX1JBVEU7CgpJTU8ganVzdCBpbmxpbmUgdGhl c2UgdHdvIHRoaW5ncyBpbnRvIHRoZSBmdW5jdGlvbiB0aGF0IGNvbmZpZ3VyZXMKdGhpcyByZWdp c3Rlci4gSGF2aW5nIHRvIGp1bXAgYXJvdW5kIGJldHdlZW4gZnVuY3Rpb25zIGlzIGp1c3QKZXh0 cmEgcGFpbiB3ZSBkb24ndCBuZWVkIElNTy4KClRoZXJlIHNob3VsZCBhbHNvIGJlIGNvcnJlc3Bv bmRpbmcgcmVhZG91dCBjb2RlIGZvciB0aGlzIGluIAppbnRlbF9kZGlfZ2V0X2NvbmZpZygpLCBh bmQgbWF0Y2hpbmcgUElQRV9DT05GX0NIRUNLIHN0dWZmIGluCmludGVsX3BpcGVfY29uZmlnX2Nv bXBhcmUoKS4KCj4gKwo+ICsJcmV0dXJuIGhkbWlfY29uZmlnOwo+ICt9Cj4gKwo+ICBzdGF0aWMg dTggaW50ZWxfaGRtaV9kZGNfcGluKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK PiAgCQkJICAgICBlbnVtIHBvcnQgcG9ydCkKPiAgewo+IC0tIAo+IDEuOS4xCgotLSAKVmlsbGUg U3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZngK