From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: Re: [PATCH 5/5] drm/i915: Move hdcp msg detection into shim Date: Tue, 27 Feb 2018 16:50:48 +0530 Message-ID: <3e40010d-4d17-1ae1-89d2-31718d027798@intel.com> References: <1519665159-28639-1-git-send-email-ramalingam.c@intel.com> <1519665159-28639-6-git-send-email-ramalingam.c@intel.com> <20180226180146.GZ223881@art_vandelay> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180226180146.GZ223881@art_vandelay> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Sean Paul Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org CgpPbiBNb25kYXkgMjYgRmVicnVhcnkgMjAxOCAxMTozMSBQTSwgU2VhbiBQYXVsIHdyb3RlOgo+ IE9uIE1vbiwgRmViIDI2LCAyMDE4IGF0IDEwOjQyOjM5UE0gKzA1MzAsIFJhbWFsaW5nYW0gQyB3 cm90ZToKPj4gRFAgYW5kIEhETUkgSERDUCBzcGVjaWZpY2F0aW9ucyBhcmUgdmFyeWluZyB3aXRo IHJlc3BlY3QgdG8KPj4gZGV0ZWN0aW5nIHRoZSBSMCBhbmQga3N2X2ZpZm8gYXZhaWxhYmlsaXR5 Lgo+Pgo+PiBEUCB3aWxsIHByb2R1Y2UgQ1BfSVJRIGFuZCBzZXQgYSBiaXQgZm9yIGluZGljYXRp bmcgdGhlIFIwIGFuZAo+PiBGSUZPX1JFQURZIHN0YXR1cy4KPiBJJ20gbm90IHN1cmUgd2hhdCB0 aGUgYmVuZWZpdCBpcz8gS2VlcGluZyB0aGluZ3MgY29tbW9uIHdhcyBhIGRlbGliZXJhdGUKPiBk ZWNpc2lvbiBvbiBteSBwYXJ0IHRvIGtlZXAgY29tcGxleGl0eSBkb3duIGFuZCBpbmNyZWFzZSB0 aGUgYW1vdW50IG9mIGNvbW1vbgo+IGNvZGUuCkkgYW0gcHJvcG9zaW5nIHRoaXMgZXhwZWN0aW5n IHRoYXQgdGhpcyB3aWxsIGFkZHJlc3MgdGhlIERQIGNvbXBsaWFuY2UgCmZhaWx1cmUKaW5jYXNl IG9mIHJlZ3VsYXIgcmVwZWF0ZXIgdGVzdHMoYXR0ZW1wdCB0byByZWFkIHdyb25nIEZJRk8gc2l6 ZSwgZHVlIHRvIAp3cm9uZyBkZXZpY2UgY291bnQpLiBQb3NzaWJseSBhIGNvcm5lciBjYXNlIT8u CgpBbmQgc2luY2UgYW55d2F5IHdlIGhhdmUgdGhlIHNoaW0gZm9yIGhhbmRsaW5nCnRoZSBEUCBh bmQgSERNSSBzcGVjaWZpYyBjb2RlLCBpIGZlZWwgdGhpcyB3aWxsIGRvIG9ubHkgYmV0dGVyIGJ1 dCBoYXJtLgoKLS1SYW0KPgo+IFNlYW4KPgo+PiBXaGVyZWFzIEhETUkgd2lsbCBzZXQgYSBiaXQg Zm9yIEZJRk9fUkVBRFkgYnV0IHRoZXJlIGlzIG5vIGJpdAo+PiBpbmRpY2F0aW9uIGZvciBSMCBy ZWFkeS4gQW5kIGFsc28gcG9sbGluZyBvZiBSRUFEWSBiaXQgaXMgbmVlZGVkIGZvcgo+PiBIRE1J IGFzIHRoZXIgaXMgbm8gQ1BfSVJRLgo+Pgo+PiBTbyBGaWVsZGluZyB0aGUgQ1BfSVJRIGZvciBE UCBhbmQgdGhlIHBvbGxpbmcgdGhlIFJFQURZIGJpdCBmb3IgYQo+PiBwZXJpb2QgYW5kIGJsaW5k bHkgd2FpdGluZyBmb3IgYSBmaXhlZCB0aW1lIGZvciBSMCBpbmNhc2Ugb2YgSERNSSBhcmUKPj4g bW92ZWQgaW50byBjb3JyZXNwb25kaW5nIGhkY3Bfc2hpbS4KPj4KPj4gU2lnbmVkLW9mZi1ieTog UmFtYWxpbmdhbSBDIDxyYW1hbGluZ2FtLmNAaW50ZWwuY29tPgo+PiAtLS0KPj4gICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICAgfCA3MCArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0tLS0KPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgfCAg NiArKy0tCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRjcC5jIHwgMzkgKystLS0t LS0tLS0tLS0tLS0tLS0tLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyB8 IDI4ICsrKysrKysrKysrKysrKy0KPj4gICA0IGZpbGVzIGNoYW5nZWQsIDk4IGluc2VydGlvbnMo KyksIDQ1IGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPj4gaW5kZXgg MmMzZWI5MGI5NDk5Li5hZmUzMTBhOTFkM2MgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAu Ywo+PiBAQCAtNDQzNiw2ICs0NDM2LDcgQEAgc3RhdGljIGJvb2wKPj4gICBpbnRlbF9kcF9zaG9y dF9wdWxzZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+PiAgIHsKPj4gICAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9kcF90b19kZXYoaW50ZWxf ZHApKTsKPj4gKwlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IgPSBpbnRlbF9kcC0+ YXR0YWNoZWRfY29ubmVjdG9yOwo+PiAgIAl1OCBzaW5rX2lycV92ZWN0b3IgPSAwOwo+PiAgIAl1 OCBvbGRfc2lua19jb3VudCA9IGludGVsX2RwLT5zaW5rX2NvdW50Owo+PiAgIAlib29sIHJldDsK Pj4gQEAgLTQ0NzAsOCArNDQ3MSwxMSBAQCBpbnRlbF9kcF9zaG9ydF9wdWxzZShzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwKQo+PiAgIAo+PiAgIAkJaWYgKHNpbmtfaXJxX3ZlY3RvciAmIERQX0FV VE9NQVRFRF9URVNUX1JFUVVFU1QpCj4+ICAgCQkJaW50ZWxfZHBfaGFuZGxlX3Rlc3RfcmVxdWVz dChpbnRlbF9kcCk7Cj4+IC0JCWlmIChzaW5rX2lycV92ZWN0b3IgJiAoRFBfQ1BfSVJRIHwgRFBf U0lOS19TUEVDSUZJQ19JUlEpKQo+PiAtCQkJRFJNX0RFQlVHX0RSSVZFUigiQ1Agb3Igc2luayBz cGVjaWZpYyBpcnEgdW5oYW5kbGVkXG4iKTsKPj4gKwkJaWYgKHNpbmtfaXJxX3ZlY3RvciAmIERQ X0NQX0lSUSkKPj4gKwkJCWlmIChjb25uZWN0b3ItPmhkY3Bfc2hpbSkKPj4gKwkJCQljb21wbGV0 ZV9hbGwoJmNvbm5lY3Rvci0+Y3BfaXJxX3JlY3ZlZCk7Cj4+ICsJCWlmIChzaW5rX2lycV92ZWN0 b3IgJiBEUF9TSU5LX1NQRUNJRklDX0lSUSkKPj4gKwkJCURSTV9ERUJVR19EUklWRVIoIlNpbmsg c3BlY2lmaWMgaXJxIHVuaGFuZGxlZFxuIik7Cj4+ICAgCX0KPj4gICAKPj4gICAJaW50ZWxfZHBf Y2hlY2tfbGlua19zdGF0dXMoaW50ZWxfZHApOwo+PiBAQCAtNTA4Myw2ICs1MDg3LDI1IEBAIHZv aWQgaW50ZWxfZHBfZW5jb2Rlcl9zdXNwZW5kKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9l bmNvZGVyKQo+PiAgIAlwcHNfdW5sb2NrKGludGVsX2RwKTsKPj4gICB9Cj4+ICAgCj4+ICtzdGF0 aWMgaW50IGludGVsX2RwX2hkY3Bfd2FpdF9mb3JfY3BfaXJxKHN0cnVjdCBjb21wbGV0aW9uICpj cF9pcnFfcmVjdmVkLAo+PiArCQkJCQkgaW50IHRpbWVvdXQpCj4+ICt7Cj4+ICsJbG9uZyByZXQ7 Cj4+ICsKPj4gKwlpZiAoY29tcGxldGlvbl9kb25lKGNwX2lycV9yZWN2ZWQpKQo+PiArCQlyZWlu aXRfY29tcGxldGlvbihjcF9pcnFfcmVjdmVkKTsKPj4gKwo+PiArCXJldCA9IHdhaXRfZm9yX2Nv bXBsZXRpb25faW50ZXJydXB0aWJsZV90aW1lb3V0KGNwX2lycV9yZWN2ZWQsCj4+ICsJCQkJCQkJ bXNlY3NfdG9famlmZmllcygKPj4gKwkJCQkJCQl0aW1lb3V0KSk7Cj4+ICsJcmVpbml0X2NvbXBs ZXRpb24oY3BfaXJxX3JlY3ZlZCk7Cj4+ICsJaWYgKHJldCA8IDApCj4+ICsJCXJldHVybiAoaW50 KXJldDsKPj4gKwllbHNlIGlmICghcmV0KQo+PiArCQlyZXR1cm4gLUVUSU1FRE9VVDsKPj4gKwly ZXR1cm4gMDsKPj4gK30KPj4gKwo+PiAgIHN0YXRpYwo+PiAgIGludCBpbnRlbF9kcF9oZGNwX3dy aXRlX2FuX2Frc3Yoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCj4+ ICAgCQkJCXU4ICphbikKPj4gQEAgLTUxODgsMTEgKzUyMTEsMzggQEAgaW50IGludGVsX2RwX2hk Y3BfcmVwZWF0ZXJfcHJlc2VudChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdf cG9ydCwKPj4gICAJcmV0dXJuIDA7Cj4+ICAgfQo+PiAgIAo+PiArc3RhdGljIGludCBpbnRlbF9k cF9oZGNwX3dhaXRfZm9yX3IwKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19w b3J0KQo+PiArewo+PiArCXN0cnVjdCBpbnRlbF9kcCAqZHAgPSAmaW50ZWxfZGlnX3BvcnQtPmRw Owo+PiArCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciA9IGRwLT5hdHRhY2hlZF9j b25uZWN0b3I7Cj4+ICsJaW50IHJldDsKPj4gKwl1OCBic3RhdHVzOwo+PiArCj4+ICsJaW50ZWxf ZHBfaGRjcF93YWl0X2Zvcl9jcF9pcnEoJmNvbm5lY3Rvci0+Y3BfaXJxX3JlY3ZlZCwgMTAwKTsK Pj4gKwo+PiArCXJldCA9IGRybV9kcF9kcGNkX3JlYWQoJmludGVsX2RpZ19wb3J0LT5kcC5hdXgs IERQX0FVWF9IRENQX0JTVEFUVVMsCj4+ICsJCQkgICAgICAgJmJzdGF0dXMsIDEpOwo+PiArCWlm IChyZXQgIT0gMSkgewo+PiArCQlEUk1fRVJST1IoIlJlYWQgYnN0YXR1cyBmcm9tIERQL0FVWCBm YWlsZWQgKCVkKVxuIiwgcmV0KTsKPj4gKwkJcmV0dXJuIHJldCA+PSAwID8gLUVJTyA6IHJldDsK Pj4gKwl9Cj4+ICsKPj4gKwlpZiAoIShic3RhdHVzICYgRFBfQlNUQVRVU19SMF9QUklNRV9SRUFE WSkpCj4+ICsJCXJldHVybiAtRVRJTUVET1VUOwo+PiArCj4+ICsJcmV0dXJuIDA7Cj4+ICt9Cj4+ ICsKPj4gICBzdGF0aWMKPj4gICBpbnQgaW50ZWxfZHBfaGRjcF9yZWFkX3JpX3ByaW1lKHN0cnVj dCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAo+PiAgIAkJCQl1OCAqcmlfcHJp bWUpCj4+ICAgewo+PiAgIAlzc2l6ZV90IHJldDsKPj4gKwo+PiArCXJldCA9IGludGVsX2RwX2hk Y3Bfd2FpdF9mb3JfcjAoaW50ZWxfZGlnX3BvcnQpOwo+PiArCWlmICghcmV0KQo+PiArCQlyZXR1 cm4gcmV0Owo+PiArCj4+ICAgCXJldCA9IGRybV9kcF9kcGNkX3JlYWQoJmludGVsX2RpZ19wb3J0 LT5kcC5hdXgsIERQX0FVWF9IRENQX1JJX1BSSU1FLAo+PiAgIAkJCSAgICAgICByaV9wcmltZSwg RFJNX0hEQ1BfUklfTEVOKTsKPj4gICAJaWYgKHJldCAhPSBEUk1fSERDUF9SSV9MRU4pIHsKPj4g QEAgLTUyMDMsMTggKzUyNTMsMjYgQEAgaW50IGludGVsX2RwX2hkY3BfcmVhZF9yaV9wcmltZShz dHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKPj4gICB9Cj4+ICAgCj4+ ICAgc3RhdGljCj4+IC1pbnQgaW50ZWxfZHBfaGRjcF9yZWFkX2tzdl9yZWFkeShzdHJ1Y3QgaW50 ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKPj4gLQkJCQkgYm9vbCAqa3N2X3JlYWR5 KQo+PiAraW50IGludGVsX2RwX2hkY3Bfa3N2X3JlYWR5KHN0cnVjdCBpbnRlbF9kaWdpdGFsX3Bv cnQgKmludGVsX2RpZ19wb3J0KQo+PiAgIHsKPj4gKwlzdHJ1Y3QgaW50ZWxfZHAgKmRwID0gJmlu dGVsX2RpZ19wb3J0LT5kcDsKPj4gKwlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3Ig PSBkcC0+YXR0YWNoZWRfY29ubmVjdG9yOwo+PiAgIAlzc2l6ZV90IHJldDsKPj4gICAJdTggYnN0 YXR1czsKPj4gKwo+PiArCWludGVsX2RwX2hkY3Bfd2FpdF9mb3JfY3BfaXJxKCZjb25uZWN0b3It PmNwX2lycV9yZWN2ZWQsCj4+ICsJCQkJICAgICAgNSAqIDEwMDAgKiAxMDAwKTsKPj4gKwo+PiAg IAlyZXQgPSBkcm1fZHBfZHBjZF9yZWFkKCZpbnRlbF9kaWdfcG9ydC0+ZHAuYXV4LCBEUF9BVVhf SERDUF9CU1RBVFVTLAo+PiAgIAkJCSAgICAgICAmYnN0YXR1cywgMSk7Cj4+ICAgCWlmIChyZXQg IT0gMSkgewo+PiAgIAkJRFJNX0VSUk9SKCJSZWFkIGJzdGF0dXMgZnJvbSBEUC9BVVggZmFpbGVk ICglemQpXG4iLCByZXQpOwo+PiAgIAkJcmV0dXJuIHJldCA+PSAwID8gLUVJTyA6IHJldDsKPj4g ICAJfQo+PiAtCSprc3ZfcmVhZHkgPSBic3RhdHVzICYgRFBfQlNUQVRVU19SRUFEWTsKPj4gKwo+ PiArCWlmICghKGJzdGF0dXMgJiBEUF9CU1RBVFVTX1JFQURZKSkKPj4gKwkJcmV0dXJuIC1FVElN RURPVVQ7Cj4+ICsKPj4gICAJcmV0dXJuIDA7Cj4+ICAgfQo+PiAgIAo+PiBAQCAtNTMwNSw3ICs1 MzYzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9oZGNwX3NoaW0gaW50ZWxfZHBfaGRj cF9zaGltID0gewo+PiAgIAkucmVhZF9ic3RhdHVzID0gaW50ZWxfZHBfaGRjcF9yZWFkX2JzdGF0 dXMsCj4+ICAgCS5yZXBlYXRlcl9wcmVzZW50ID0gaW50ZWxfZHBfaGRjcF9yZXBlYXRlcl9wcmVz ZW50LAo+PiAgIAkucmVhZF9yaV9wcmltZSA9IGludGVsX2RwX2hkY3BfcmVhZF9yaV9wcmltZSwK Pj4gLQkucmVhZF9rc3ZfcmVhZHkgPSBpbnRlbF9kcF9oZGNwX3JlYWRfa3N2X3JlYWR5LAo+PiAr CS53YWl0X2Zvcl9rc3ZfcmVhZHkgPSBpbnRlbF9kcF9oZGNwX2tzdl9yZWFkeSwKPj4gICAJLnJl YWRfa3N2X2ZpZm8gPSBpbnRlbF9kcF9oZGNwX3JlYWRfa3N2X2ZpZm8sCj4+ICAgCS5yZWFkX3Zf cHJpbWVfcGFydCA9IGludGVsX2RwX2hkY3BfcmVhZF92X3ByaW1lX3BhcnQsCj4+ICAgCS50b2dn bGVfc2lnbmFsbGluZyA9IGludGVsX2RwX2hkY3BfdG9nZ2xlX3NpZ25hbGxpbmcsCj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oCj4+IGluZGV4IDhmMzhlNTg0ZDM3NS4uYWI5NzUxMDdjOTc4IDEw MDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+PiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+PiBAQCAtMzUzLDggKzM1Myw3IEBAIHN0 cnVjdCBpbnRlbF9oZGNwX3NoaW0gewo+PiAgIAlpbnQgKCpyZWFkX3JpX3ByaW1lKShzdHJ1Y3Qg aW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwgdTggKnJpKTsKPj4gICAKPj4gICAJ LyogRGV0ZXJtaW5lcyBpZiB0aGUgcmVjZWl2ZXIncyBLU1YgRklGTyBpcyByZWFkeSBmb3IgY29u c3VtcHRpb24gKi8KPj4gLQlpbnQgKCpyZWFkX2tzdl9yZWFkeSkoc3RydWN0IGludGVsX2RpZ2l0 YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCj4+IC0JCQkgICAgICBib29sICprc3ZfcmVhZHkpOwo+ PiArCWludCAoKndhaXRfZm9yX2tzdl9yZWFkeSkoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAq aW50ZWxfZGlnX3BvcnQpOwo+PiAgIAo+PiAgIAkvKiBSZWFkcyB0aGUga3N2IGZpZm8gZm9yIG51 bV9kb3duc3RyZWFtIGRldmljZXMgKi8KPj4gICAJaW50ICgqcmVhZF9rc3ZfZmlmbykoc3RydWN0 IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCj4+IEBAIC00MTMsNiArNDEyLDkg QEAgc3RydWN0IGludGVsX2Nvbm5lY3RvciB7Cj4+ICAgCXVpbnQ2NF90IGhkY3BfdmFsdWU7IC8q IHByb3RlY3RlZCBieSBoZGNwX211dGV4ICovCj4+ICAgCXN0cnVjdCBkZWxheWVkX3dvcmsgaGRj cF9jaGVja193b3JrOwo+PiAgIAlzdHJ1Y3Qgd29ya19zdHJ1Y3QgaGRjcF9wcm9wX3dvcms7Cj4+ ICsKPj4gKwkvKiBUbyBpbmRpY2F0ZSB0aGUgYXNzZXJ0aW9uIG9mIENQX0lSUSAqLwo+PiArCXN0 cnVjdCBjb21wbGV0aW9uIGNwX2lycV9yZWN2ZWQ7Cj4+ICAgfTsKPj4gICAKPj4gICBzdHJ1Y3Qg aW50ZWxfZGlnaXRhbF9jb25uZWN0b3Jfc3RhdGUgewo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfaGRjcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRj cC5jCj4+IGluZGV4IDE0YmUxNGE0NWU1YS4uYTA3N2UxMzMzODg2IDEwMDY0NAo+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZGNwLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfaGRjcC5jCj4+IEBAIC01NywyNyArNTcsNiBAQCBzdGF0aWMgYm9vbCB3YWl0 X2Zvcl9oZGNwX3BvcnQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+PiAgIAly ZXR1cm4gdHJ1ZTsKPj4gICB9Cj4+ICAgCj4+IC1zdGF0aWMgaW50IGludGVsX2hkY3BfcG9sbF9r c3ZfZmlmbyhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKPj4gLQkJ CQkgICAgY29uc3Qgc3RydWN0IGludGVsX2hkY3Bfc2hpbSAqc2hpbSkKPj4gLXsKPj4gLQlpbnQg cmV0LCByZWFkX3JldDsKPj4gLQlib29sIGtzdl9yZWFkeTsKPj4gLQo+PiAtCS8qIFBvbGwgZm9y IGtzdiBsaXN0IHJlYWR5IChzcGVjIHNheXMgbWF4IHRpbWUgYWxsb3dlZCBpcyA1cykgKi8KPj4g LQlyZXQgPSBfX3dhaXRfZm9yKHJlYWRfcmV0ID0gc2hpbS0+cmVhZF9rc3ZfcmVhZHkoaW50ZWxf ZGlnX3BvcnQsCj4+IC0JCQkJCQkJICZrc3ZfcmVhZHkpLAo+PiAtCQkJIHJlYWRfcmV0IHx8IGtz dl9yZWFkeSwgNSAqIDEwMDAgKiAxMDAwLCAxMDAwLAo+PiAtCQkJIDEwMCAqIDEwMDApOwo+PiAt CWlmIChyZXQpCj4+IC0JCXJldHVybiByZXQ7Cj4+IC0JaWYgKHJlYWRfcmV0KQo+PiAtCQlyZXR1 cm4gcmVhZF9yZXQ7Cj4+IC0JaWYgKCFrc3ZfcmVhZHkpCj4+IC0JCXJldHVybiAtRVRJTUVET1VU Owo+PiAtCj4+IC0JcmV0dXJuIDA7Cj4+IC19Cj4+IC0KPj4gICBzdGF0aWMgYm9vbCBoZGNwX2tl eV9sb2FkYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4+ICAgewo+PiAg IAlzdHJ1Y3QgaTkxNV9wb3dlcl9kb21haW5zICpwb3dlcl9kb21haW5zID0gJmRldl9wcml2LT5w b3dlcl9kb21haW5zOwo+PiBAQCAtMjIyLDcgKzIwMSw3IEBAIGludCBpbnRlbF9oZGNwX2F1dGhf ZG93bnN0cmVhbShzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKPj4g ICAKPj4gICAJZGV2X3ByaXYgPSBpbnRlbF9kaWdfcG9ydC0+YmFzZS5iYXNlLmRldi0+ZGV2X3By aXZhdGU7Cj4+ICAgCj4+IC0JcmV0ID0gaW50ZWxfaGRjcF9wb2xsX2tzdl9maWZvKGludGVsX2Rp Z19wb3J0LCBzaGltKTsKPj4gKwlyZXQgPSBzaGltLT53YWl0X2Zvcl9rc3ZfcmVhZHkoaW50ZWxf ZGlnX3BvcnQpOwo+PiAgIAlpZiAocmV0KSB7Cj4+ICAgCQlEUk1fRVJST1IoIktTViBsaXN0IGZh aWxlZCB0byBiZWNvbWUgcmVhZHkgKCVkKVxuIiwgcmV0KTsKPj4gICAJCXJldHVybiByZXQ7Cj4+ IEBAIC00NzYsNyArNDU1LDYgQEAgc3RhdGljIGludCBpbnRlbF9oZGNwX2F1dGgoc3RydWN0IGlu dGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCj4+ICAgewo+PiAgIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXY7Cj4+ICAgCWVudW0gcG9ydCBwb3J0Owo+PiAtCXVuc2ln bmVkIGxvbmcgcjBfcHJpbWVfZ2VuX3N0YXJ0Owo+PiAgIAlpbnQgcmV0LCBpLCB0cmllcyA9IDI7 Cj4+ICAgCXVuaW9uIHsKPj4gICAJCXUzMiByZWdbMl07Cj4+IEBAIC01MzEsOCArNTA5LDYgQEAg c3RhdGljIGludCBpbnRlbF9oZGNwX2F1dGgoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50 ZWxfZGlnX3BvcnQsCj4+ICAgCWlmIChyZXQpCj4+ICAgCQlyZXR1cm4gcmV0Owo+PiAgIAo+PiAt CXIwX3ByaW1lX2dlbl9zdGFydCA9IGppZmZpZXM7Cj4+IC0KPj4gICAJbWVtc2V0KCZia3N2LCAw LCBzaXplb2YoYmtzdikpOwo+PiAgIAo+PiAgIAkvKiBIRENQIHNwZWMgc3RhdGVzIHRoYXQgd2Ug bXVzdCByZXRyeSB0aGUgYmtzdiBpZiBpdCBpcyBpbnZhbGlkICovCj4+IEBAIC01NzIsMjIgKzU0 OCwxMSBAQCBzdGF0aWMgaW50IGludGVsX2hkY3BfYXV0aChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9w b3J0ICppbnRlbF9kaWdfcG9ydCwKPj4gICAJfQo+PiAgIAo+PiAgIAkvKgo+PiAtCSAqIFdhaXQg Zm9yIFIwJyB0byBiZWNvbWUgYXZhaWxhYmxlLiBUaGUgc3BlYyBzYXlzIG1pbmltdW0gMTAwbXMg ZnJvbQo+PiAtCSAqIEFrc3YsIGJ1dCBzb21lIG1vbml0b3JzIGNhbiB0YWtlIGxvbmdlciB0aGFu IHRoaXMuIFNvIHdlIGFyZQo+PiAtCSAqIGNvbWJpbmVseSB3YWl0aW5nIGZvciAzMDBtU2VjIGp1 c3QgdG8gYmUgc3VyZSBpbiBjYXNlIG9mIEhETUkuCj4+ICAgCSAqIERQIEhEQ1AgU3BlYyBtYW5k YXRlcyB0aGUgdHdvIG1vcmUgcmVhdHRlbXB0IHRvIHJlYWQgUjAsIGluY2FzZQo+PiAgIAkgKiBv ZiBSMCBtaXNtYXRjaC4KPj4gLQkgKgo+PiAtCSAqIE9uIERQLCB0aGVyZSdzIGFuIFIwX1JFQURZ IGJpdCBhdmFpbGFibGUgYnV0IG5vIHN1Y2ggYml0Cj4+IC0JICogZXhpc3RzIG9uIEhETUkuIFNp bmNlIHRoZSB1cHBlci1ib3VuZCBpcyB0aGUgc2FtZSwgd2UnbGwganVzdCBkbwo+PiAtCSAqIHRo ZSBzdHVwaWQgdGhpbmcgaW5zdGVhZCBvZiBwb2xsaW5nIG9uIG9uZSBhbmQgbm90IHRoZSBvdGhl ci4KPj4gICAJICovCj4+IC0KPj4gICAJdHJpZXMgPSAzOwo+PiAgIAlmb3IgKGkgPSAwOyBpIDwg dHJpZXM7IGkrKykgewo+PiAtCQl3YWl0X3JlbWFpbmluZ19tc19mcm9tX2ppZmZpZXMocjBfcHJp bWVfZ2VuX3N0YXJ0LAo+PiAtCQkJCQkgICAgICAgMTAwICogKGkgKyAxKSk7Cj4+IC0KPj4gICAJ CXJpLnJlZyA9IDA7Cj4+ICAgCQlyZXQgPSBzaGltLT5yZWFkX3JpX3ByaW1lKGludGVsX2RpZ19w b3J0LCByaS5zaGltKTsKPj4gICAJCWlmIChyZXQpCj4+IEBAIC03NDksNiArNzE0LDggQEAgaW50 IGludGVsX2hkY3BfaW5pdChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCj4+ICAg CW11dGV4X2luaXQoJmNvbm5lY3Rvci0+aGRjcF9tdXRleCk7Cj4+ICAgCUlOSVRfREVMQVlFRF9X T1JLKCZjb25uZWN0b3ItPmhkY3BfY2hlY2tfd29yaywgaW50ZWxfaGRjcF9jaGVja193b3JrKTsK Pj4gICAJSU5JVF9XT1JLKCZjb25uZWN0b3ItPmhkY3BfcHJvcF93b3JrLCBpbnRlbF9oZGNwX3By b3Bfd29yayk7Cj4+ICsKPj4gKwlpbml0X2NvbXBsZXRpb24oJmNvbm5lY3Rvci0+Y3BfaXJxX3Jl Y3ZlZCk7Cj4+ICAgCXJldHVybiAwOwo+PiAgIH0KPj4gICAKPj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2hkbWkuYwo+PiBpbmRleCBmNWQ3YmZiNDMwMDYuLjUzMmQxM2Y5MTYwMiAxMDA2NDQKPj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+PiBAQCAtMTAwNyw2ICsxMDA3LDkgQEAgaW50IGludGVs X2hkbWlfaGRjcF9yZWFkX3JpX3ByaW1lKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVs X2RpZ19wb3J0LAo+PiAgIAkJCQkgIHU4ICpyaV9wcmltZSkKPj4gICB7Cj4+ICAgCWludCByZXQ7 Cj4+ICsKPj4gKwl3YWl0X3JlbWFpbmluZ19tc19mcm9tX2ppZmZpZXMoamlmZmllcywgMTAwKTsK Pj4gKwo+PiAgIAlyZXQgPSBpbnRlbF9oZG1pX2hkY3BfcmVhZChpbnRlbF9kaWdfcG9ydCwgRFJN X0hEQ1BfRERDX1JJX1BSSU1FLAo+PiAgIAkJCQkgICByaV9wcmltZSwgRFJNX0hEQ1BfUklfTEVO KTsKPj4gICAJaWYgKHJldCkKPj4gQEAgLTEwMjcsNiArMTAzMCwyOSBAQCBpbnQgaW50ZWxfaGRt aV9oZGNwX3JlYWRfa3N2X3JlYWR5KHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2Rp Z19wb3J0LAo+PiAgIAkJcmV0dXJuIHJldDsKPj4gICAJfQo+PiAgIAkqa3N2X3JlYWR5ID0gdmFs ICYgRFJNX0hEQ1BfRERDX0JDQVBTX0tTVl9GSUZPX1JFQURZOwo+PiArCj4+ICsJcmV0dXJuIDA7 Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYwo+PiAraW50IGludGVsX2hkbWlfaGRjcF9rc3ZfcmVhZHko c3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQpCj4+ICt7Cj4+ICsJaW50 IHJldCwgcmVhZF9yZXQ7Cj4+ICsJYm9vbCBrc3ZfcmVhZHk7Cj4+ICsKPj4gKwkvKiBQb2xsIGZv ciBrc3YgbGlzdCByZWFkeSAoc3BlYyBzYXlzIG1heCB0aW1lIGFsbG93ZWQgaXMgNXMpICovCj4+ ICsJcmV0ID0gX193YWl0X2ZvcihyZWFkX3JldCA9Cj4+ICsJCQkgaW50ZWxfaGRtaV9oZGNwX3Jl YWRfa3N2X3JlYWR5KGludGVsX2RpZ19wb3J0LAo+PiArCQkJCQkJCSZrc3ZfcmVhZHkpLAo+PiAr CQkJIHJlYWRfcmV0IHx8IGtzdl9yZWFkeSwgNSAqIDEwMDAgKiAxMDAwLCAxMDAwLAo+PiArCQkJ IDEwMCAqIDEwMDApOwo+PiArCWlmIChyZXQpCj4+ICsJCXJldHVybiByZXQ7Cj4+ICsJaWYgKHJl YWRfcmV0KQo+PiArCQlyZXR1cm4gcmVhZF9yZXQ7Cj4+ICsJaWYgKCFrc3ZfcmVhZHkpCj4+ICsJ CXJldHVybiAtRVRJTUVET1VUOwo+PiArCj4+ICAgCXJldHVybiAwOwo+PiAgIH0KPj4gICAKPj4g QEAgLTExMTIsNyArMTEzOCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfaGRjcF9zaGlt IGludGVsX2hkbWlfaGRjcF9zaGltID0gewo+PiAgIAkucmVhZF9ic3RhdHVzID0gaW50ZWxfaGRt aV9oZGNwX3JlYWRfYnN0YXR1cywKPj4gICAJLnJlcGVhdGVyX3ByZXNlbnQgPSBpbnRlbF9oZG1p X2hkY3BfcmVwZWF0ZXJfcHJlc2VudCwKPj4gICAJLnJlYWRfcmlfcHJpbWUgPSBpbnRlbF9oZG1p X2hkY3BfcmVhZF9yaV9wcmltZSwKPj4gLQkucmVhZF9rc3ZfcmVhZHkgPSBpbnRlbF9oZG1pX2hk Y3BfcmVhZF9rc3ZfcmVhZHksCj4+ICsJLndhaXRfZm9yX2tzdl9yZWFkeSA9IGludGVsX2hkbWlf aGRjcF9rc3ZfcmVhZHksCj4+ICAgCS5yZWFkX2tzdl9maWZvID0gaW50ZWxfaGRtaV9oZGNwX3Jl YWRfa3N2X2ZpZm8sCj4+ICAgCS5yZWFkX3ZfcHJpbWVfcGFydCA9IGludGVsX2hkbWlfaGRjcF9y ZWFkX3ZfcHJpbWVfcGFydCwKPj4gICAJLnRvZ2dsZV9zaWduYWxsaW5nID0gaW50ZWxfaGRtaV9o ZGNwX3RvZ2dsZV9zaWduYWxsaW5nLAo+PiAtLSAKPj4gMi43LjQKPj4KCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QK SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=