From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [PATCH 5/5] drm/i915: Move hdcp msg detection into shim Date: Mon, 26 Feb 2018 13:01:46 -0500 Message-ID: <20180226180146.GZ223881@art_vandelay> References: <1519665159-28639-1-git-send-email-ramalingam.c@intel.com> <1519665159-28639-6-git-send-email-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: <1519665159-28639-6-git-send-email-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: Ramalingam C Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBGZWIgMjYsIDIwMTggYXQgMTA6NDI6MzlQTSArMDUzMCwgUmFtYWxpbmdhbSBDIHdy b3RlOgo+IERQIGFuZCBIRE1JIEhEQ1Agc3BlY2lmaWNhdGlvbnMgYXJlIHZhcnlpbmcgd2l0aCBy ZXNwZWN0IHRvCj4gZGV0ZWN0aW5nIHRoZSBSMCBhbmQga3N2X2ZpZm8gYXZhaWxhYmlsaXR5Lgo+ IAo+IERQIHdpbGwgcHJvZHVjZSBDUF9JUlEgYW5kIHNldCBhIGJpdCBmb3IgaW5kaWNhdGluZyB0 aGUgUjAgYW5kCj4gRklGT19SRUFEWSBzdGF0dXMuCgpJJ20gbm90IHN1cmUgd2hhdCB0aGUgYmVu ZWZpdCBpcz8gS2VlcGluZyB0aGluZ3MgY29tbW9uIHdhcyBhIGRlbGliZXJhdGUKZGVjaXNpb24g b24gbXkgcGFydCB0byBrZWVwIGNvbXBsZXhpdHkgZG93biBhbmQgaW5jcmVhc2UgdGhlIGFtb3Vu dCBvZiBjb21tb24KY29kZS4KClNlYW4KCj4gCj4gV2hlcmVhcyBIRE1JIHdpbGwgc2V0IGEgYml0 IGZvciBGSUZPX1JFQURZIGJ1dCB0aGVyZSBpcyBubyBiaXQKPiBpbmRpY2F0aW9uIGZvciBSMCBy ZWFkeS4gQW5kIGFsc28gcG9sbGluZyBvZiBSRUFEWSBiaXQgaXMgbmVlZGVkIGZvcgo+IEhETUkg YXMgdGhlciBpcyBubyBDUF9JUlEuCj4gCj4gU28gRmllbGRpbmcgdGhlIENQX0lSUSBmb3IgRFAg YW5kIHRoZSBwb2xsaW5nIHRoZSBSRUFEWSBiaXQgZm9yIGEKPiBwZXJpb2QgYW5kIGJsaW5kbHkg d2FpdGluZyBmb3IgYSBmaXhlZCB0aW1lIGZvciBSMCBpbmNhc2Ugb2YgSERNSSBhcmUKPiBtb3Zl ZCBpbnRvIGNvcnJlc3BvbmRpbmcgaGRjcF9zaGltLgo+IAo+IFNpZ25lZC1vZmYtYnk6IFJhbWFs aW5nYW0gQyA8cmFtYWxpbmdhbS5jQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHAuYyAgIHwgNzAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KystLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICB8ICA2ICsrLS0KPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRjcC5jIHwgMzkgKystLS0tLS0tLS0tLS0tLS0t LS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgfCAyOCArKysrKysrKysr KysrKystCj4gIDQgZmlsZXMgY2hhbmdlZCwgOTggaW5zZXJ0aW9ucygrKSwgNDUgZGVsZXRpb25z KC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gaW5kZXggMmMzZWI5MGI5NDk5Li5hZmUz MTBhOTFkM2MgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiBAQCAtNDQzNiw2ICs0NDM2 LDcgQEAgc3RhdGljIGJvb2wKPiAgaW50ZWxfZHBfc2hvcnRfcHVsc2Uoc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCkKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApKTsKPiArCXN0cnVjdCBpbnRlbF9jb25u ZWN0b3IgKmNvbm5lY3RvciA9IGludGVsX2RwLT5hdHRhY2hlZF9jb25uZWN0b3I7Cj4gIAl1OCBz aW5rX2lycV92ZWN0b3IgPSAwOwo+ICAJdTggb2xkX3NpbmtfY291bnQgPSBpbnRlbF9kcC0+c2lu a19jb3VudDsKPiAgCWJvb2wgcmV0Owo+IEBAIC00NDcwLDggKzQ0NzEsMTEgQEAgaW50ZWxfZHBf c2hvcnRfcHVsc2Uoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAgCj4gIAkJaWYgKHNpbmtf aXJxX3ZlY3RvciAmIERQX0FVVE9NQVRFRF9URVNUX1JFUVVFU1QpCj4gIAkJCWludGVsX2RwX2hh bmRsZV90ZXN0X3JlcXVlc3QoaW50ZWxfZHApOwo+IC0JCWlmIChzaW5rX2lycV92ZWN0b3IgJiAo RFBfQ1BfSVJRIHwgRFBfU0lOS19TUEVDSUZJQ19JUlEpKQo+IC0JCQlEUk1fREVCVUdfRFJJVkVS KCJDUCBvciBzaW5rIHNwZWNpZmljIGlycSB1bmhhbmRsZWRcbiIpOwo+ICsJCWlmIChzaW5rX2ly cV92ZWN0b3IgJiBEUF9DUF9JUlEpCj4gKwkJCWlmIChjb25uZWN0b3ItPmhkY3Bfc2hpbSkKPiAr CQkJCWNvbXBsZXRlX2FsbCgmY29ubmVjdG9yLT5jcF9pcnFfcmVjdmVkKTsKPiArCQlpZiAoc2lu a19pcnFfdmVjdG9yICYgRFBfU0lOS19TUEVDSUZJQ19JUlEpCj4gKwkJCURSTV9ERUJVR19EUklW RVIoIlNpbmsgc3BlY2lmaWMgaXJxIHVuaGFuZGxlZFxuIik7Cj4gIAl9Cj4gIAo+ICAJaW50ZWxf ZHBfY2hlY2tfbGlua19zdGF0dXMoaW50ZWxfZHApOwo+IEBAIC01MDgzLDYgKzUwODcsMjUgQEAg dm9pZCBpbnRlbF9kcF9lbmNvZGVyX3N1c3BlbmQoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVs X2VuY29kZXIpCj4gIAlwcHNfdW5sb2NrKGludGVsX2RwKTsKPiAgfQo+ICAKPiArc3RhdGljIGlu dCBpbnRlbF9kcF9oZGNwX3dhaXRfZm9yX2NwX2lycShzdHJ1Y3QgY29tcGxldGlvbiAqY3BfaXJx X3JlY3ZlZCwKPiArCQkJCQkgaW50IHRpbWVvdXQpCj4gK3sKPiArCWxvbmcgcmV0Owo+ICsKPiAr CWlmIChjb21wbGV0aW9uX2RvbmUoY3BfaXJxX3JlY3ZlZCkpCj4gKwkJcmVpbml0X2NvbXBsZXRp b24oY3BfaXJxX3JlY3ZlZCk7Cj4gKwo+ICsJcmV0ID0gd2FpdF9mb3JfY29tcGxldGlvbl9pbnRl cnJ1cHRpYmxlX3RpbWVvdXQoY3BfaXJxX3JlY3ZlZCwKPiArCQkJCQkJCW1zZWNzX3RvX2ppZmZp ZXMoCj4gKwkJCQkJCQl0aW1lb3V0KSk7Cj4gKwlyZWluaXRfY29tcGxldGlvbihjcF9pcnFfcmVj dmVkKTsKPiArCWlmIChyZXQgPCAwKQo+ICsJCXJldHVybiAoaW50KXJldDsKPiArCWVsc2UgaWYg KCFyZXQpCj4gKwkJcmV0dXJuIC1FVElNRURPVVQ7Cj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiAg c3RhdGljCj4gIGludCBpbnRlbF9kcF9oZGNwX3dyaXRlX2FuX2Frc3Yoc3RydWN0IGludGVsX2Rp Z2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCj4gIAkJCQl1OCAqYW4pCj4gQEAgLTUxODgsMTEg KzUyMTEsMzggQEAgaW50IGludGVsX2RwX2hkY3BfcmVwZWF0ZXJfcHJlc2VudChzdHJ1Y3QgaW50 ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+ ICtzdGF0aWMgaW50IGludGVsX2RwX2hkY3Bfd2FpdF9mb3JfcjAoc3RydWN0IGludGVsX2RpZ2l0 YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9kcCAqZHAgPSAm aW50ZWxfZGlnX3BvcnQtPmRwOwo+ICsJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9y ID0gZHAtPmF0dGFjaGVkX2Nvbm5lY3RvcjsKPiArCWludCByZXQ7Cj4gKwl1OCBic3RhdHVzOwo+ ICsKPiArCWludGVsX2RwX2hkY3Bfd2FpdF9mb3JfY3BfaXJxKCZjb25uZWN0b3ItPmNwX2lycV9y ZWN2ZWQsIDEwMCk7Cj4gKwo+ICsJcmV0ID0gZHJtX2RwX2RwY2RfcmVhZCgmaW50ZWxfZGlnX3Bv cnQtPmRwLmF1eCwgRFBfQVVYX0hEQ1BfQlNUQVRVUywKPiArCQkJICAgICAgICZic3RhdHVzLCAx KTsKPiArCWlmIChyZXQgIT0gMSkgewo+ICsJCURSTV9FUlJPUigiUmVhZCBic3RhdHVzIGZyb20g RFAvQVVYIGZhaWxlZCAoJWQpXG4iLCByZXQpOwo+ICsJCXJldHVybiByZXQgPj0gMCA/IC1FSU8g OiByZXQ7Cj4gKwl9Cj4gKwo+ICsJaWYgKCEoYnN0YXR1cyAmIERQX0JTVEFUVVNfUjBfUFJJTUVf UkVBRFkpKQo+ICsJCXJldHVybiAtRVRJTUVET1VUOwo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4g Kwo+ICBzdGF0aWMKPiAgaW50IGludGVsX2RwX2hkY3BfcmVhZF9yaV9wcmltZShzdHJ1Y3QgaW50 ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKPiAgCQkJCXU4ICpyaV9wcmltZSkKPiAg ewo+ICAJc3NpemVfdCByZXQ7Cj4gKwo+ICsJcmV0ID0gaW50ZWxfZHBfaGRjcF93YWl0X2Zvcl9y MChpbnRlbF9kaWdfcG9ydCk7Cj4gKwlpZiAoIXJldCkKPiArCQlyZXR1cm4gcmV0Owo+ICsKPiAg CXJldCA9IGRybV9kcF9kcGNkX3JlYWQoJmludGVsX2RpZ19wb3J0LT5kcC5hdXgsIERQX0FVWF9I RENQX1JJX1BSSU1FLAo+ICAJCQkgICAgICAgcmlfcHJpbWUsIERSTV9IRENQX1JJX0xFTik7Cj4g IAlpZiAocmV0ICE9IERSTV9IRENQX1JJX0xFTikgewo+IEBAIC01MjAzLDE4ICs1MjUzLDI2IEBA IGludCBpbnRlbF9kcF9oZGNwX3JlYWRfcmlfcHJpbWUoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9y dCAqaW50ZWxfZGlnX3BvcnQsCj4gIH0KPiAgCj4gIHN0YXRpYwo+IC1pbnQgaW50ZWxfZHBfaGRj cF9yZWFkX2tzdl9yZWFkeShzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9y dCwKPiAtCQkJCSBib29sICprc3ZfcmVhZHkpCj4gK2ludCBpbnRlbF9kcF9oZGNwX2tzdl9yZWFk eShzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCkKPiAgewo+ICsJc3Ry dWN0IGludGVsX2RwICpkcCA9ICZpbnRlbF9kaWdfcG9ydC0+ZHA7Cj4gKwlzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yICpjb25uZWN0b3IgPSBkcC0+YXR0YWNoZWRfY29ubmVjdG9yOwo+ICAJc3NpemVf dCByZXQ7Cj4gIAl1OCBic3RhdHVzOwo+ICsKPiArCWludGVsX2RwX2hkY3Bfd2FpdF9mb3JfY3Bf aXJxKCZjb25uZWN0b3ItPmNwX2lycV9yZWN2ZWQsCj4gKwkJCQkgICAgICA1ICogMTAwMCAqIDEw MDApOwo+ICsKPiAgCXJldCA9IGRybV9kcF9kcGNkX3JlYWQoJmludGVsX2RpZ19wb3J0LT5kcC5h dXgsIERQX0FVWF9IRENQX0JTVEFUVVMsCj4gIAkJCSAgICAgICAmYnN0YXR1cywgMSk7Cj4gIAlp ZiAocmV0ICE9IDEpIHsKPiAgCQlEUk1fRVJST1IoIlJlYWQgYnN0YXR1cyBmcm9tIERQL0FVWCBm YWlsZWQgKCV6ZClcbiIsIHJldCk7Cj4gIAkJcmV0dXJuIHJldCA+PSAwID8gLUVJTyA6IHJldDsK PiAgCX0KPiAtCSprc3ZfcmVhZHkgPSBic3RhdHVzICYgRFBfQlNUQVRVU19SRUFEWTsKPiArCj4g KwlpZiAoIShic3RhdHVzICYgRFBfQlNUQVRVU19SRUFEWSkpCj4gKwkJcmV0dXJuIC1FVElNRURP VVQ7Cj4gKwo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gQEAgLTUzMDUsNyArNTM2Myw3IEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfaGRjcF9zaGltIGludGVsX2RwX2hkY3Bfc2hpbSA9IHsK PiAgCS5yZWFkX2JzdGF0dXMgPSBpbnRlbF9kcF9oZGNwX3JlYWRfYnN0YXR1cywKPiAgCS5yZXBl YXRlcl9wcmVzZW50ID0gaW50ZWxfZHBfaGRjcF9yZXBlYXRlcl9wcmVzZW50LAo+ICAJLnJlYWRf cmlfcHJpbWUgPSBpbnRlbF9kcF9oZGNwX3JlYWRfcmlfcHJpbWUsCj4gLQkucmVhZF9rc3ZfcmVh ZHkgPSBpbnRlbF9kcF9oZGNwX3JlYWRfa3N2X3JlYWR5LAo+ICsJLndhaXRfZm9yX2tzdl9yZWFk eSA9IGludGVsX2RwX2hkY3Bfa3N2X3JlYWR5LAo+ICAJLnJlYWRfa3N2X2ZpZm8gPSBpbnRlbF9k cF9oZGNwX3JlYWRfa3N2X2ZpZm8sCj4gIAkucmVhZF92X3ByaW1lX3BhcnQgPSBpbnRlbF9kcF9o ZGNwX3JlYWRfdl9wcmltZV9wYXJ0LAo+ICAJLnRvZ2dsZV9zaWduYWxsaW5nID0gaW50ZWxfZHBf aGRjcF90b2dnbGVfc2lnbmFsbGluZywKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IGluZGV4 IDhmMzhlNTg0ZDM3NS4uYWI5NzUxMDdjOTc4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2 LmgKPiBAQCAtMzUzLDggKzM1Myw3IEBAIHN0cnVjdCBpbnRlbF9oZGNwX3NoaW0gewo+ICAJaW50 ICgqcmVhZF9yaV9wcmltZSkoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3Bv cnQsIHU4ICpyaSk7Cj4gIAo+ICAJLyogRGV0ZXJtaW5lcyBpZiB0aGUgcmVjZWl2ZXIncyBLU1Yg RklGTyBpcyByZWFkeSBmb3IgY29uc3VtcHRpb24gKi8KPiAtCWludCAoKnJlYWRfa3N2X3JlYWR5 KShzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKPiAtCQkJICAgICAg Ym9vbCAqa3N2X3JlYWR5KTsKPiArCWludCAoKndhaXRfZm9yX2tzdl9yZWFkeSkoc3RydWN0IGlu dGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQpOwo+ICAKPiAgCS8qIFJlYWRzIHRoZSBr c3YgZmlmbyBmb3IgbnVtX2Rvd25zdHJlYW0gZGV2aWNlcyAqLwo+ICAJaW50ICgqcmVhZF9rc3Zf Zmlmbykoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCj4gQEAgLTQx Myw2ICs0MTIsOSBAQCBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yIHsKPiAgCXVpbnQ2NF90IGhkY3Bf dmFsdWU7IC8qIHByb3RlY3RlZCBieSBoZGNwX211dGV4ICovCj4gIAlzdHJ1Y3QgZGVsYXllZF93 b3JrIGhkY3BfY2hlY2tfd29yazsKPiAgCXN0cnVjdCB3b3JrX3N0cnVjdCBoZGNwX3Byb3Bfd29y azsKPiArCj4gKwkvKiBUbyBpbmRpY2F0ZSB0aGUgYXNzZXJ0aW9uIG9mIENQX0lSUSAqLwo+ICsJ c3RydWN0IGNvbXBsZXRpb24gY3BfaXJxX3JlY3ZlZDsKPiAgfTsKPiAgCj4gIHN0cnVjdCBpbnRl bF9kaWdpdGFsX2Nvbm5lY3Rvcl9zdGF0ZSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2hkY3AuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkY3AuYwo+ IGluZGV4IDE0YmUxNGE0NWU1YS4uYTA3N2UxMzMzODg2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2hkY3AuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2hkY3AuYwo+IEBAIC01NywyNyArNTcsNiBAQCBzdGF0aWMgYm9vbCB3YWl0X2Zvcl9oZGNw X3BvcnQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICAJcmV0dXJuIHRydWU7 Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbnQgaW50ZWxfaGRjcF9wb2xsX2tzdl9maWZvKHN0cnVjdCBp bnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAo+IC0JCQkJICAgIGNvbnN0IHN0cnVj dCBpbnRlbF9oZGNwX3NoaW0gKnNoaW0pCj4gLXsKPiAtCWludCByZXQsIHJlYWRfcmV0Owo+IC0J Ym9vbCBrc3ZfcmVhZHk7Cj4gLQo+IC0JLyogUG9sbCBmb3Iga3N2IGxpc3QgcmVhZHkgKHNwZWMg c2F5cyBtYXggdGltZSBhbGxvd2VkIGlzIDVzKSAqLwo+IC0JcmV0ID0gX193YWl0X2ZvcihyZWFk X3JldCA9IHNoaW0tPnJlYWRfa3N2X3JlYWR5KGludGVsX2RpZ19wb3J0LAo+IC0JCQkJCQkJICZr c3ZfcmVhZHkpLAo+IC0JCQkgcmVhZF9yZXQgfHwga3N2X3JlYWR5LCA1ICogMTAwMCAqIDEwMDAs IDEwMDAsCj4gLQkJCSAxMDAgKiAxMDAwKTsKPiAtCWlmIChyZXQpCj4gLQkJcmV0dXJuIHJldDsK PiAtCWlmIChyZWFkX3JldCkKPiAtCQlyZXR1cm4gcmVhZF9yZXQ7Cj4gLQlpZiAoIWtzdl9yZWFk eSkKPiAtCQlyZXR1cm4gLUVUSU1FRE9VVDsKPiAtCj4gLQlyZXR1cm4gMDsKPiAtfQo+IC0KPiAg c3RhdGljIGJvb2wgaGRjcF9rZXlfbG9hZGFibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQo+ICB7Cj4gIAlzdHJ1Y3QgaTkxNV9wb3dlcl9kb21haW5zICpwb3dlcl9kb21haW5z ID0gJmRldl9wcml2LT5wb3dlcl9kb21haW5zOwo+IEBAIC0yMjIsNyArMjAxLDcgQEAgaW50IGlu dGVsX2hkY3BfYXV0aF9kb3duc3RyZWFtKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVs X2RpZ19wb3J0LAo+ICAKPiAgCWRldl9wcml2ID0gaW50ZWxfZGlnX3BvcnQtPmJhc2UuYmFzZS5k ZXYtPmRldl9wcml2YXRlOwo+ICAKPiAtCXJldCA9IGludGVsX2hkY3BfcG9sbF9rc3ZfZmlmbyhp bnRlbF9kaWdfcG9ydCwgc2hpbSk7Cj4gKwlyZXQgPSBzaGltLT53YWl0X2Zvcl9rc3ZfcmVhZHko aW50ZWxfZGlnX3BvcnQpOwo+ICAJaWYgKHJldCkgewo+ICAJCURSTV9FUlJPUigiS1NWIGxpc3Qg ZmFpbGVkIHRvIGJlY29tZSByZWFkeSAoJWQpXG4iLCByZXQpOwo+ICAJCXJldHVybiByZXQ7Cj4g QEAgLTQ3Niw3ICs0NTUsNiBAQCBzdGF0aWMgaW50IGludGVsX2hkY3BfYXV0aChzdHJ1Y3QgaW50 ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2Owo+ICAJZW51bSBwb3J0IHBvcnQ7Cj4gLQl1bnNpZ25lZCBsb25n IHIwX3ByaW1lX2dlbl9zdGFydDsKPiAgCWludCByZXQsIGksIHRyaWVzID0gMjsKPiAgCXVuaW9u IHsKPiAgCQl1MzIgcmVnWzJdOwo+IEBAIC01MzEsOCArNTA5LDYgQEAgc3RhdGljIGludCBpbnRl bF9oZGNwX2F1dGgoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCj4g IAlpZiAocmV0KQo+ICAJCXJldHVybiByZXQ7Cj4gIAo+IC0JcjBfcHJpbWVfZ2VuX3N0YXJ0ID0g amlmZmllczsKPiAtCj4gIAltZW1zZXQoJmJrc3YsIDAsIHNpemVvZihia3N2KSk7Cj4gIAo+ICAJ LyogSERDUCBzcGVjIHN0YXRlcyB0aGF0IHdlIG11c3QgcmV0cnkgdGhlIGJrc3YgaWYgaXQgaXMg aW52YWxpZCAqLwo+IEBAIC01NzIsMjIgKzU0OCwxMSBAQCBzdGF0aWMgaW50IGludGVsX2hkY3Bf YXV0aChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKPiAgCX0KPiAg Cj4gIAkvKgo+IC0JICogV2FpdCBmb3IgUjAnIHRvIGJlY29tZSBhdmFpbGFibGUuIFRoZSBzcGVj IHNheXMgbWluaW11bSAxMDBtcyBmcm9tCj4gLQkgKiBBa3N2LCBidXQgc29tZSBtb25pdG9ycyBj YW4gdGFrZSBsb25nZXIgdGhhbiB0aGlzLiBTbyB3ZSBhcmUKPiAtCSAqIGNvbWJpbmVseSB3YWl0 aW5nIGZvciAzMDBtU2VjIGp1c3QgdG8gYmUgc3VyZSBpbiBjYXNlIG9mIEhETUkuCj4gIAkgKiBE UCBIRENQIFNwZWMgbWFuZGF0ZXMgdGhlIHR3byBtb3JlIHJlYXR0ZW1wdCB0byByZWFkIFIwLCBp bmNhc2UKPiAgCSAqIG9mIFIwIG1pc21hdGNoLgo+IC0JICoKPiAtCSAqIE9uIERQLCB0aGVyZSdz IGFuIFIwX1JFQURZIGJpdCBhdmFpbGFibGUgYnV0IG5vIHN1Y2ggYml0Cj4gLQkgKiBleGlzdHMg b24gSERNSS4gU2luY2UgdGhlIHVwcGVyLWJvdW5kIGlzIHRoZSBzYW1lLCB3ZSdsbCBqdXN0IGRv Cj4gLQkgKiB0aGUgc3R1cGlkIHRoaW5nIGluc3RlYWQgb2YgcG9sbGluZyBvbiBvbmUgYW5kIG5v dCB0aGUgb3RoZXIuCj4gIAkgKi8KPiAtCj4gIAl0cmllcyA9IDM7Cj4gIAlmb3IgKGkgPSAwOyBp IDwgdHJpZXM7IGkrKykgewo+IC0JCXdhaXRfcmVtYWluaW5nX21zX2Zyb21famlmZmllcyhyMF9w cmltZV9nZW5fc3RhcnQsCj4gLQkJCQkJICAgICAgIDEwMCAqIChpICsgMSkpOwo+IC0KPiAgCQly aS5yZWcgPSAwOwo+ICAJCXJldCA9IHNoaW0tPnJlYWRfcmlfcHJpbWUoaW50ZWxfZGlnX3BvcnQs IHJpLnNoaW0pOwo+ICAJCWlmIChyZXQpCj4gQEAgLTc0OSw2ICs3MTQsOCBAQCBpbnQgaW50ZWxf aGRjcF9pbml0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAgCW11dGV4X2lu aXQoJmNvbm5lY3Rvci0+aGRjcF9tdXRleCk7Cj4gIAlJTklUX0RFTEFZRURfV09SSygmY29ubmVj dG9yLT5oZGNwX2NoZWNrX3dvcmssIGludGVsX2hkY3BfY2hlY2tfd29yayk7Cj4gIAlJTklUX1dP UksoJmNvbm5lY3Rvci0+aGRjcF9wcm9wX3dvcmssIGludGVsX2hkY3BfcHJvcF93b3JrKTsKPiAr Cj4gKwlpbml0X2NvbXBsZXRpb24oJmNvbm5lY3Rvci0+Y3BfaXJxX3JlY3ZlZCk7Cj4gIAlyZXR1 cm4gMDsKPiAgfQo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf aGRtaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCj4gaW5kZXggZjVkN2Jm YjQzMDA2Li41MzJkMTNmOTE2MDIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfaGRtaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCj4g QEAgLTEwMDcsNiArMTAwNyw5IEBAIGludCBpbnRlbF9oZG1pX2hkY3BfcmVhZF9yaV9wcmltZShz dHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKPiAgCQkJCSAgdTggKnJp X3ByaW1lKQo+ICB7Cj4gIAlpbnQgcmV0Owo+ICsKPiArCXdhaXRfcmVtYWluaW5nX21zX2Zyb21f amlmZmllcyhqaWZmaWVzLCAxMDApOwo+ICsKPiAgCXJldCA9IGludGVsX2hkbWlfaGRjcF9yZWFk KGludGVsX2RpZ19wb3J0LCBEUk1fSERDUF9ERENfUklfUFJJTUUsCj4gIAkJCQkgICByaV9wcmlt ZSwgRFJNX0hEQ1BfUklfTEVOKTsKPiAgCWlmIChyZXQpCj4gQEAgLTEwMjcsNiArMTAzMCwyOSBA QCBpbnQgaW50ZWxfaGRtaV9oZGNwX3JlYWRfa3N2X3JlYWR5KHN0cnVjdCBpbnRlbF9kaWdpdGFs X3BvcnQgKmludGVsX2RpZ19wb3J0LAo+ICAJCXJldHVybiByZXQ7Cj4gIAl9Cj4gIAkqa3N2X3Jl YWR5ID0gdmFsICYgRFJNX0hEQ1BfRERDX0JDQVBTX0tTVl9GSUZPX1JFQURZOwo+ICsKPiArCXJl dHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMKPiAraW50IGludGVsX2hkbWlfaGRjcF9rc3ZfcmVh ZHkoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQpCj4gK3sKPiArCWlu dCByZXQsIHJlYWRfcmV0Owo+ICsJYm9vbCBrc3ZfcmVhZHk7Cj4gKwo+ICsJLyogUG9sbCBmb3Ig a3N2IGxpc3QgcmVhZHkgKHNwZWMgc2F5cyBtYXggdGltZSBhbGxvd2VkIGlzIDVzKSAqLwo+ICsJ cmV0ID0gX193YWl0X2ZvcihyZWFkX3JldCA9Cj4gKwkJCSBpbnRlbF9oZG1pX2hkY3BfcmVhZF9r c3ZfcmVhZHkoaW50ZWxfZGlnX3BvcnQsCj4gKwkJCQkJCQkma3N2X3JlYWR5KSwKPiArCQkJIHJl YWRfcmV0IHx8IGtzdl9yZWFkeSwgNSAqIDEwMDAgKiAxMDAwLCAxMDAwLAo+ICsJCQkgMTAwICog MTAwMCk7Cj4gKwlpZiAocmV0KQo+ICsJCXJldHVybiByZXQ7Cj4gKwlpZiAocmVhZF9yZXQpCj4g KwkJcmV0dXJuIHJlYWRfcmV0Owo+ICsJaWYgKCFrc3ZfcmVhZHkpCj4gKwkJcmV0dXJuIC1FVElN RURPVVQ7Cj4gKwo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gQEAgLTExMTIsNyArMTEzOCw3IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfaGRjcF9zaGltIGludGVsX2hkbWlfaGRjcF9zaGlt ID0gewo+ICAJLnJlYWRfYnN0YXR1cyA9IGludGVsX2hkbWlfaGRjcF9yZWFkX2JzdGF0dXMsCj4g IAkucmVwZWF0ZXJfcHJlc2VudCA9IGludGVsX2hkbWlfaGRjcF9yZXBlYXRlcl9wcmVzZW50LAo+ ICAJLnJlYWRfcmlfcHJpbWUgPSBpbnRlbF9oZG1pX2hkY3BfcmVhZF9yaV9wcmltZSwKPiAtCS5y ZWFkX2tzdl9yZWFkeSA9IGludGVsX2hkbWlfaGRjcF9yZWFkX2tzdl9yZWFkeSwKPiArCS53YWl0 X2Zvcl9rc3ZfcmVhZHkgPSBpbnRlbF9oZG1pX2hkY3Bfa3N2X3JlYWR5LAo+ICAJLnJlYWRfa3N2 X2ZpZm8gPSBpbnRlbF9oZG1pX2hkY3BfcmVhZF9rc3ZfZmlmbywKPiAgCS5yZWFkX3ZfcHJpbWVf cGFydCA9IGludGVsX2hkbWlfaGRjcF9yZWFkX3ZfcHJpbWVfcGFydCwKPiAgCS50b2dnbGVfc2ln bmFsbGluZyA9IGludGVsX2hkbWlfaGRjcF90b2dnbGVfc2lnbmFsbGluZywKPiAtLSAKPiAyLjcu NAo+IAoKLS0gClNlYW4gUGF1bCwgU29mdHdhcmUgRW5naW5lZXIsIEdvb2dsZSAvIENocm9taXVt IE9TCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1k ZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=