From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: Re: [PATCH v4 13/13] drm/i915: Populate downstream info for HDCP Date: Fri, 5 Apr 2019 17:33:19 +0530 Message-ID: <20190405120319.GB9459@intel.com> References: <20190405084302.5548-1-ramalingam.c@intel.com> <20190405084302.5548-14-ramalingam.c@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: <20190405084302.5548-14-ramalingam.c@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, daniel@ffwll.ch Cc: gwan-gyeong.mun@intel.com List-Id: dri-devel@lists.freedesktop.org T24gMjAxOS0wNC0wNSBhdCAxNDoxMzowMiArMDUzMCwgUmFtYWxpbmdhbSBDIHdyb3RlOgo+IElt cGxlbWVudHMgZHJtIGJsb2IgcHJvcGVydHkgY29udGVudF9wcm90ZWN0aW9uX2Rvd25zdHJlYW1f aW5mbwo+IHByb3BlcnR5IG9uIEhEQ1AgY2FwYWJsZSBjb25uZWN0b3JzLgo+IAo+IERvd25zdHJl YW0gdG9wb2xvZ3kgaW5mbyBpcyBnYXRoZXJlZCBhY3Jvc3MgYXV0aGVudGljYXRpb24gc3RhZ2Vz Cj4gYW5kIHN0b3JlZCBpbiBpbnRlbF9oZGNwLiBXaGVuIEhEQ1AgYXV0aGVudGljYXRpb24gaXMg Y29tcGxldGUsCj4gbmV3IGJsb2Igd2l0aCBsYXRlc3QgZG93bnN0cmVhbSB0b3BvbG9neSBpbmZv cm1hdGlvbiBpcyB1cGRhdGVkIHRvCj4gY29udGVudF9wcm90ZWN0aW9uX2Rvd25zdHJlYW1faW5m byBwcm9wZXJ0eS4KPiAKPiB2MjoKPiAgICVzL2NwX2Rvd25zdHJlYW0vY29udGVudF9wcm90ZWN0 aW9uX2Rvd25zdHJlYW0gW2RhbmllbF0KPiB2MzoKPiAgICVzL2NvbnRlbnRfcHJvdGVjdGlvbl9k b3duc3RyZWFtL2hkY3BfdG9wb2xvZ3kgW2RhbmllbF0KPiB2NDoKPiAgIFJlYmFzZWQuCkRhbmll bCwKCkhvcGUgSSBoYXZlIGRvbmUgZW5vdWdoIGV4cGxpY2l0IHBhZGRpbmcgc3RydWN0IGhkY3Bf dG9wb2xvZ3lfaW5mby4KUGxlYXNlIGNvcnJlY3QgbWUgaWYgaSBhbSBzdGlsbCBtaXNzaW5nIHNv bWV0aGluZy4KCkZvciBwb3B1bGF0aW5nIHRoZSBzdHJ1Y3R1cmUgZm9yIHRoZSBibG9iLCBhcyB5 b3Ugc3VnZWdzdGVkIHRoaXMgcGF0Y2gKaXMgbm90IHVzaW5nIHRoZSBzZXBhcmF0ZSBmdW5jdGlv bnMuIElNSE8gSSBmZWVsIHVzYWdlIGlzIHZlcnkgbWluaW1hbCwKc2VwYXJhdGUgZnVuY3Rpb25z IG1pZ2h0IG5vdCBiZSBqdXN0aWZpZWQgaGVyZS4gSG9wZSB5b3UgYXJlIGZpbmUgd2l0aAp0aGF0 LgoKLVJhbQo+IAo+IFNpZ25lZC1vZmYtYnk6IFJhbWFsaW5nYW0gQyA8cmFtYWxpbmdhbS5jQGlu dGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggIHwgIDIg Kwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZGNwLmMgfCA4NyArKysrKysrKysrKysr KysrKysrKysrKysrKy0tLS0tCj4gIGluY2x1ZGUvZHJtL2RybV9oZGNwLmggICAgICAgICAgICB8 ICAxICsKPiAgMyBmaWxlcyBjaGFuZ2VkLCA3NiBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMo LSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IGluZGV4IGUzODdlODQyZjQxNC4uNmEz MjFhNTZjZTQyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBAQCAtNDgyLDYgKzQ4 Miw4IEBAIHN0cnVjdCBpbnRlbF9oZGNwIHsKPiAgCXdhaXRfcXVldWVfaGVhZF90IGNwX2lycV9x dWV1ZTsKPiAgCWF0b21pY190IGNwX2lycV9jb3VudDsKPiAgCWludCBjcF9pcnFfY291bnRfY2Fj aGVkOwo+ICsKPiArCXN0cnVjdCBoZGNwX3RvcG9sb2d5X2luZm8gKnRvcG9sb2d5X2luZm87Cj4g IH07Cj4gIAo+ICBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yIHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRjcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf aGRjcC5jCj4gaW5kZXggZjcwZjFlOThlNGFlLi42OTkzYmI5ZWNkMGIgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRjcC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfaGRjcC5jCj4gQEAgLTQ5MCw5ICs0OTAsMTAgQEAgaW50IGludGVsX2hkY3Bf dmFsaWRhdGVfdl9wcmltZShzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9y dCwKPiAgCj4gIC8qIEltcGxlbWVudHMgUGFydCAyIG9mIHRoZSBIRENQIGF1dGhvcml6YXRpb24g cHJvY2VkdXJlICovCj4gIHN0YXRpYwo+IC1pbnQgaW50ZWxfaGRjcF9hdXRoX2Rvd25zdHJlYW0o c3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCj4gLQkJCSAgICAgICBj b25zdCBzdHJ1Y3QgaW50ZWxfaGRjcF9zaGltICpzaGltKQo+ICtpbnQgaW50ZWxfaGRjcF9hdXRo X2Rvd25zdHJlYW0oc3RydWN0IGludGVsX2hkY3AgKmhkY3AsCj4gKwkJCSAgICAgICBzdHJ1Y3Qg aW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCkKPiAgewo+ICsJY29uc3Qgc3RydWN0 IGludGVsX2hkY3Bfc2hpbSAqc2hpbSA9IGhkY3AtPnNoaW07Cj4gIAl1OCBic3RhdHVzWzJdLCBu dW1fZG93bnN0cmVhbSwgKmtzdl9maWZvOwo+ICAJaW50IHJldCwgaSwgdHJpZXMgPSAzOwo+ICAK PiBAQCAtNTIzLDYgKzUyNCw5IEBAIGludCBpbnRlbF9oZGNwX2F1dGhfZG93bnN0cmVhbShzdHJ1 Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKPiAgCWlmIChudW1fZG93bnN0 cmVhbSA9PSAwKQo+ICAJCXJldHVybiAtRUlOVkFMOwo+ICAKPiArCWhkY3AtPnRvcG9sb2d5X2lu Zm8tPmRldmljZV9jb3VudCA9IG51bV9kb3duc3RyZWFtOwo+ICsJaGRjcC0+dG9wb2xvZ3lfaW5m by0+ZGVwdGggPSBEUk1fSERDUF9ERVBUSChic3RhdHVzWzFdKTsKPiArCj4gIAlrc3ZfZmlmbyA9 IGtjYWxsb2MoRFJNX0hEQ1BfS1NWX0xFTiwgbnVtX2Rvd25zdHJlYW0sIEdGUF9LRVJORUwpOwo+ ICAJaWYgKCFrc3ZfZmlmbykKPiAgCQlyZXR1cm4gLUVOT01FTTsKPiBAQCAtNTM2LDYgKzU0MCw4 IEBAIGludCBpbnRlbF9oZGNwX2F1dGhfZG93bnN0cmVhbShzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9w b3J0ICppbnRlbF9kaWdfcG9ydCwKPiAgCQlyZXR1cm4gLUVQRVJNOwo+ICAJfQo+ICAKPiArCW1l bWNweShoZGNwLT50b3BvbG9neV9pbmZvLT5rc3ZfbGlzdCwga3N2X2ZpZm8sCj4gKwkgICAgICAg bnVtX2Rvd25zdHJlYW0gKiBEUk1fSERDUF9LU1ZfTEVOKTsKPiAgCS8qCj4gIAkgKiBXaGVuIFYg cHJpbWUgbWlzbWF0Y2hlcywgRFAgU3BlYyBtYW5kYXRlcyByZS1yZWFkIG9mCj4gIAkgKiBWIHBy aW1lIGF0bGVhc3QgdHdpY2UuCj4gQEAgLTU2Miw5ICs1NjgsMTEgQEAgaW50IGludGVsX2hkY3Bf YXV0aF9kb3duc3RyZWFtKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0 LAo+ICB9Cj4gIAo+ICAvKiBJbXBsZW1lbnRzIFBhcnQgMSBvZiB0aGUgSERDUCBhdXRob3JpemF0 aW9uIHByb2NlZHVyZSAqLwo+IC1zdGF0aWMgaW50IGludGVsX2hkY3BfYXV0aChzdHJ1Y3QgaW50 ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKPiAtCQkJICAgY29uc3Qgc3RydWN0IGlu dGVsX2hkY3Bfc2hpbSAqc2hpbSkKPiArc3RhdGljIGludCBpbnRlbF9oZGNwX2F1dGgoc3RydWN0 IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICB7Cj4gKwlzdHJ1Y3QgaW50ZWxfZGlnaXRh bF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGNvbm5fdG9fZGlnX3BvcnQoY29ubmVjdG9yKTsKPiAr CXN0cnVjdCBpbnRlbF9oZGNwICpoZGNwID0gJmNvbm5lY3Rvci0+aGRjcDsKPiArCWNvbnN0IHN0 cnVjdCBpbnRlbF9oZGNwX3NoaW0gKnNoaW0gPSBoZGNwLT5zaGltOwo+ICAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2Owo+ICAJZW51bSBwb3J0IHBvcnQ7Cj4gIAl1bnNpZ25lZCBs b25nIHIwX3ByaW1lX2dlbl9zdGFydDsKPiBAQCAtNjM1LDE1ICs2NDMsMjAgQEAgc3RhdGljIGlu dCBpbnRlbF9oZGNwX2F1dGgoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3Bv cnQsCj4gIAkJcmV0dXJuIC1FUEVSTTsKPiAgCX0KPiAgCj4gKwloZGNwLT50b3BvbG9neV9pbmZv LT52ZXJfaW5fZm9yY2UgPSBEUk1fTU9ERV9IRENQMTRfSU5fRk9SQ0U7Cj4gKwltZW1jcHkoaGRj cC0+dG9wb2xvZ3lfaW5mby0+YmtzdiwgYmtzdi5zaGltLCBEUk1fTU9ERV9IRENQX0tTVl9MRU4p Owo+ICsKPiAgCUk5MTVfV1JJVEUoUE9SVF9IRENQX0JLU1ZMTyhwb3J0KSwgYmtzdi5yZWdbMF0p Owo+ICAJSTkxNV9XUklURShQT1JUX0hEQ1BfQktTVkhJKHBvcnQpLCBia3N2LnJlZ1sxXSk7Cj4g IAo+ICAJcmV0ID0gc2hpbS0+cmVwZWF0ZXJfcHJlc2VudChpbnRlbF9kaWdfcG9ydCwgJnJlcGVh dGVyX3ByZXNlbnQpOwo+ICAJaWYgKHJldCkKPiAgCQlyZXR1cm4gcmV0Owo+IC0JaWYgKHJlcGVh dGVyX3ByZXNlbnQpCj4gKwlpZiAocmVwZWF0ZXJfcHJlc2VudCkgewo+ICAJCUk5MTVfV1JJVEUo SERDUF9SRVBfQ1RMLAo+ICAJCQkgICBpbnRlbF9oZGNwX2dldF9yZXBlYXRlcl9jdGwoaW50ZWxf ZGlnX3BvcnQpKTsKPiArCQloZGNwLT50b3BvbG9neV9pbmZvLT5pc19yZXBlYXRlciA9IHRydWU7 Cj4gKwl9Cj4gIAo+ICAJcmV0ID0gc2hpbS0+dG9nZ2xlX3NpZ25hbGxpbmcoaW50ZWxfZGlnX3Bv cnQsIHRydWUpOwo+ICAJaWYgKHJldCkKPiBAQCAtNzA4LDcgKzcyMSw3IEBAIHN0YXRpYyBpbnQg aW50ZWxfaGRjcF9hdXRoKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0 LAo+ICAJICovCj4gIAo+ICAJaWYgKHJlcGVhdGVyX3ByZXNlbnQpCj4gLQkJcmV0dXJuIGludGVs X2hkY3BfYXV0aF9kb3duc3RyZWFtKGludGVsX2RpZ19wb3J0LCBzaGltKTsKPiArCQlyZXR1cm4g aW50ZWxfaGRjcF9hdXRoX2Rvd25zdHJlYW0oaGRjcCwgaW50ZWxfZGlnX3BvcnQpOwo+ICAKPiAg CURSTV9ERUJVR19LTVMoIkhEQ1AgaXMgZW5hYmxlZCAobm8gcmVwZWF0ZXIgcHJlc2VudClcbiIp Owo+ICAJcmV0dXJuIDA7Cj4gQEAgLTczOSwxMyArNzUyLDE4IEBAIHN0YXRpYyBpbnQgX2ludGVs X2hkY3BfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4gIAkJcmV0 dXJuIHJldDsKPiAgCX0KPiAgCj4gKwltZW1zZXQoaGRjcC0+dG9wb2xvZ3lfaW5mbywgMCwgc2l6 ZW9mKHN0cnVjdCBoZGNwX3RvcG9sb2d5X2luZm8pKTsKPiArCj4gKwlpZiAoZHJtX2Nvbm5lY3Rv cl91cGRhdGVfaGRjcF90b3BvbG9neV9wcm9wZXJ0eSgmY29ubmVjdG9yLT5iYXNlLAo+ICsJCQkJ CQljb25uZWN0b3ItPmhkY3AudG9wb2xvZ3lfaW5mbykpCj4gKwkJRFJNX0VSUk9SKCJEb3duc3Ry ZWFtX2luZm8gdXBkYXRlIGZhaWxlZC5cbiIpOwo+ICsKPiAgCURSTV9ERUJVR19LTVMoIkhEQ1Ag aXMgZGlzYWJsZWRcbiIpOwo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gIHN0YXRpYyBpbnQgX2lu dGVsX2hkY3BfZW5hYmxlKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAgewo+ IC0Jc3RydWN0IGludGVsX2hkY3AgKmhkY3AgPSAmY29ubmVjdG9yLT5oZGNwOwo+ICAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gY29ubmVjdG9yLT5iYXNlLmRldi0+ZGV2X3By aXZhdGU7Cj4gIAlpbnQgaSwgcmV0LCB0cmllcyA9IDM7Cj4gIAo+IEBAIC03NzAsOSArNzg4LDEz IEBAIHN0YXRpYyBpbnQgX2ludGVsX2hkY3BfZW5hYmxlKHN0cnVjdCBpbnRlbF9jb25uZWN0b3Ig KmNvbm5lY3RvcikKPiAgCj4gIAkvKiBJbmNhc2Ugb2YgYXV0aGVudGljYXRpb24gZmFpbHVyZXMs IEhEQ1Agc3BlYyBleHBlY3RzIHJlYXV0aC4gKi8KPiAgCWZvciAoaSA9IDA7IGkgPCB0cmllczsg aSsrKSB7Cj4gLQkJcmV0ID0gaW50ZWxfaGRjcF9hdXRoKGNvbm5fdG9fZGlnX3BvcnQoY29ubmVj dG9yKSwgaGRjcC0+c2hpbSk7Cj4gKwkJcmV0ID0gaW50ZWxfaGRjcF9hdXRoKGNvbm5lY3Rvcik7 Cj4gIAkJaWYgKCFyZXQpIHsKPiAtCQkJaGRjcC0+aGRjcF9lbmNyeXB0ZWQgPSB0cnVlOwo+ICsJ CQljb25uZWN0b3ItPmhkY3AuaGRjcF9lbmNyeXB0ZWQgPSB0cnVlOwo+ICsJCQlpZiAoZHJtX2Nv bm5lY3Rvcl91cGRhdGVfaGRjcF90b3BvbG9neV9wcm9wZXJ0eSgKPiArCQkJCQkmY29ubmVjdG9y LT5iYXNlLAo+ICsJCQkJCWNvbm5lY3Rvci0+aGRjcC50b3BvbG9neV9pbmZvKSkKPiArCQkJCURS TV9FUlJPUigiRG93bnN0cmVhbV9pbmZvIHVwZGF0ZSBmYWlsZWQuXG4iKTsKPiAgCQkJcmV0dXJu IDA7Cj4gIAkJfQo+ICAKPiBAQCAtMTIwNiw2ICsxMjI4LDEyIEBAIHN0YXRpYyBpbnQgaGRjcDJf YXV0aGVudGljYXRpb25fa2V5X2V4Y2hhbmdlKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5l Y3RvcikKPiAgCQlyZXR1cm4gLUVQRVJNOwo+ICAJfQo+ICAKPiArCWhkY3AtPnRvcG9sb2d5X2lu Zm8tPnZlcl9pbl9mb3JjZSA9IERSTV9NT0RFX0hEQ1AyMl9JTl9GT1JDRTsKPiArCWhkY3AtPnRv cG9sb2d5X2luZm8tPmNvbnRlbnRfdHlwZSA9IGhkY3AtPmNvbnRlbnRfdHlwZTsKPiArCW1lbWNw eShoZGNwLT50b3BvbG9neV9pbmZvLT5ia3N2LCBtc2dzLnNlbmRfY2VydC5jZXJ0X3J4LnJlY2Vp dmVyX2lkLAo+ICsJICAgICAgIEhEQ1BfMl8yX1JFQ0VJVkVSX0lEX0xFTik7Cj4gKwloZGNwLT50 b3BvbG9neV9pbmZvLT5pc19yZXBlYXRlciA9IGhkY3AtPmlzX3JlcGVhdGVyOwo+ICsKPiAgCS8q Cj4gIAkgKiBIZXJlIG1zZ3Mubm9fc3RvcmVkX2ttIHdpbGwgaG9sZCBtc2dzIGNvcnJlc3BvbmRp bmcgdG8gdGhlIGttCj4gIAkgKiBzdG9yZWQgYWxzby4KPiBAQCAtMTM5Nyw2ICsxNDI1LDExIEBA IGludCBoZGNwMl9hdXRoZW50aWNhdGVfcmVwZWF0ZXJfdG9wb2xvZ3koc3RydWN0IGludGVsX2Nv bm5lY3RvciAqY29ubmVjdG9yKQo+ICAJCXJldHVybiAtRVBFUk07Cj4gIAl9Cj4gIAo+ICsJaGRj cC0+dG9wb2xvZ3lfaW5mby0+ZGV2aWNlX2NvdW50ID0gZGV2aWNlX2NudDsKPiArCWhkY3AtPnRv cG9sb2d5X2luZm8tPmRlcHRoID0gSERDUF8yXzJfREVQVEgocnhfaW5mb1swXSk7Cj4gKwltZW1j cHkoaGRjcC0+dG9wb2xvZ3lfaW5mby0+a3N2X2xpc3QsIG1zZ3MucmVjdmlkX2xpc3QucmVjZWl2 ZXJfaWRzLAo+ICsJICAgICAgIGRldmljZV9jbnQgKiBIRENQXzJfMl9SRUNFSVZFUl9JRF9MRU4p Owo+ICsKPiAgCXJldCA9IGhkY3AyX3ZlcmlmeV9yZXBfdG9wb2xvZ3lfcHJlcGFyZV9hY2soY29u bmVjdG9yLAo+ICAJCQkJCQkgICAgJm1zZ3MucmVjdmlkX2xpc3QsCj4gIAkJCQkJCSAgICAmbXNn cy5yZXBfYWNrKTsKPiBAQCAtMTU4Myw2ICsxNjE2LDEyIEBAIHN0YXRpYyBpbnQgX2ludGVsX2hk Y3AyX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4gIAlpZiAocmV0 KSB7Cj4gIAkJRFJNX0RFQlVHX0tNUygiSERDUDIgVHlwZSVkICBFbmFibGluZyBGYWlsZWQuICgl ZClcbiIsCj4gIAkJCSAgICAgIGhkY3AtPmNvbnRlbnRfdHlwZSwgcmV0KTsKPiArCj4gKwkJbWVt c2V0KGhkY3AtPnRvcG9sb2d5X2luZm8sIDAsCj4gKwkJICAgICAgIHNpemVvZihzdHJ1Y3QgaGRj cF90b3BvbG9neV9pbmZvKSk7Cj4gKwkJZHJtX2Nvbm5lY3Rvcl91cGRhdGVfaGRjcF90b3BvbG9n eV9wcm9wZXJ0eSgmY29ubmVjdG9yLT5iYXNlLAo+ICsJCQkJCQkJICBoZGNwLT50b3BvbG9neV9p bmZvKTsKPiArCj4gIAkJcmV0dXJuIHJldDsKPiAgCX0KPiAgCj4gQEAgLTE1OTAsMTIgKzE2Mjks MTYgQEAgc3RhdGljIGludCBfaW50ZWxfaGRjcDJfZW5hYmxlKHN0cnVjdCBpbnRlbF9jb25uZWN0 b3IgKmNvbm5lY3RvcikKPiAgCQkgICAgICBjb25uZWN0b3ItPmJhc2UubmFtZSwgY29ubmVjdG9y LT5iYXNlLmJhc2UuaWQsCj4gIAkJICAgICAgaGRjcC0+Y29udGVudF90eXBlKTsKPiAgCj4gKwlk cm1fY29ubmVjdG9yX3VwZGF0ZV9oZGNwX3RvcG9sb2d5X3Byb3BlcnR5KCZjb25uZWN0b3ItPmJh c2UsCj4gKwkJCQkJCSAgICBoZGNwLT50b3BvbG9neV9pbmZvKTsKPiAgCWhkY3AtPmhkY3AyX2Vu Y3J5cHRlZCA9IHRydWU7Cj4gKwo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gIHN0YXRpYyBpbnQg X2ludGVsX2hkY3AyX2Rpc2FibGUoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ ICB7Cj4gKwlzdHJ1Y3QgaW50ZWxfaGRjcCAqaGRjcCA9ICZjb25uZWN0b3ItPmhkY3A7Cj4gIAlp bnQgcmV0Owo+ICAKPiAgCURSTV9ERUJVR19LTVMoIlslczolZF0gSERDUDIuMiBpcyBiZWluZyBE aXNhYmxlZFxuIiwKPiBAQCAtMTYwNiw4ICsxNjQ5LDExIEBAIHN0YXRpYyBpbnQgX2ludGVsX2hk Y3AyX2Rpc2FibGUoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICAJaWYgKGhk Y3AyX2RlYXV0aGVudGljYXRlX3BvcnQoY29ubmVjdG9yKSA8IDApCj4gIAkJRFJNX0RFQlVHX0tN UygiUG9ydCBkZWF1dGggZmFpbGVkLlxuIik7Cj4gIAo+IC0JY29ubmVjdG9yLT5oZGNwLmhkY3Ay X2VuY3J5cHRlZCA9IGZhbHNlOwo+ICsJaGRjcC0+aGRjcDJfZW5jcnlwdGVkID0gZmFsc2U7Cj4g IAo+ICsJbWVtc2V0KGhkY3AtPnRvcG9sb2d5X2luZm8sIDAsIHNpemVvZihzdHJ1Y3QgaGRjcF90 b3BvbG9neV9pbmZvKSk7Cj4gKwlkcm1fY29ubmVjdG9yX3VwZGF0ZV9oZGNwX3RvcG9sb2d5X3By b3BlcnR5KCZjb25uZWN0b3ItPmJhc2UsCj4gKwkJCQkJCSAgICBoZGNwLT50b3BvbG9neV9pbmZv KTsKPiAgCXJldHVybiByZXQ7Cj4gIH0KPiAgCj4gQEAgLTE4MjQsMTAgKzE4NzAsMTcgQEAgaW50 IGludGVsX2hkY3BfaW5pdChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCj4gIAly ZXQgPQo+ICAJZHJtX2Nvbm5lY3Rvcl9hdHRhY2hfY29udGVudF9wcm90ZWN0aW9uX3Byb3BlcnR5 KCZjb25uZWN0b3ItPmJhc2UsCj4gIAkJCQkJCQkgaGRjcC0+aGRjcDJfc3VwcG9ydGVkKTsKPiAt CWlmIChyZXQpIHsKPiAtCQloZGNwLT5oZGNwMl9zdXBwb3J0ZWQgPSBmYWxzZTsKPiAtCQlrZnJl ZShoZGNwLT5wb3J0X2RhdGEuc3RyZWFtcyk7Cj4gLQkJcmV0dXJuIHJldDsKPiArCWlmIChyZXQp Cj4gKwkJZ290byBlcnJfZXhpdDsKPiArCj4gKwlyZXQgPSBkcm1fY29ubmVjdG9yX2F0dGFjaF9o ZGNwX3RvcG9sb2d5X3Byb3BlcnR5KCZjb25uZWN0b3ItPmJhc2UpOwo+ICsJaWYgKHJldCkKPiAr CQlnb3RvIGVycl9leGl0Owo+ICsKPiArCWhkY3AtPnRvcG9sb2d5X2luZm8gPSBremFsbG9jKHNp emVvZigqaGRjcC0+dG9wb2xvZ3lfaW5mbyksIEdGUF9LRVJORUwpOwo+ICsJaWYgKCFoZGNwLT50 b3BvbG9neV9pbmZvKSB7Cj4gKwkJcmV0ID0gLUVOT01FTTsKPiArCQlnb3RvIGVycl9leGl0Owo+ ICAJfQo+ICAKPiAgCWhkY3AtPnNoaW0gPSBzaGltOwo+IEBAIC0xODM3LDYgKzE4OTAsMTIgQEAg aW50IGludGVsX2hkY3BfaW5pdChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCj4g IAlpbml0X3dhaXRxdWV1ZV9oZWFkKCZoZGNwLT5jcF9pcnFfcXVldWUpOwo+ICAKPiAgCXJldHVy biAwOwo+ICsKPiArZXJyX2V4aXQ6Cj4gKwloZGNwLT5oZGNwMl9zdXBwb3J0ZWQgPSBmYWxzZTsK PiArCWtmcmVlKGhkY3AtPnBvcnRfZGF0YS5zdHJlYW1zKTsKPiArCj4gKwlyZXR1cm4gcmV0Owo+ ICB9Cj4gIAo+ICBpbnQgaW50ZWxfaGRjcF9lbmFibGUoc3RydWN0IGludGVsX2Nvbm5lY3RvciAq Y29ubmVjdG9yLCB1OCBjb250ZW50X3R5cGUpCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2Ry bV9oZGNwLmggYi9pbmNsdWRlL2RybS9kcm1faGRjcC5oCj4gaW5kZXggZmRkNjVhMTRmNGRiLi4z MzBlMzQ3MTVhYTQgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2hkY3AuaAo+ICsrKyBi L2luY2x1ZGUvZHJtL2RybV9oZGNwLmgKPiBAQCAtMjMsNiArMjMsNyBAQAo+ICAjZGVmaW5lIERS TV9IRENQX1ZfUFJJTUVfUEFSVF9MRU4JCTQKPiAgI2RlZmluZSBEUk1fSERDUF9WX1BSSU1FX05V TV9QQVJUUwkJNQo+ICAjZGVmaW5lIERSTV9IRENQX05VTV9ET1dOU1RSRUFNKHgpCQkoeCAmIDB4 N2YpCj4gKyNkZWZpbmUgRFJNX0hEQ1BfREVQVEgoeCkJCQkoKHgpICYgMHg3KQo+ICAjZGVmaW5l IERSTV9IRENQX01BWF9DQVNDQURFX0VYQ0VFREVEKHgpCSh4ICYgQklUKDMpKQo+ICAjZGVmaW5l IERSTV9IRENQX01BWF9ERVZJQ0VfRVhDRUVERUQoeCkJCSh4ICYgQklUKDcpKQo+ICAKPiAtLSAK PiAyLjE5LjEKPiAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs