From mboxrd@z Thu Jan 1 00:00:00 1970 From: "C, Ramalingam" Subject: RE: [PATCH v5 05/40] drm/i915: wrapping all hdcp var into intel_hdcp Date: Wed, 11 Jul 2018 18:06:31 +0000 Message-ID: <3E576CE581B70742841A8994F80CE2EE4D7D9D61@BGSMSX104.gar.corp.intel.com> References: <1530088829-11730-1-git-send-email-ramalingam.c@intel.com> <1530088829-11730-6-git-send-email-ramalingam.c@intel.com> <20180709203005.GI20303@art_vandelay> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180709203005.GI20303@art_vandelay> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Sean Paul Cc: "intel-gfx@lists.freedesktop.org" , "Usyskin, Alexander" , "dri-devel@lists.freedesktop.org" , "Shankar, Uma" , "Winkler, Tomas" List-Id: dri-devel@lists.freedesktop.org Cj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPiBGcm9tOiBTZWFuIFBhdWwgW21haWx0bzpz ZWFucGF1bEBjaHJvbWl1bS5vcmddCj4gU2VudDogVHVlc2RheSwgSnVseSAxMCwgMjAxOCAyOjAw IEFNCj4gVG86IEMsIFJhbWFsaW5nYW0gPHJhbWFsaW5nYW0uY0BpbnRlbC5jb20+Cj4gQ2M6IGlu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmc7IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3Rv cC5vcmc7Cj4gZGFuaWVsQGZmd2xsLmNoOyBXaW5rbGVyLCBUb21hcyA8dG9tYXMud2lua2xlckBp bnRlbC5jb20+OyBVc3lza2luLAo+IEFsZXhhbmRlciA8YWxleGFuZGVyLnVzeXNraW5AaW50ZWwu Y29tPjsgU2hhbmthciwgVW1hCj4gPHVtYS5zaGFua2FyQGludGVsLmNvbT4KPiBTdWJqZWN0OiBS ZTogW1BBVENIIHY1IDA1LzQwXSBkcm0vaTkxNTogd3JhcHBpbmcgYWxsIGhkY3AgdmFyIGludG8g aW50ZWxfaGRjcAo+IAo+IE9uIFdlZCwgSnVuIDI3LCAyMDE4IGF0IDAyOjA5OjU0UE0gKzA1MzAs IFJhbWFsaW5nYW0gQyB3cm90ZToKPiA+IENvbnNpZGVyaW5nIHNpZ25pZmljYW50IG51bWJlciBv ZiBIRENQIHNwZWNpZmljIHZhcmlhYmxlcywgaXQgd2lsbCBiZQo+ID4gY2xlYW4gdG8gaGF2ZSBz ZXBhcmF0ZSBzdHJ1Y3QgZm9yIEhEQ1AuCj4gPgo+ID4gTmV3IHN0cnVjdHVyZSBjYWxsZWQgaW50 ZWxfaGRjcCBpcyBhZGRlZCB3aXRoaW4gaW50ZWxfY29ubmVjdG9yLgo+ID4KPiA+IHYyOgo+ID4g ICBzdHJ1Y3QgaGRjcCBzdGF0aWNhbGx5IGFsbG9jYXRlZC4gW1NlYW4gUGF1bF0KPiA+ICAgZW5h YmxlIGFuZCBkaXNhYmxlIGZ1bmN0aW9uIHBhcmFtZXRlcnMgYXJlIHJldGFpbmVkLltTZWFuIFBh dWxdCj4gPiB2MzoKPiA+ICAgTm8gQ2hhbmdlcy4KPiA+IHY0Ogo+ID4gICBDb21taXQgbXNnIGlz IHJlcGhyYXNlZCBbVW1hXQo+ID4gdjU6Cj4gPiAgIENvbW1lbnQgZm9yIG11dGV4IGRlZmluaXRp b24uCj4gPgo+ID4gU2lnbmVkLW9mZi1ieTogUmFtYWxpbmdhbSBDIDxyYW1hbGluZ2FtLmNAaW50 ZWwuY29tPgo+ID4gLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j IHwgIDcgKy0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgMTUg KysrKy0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRjcC5jICAgIHwgOTQgKysr KysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQo+IC0tCj4gPiAgMyBmaWxlcyBjaGFuZ2Vk LCA2NyBpbnNlcnRpb25zKCspLCA0OSBkZWxldGlvbnMoLSkKPiA+Cj4gPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gaW5kZXggM2Q4NDllYzE3ZjVjLi5lZjA5YmI4OWQy Y2EgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMK PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gQEAgLTE1 ODU2LDkgKzE1ODU2LDEwIEBAIHN0YXRpYyB2b2lkIGludGVsX2hwZF9wb2xsX2Zpbmkoc3RydWN0 IGRybV9kZXZpY2UKPiAqZGV2KQo+ID4gIAlmb3JfZWFjaF9pbnRlbF9jb25uZWN0b3JfaXRlcihj b25uZWN0b3IsICZjb25uX2l0ZXIpIHsKPiA+ICAJCWlmIChjb25uZWN0b3ItPm1vZGVzZXRfcmV0 cnlfd29yay5mdW5jKQo+ID4gIAkJCWNhbmNlbF93b3JrX3N5bmMoJmNvbm5lY3Rvci0+bW9kZXNl dF9yZXRyeV93b3JrKTsKPiA+IC0JCWlmIChjb25uZWN0b3ItPmhkY3Bfc2hpbSkgewo+ID4gLQkJ CWNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygmY29ubmVjdG9yLQo+ID5oZGNwX2NoZWNrX3dvcmsp Owo+ID4gLQkJCWNhbmNlbF93b3JrX3N5bmMoJmNvbm5lY3Rvci0+aGRjcF9wcm9wX3dvcmspOwo+ ID4gKwkJaWYgKGNvbm5lY3Rvci0+aGRjcC5oZGNwX3NoaW0pIHsKPiA+ICsJCQljYW5jZWxfZGVs YXllZF93b3JrX3N5bmMoCj4gPiArCQkJCQkmY29ubmVjdG9yLT5oZGNwLmhkY3BfY2hlY2tfd29y ayk7Cj4gPiArCQkJY2FuY2VsX3dvcmtfc3luYygmY29ubmVjdG9yLQo+ID5oZGNwLmhkY3BfcHJv cF93b3JrKTsKPiA+ICAJCX0KPiA+ICAJfQo+ID4gIAlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9l bmQoJmNvbm5faXRlcik7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmgKPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+IGluZGV4 IDU3ODM0NmI4ZDdlMi4uZWI0ODA1NzRhOTJlIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oCj4gPiBAQCAtMzc3LDYgKzM3NywxNSBAQCBzdHJ1Y3QgaW50ZWxfaGRjcF9zaGltIHsK PiA+ICAJCQkgICAgYm9vbCAqaGRjcF9jYXBhYmxlKTsKPiA+ICB9Owo+ID4KPiA+ICtzdHJ1Y3Qg aW50ZWxfaGRjcCB7Cj4gPiArCWNvbnN0IHN0cnVjdCBpbnRlbF9oZGNwX3NoaW0gKmhkY3Bfc2hp bTsKPiA+ICsJLyogTXV0ZXggZm9yIGhkY3Agc3RhdGUgb2YgdGhlIGNvbm5lY3RvciAqLwo+ID4g KwlzdHJ1Y3QgbXV0ZXggaGRjcF9tdXRleDsKPiA+ICsJdWludDY0X3QgaGRjcF92YWx1ZTsKPiA+ ICsJc3RydWN0IGRlbGF5ZWRfd29yayBoZGNwX2NoZWNrX3dvcms7Cj4gPiArCXN0cnVjdCB3b3Jr X3N0cnVjdCBoZGNwX3Byb3Bfd29yazsKPiAKPiBOb3cgdGhhdCB0aGV5J3JlIGluIHRoZWlyIG93 biBzdHJ1Y3QsIHlvdSBjYW4gcHJvYmFibHkgZHJvcCB0aGUgaGRjcF8qIHByZWZpeAo+IGZyb20g dGhlIHN0cnVjdCBtZW1iZXJzLgoKU3VyZSBJIHdpbGwgZG8gdGhhdC4KPiAKPiA+ICt9Owo+ID4g Kwo+ID4gIHN0cnVjdCBpbnRlbF9jb25uZWN0b3Igewo+ID4gIAlzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciBiYXNlOwo+ID4gIAkvKgo+ID4gQEAgLTQwOSwxMSArNDE4LDcgQEAgc3RydWN0IGludGVsX2Nv bm5lY3RvciB7Cj4gPiAgCS8qIFdvcmsgc3RydWN0IHRvIHNjaGVkdWxlIGEgdWV2ZW50IG9uIGxp bmsgdHJhaW4gZmFpbHVyZSAqLwo+ID4gIAlzdHJ1Y3Qgd29ya19zdHJ1Y3QgbW9kZXNldF9yZXRy eV93b3JrOwo+ID4KPiA+IC0JY29uc3Qgc3RydWN0IGludGVsX2hkY3Bfc2hpbSAqaGRjcF9zaGlt Owo+ID4gLQlzdHJ1Y3QgbXV0ZXggaGRjcF9tdXRleDsKPiA+IC0JdWludDY0X3QgaGRjcF92YWx1 ZTsgLyogcHJvdGVjdGVkIGJ5IGhkY3BfbXV0ZXggKi8KPiA+IC0Jc3RydWN0IGRlbGF5ZWRfd29y ayBoZGNwX2NoZWNrX3dvcms7Cj4gPiAtCXN0cnVjdCB3b3JrX3N0cnVjdCBoZGNwX3Byb3Bfd29y azsKPiA+ICsJc3RydWN0IGludGVsX2hkY3AgaGRjcDsKPiA+ICB9Owo+ID4KPiA+ICBzdHJ1Y3Qg aW50ZWxfZGlnaXRhbF9jb25uZWN0b3Jfc3RhdGUgeyBkaWZmIC0tZ2l0Cj4gPiBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2hkY3AuYwo+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9oZGNwLmMKPiA+IGluZGV4IDBjYzZhODYxYmNmOC4uNjViYmU1ODc0ZWVlIDEwMDY0NAo+ID4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRjcC5jCj4gPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9oZGNwLmMKPiA+IEBAIC02MjYsNiArNjI2LDcgQEAgc3RydWN0 IGludGVsX2RpZ2l0YWxfcG9ydCAqY29ubl90b19kaWdfcG9ydChzdHJ1Y3QKPiA+IGludGVsX2Nv bm5lY3RvciAqY29ubmVjdG9yKQo+ID4KPiA+ICBzdGF0aWMgaW50IF9pbnRlbF9oZGNwX2Rpc2Fi bGUoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKSAgewo+ID4gKwlzdHJ1Y3QgaW50 ZWxfaGRjcCAqaGRjcCA9ICZjb25uZWN0b3ItPmhkY3A7Cj4gPiAgCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IGNvbm5lY3Rvci0+YmFzZS5kZXYtPmRldl9wcml2YXRlOwo+ID4g IAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGNvbm5fdG9fZGln X3BvcnQoY29ubmVjdG9yKTsKPiA+ICAJZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9kaWdfcG9ydC0+ YmFzZS5wb3J0OyBAQCAtNjQxLDcgKzY0Miw3IEBACj4gPiBzdGF0aWMgaW50IF9pbnRlbF9oZGNw X2Rpc2FibGUoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ID4gIAkJcmV0dXJu IC1FVElNRURPVVQ7Cj4gPiAgCX0KPiA+Cj4gPiAtCXJldCA9IGNvbm5lY3Rvci0+aGRjcF9zaGlt LT50b2dnbGVfc2lnbmFsbGluZyhpbnRlbF9kaWdfcG9ydCwgZmFsc2UpOwo+ID4gKwlyZXQgPSBo ZGNwLT5oZGNwX3NoaW0tPnRvZ2dsZV9zaWduYWxsaW5nKGludGVsX2RpZ19wb3J0LCBmYWxzZSk7 Cj4gPiAgCWlmIChyZXQpIHsKPiA+ICAJCURSTV9FUlJPUigiRmFpbGVkIHRvIGRpc2FibGUgSERD UCBzaWduYWxsaW5nXG4iKTsKPiA+ICAJCXJldHVybiByZXQ7Cj4gPiBAQCAtNjUzLDYgKzY1NCw3 IEBAIHN0YXRpYyBpbnQgX2ludGVsX2hkY3BfZGlzYWJsZShzdHJ1Y3QKPiA+IGludGVsX2Nvbm5l Y3RvciAqY29ubmVjdG9yKQo+ID4KPiA+ICBzdGF0aWMgaW50IF9pbnRlbF9oZGNwX2VuYWJsZShz dHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpICB7Cj4gPiArCXN0cnVjdCBpbnRlbF9o ZGNwICpoZGNwID0gJmNvbm5lY3Rvci0+aGRjcDsKPiA+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gY29ubmVjdG9yLT5iYXNlLmRldi0+ZGV2X3ByaXZhdGU7Cj4gPiAgCWlu dCBpLCByZXQsIHRyaWVzID0gMzsKPiA+Cj4gPiBAQCAtNjc4LDcgKzY4MCw3IEBAIHN0YXRpYyBp bnQgX2ludGVsX2hkY3BfZW5hYmxlKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IKPiAqY29ubmVjdG9y KQo+ID4gIAkvKiBJbmNhc2Ugb2YgYXV0aGVudGljYXRpb24gZmFpbHVyZXMsIEhEQ1Agc3BlYyBl eHBlY3RzIHJlYXV0aC4gKi8KPiA+ICAJZm9yIChpID0gMDsgaSA8IHRyaWVzOyBpKyspIHsKPiA+ ICAJCXJldCA9IGludGVsX2hkY3BfYXV0aChjb25uX3RvX2RpZ19wb3J0KGNvbm5lY3RvciksCj4g PiAtCQkJCSAgICAgIGNvbm5lY3Rvci0+aGRjcF9zaGltKTsKPiA+ICsJCQkJICAgICAgaGRjcC0+ aGRjcF9zaGltKTsKPiA+ICAJCWlmICghcmV0KQo+ID4gIAkJCXJldHVybiAwOwo+ID4KPiA+IEBA IC02OTQsMzYgKzY5Niw0MiBAQCBzdGF0aWMgaW50IF9pbnRlbF9oZGNwX2VuYWJsZShzdHJ1Y3QK PiA+IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ID4KPiA+ICBzdGF0aWMgdm9pZCBpbnRl bF9oZGNwX2NoZWNrX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKSAgewo+ID4gLQlzdHJ1 Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IgPQo+IGNvbnRhaW5lcl9vZih0b19kZWxheWVk X3dvcmsod29yayksCj4gPiArCXN0cnVjdCBpbnRlbF9oZGNwICpoZGNwID0gY29udGFpbmVyX29m KHRvX2RlbGF5ZWRfd29yayh3b3JrKSwKPiA+ICsJCQkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfaGRj cCwKPiA+ICsJCQkJCSAgICAgICBoZGNwX2NoZWNrX3dvcmspOwo+ID4gKwlzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yICpjb25uZWN0b3IgPSBjb250YWluZXJfb2YoaGRjcCwKPiA+ICAJCQkJCQkJIHN0 cnVjdAo+IGludGVsX2Nvbm5lY3RvciwKPiA+IC0JCQkJCQkJIGhkY3BfY2hlY2tfd29yayk7Cj4g PiArCQkJCQkJCSBoZGNwKTsKPiAKPiBTaW5jZSB5b3UgdXNlIHRoaXMgYmVsb3csIGJyZWFrIHRo aXMgb3V0IGludG8gYSBzdGF0aWMgaW5saW5lIGhlbHBlcgo+IGludGVsX2hkY3BfdG9fY29ubmVj dG9yKCkuCgpTdXJlLgo+IAo+IAo+IFdpdGggdGhvc2Ugbml0cyBhZGRyZXNzZWQsCj4gCj4gUmV2 aWV3ZWQtYnk6IFNlYW4gUGF1bCA8c2VhbnBhdWxAY2hyb21pdW0ub3JnPgoKVGhhbmtzIGZvciB0 aGUgUi1iLgoKUmFtLgo+IAo+IAo+ID4gKwo+ID4gIAlpZiAoIWludGVsX2hkY3BfY2hlY2tfbGlu ayhjb25uZWN0b3IpKQo+ID4gLQkJc2NoZWR1bGVfZGVsYXllZF93b3JrKCZjb25uZWN0b3ItPmhk Y3BfY2hlY2tfd29yaywKPiA+ICsJCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmaGRjcC0+aGRjcF9j aGVja193b3JrLAo+ID4gIAkJCQkgICAgICBEUk1fSERDUF9DSEVDS19QRVJJT0RfTVMpOwo+ID4g IH0KPiA+Cj4gPiAgc3RhdGljIHZvaWQgaW50ZWxfaGRjcF9wcm9wX3dvcmsoc3RydWN0IHdvcmtf c3RydWN0ICp3b3JrKSAgewo+ID4gLQlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3Ig PSBjb250YWluZXJfb2Yod29yaywKPiA+ICsJc3RydWN0IGludGVsX2hkY3AgKmhkY3AgPSBjb250 YWluZXJfb2Yod29yaywgc3RydWN0IGludGVsX2hkY3AsCj4gPiArCQkJCQkgICAgICAgaGRjcF9w cm9wX3dvcmspOwo+ID4gKwlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IgPSBjb250 YWluZXJfb2YoaGRjcCwKPiA+ICAJCQkJCQkJIHN0cnVjdAo+IGludGVsX2Nvbm5lY3RvciwKPiA+ IC0JCQkJCQkJIGhkY3BfcHJvcF93b3JrKTsKPiA+ICsJCQkJCQkJIGhkY3ApOwo+ID4gIAlzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5iYXNlLmRldjsKPiA+ICAJc3RydWN0IGRy bV9jb25uZWN0b3Jfc3RhdGUgKnN0YXRlOwo+ID4KPiA+ICAJZHJtX21vZGVzZXRfbG9jaygmZGV2 LT5tb2RlX2NvbmZpZy5jb25uZWN0aW9uX211dGV4LCBOVUxMKTsKPiA+IC0JbXV0ZXhfbG9jaygm Y29ubmVjdG9yLT5oZGNwX211dGV4KTsKPiA+ICsJbXV0ZXhfbG9jaygmaGRjcC0+aGRjcF9tdXRl eCk7Cj4gPgo+ID4gIAkvKgo+ID4gIAkgKiBUaGlzIHdvcmtlciBpcyBvbmx5IHVzZWQgdG8gZmxp cCBiZXR3ZWVuIEVOQUJMRUQvREVTSVJFRC4gRWl0aGVyIG9mCj4gPiAgCSAqIHRob3NlIHRvIFVO REVTSVJFRCBpcyBoYW5kbGVkIGJ5IGNvcmUuIElmIGhkY3BfdmFsdWUgPT0KPiBVTkRFU0lSRUQs Cj4gPiAgCSAqIHdlJ3JlIHJ1bm5pbmcganVzdCBhZnRlciBoZGNwIGhhcyBiZWVuIGRpc2FibGVk LCBzbyBqdXN0IGV4aXQKPiA+ICAJICovCj4gPiAtCWlmIChjb25uZWN0b3ItPmhkY3BfdmFsdWUg IT0KPiBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fVU5ERVNJUkVEKSB7Cj4gPiArCWlmICho ZGNwLT5oZGNwX3ZhbHVlICE9Cj4gRFJNX01PREVfQ09OVEVOVF9QUk9URUNUSU9OX1VOREVTSVJF RCkgewo+ID4gIAkJc3RhdGUgPSBjb25uZWN0b3ItPmJhc2Uuc3RhdGU7Cj4gPiAtCQlzdGF0ZS0+ Y29udGVudF9wcm90ZWN0aW9uID0gY29ubmVjdG9yLT5oZGNwX3ZhbHVlOwo+ID4gKwkJc3RhdGUt PmNvbnRlbnRfcHJvdGVjdGlvbiA9IGhkY3AtPmhkY3BfdmFsdWU7Cj4gPiAgCX0KPiA+Cj4gPiAt CW11dGV4X3VubG9jaygmY29ubmVjdG9yLT5oZGNwX211dGV4KTsKPiA+ICsJbXV0ZXhfdW5sb2Nr KCZoZGNwLT5oZGNwX211dGV4KTsKPiA+ICAJZHJtX21vZGVzZXRfdW5sb2NrKCZkZXYtPm1vZGVf Y29uZmlnLmNvbm5lY3Rpb25fbXV0ZXgpOwo+ID4gIH0KPiA+Cj4gPiBAQCAtNzM3LDYgKzc0NSw3 IEBAIGJvb2wgaXNfaGRjcF9zdXBwb3J0ZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUKPiA+ICpk ZXZfcHJpdiwgZW51bSBwb3J0IHBvcnQpICBpbnQgaW50ZWxfaGRjcF9pbml0KHN0cnVjdCBpbnRl bF9jb25uZWN0b3IKPiAqY29ubmVjdG9yLAo+ID4gIAkJICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9o ZGNwX3NoaW0gKmhkY3Bfc2hpbSkgIHsKPiA+ICsJc3RydWN0IGludGVsX2hkY3AgKmhkY3AgPSAm Y29ubmVjdG9yLT5oZGNwOwo+ID4gIAlpbnQgcmV0Owo+ID4KPiA+ICAJcmV0ID0gZHJtX2Nvbm5l Y3Rvcl9hdHRhY2hfY29udGVudF9wcm90ZWN0aW9uX3Byb3BlcnR5KAo+ID4gQEAgLTc0NCw1MSAr NzUzLDUzIEBAIGludCBpbnRlbF9oZGNwX2luaXQoc3RydWN0IGludGVsX2Nvbm5lY3Rvcgo+ICpj b25uZWN0b3IsCj4gPiAgCWlmIChyZXQpCj4gPiAgCQlyZXR1cm4gcmV0Owo+ID4KPiA+IC0JY29u bmVjdG9yLT5oZGNwX3NoaW0gPSBoZGNwX3NoaW07Cj4gPiAtCW11dGV4X2luaXQoJmNvbm5lY3Rv ci0+aGRjcF9tdXRleCk7Cj4gPiAtCUlOSVRfREVMQVlFRF9XT1JLKCZjb25uZWN0b3ItPmhkY3Bf Y2hlY2tfd29yaywKPiBpbnRlbF9oZGNwX2NoZWNrX3dvcmspOwo+ID4gLQlJTklUX1dPUksoJmNv bm5lY3Rvci0+aGRjcF9wcm9wX3dvcmssIGludGVsX2hkY3BfcHJvcF93b3JrKTsKPiA+ICsJaGRj cC0+aGRjcF9zaGltID0gaGRjcF9zaGltOwo+ID4gKwltdXRleF9pbml0KCZoZGNwLT5oZGNwX211 dGV4KTsKPiA+ICsJSU5JVF9ERUxBWUVEX1dPUksoJmhkY3AtPmhkY3BfY2hlY2tfd29yaywKPiBp bnRlbF9oZGNwX2NoZWNrX3dvcmspOwo+ID4gKwlJTklUX1dPUksoJmhkY3AtPmhkY3BfcHJvcF93 b3JrLCBpbnRlbF9oZGNwX3Byb3Bfd29yayk7Cj4gPiAgCXJldHVybiAwOwo+ID4gIH0KPiA+Cj4g PiAgaW50IGludGVsX2hkY3BfZW5hYmxlKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3Rv cikgIHsKPiA+ICsJc3RydWN0IGludGVsX2hkY3AgKmhkY3AgPSAmY29ubmVjdG9yLT5oZGNwOwo+ ID4gIAlpbnQgcmV0Owo+ID4KPiA+IC0JaWYgKCFjb25uZWN0b3ItPmhkY3Bfc2hpbSkKPiA+ICsJ aWYgKCFoZGNwLT5oZGNwX3NoaW0pCj4gPiAgCQlyZXR1cm4gLUVOT0VOVDsKPiA+Cj4gPiAtCW11 dGV4X2xvY2soJmNvbm5lY3Rvci0+aGRjcF9tdXRleCk7Cj4gPiArCW11dGV4X2xvY2soJmhkY3At PmhkY3BfbXV0ZXgpOwo+ID4KPiA+ICAJcmV0ID0gX2ludGVsX2hkY3BfZW5hYmxlKGNvbm5lY3Rv cik7Cj4gPiAgCWlmIChyZXQpCj4gPiAgCQlnb3RvIG91dDsKPiA+Cj4gPiAtCWNvbm5lY3Rvci0+ aGRjcF92YWx1ZSA9Cj4gRFJNX01PREVfQ09OVEVOVF9QUk9URUNUSU9OX0VOQUJMRUQ7Cj4gPiAt CXNjaGVkdWxlX3dvcmsoJmNvbm5lY3Rvci0+aGRjcF9wcm9wX3dvcmspOwo+ID4gLQlzY2hlZHVs ZV9kZWxheWVkX3dvcmsoJmNvbm5lY3Rvci0+aGRjcF9jaGVja193b3JrLAo+ID4gKwloZGNwLT5o ZGNwX3ZhbHVlID0gRFJNX01PREVfQ09OVEVOVF9QUk9URUNUSU9OX0VOQUJMRUQ7Cj4gPiArCXNj aGVkdWxlX3dvcmsoJmhkY3AtPmhkY3BfcHJvcF93b3JrKTsKPiA+ICsJc2NoZWR1bGVfZGVsYXll ZF93b3JrKCZoZGNwLT5oZGNwX2NoZWNrX3dvcmssCj4gPiAgCQkJICAgICAgRFJNX0hEQ1BfQ0hF Q0tfUEVSSU9EX01TKTsKPiA+ICBvdXQ6Cj4gPiAtCW11dGV4X3VubG9jaygmY29ubmVjdG9yLT5o ZGNwX211dGV4KTsKPiA+ICsJbXV0ZXhfdW5sb2NrKCZoZGNwLT5oZGNwX211dGV4KTsKPiA+ICAJ cmV0dXJuIHJldDsKPiA+ICB9Cj4gPgo+ID4gIGludCBpbnRlbF9oZGNwX2Rpc2FibGUoc3RydWN0 IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKSAgewo+ID4gKwlzdHJ1Y3QgaW50ZWxfaGRjcCAq aGRjcCA9ICZjb25uZWN0b3ItPmhkY3A7Cj4gPiAgCWludCByZXQgPSAwOwo+ID4KPiA+IC0JaWYg KCFjb25uZWN0b3ItPmhkY3Bfc2hpbSkKPiA+ICsJaWYgKCFoZGNwLT5oZGNwX3NoaW0pCj4gPiAg CQlyZXR1cm4gLUVOT0VOVDsKPiA+Cj4gPiAtCW11dGV4X2xvY2soJmNvbm5lY3Rvci0+aGRjcF9t dXRleCk7Cj4gPiArCW11dGV4X2xvY2soJmhkY3AtPmhkY3BfbXV0ZXgpOwo+ID4KPiA+IC0JaWYg KGNvbm5lY3Rvci0+aGRjcF92YWx1ZSAhPQo+IERSTV9NT0RFX0NPTlRFTlRfUFJPVEVDVElPTl9V TkRFU0lSRUQpIHsKPiA+IC0JCWNvbm5lY3Rvci0+aGRjcF92YWx1ZSA9Cj4gRFJNX01PREVfQ09O VEVOVF9QUk9URUNUSU9OX1VOREVTSVJFRDsKPiA+ICsJaWYgKGhkY3AtPmhkY3BfdmFsdWUgIT0K PiBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fVU5ERVNJUkVEKSB7Cj4gPiArCQloZGNwLT5o ZGNwX3ZhbHVlID0KPiBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fVU5ERVNJUkVEOwo+ID4g IAkJcmV0ID0gX2ludGVsX2hkY3BfZGlzYWJsZShjb25uZWN0b3IpOwo+ID4gIAl9Cj4gPgo+ID4g LQltdXRleF91bmxvY2soJmNvbm5lY3Rvci0+aGRjcF9tdXRleCk7Cj4gPiAtCWNhbmNlbF9kZWxh eWVkX3dvcmtfc3luYygmY29ubmVjdG9yLT5oZGNwX2NoZWNrX3dvcmspOwo+ID4gKwltdXRleF91 bmxvY2soJmhkY3AtPmhkY3BfbXV0ZXgpOwo+ID4gKwljYW5jZWxfZGVsYXllZF93b3JrX3N5bmMo JmhkY3AtPmhkY3BfY2hlY2tfd29yayk7Cj4gPiAgCXJldHVybiByZXQ7Cj4gPiAgfQo+ID4KPiA+ IEBAIC04MjgsMTcgKzgzOSwxOCBAQCB2b2lkIGludGVsX2hkY3BfYXRvbWljX2NoZWNrKHN0cnVj dAo+ID4gZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ID4gIC8qIEltcGxlbWVudHMgUGFydCAz IG9mIHRoZSBIRENQIGF1dGhvcml6YXRpb24gcHJvY2VkdXJlICovICBpbnQKPiA+IGludGVsX2hk Y3BfY2hlY2tfbGluayhzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpICB7Cj4gPiAr CXN0cnVjdCBpbnRlbF9oZGNwICpoZGNwID0gJmNvbm5lY3Rvci0+aGRjcDsKPiA+ICAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gY29ubmVjdG9yLT5iYXNlLmRldi0+ZGV2X3By aXZhdGU7Cj4gPiAgCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0g Y29ubl90b19kaWdfcG9ydChjb25uZWN0b3IpOwo+ID4gIAllbnVtIHBvcnQgcG9ydCA9IGludGVs X2RpZ19wb3J0LT5iYXNlLnBvcnQ7Cj4gPiAgCWludCByZXQgPSAwOwo+ID4KPiA+IC0JaWYgKCFj b25uZWN0b3ItPmhkY3Bfc2hpbSkKPiA+ICsJaWYgKCFoZGNwLT5oZGNwX3NoaW0pCj4gPiAgCQly ZXR1cm4gLUVOT0VOVDsKPiA+Cj4gPiAtCW11dGV4X2xvY2soJmNvbm5lY3Rvci0+aGRjcF9tdXRl eCk7Cj4gPiArCW11dGV4X2xvY2soJmhkY3AtPmhkY3BfbXV0ZXgpOwo+ID4KPiA+IC0JaWYgKGNv bm5lY3Rvci0+aGRjcF92YWx1ZSA9PQo+IERSTV9NT0RFX0NPTlRFTlRfUFJPVEVDVElPTl9VTkRF U0lSRUQpCj4gPiArCWlmIChoZGNwLT5oZGNwX3ZhbHVlID09Cj4gRFJNX01PREVfQ09OVEVOVF9Q Uk9URUNUSU9OX1VOREVTSVJFRCkKPiA+ICAJCWdvdG8gb3V0Owo+ID4KPiA+ICAJaWYgKCEoSTkx NV9SRUFEKFBPUlRfSERDUF9TVEFUVVMocG9ydCkpICYgSERDUF9TVEFUVVNfRU5DKSkgewo+IEBA Cj4gPiAtODQ2LDE3ICs4NTgsMTcgQEAgaW50IGludGVsX2hkY3BfY2hlY2tfbGluayhzdHJ1Y3Qg aW50ZWxfY29ubmVjdG9yCj4gKmNvbm5lY3RvcikKPiA+ICAJCQkgIGNvbm5lY3Rvci0+YmFzZS5u YW1lLCBjb25uZWN0b3ItPmJhc2UuYmFzZS5pZCwKPiA+ICAJCQkgIEk5MTVfUkVBRChQT1JUX0hE Q1BfU1RBVFVTKHBvcnQpKSk7Cj4gPiAgCQlyZXQgPSAtRU5YSU87Cj4gPiAtCQljb25uZWN0b3It PmhkY3BfdmFsdWUgPQo+IERSTV9NT0RFX0NPTlRFTlRfUFJPVEVDVElPTl9ERVNJUkVEOwo+ID4g LQkJc2NoZWR1bGVfd29yaygmY29ubmVjdG9yLT5oZGNwX3Byb3Bfd29yayk7Cj4gPiArCQloZGNw LT5oZGNwX3ZhbHVlID0KPiBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fREVTSVJFRDsKPiA+ ICsJCXNjaGVkdWxlX3dvcmsoJmhkY3AtPmhkY3BfcHJvcF93b3JrKTsKPiA+ICAJCWdvdG8gb3V0 Owo+ID4gIAl9Cj4gPgo+ID4gLQlpZiAoY29ubmVjdG9yLT5oZGNwX3NoaW0tPmNoZWNrX2xpbmso aW50ZWxfZGlnX3BvcnQpKSB7Cj4gPiAtCQlpZiAoY29ubmVjdG9yLT5oZGNwX3ZhbHVlICE9Cj4g PiArCWlmIChoZGNwLT5oZGNwX3NoaW0tPmNoZWNrX2xpbmsoaW50ZWxfZGlnX3BvcnQpKSB7Cj4g PiArCQlpZiAoaGRjcC0+aGRjcF92YWx1ZSAhPQo+ID4gIAkJICAgIERSTV9NT0RFX0NPTlRFTlRf UFJPVEVDVElPTl9VTkRFU0lSRUQpIHsKPiA+IC0JCQljb25uZWN0b3ItPmhkY3BfdmFsdWUgPQo+ ID4gKwkJCWhkY3AtPmhkY3BfdmFsdWUgPQo+ID4KPiAJRFJNX01PREVfQ09OVEVOVF9QUk9URUNU SU9OX0VOQUJMRUQ7Cj4gPiAtCQkJc2NoZWR1bGVfd29yaygmY29ubmVjdG9yLT5oZGNwX3Byb3Bf d29yayk7Cj4gPiArCQkJc2NoZWR1bGVfd29yaygmaGRjcC0+aGRjcF9wcm9wX3dvcmspOwo+ID4g IAkJfQo+ID4gIAkJZ290byBvdXQ7Cj4gPiAgCX0KPiA+IEBAIC04NjcsMjAgKzg3OSwyMCBAQCBp bnQgaW50ZWxfaGRjcF9jaGVja19saW5rKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IKPiAqY29ubmVj dG9yKQo+ID4gIAlyZXQgPSBfaW50ZWxfaGRjcF9kaXNhYmxlKGNvbm5lY3Rvcik7Cj4gPiAgCWlm IChyZXQpIHsKPiA+ICAJCURSTV9FUlJPUigiRmFpbGVkIHRvIGRpc2FibGUgaGRjcCAoJWQpXG4i LCByZXQpOwo+ID4gLQkJY29ubmVjdG9yLT5oZGNwX3ZhbHVlID0KPiBEUk1fTU9ERV9DT05URU5U X1BST1RFQ1RJT05fREVTSVJFRDsKPiA+IC0JCXNjaGVkdWxlX3dvcmsoJmNvbm5lY3Rvci0+aGRj cF9wcm9wX3dvcmspOwo+ID4gKwkJaGRjcC0+aGRjcF92YWx1ZSA9Cj4gRFJNX01PREVfQ09OVEVO VF9QUk9URUNUSU9OX0RFU0lSRUQ7Cj4gPiArCQlzY2hlZHVsZV93b3JrKCZoZGNwLT5oZGNwX3By b3Bfd29yayk7Cj4gPiAgCQlnb3RvIG91dDsKPiA+ICAJfQo+ID4KPiA+ICAJcmV0ID0gX2ludGVs X2hkY3BfZW5hYmxlKGNvbm5lY3Rvcik7Cj4gPiAgCWlmIChyZXQpIHsKPiA+ICAJCURSTV9FUlJP UigiRmFpbGVkIHRvIGVuYWJsZSBoZGNwICglZClcbiIsIHJldCk7Cj4gPiAtCQljb25uZWN0b3It PmhkY3BfdmFsdWUgPQo+IERSTV9NT0RFX0NPTlRFTlRfUFJPVEVDVElPTl9ERVNJUkVEOwo+ID4g LQkJc2NoZWR1bGVfd29yaygmY29ubmVjdG9yLT5oZGNwX3Byb3Bfd29yayk7Cj4gPiArCQloZGNw LT5oZGNwX3ZhbHVlID0KPiBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fREVTSVJFRDsKPiA+ ICsJCXNjaGVkdWxlX3dvcmsoJmhkY3AtPmhkY3BfcHJvcF93b3JrKTsKPiA+ICAJCWdvdG8gb3V0 Owo+ID4gIAl9Cj4gPgo+ID4gIG91dDoKPiA+IC0JbXV0ZXhfdW5sb2NrKCZjb25uZWN0b3ItPmhk Y3BfbXV0ZXgpOwo+ID4gKwltdXRleF91bmxvY2soJmhkY3AtPmhkY3BfbXV0ZXgpOwo+ID4gIAly ZXR1cm4gcmV0Owo+ID4gIH0KPiA+IC0tCj4gPiAyLjcuNAo+ID4KPiA+IF9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPiBkcmktZGV2ZWwgbWFpbGluZyBs aXN0Cj4gPiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiBodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo+IAo+IC0tCj4gU2Vh biBQYXVsLCBTb2Z0d2FyZSBFbmdpbmVlciwgR29vZ2xlIC8gQ2hyb21pdW0gT1MKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcg bGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==