From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan De Oliveira Subject: Re: [PATCH v5 5/6] drm/i915: enable scrambling Date: Fri, 03 Mar 2017 11:50:50 +0200 Message-ID: <1488534650.4567.2.camel@gmail.com> References: <1488271150-7423-1-git-send-email-shashank.sharma@intel.com> <1488271150-7423-6-git-send-email-shashank.sharma@intel.com> <20170301151130.GW31595@intel.com> <1b83ed53-2440-b1d0-2624-b246657bb077@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1b83ed53-2440-b1d0-2624-b246657bb077@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Sharma, Shashank" , Ville =?ISO-8859-1?Q?Syrj=E4l=E4?= Cc: jose.abreu@synopsys.com, daniel.vetter@intel.com, intel-gfx@lists.freedesktop.org, treding@nvidia.com, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCAyMDE3LTAzLTAyIGF0IDA4OjI1ICswNTMwLCBTaGFybWEsIFNoYXNoYW5rIHdyb3Rl Ogo+IFJlZ2FyZHMKPiAKPiBTaGFzaGFuawo+IAo+IAo+IE9uIDMvMS8yMDE3IDg6NDEgUE0sIFZp bGxlIFN5cmrDpGzDpCB3cm90ZToKPiA+IE9uIFR1ZSwgRmViIDI4LCAyMDE3IGF0IDAyOjA5OjA5 UE0gKzA1MzAsIFNoYXNoYW5rIFNoYXJtYSB3cm90ZToKPiA+ID4gR2VtaW5pbGFrZSBwbGF0Zm9y bSBzcG9ydHMgYSBuYXRpdmUgSERNSSAyLjAgY29udHJvbGxlciwgYW5kIGlzCj4gPiA+IGNhcGFi bGUgb2YgZHJpdmluZyBwaXhlbC1jbG9ja3MgdXB0byA1OTRNaHouIEhETUkgMi4wIHNwZWMKPiA+ ID4gbWVuZGF0ZXMgc2NyYW1ibGluZyBmb3IgdGhlc2UgaGlnaGVyIGNsb2NrcywgZm9yIHJlZHVj ZWQgUkYgZm9vdHByaW50Lgo+ID4gPiAKPiA+ID4gVGhpcyBwYXRjaCBjaGVja3MgaWYgdGhlIG1v bml0b3Igc3VwcG9ydHMgc2NyYW1ibGluZywgYW5kIGlmIHJlcXVpcmVkLAo+ID4gPiBlbmFibGVz IGl0IGR1cmluZyB0aGUgbW9kZXNldC4KPiA+ID4gCj4gPiA+IFYyOiBBZGRyZXNzZWQgcmV2aWV3 IGNvbW1lbnRzIGZyb20gVmlsbGU6Cj4gPiA+IC0gRG8gbm90IHRyYWNrIHNjcmFtYmxpbmcgc3Rh dHVzIGluIERSTSBsYXllciwgdHJhY2sgc29tZXdoZXJlIGluCj4gPiA+ICAgIGRyaXZlciBsaWtl IGluIGludGVsX2NydGNfc3RhdGUuCj4gPiA+IC0gRG9uJ3QgdGFsayB0byBtb25pdG9yIGF0IHN1 Y2ggYSBsb3cgbGF5ZXIsIHNldCBtb25pdG9yIHNjcmFtYmxpbmcKPiA+ID4gICAgaW4gaW50ZWxf ZW5hYmxlX2RkaSgpIGJlZm9yZSBlbmFibGluZyB0aGUgcG9ydC4KPiA+ID4gCj4gPiA+IFYzOiBB ZGRyZXNzZWQgcmV2aWV3IGNvbW1lbnRzIGZyb20gSmFuaQo+ID4gPiAgIC0gSW4gY29tbWVudHMs IGZ1bmN0aW9uIG5hbWVzLCB1c2UgInNpbmsiIGluc3RlYWQgb2YgIm1vbml0b3IiLAo+ID4gPiAg ICAgc28gdGhhdCB0aGUgaW1wbGVtZW50YXRpb24gY291bGQgYmUgY2xvc2UgdG8gdGhlIGxhbmd1 YWdlIG9mCj4gPiA+ICAgICBIRE1JIHNwZWMuCj4gPiA+IAo+ID4gPiBWNDogQWRkcmVzc2VkIHJl dmlldyBjb21tZW50IGZyb20gTWFhcnRlbgo+ID4gPiAgIC0gc2NyYW1ibGluZyAtPiBoZG1pX3Nj cmFtYmxpbmcKPiA+ID4gICAgIGhpZ2hfdG1kc19jbG9ja19yYXRpbyAtPiBoZG1pX2hpZ2hfdG1k c19jbG9ja19yYXRpbwo+ID4gPiAKPiA+ID4gVjU6IEFkZHJlc3NlZCByZXZpZXcgY29tbWVudHMg ZnJvbSBWaWxsZSBhbmQgQW5kZXIKPiA+ID4gICAtIERvIG5vdCBtb2RpZml5IHRoZSBjcnRjX3N0 YXRlIGFmdGVyIGNvbXB1dGVfY29uZmlnLiBNb3ZlIGFsbAo+ID4gPiAgICAgc2NyYW1ibGluZyBh bmQgdG1kc19jbG9ja19yYXRpbyBjYWxjdXRhdGlvbnMgdG8gY29tcHV0ZV9jb25maWcuCj4gPiA+ ICAgLSBXaGlsZSBzZXR0aW5nIHNjcmFtYmxpbmcgZm9yIHNvdXJjZS9zaW5rLCBkbyBub3QgY2hl Y2sgdGhlCj4gPiA+ICAgICBjb25kaXRpb25zIGFnYWluLCBqdXN0IGdvIGJ5IHRoZSBjcnRjX3N0 YXRlIGZsYWdzLiBUaGlzIHdpbGwKPiA+ID4gICAgIHNpbXBseWZ5IHRoZSBjb25kaXRpb24gY2hl Y2tzLgo+ID4gPiAKPiA+ID4gU2lnbmVkLW9mZi1ieTogU2hhc2hhbmsgU2hhcm1hIDxzaGFzaGFu ay5zaGFybWFAaW50ZWwuY29tPgo+ID4gPiAtLS0KPiA+ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3JlZy5oICAgfCAgNCArKwo+ID4gPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RkaS5jICB8IDI5ICsrKysrKysrKysrKwo+ID4gPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oICB8IDE0ICsrKysrKwo+ID4gPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2hkbWkuYyB8IDk4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ID4g PiAgIDQgZmlsZXMgY2hhbmdlZCwgMTQ1IGluc2VydGlvbnMoKykKPiA+ID4gCj4gPiA+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9yZWcuaAo+ID4gPiBpbmRleCBjZTZmMDk2Li4xNzU5YjY0IDEwMDY0NAo+ID4g PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPiA+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiA+ID4gQEAgLTc4MjQsNyArNzgyNCwxMSBAQCBl bnVtIHsKPiA+ID4gICAjZGVmaW5lICBUUkFOU19ERElfRURQX0lOUFVUX0JfT05PRkYJKDU8PDEy KQo+ID4gPiAgICNkZWZpbmUgIFRSQU5TX0RESV9FRFBfSU5QVVRfQ19PTk9GRgkoNjw8MTIpCj4g PiA+ICAgI2RlZmluZSAgVFJBTlNfRERJX0RQX1ZDX1BBWUxPQURfQUxMT0MJKDE8PDgpCj4gPiA+ ICsjZGVmaW5lICBUUkFOU19ERElfSERNSV9TQ1JBTUJMRVJfQ1RTX0VOQUJMRSAoMTw8NykKPiA+ ID4gKyNkZWZpbmUgIFRSQU5TX0RESV9IRE1JX1NDUkFNQkxFUl9SRVNFVF9GUkVRICgxPDw2KQo+ ID4gPiAgICNkZWZpbmUgIFRSQU5TX0RESV9CRklfRU5BQkxFCQkoMTw8NCkKPiA+ID4gKyNkZWZp bmUgIFRSQU5TX0RESV9ISUdIX1RNRFNfQ0hBUl9SQVRFCSgxPDw0KQo+ID4gPiArI2RlZmluZSAg VFJBTlNfRERJX0hETUlfU0NSQU1CTElORwkoMTw8MCkKPiA+ID4gICAKPiA+ID4gICAvKiBEaXNw bGF5UG9ydCBUcmFuc3BvcnQgQ29udHJvbCAqLwo+ID4gPiAgICNkZWZpbmUgX0RQX1RQX0NUTF9B CQkJMHg2NDA0MAo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGRpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+ID4gPiBpbmRleCBhN2Mw OGQ3Li4yNGJjM2E4IDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kZGkuYwo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+ID4g PiBAQCAtMTMxMSw2ICsxMzExLDExIEBAIHZvaWQgaW50ZWxfZGRpX2VuYWJsZV90cmFuc2NvZGVy X2Z1bmMoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ID4gPiAgIAkJCXRlbXAgfD0gVFJBTlNfRERJ X01PREVfU0VMRUNUX0hETUk7Cj4gPiA+ICAgCQllbHNlCj4gPiA+ICAgCQkJdGVtcCB8PSBUUkFO U19ERElfTU9ERV9TRUxFQ1RfRFZJOwo+ID4gPiArCj4gPiA+ICsJCWlmIChJU19HRU1JTklMQUtF KGRldl9wcml2KSkKPiA+ID4gKwkJCXRlbXAgPSBpbnRlbF9oZG1pX2hhbmRsZV9zb3VyY2Vfc2Ny YW1ibGluZygKPiA+ID4gKwkJCQlpbnRlbF9lbmNvZGVyLAo+ID4gPiArCQkJCWludGVsX2NydGMt PmNvbmZpZywgdGVtcCk7Cj4gPiA+ICAgCX0gZWxzZSBpZiAodHlwZSA9PSBJTlRFTF9PVVRQVVRf QU5BTE9HKSB7Cj4gPiA+ICAgCQl0ZW1wIHw9IFRSQU5TX0RESV9NT0RFX1NFTEVDVF9GREk7Cj4g PiA+ICAgCQl0ZW1wIHw9IChpbnRlbF9jcnRjLT5jb25maWctPmZkaV9sYW5lcyAtIDEpIDw8IDE7 Cj4gPiA+IEBAIC0xODg1LDYgKzE4OTAsMjEgQEAgc3RhdGljIHZvaWQgaW50ZWxfZW5hYmxlX2Rk aShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciwKPiA+ID4gICAJCXN0cnVjdCBp bnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0KPiA+ID4gICAJCQllbmNfdG9fZGln X3BvcnQoZW5jb2Rlcik7Cj4gPiA+ICAgCj4gPiA+ICsJCWlmIChJU19HRU1JTklMQUtFKGRldl9w cml2KSkgewo+ID4gPiArCQkJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRj KGVuY29kZXItPmNydGMpOwo+ID4gPiArCQkJLyoKPiA+ID4gKwkJCSAqIEdMSyBzcG9ydHMgYSBu YXRpdmUgSERNSSAyLjAgY29udHJvbGxlci4gSWYgcmVxdWlyZWQKPiA+ID4gKwkJCSAqIGNsb2Nr IHJhdGUgaXMgPiAzNDAgTWh6ICYmIHNjcmFtYmxpbmcgaXMgc3VwcG9ydGVkCj4gPiA+ICsJCQkg KiBieSBzaW5rLCBlbmFibGUgc2NyYW1ibGluZyBiZWZvcmUgZW5hYmxpbmcgdGhlCj4gPiA+ICsJ CQkgKiBIRE1JIDIuMCBwb3J0LiBUaGUgc2luayBjYW4gY2hvb3NlIHRvIGRpc2FibGUgdGhlCj4g PiA+ICsJCQkgKiBzY3JhbWJsaW5nIGlmIGl0IGRvZXNuJ3QgZGV0ZWN0IGEgc2NyYW1ibGVkIHdp dGhpbgo+ID4gPiArCQkJICogMTAwIG1zLgo+ID4gPiArCQkJICovCj4gPiA+ICsJCQlpbnRlbF9o ZG1pX2hhbmRsZV9zaW5rX3NjcmFtYmxpbmcoaW50ZWxfZW5jb2RlciwKPiA+ID4gKwkJCQkJCWNv bm5fc3RhdGUtPmNvbm5lY3RvciwKPiA+ID4gKwkJCQkJCWNydGMtPmNvbmZpZywgdHJ1ZSk7Cj4g PiA+ICsJCX0KPiA+ID4gKwo+ID4gPiAgIAkJLyogSW4gSERNSS9EVkkgbW9kZSwgdGhlIHBvcnQg d2lkdGgsIGFuZCBzd2luZy9lbXBoYXNpcyB2YWx1ZXMKPiA+ID4gICAJCSAqIGFyZSBpZ25vcmVk IHNvIG5vdGhpbmcgc3BlY2lhbCBuZWVkcyB0byBiZSBkb25lIGJlc2lkZXMKPiA+ID4gICAJCSAq IGVuYWJsaW5nIHRoZSBwb3J0Lgo+ID4gPiBAQCAtMTkxMiwxMSArMTkzMiwyMCBAQCBzdGF0aWMg dm9pZCBpbnRlbF9kaXNhYmxlX2RkaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2Rl ciwKPiA+ID4gICAJCQkgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX2Nvbm5f c3RhdGUpCj4gPiA+ICAgewo+ID4gPiAgIAlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIgPSAm aW50ZWxfZW5jb2Rlci0+YmFzZTsKPiA+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBlbmNvZGVyLT5kZXYtPmRldl9wcml2YXRlOwo+ID4gPiAgIAlpbnQgdHlwZSA9IGlu dGVsX2VuY29kZXItPnR5cGU7Cj4gPiA+ICAgCj4gPiA+ICAgCWlmIChvbGRfY3J0Y19zdGF0ZS0+ aGFzX2F1ZGlvKQo+ID4gPiAgIAkJaW50ZWxfYXVkaW9fY29kZWNfZGlzYWJsZShpbnRlbF9lbmNv ZGVyKTsKPiA+ID4gICAKPiA+ID4gKwlpZiAoKHR5cGUgPT0gSU5URUxfT1VUUFVUX0hETUkpICYm IElTX0dFTUlOSUxBS0UoZGV2X3ByaXYpKSB7Cj4gPiAKPiA+ICAgICAgICAgICAgICBeICAgICAg ICAgICAgICAgICAgICAgICAgIF4KPiA+IAo+ID4gUG9pbnRsZXNzIHBhcmVucy4gQWxzbyBJJ20g bm9yIHN1cmUgd2Ugd2FudCB0aGUgcGxhdGZvcm0gY2hlY2sgaGVyZS4KPiA+IFNlZW1zIHRvIG1l IHRoYXQgd2Ugc2hvdWxkIGJlIGFibGUgdG8ganVzdCBleHBsaWNpdGx5IGNvbmZpZ3VyZSB0aGUg c2luawo+ID4gb24gZXZlcnkgcGxhdGZvcm0sIGlmZiB0aGUgc2luayBzdXBwb3J0cyBTQ0RDIG9m IGNvdXJzZS4KPiAKPiBUaGlzIGlzIGludGVyZXN0aW5nLCB3aGF0IGlmIEkgY29ubmVjdCBhIEhE TUkgMi4wIHNpbmssIHdoaWNoIHN1cHBvcnRzIAo+IHNjcmFtYmxpbmcgdG8gYSBHRU44IG9yIG5v bi1sc3Bjb24KPiBHRU4gOSBkZXZpY2UgPyBTaG91bGRuJ3Qgd2UgY2hlY2sgaWYgdGhlIHNvdXJj ZSBhbHNvIGFsbG93cyBpdCA/Cj4gPiA+ICsJCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRj ID0gdG9faW50ZWxfY3J0YyhlbmNvZGVyLT5jcnRjKTsKPiA+ID4gKwo+ID4gPiArCQlpbnRlbF9o ZG1pX2hhbmRsZV9zaW5rX3NjcmFtYmxpbmcoaW50ZWxfZW5jb2RlciwKPiA+ID4gKwkJCQkJb2xk X2Nvbm5fc3RhdGUtPmNvbm5lY3RvciwKPiA+ID4gKwkJCQkJaW50ZWxfY3J0Yy0+Y29uZmlnLCBm YWxzZSk7Cj4gPiA+ICsJfQo+ID4gPiArCj4gPiA+ICAgCWlmICh0eXBlID09IElOVEVMX09VVFBV VF9FRFApIHsKPiA+ID4gICAJCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50 ZWxfZHAoZW5jb2Rlcik7Cj4gPiA+ICAgCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4g PiA+IGluZGV4IDkwN2ZiMDAuLjBlNTNmY2QgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oCj4gPiA+IEBAIC02OTUsNiArNjk1LDEyIEBAIHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlIHsKPiA+ID4gICAKPiA+ID4gICAJLyogR2FtbWEgbW9kZSBwcm9ncmFtbWVkIG9uIHRoZSBw aXBlICovCj4gPiA+ICAgCXVpbnQzMl90IGdhbW1hX21vZGU7Cj4gPiA+ICsKPiA+ID4gKwkvKiBI RE1JIHNjcmFtYmxpbmcgc3RhdHVzIChzaW5rKSAqLwo+ID4gPiArCWJvb2wgaGRtaV9zY3JhbWJs aW5nOwo+ID4gPiArCj4gPiA+ICsJLyogSERNSSBIaWdoIFRNRFMgY2hhciByYXRlIHJhdGlvIChz aW5rKSAqLwo+ID4gPiArCWJvb2wgaGRtaV9oaWdoX3RtZHNfY2xvY2tfcmF0aW87Cj4gPiA+ICAg fTsKPiA+ID4gICAKPiA+ID4gICBzdHJ1Y3Qgdmx2X3dtX3N0YXRlIHsKPiA+ID4gQEAgLTE2MjYs NiArMTYzMiwxNCBAQCB2b2lkIGludGVsX2hkbWlfaW5pdF9jb25uZWN0b3Ioc3RydWN0IGludGVs X2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCj4gPiA+ICAgYm9vbCBpbnRlbF9oZG1pX2Nv bXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gPiAgIAkJCSAg ICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCj4gPiA+ICAgCQkJICAg ICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKTsKPiA+ID4gK3VpbnQz Ml90Cj4gPiA+ICtpbnRlbF9oZG1pX2hhbmRsZV9zb3VyY2Vfc2NyYW1ibGluZyhzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciwKPiA+ID4gKwkJCQkJc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNvbmZpZywKPiA+ID4gKwkJCQkJdWludDMyX3QgaGRtaV9jb25maWcpOwo+ID4gPiAr dm9pZCBpbnRlbF9oZG1pX2hhbmRsZV9zaW5rX3NjcmFtYmxpbmcoc3RydWN0IGludGVsX2VuY29k ZXIgKmludGVsX2VuY29kZXIsCj4gPiA+ICsJCQkJCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25u ZWN0b3IsCj4gPiA+ICsJCQkJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjb25maWcsCj4gPiA+ ICsJCQkJCWJvb2wgZW5hYmxlKTsKPiA+ID4gICB2b2lkIGludGVsX2RwX2R1YWxfbW9kZV9zZXRf dG1kc19vdXRwdXQoc3RydWN0IGludGVsX2hkbWkgKmhkbWksIGJvb2wgZW5hYmxlKTsKPiA+ID4g ICAKPiA+ID4gICAKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+ID4gPiBpbmRleCBj MjE4NGY3Li5mZGJlZWZkIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9oZG1pLmMKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5j Cj4gPiA+IEBAIC0zNCw2ICszNCw3IEBACj4gPiA+ICAgI2luY2x1ZGUgPGRybS9kcm1fYXRvbWlj X2hlbHBlci5oPgo+ID4gPiAgICNpbmNsdWRlIDxkcm0vZHJtX2NydGMuaD4KPiA+ID4gICAjaW5j bHVkZSA8ZHJtL2RybV9lZGlkLmg+Cj4gPiA+ICsjaW5jbHVkZSA8ZHJtL2RybV9zY2RjX2hlbHBl ci5oPgo+ID4gPiAgICNpbmNsdWRlICJpbnRlbF9kcnYuaCIKPiA+ID4gICAjaW5jbHVkZSA8ZHJt L2k5MTVfZHJtLmg+Cj4gPiA+ICAgI2luY2x1ZGUgPGRybS9pbnRlbF9scGVfYXVkaW8uaD4KPiA+ ID4gQEAgLTEzMTYsNiArMTMxNyw3IEBAIGJvb2wgaW50ZWxfaGRtaV9jb21wdXRlX2NvbmZpZyhz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ID4gICAJc3RydWN0IGludGVsX2hkbWkg KmludGVsX2hkbWkgPSBlbmNfdG9faW50ZWxfaGRtaSgmZW5jb2Rlci0+YmFzZSk7Cj4gPiA+ICAg CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFz ZS5kZXYpOwo+ID4gPiAgIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9 ICZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOwo+ID4gPiArCXN0cnVjdCBkcm1fc2Nk YyAqc2NkYyA9ICZjb25uX3N0YXRlLT5jb25uZWN0b3ItPmRpc3BsYXlfaW5mby5oZG1pLnNjZGM7 Cj4gPiA+ICAgCWludCBjbG9ja184YnBjID0gcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9k ZS5jcnRjX2Nsb2NrOwo+ID4gPiAgIAlpbnQgY2xvY2tfMTJicGMgPSBjbG9ja184YnBjICogMyAv IDI7Cj4gPiA+ICAgCWludCBkZXNpcmVkX2JwcDsKPiA+ID4gQEAgLTEzODUsNiArMTM4NywxNiBA QCBib29sIGludGVsX2hkbWlfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCj4gPiA+ICAgCj4gPiA+ICAgCXBpcGVfY29uZmlnLT5sYW5lX2NvdW50ID0gNDsKPiA+ ID4gICAKPiA+ID4gKwlpZiAoc2NkYy0+c2NyYW1ibGluZy5zdXBwb3J0ZWQpIHsKPiA+IAo+ID4g SGVyZSB3ZSBzaG91bGQgaGF2ZSBhIGNoZWNrIHdoZXRoZXIgdGhlIHNvdXJjZSBzdXBwb3J0IHNj cmFtYmxpbmcgb3Igbm90Lgo+IAo+IE9rLCBtYWtlcyBzZW5zZS4KPiA+IAo+ID4gPiArCQlpZiAo c2NkYy0+c2NyYW1ibGluZy5sb3dfcmF0ZXMpCj4gPiA+ICsJCQlwaXBlX2NvbmZpZy0+aGRtaV9z Y3JhbWJsaW5nID0gdHJ1ZTsKPiA+ID4gKwo+ID4gPiArCQlpZiAocGlwZV9jb25maWctPnBvcnRf Y2xvY2sgPiAzNDAwMDApIHsKPiA+ID4gKwkJCXBpcGVfY29uZmlnLT5oZG1pX3NjcmFtYmxpbmcg PSB0cnVlOwo+ID4gPiArCQkJcGlwZV9jb25maWctPmhkbWlfaGlnaF90bWRzX2Nsb2NrX3JhdGlv ID0gdHJ1ZTsKPiA+ID4gKwkJfQo+ID4gPiArCX0KPiA+ID4gKwo+ID4gPiAgIAlyZXR1cm4gdHJ1 ZTsKPiA+ID4gICB9Cj4gPiA+ICAgCj4gPiA+IEBAIC0xNzk0LDYgKzE4MDYsOTIgQEAgc3RhdGlj IHZvaWQgaW50ZWxfaGRtaV9kZXN0cm95KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3Ip Cj4gPiA+ICAgCWludGVsX2hkbWktPmFzcGVjdF9yYXRpbyA9IEhETUlfUElDVFVSRV9BU1BFQ1Rf Tk9ORTsKPiA+ID4gICB9Cj4gPiA+ICAgCj4gPiA+ICt2b2lkIGludGVsX2hkbWlfaGFuZGxlX3Np bmtfc2NyYW1ibGluZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciwKPiA+ID4g KwkJCQkgICAgICAgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiA+ID4gKwkJCQkg ICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNvbmZpZywKPiA+ID4gKwkJCQkgICAgICAg Ym9vbCBlbmFibGUpCj4gPiA+ICt7Cj4gPiA+ICsJc3RydWN0IGludGVsX2hkbWkgKmludGVsX2hk bWkgPSBlbmNfdG9faW50ZWxfaGRtaSgmaW50ZWxfZW5jb2Rlci0+YmFzZSk7Cj4gPiA+ICsJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gY29ubmVjdG9yLT5kZXYtPmRldl9wcml2 YXRlOwo+ID4gPiArCXN0cnVjdCBkcm1fc2NyYW1ibGluZyAqc2NyYW1ibGluZyA9Cj4gPiA+ICsJ CQkJJmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhkbWkuc2NkYy5zY3JhbWJsaW5nOwo+ID4gPiAr CXN0cnVjdCBpMmNfYWRhcHRlciAqYWRwdHIgPSBpbnRlbF9nbWJ1c19nZXRfYWRhcHRlcihkZXZf cHJpdiwKPiA+ID4gKwkJCQkJCQkgIGludGVsX2hkbWktPmRkY19idXMpOwo+ID4gPiArCWJvb2wg cmV0Owo+ID4gPiArCj4gPiA+ICsJaWYgKCFzY3JhbWJsaW5nLT5zdXBwb3J0ZWQpCj4gPiA+ICsJ CXJldHVybjsKPiA+ID4gKwo+ID4gPiArCURSTV9ERUJVR19LTVMoIlNldHRpbmcgc2luayBzY3Jh bWJsaW5nIGZvciBlbmM6JXMgY29ubmVjdG9yOiVzXG4iLAo+ID4gPiArCQkJaW50ZWxfZW5jb2Rl ci0+YmFzZS5uYW1lLCBjb25uZWN0b3ItPm5hbWUpOwo+ID4gPiArCj4gPiA+ICsJaWYgKGVuYWJs ZSkgewo+ID4gPiArCj4gPiA+ICsJCWlmIChjb25maWctPmhkbWlfaGlnaF90bWRzX2Nsb2NrX3Jh dGlvKSB7Cj4gPiA+ICsJCQkvKiBTZXQgVE1EUyBiaXQgY2xvY2sgcmF0aW8gdG8gMS80MCAqLwo+ ID4gPiArCQkJcmV0ID0gZHJtX3NjZGNfc2V0X2hpZ2hfdG1kc19jbG9ja19yYXRpbyhhZHB0ciwg dHJ1ZSk7Cj4gPiA+ICsJCQlpZiAoIXJldCkgewo+ID4gPiArCQkJCURSTV9FUlJPUigiU2V0IGhp Z2ggVE1EUyByYXRpbyBmYWlsZWRcbiIpOwo+ID4gPiArCQkJCXJldHVybjsKPiA+ID4gKwkJCX0K PiA+ID4gKwkJfQo+ID4gPiArCj4gPiA+ICsJCWlmIChjb25maWctPmhkbWlfc2NyYW1ibGluZykg ewo+ID4gPiArCQkJLyogRW5hYmxlIHNpbmsgc2NyYW1ibGluZyAqLwo+ID4gPiArCQkJcmV0ID0g ZHJtX3NjZGNfc2V0X3NjcmFtYmxpbmcoYWRwdHIsIHRydWUpOwo+ID4gPiArCQkJaWYgKCFyZXQp IHsKPiA+ID4gKwkJCQlEUk1fRVJST1IoIkNhbid0IGVuYWJsZSBzaW5rIHNjcmFtYmxpbmdcbiIp Owo+ID4gPiArCQkJCXJldHVybjsKPiA+ID4gKwkJCX0KPiA+ID4gKwkJfQo+ID4gPiArCj4gPiA+ ICsJCURSTV9ERUJVR19LTVMoInNpbmsgc2NyYW1ibGluZyBlbmFibGVkXG4iKTsKPiA+ID4gKwkJ cmV0dXJuOwo+ID4gPiArCX0KPiA+ID4gKwo+ID4gPiArCWlmIChjb25maWctPmhkbWlfaGlnaF90 bWRzX2Nsb2NrX3JhdGlvKSB7Cj4gPiA+ICsJCS8qIFNldCBUTURTIGJpdCBjbG9jayByYXRpbyBi YWNrIHRvIDEvMTAgKi8KPiA+ID4gKwkJcmV0ID0gIShkcm1fc2NkY19zZXRfaGlnaF90bWRzX2Ns b2NrX3JhdGlvKGFkcHRyLCBmYWxzZSkpOwo+ID4gPiArCQlpZiAocmV0KQo+ID4gPiArCQkJRFJN X0VSUk9SKCJSZXNldCBoaWdoIFRNRFMgcmF0aW8gZmFpbGVkXG4iKTsKPiA+ID4gKwl9Cj4gPiA+ ICsKPiA+ID4gKwlpZiAoY29uZmlnLT5oZG1pX3NjcmFtYmxpbmcpIHsKPiA+ID4gKwkJLyogRGlz YWJsZSBzaW5rIHNjcmFtYmxpbmcgKi8KPiA+ID4gKwkJcmV0ID0gIShkcm1fc2NkY19zZXRfc2Ny YW1ibGluZyhhZHB0ciwgZmFsc2UpKTsKPiA+ID4gKwkJaWYgKHJldCkKPiA+ID4gKwkJCURSTV9F UlJPUigiRGlzYWJsZSBzaW5rIHNjcmFtYmxpbmcgZmFpbGVkXG4iKTsKPiA+ID4gKwl9Cj4gPiAK PiA+IFNlZW1zIGEgbGl0dGxlIGNvbXBsaWNhdGVkIGZvciB3aGF0IGl0J3MgZG9pbmcuCj4gPiAK PiA+IEknZCBnbyBmb3Igc29tZXRoaW5nIHNpbXBsZSBsaWtlOgo+ID4gCj4gPiBmb28oYm9vbCBz Y3JhbWJsaW5nLCBib29sIGNsb2NrX3JhdGlvKQo+ID4gewo+ID4gCXNldF9zY3JhbWJsaW5nKHNj cmFtYmxpbmcpOwo+ID4gCXNldF9jbG9ja19yYXRpbyhjbG9ja19yYXRpbyk7Cj4gPiB9Cj4gPiAK PiA+IGVuYWJsZSgpCj4gPiB7Cj4gPiAJZm9vKGNydGNfc3RhdGUtPmhkbWlfc2NyYW1ibGluZywg Y3J0Y19zdGF0ZS0+Y2xvY2tfcmF0aW8pOwo+ID4gfQo+ID4gCj4gPiBkaXNhYmxlKCkKPiA+IHsK PiA+IAlmb28oZmFsc2UsIGZhbHNlKTsKPiA+IH0KPiAKPiBJbiB0aGUgZmlyc3QgbG9vaywgSSB0 aG91Z2h0IGludGVsX2hkbWlfaGFuZGxlX3Npbmtfc2NyYW1ibGluZyBpcyB5b3VyIAo+IGZvbywg YnV0IGxhdGVyIEkgcmVhbGl6ZWQsCj4geW91IGRvbnQgd2FudCBhbiBpZiAoZW5hYmxlKSBjb25k Li4uLiB3aWxsIHRha2UgY2FyZSBvZiBpdC4KPiA+IAo+ID4gPiArCj4gPiA+ICsJRFJNX0RFQlVH X0tNUygic2luayBzY3JhbWJsaW5nIGRpc2FibGVkXG4iKTsKPiA+ID4gK30KPiA+ID4gKwo+ID4g PiArdWludDMyX3QKPiA+ID4gK2ludGVsX2hkbWlfaGFuZGxlX3NvdXJjZV9zY3JhbWJsaW5nKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyLAo+ID4gPiArCQkJc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNvbmZpZywgdWludDMyX3QgaGRtaV9jb25maWcpCj4gPiA+ICt7Cj4gPiA+ ICsJc3RydWN0IGludGVsX2hkbWkgKmludGVsX2hkbWkgPSBlbmNfdG9faW50ZWxfaGRtaSgmaW50 ZWxfZW5jb2Rlci0+YmFzZSk7Cj4gPiA+ICsJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rv ciA9ICZpbnRlbF9oZG1pLT5hdHRhY2hlZF9jb25uZWN0b3ItPmJhc2U7Cj4gPiA+ICsKPiA+ID4g KwlEUk1fREVCVUdfS01TKCJTZXR0aW5nIHNjcmFtYmxpbmcgZm9yIGVuYzolcyBjb25uZWN0b3I6 JXNcbiIsCj4gPiA+ICsJCQlpbnRlbF9lbmNvZGVyLT5iYXNlLm5hbWUsIGNvbm5lY3Rvci0+bmFt ZSk7Cj4gPiA+ICsKPiA+ID4gKwloZG1pX2NvbmZpZyAmPSB+KFRSQU5TX0RESV9IRE1JX1NDUkFN QkxJTkcgfAo+ID4gPiArCQlUUkFOU19ERElfSElHSF9UTURTX0NIQVJfUkFURSB8Cj4gPiA+ICsJ CVRSQU5TX0RESV9IRE1JX1NDUkFNQkxFUl9SRVNFVF9GUkVRIHwKPiA+ID4gKwkJVFJBTlNfRERJ X0hETUlfU0NSQU1CTEVSX0NUU19FTkFCTEUpOwo+ID4gPiArCj4gPiA+ICsJaWYgKGNvbmZpZy0+ aGRtaV9zY3JhbWJsaW5nKQo+ID4gPiArCQloZG1pX2NvbmZpZyB8PSAoVFJBTlNfRERJX0hETUlf U0NSQU1CTElORyB8Cj4gPiA+ICsJCQlUUkFOU19ERElfSERNSV9TQ1JBTUJMRVJfUkVTRVRfRlJF USB8Cj4gPiA+ICsJCQlUUkFOU19ERElfSERNSV9TQ1JBTUJMRVJfQ1RTX0VOQUJMRSk7Cj4gPiA+ ICsKPiA+ID4gKwlpZiAoY29uZmlnLT5oZG1pX2hpZ2hfdG1kc19jbG9ja19yYXRpbykKPiA+ID4g KwkJaGRtaV9jb25maWcgfD0gVFJBTlNfRERJX0hJR0hfVE1EU19DSEFSX1JBVEU7Cj4gPiAKPiA+ IElNTyBqdXN0IGlubGluZSB0aGVzZSB0d28gdGhpbmdzIGludG8gdGhlIGZ1bmN0aW9uIHRoYXQg Y29uZmlndXJlcwo+ID4gdGhpcyByZWdpc3Rlci4gSGF2aW5nIHRvIGp1bXAgYXJvdW5kIGJldHdl ZW4gZnVuY3Rpb25zIGlzIGp1c3QKPiA+IGV4dHJhIHBhaW4gd2UgZG9uJ3QgbmVlZCBJTU8uCj4g Cj4gTm90IHJlYWxseSwgdGhpcyBmdW5jdGlvbiBpcyBhbHNvIG1ha2luZyBzdXJlLCB0aGF0IHRo ZSBzY3JhbWJsaW5nIGJpdHMgCj4gYXJlIGNsZWFyZWQsIAoKVGhlcmUgaXMgbm8gcmVhZC1tb2Rp Znktd3JpdGUgaW4gaW50ZWxfZGRpX2VuYWJsZV90cmFuc2NvZGVyX2Z1bmMoKS4gRXZlcnkgYml0 CnRoYXQgaXMgbm90IGV4cGxpY2l0bHkgc2V0IGlzIGNsZWFyZWQuCgo+IGFuZCBvbmx5Cj4gZW5h YmxlZCB3aGljaCBpcyByZXF1aXJlZC4gQWxzbywgdGhpcyBpcyBtYWtpbmcgY29kZSBtb3JlIHJl YWRhYmxlLCAKPiBzZWdyZWdhdGluZyBzY3JhbWJsaW5nCj4gZnVuY3Rpb25hbGl0aWVzLCBhbmQg YmV0dGVyIGZvciBkZWJ1Z2dpbmcgdG9vLiBMZXRzIGtlZXAgdGhpcyBvbmUgaWYgeW91IAo+IHBs ZWFzZSBhbGxvdy4KCkkgdGhpbmsgdGhlIGV4dHJhIGZ1bmN0aW9uIG1ha2VzIGl0IGhhcmRlciB0 byByZWFkLiBUaGUgZnVuY3Rpb24KaW50ZWxfZGRpX2VuYWJsZV90cmFuc2NvZGVyX2Z1bmMoKSBv bmx5IHRyYW5zbGF0ZXMgdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiB0bwp0aGUgcmlnaHQgYml0 cyB0aGF0IG5lZWQgdG8gYmUgcHJvZ3JhbW1lZCB0byBUUkFOU19ERElfRlVOQ19DVEwuIFRoYXQg YmVsb25ncyBpbgppbnRlbF9kZGkuYy4KClRvIGhlbHAgd2l0aCBkZWJ1Z2dpbmcsIGFkZCBIRE1J IHNjcmFtYmxpbmcgcHJpbnRzIHRvIGludGVsX2R1bXBfcGlwZV9jb25maWcoKS4KVGhhdCdzIGFj dHVhbGx5IG1vcmUgdXNlZnVsIHRoYW4gdGhlIHByaW50IGluIHRoaXMgZnVuY3Rpb24gc2luY2Ug aXQgY2FuIGFsc28KdGVsbCB1cyBpZiBzY3JhbWJsaW5nIHdhcyBlbmFibGVkIGZvciBhIGNvbmZp Z3VyYXRpb24gcmVhZCBvdXQgZnJvbSBodyBzdGF0ZS4KCkFuZGVyCgo+ID4gVGhlcmUgc2hvdWxk IGFsc28gYmUgY29ycmVzcG9uZGluZyByZWFkb3V0IGNvZGUgZm9yIHRoaXMgaW4KPiA+IGludGVs X2RkaV9nZXRfY29uZmlnKCksIGFuZCBtYXRjaGluZyBQSVBFX0NPTkZfQ0hFQ0sgc3R1ZmYgaW4K PiA+IGludGVsX3BpcGVfY29uZmlnX2NvbXBhcmUoKS4KPiAKPiBBZ3JlZSwgd2lsbCBhZGQgdGhh dCB0b28uCj4gCj4gLSBTaGFzaGFuawo+ID4gPiArCj4gPiA+ICsJcmV0dXJuIGhkbWlfY29uZmln Owo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICAgc3RhdGljIHU4IGludGVsX2hkbWlfZGRjX3Bpbihz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiA+ICAgCQkJICAgICBlbnVtIHBv cnQgcG9ydCkKPiA+ID4gICB7Cj4gPiA+IC0tIAo+ID4gPiAxLjkuMQo+IAo+IF9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeApfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0Cklu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK