From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v9 09/39] drm/i915: Enable and Disable of HDCP2.2 Date: Wed, 19 Dec 2018 16:54:26 +0100 Message-ID: <20181219155426.GQ21184@phenom.ffwll.local> References: <1544673701-6353-1-git-send-email-ramalingam.c@intel.com> <1544673701-6353-10-git-send-email-ramalingam.c@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-ed1-x543.google.com (mail-ed1-x543.google.com [IPv6:2a00:1450:4864:20::543]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3C16E6F076 for ; Wed, 19 Dec 2018 15:54:31 +0000 (UTC) Received: by mail-ed1-x543.google.com with SMTP id p6so17430693eds.0 for ; Wed, 19 Dec 2018 07:54:31 -0800 (PST) Content-Disposition: inline In-Reply-To: <1544673701-6353-10-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: daniel.vetter@ffwll.ch, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, uma.shankar@intel.com, seanpaul@chromium.org, tomas.winkler@intel.com List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBEZWMgMTMsIDIwMTggYXQgMDk6MzE6MTFBTSArMDUzMCwgUmFtYWxpbmdhbSBDIHdy b3RlOgo+IENvbnNpZGVyaW5nIHRoYXQgSERDUDIuMiBpcyBtb3JlIHNlY3VyZSB0aGFuIEhEQ1Ax LjQsIFdoZW4gYSBzZXR1cAo+IHN1cHBvcnRzIEhEQ1AyLjIgYW5kIEhEQ1AxLjQsIEhEQ1AyLjIg d2lsbCBiZSBlbmFibGVkLgo+IAo+IFdoZW4gSERDUDIuMiBlbmFibGluZyBmYWlscyBhbmQgSERD UDEuNCBpcyBzdXBwb3J0ZWQsIEhEQ1AxLjQgaXMKPiBlbmFibGVkLgo+IAo+IFRoaXMgY2hhbmdl IGltcGxlbWVudHMgYSBzZXF1ZW5jZSBvZiBlbmFibGluZyBhbmQgZGlzYWJsaW5nIG9mCj4gSERD UDIuMiBhdXRoZW50aWNhdGlvbiBhbmQgSERDUDIuMiBwb3J0IGVuY3J5cHRpb24uCj4gCj4gdjI6 Cj4gICBJbmNsdWRlZCBmZXcgb3B0aW1pemF0aW9uIHN1Z2dlc3Rpb25zIFtDaHJpcyBXaWxzb25d Cj4gICBDb21taXQgbWVzc2FnZSBpcyB1cGRhdGVkIGFzIHBlciB0aGUgcmViYXNlZCB2ZXJzaW9u Lgo+ICAgaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIgaXMgdXNlZCBpbnN0ZWFkIG9mIHdhaXRfZm9y LiBbQ2hyaXMgV2lsc29uXQo+IHYzOgo+ICAgRXh0cmEgY29tbWVudCBhZGRlZCBhbmQgU3R5bGUg aXNzdWUgZml4ZWQgW1VtYV0KPiB2NDoKPiAgIFJlYmFzZWQgYXMgcGFydCBvZiBwYXRjaCByZW9y ZGVyaW5nLgo+ICAgSERDUDIgZW5jcnlwdGlvbiBzdGF0dXMgaXMgdHJhY2tlZC4KPiAgIEhXIHN0 YXRlIGNoZWNrIGlzIG1vdmVkIGludG8gV0FSTl9PTiBbRGFuaWVsXQo+IHY1Ogo+ICAgUmVkZWZp bmVkIHRoZSBtZWkgc2VydmljZSBmdW5jdGlvbnMgYXMgcGVyIGNvbXAgcmVkZXNpZ24uCj4gICBN ZXJnZWQgcGF0Y2hlcyByZWxhdGVkIHRvIGhkY3AyLjIgZW5hYmxpbmcgYW5kIGRpc2FibGluZyBb U2VhbiBQYXVsXS4KPiAgIFJlcXVpcmVkIHNoaW0gZnVuY3Rpb25hbGl0eSBpcyBkZWZpbmVkIFtT ZWFuIFBhdWxdCj4gdjY6Cj4gICBSZXR1cm4gdmFsdWVzIGFyZSBoYW5kbGVzIFtVbWFdCj4gICBS ZWFsaWduZWQgdGhlIGNvZGUuCj4gICBDaGVjayBmb3IgY29tcF9tYXN0ZXIgaXMgcmVtb3ZlZC4K PiB2NzoKPiAgIEhEQ1AyLjIgaXMgYXR0ZW1wdGVkIG9ubHkgaWYgbWVpIGludGVyZmFjZSBpcyB1 cC4KPiAgIEFkanVzdCB0byB0aGUgbmV3IGludGVyZmFjZQo+ICAgQXZvaWQgYm9vbCB1c2FnZSBp biBzdHJ1Y3QgW1RvbWFzXQo+IHY4Ogo+ICAgbWVpX2JpbmRlZCBzdGF0dXMgY2hlY2sgaXMgcmVt b3ZlZC4KPiAgICVzL2hkY3AyX2luX3VzZS9oZGNwMl9lbmNyeXB0ZWQKPiAKPiBTaWduZWQtb2Zm LWJ5OiBSYW1hbGluZ2FtIEMgPHJhbWFsaW5nYW0uY0BpbnRlbC5jb20+CgpsZ3RtIG5vdy4KClJl dmlld2VkLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgoKPiAtLS0K PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggIHwgICA3ICsrCj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2hkY3AuYyB8IDIwMiArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0tLQo+ICAyIGZpbGVzIGNoYW5nZWQsIDE5NSBpbnNlcnRpb25zKCspLCAxNCBk ZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IGluZGV4IGRlY2QwMzQ2 YzZhNy4uNmQ1MzYxNjE2Y2EzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBAQCAt MzgzLDYgKzM4MywxMCBAQCBzdHJ1Y3QgaW50ZWxfaGRjcF9zaGltIHsKPiAgCj4gIAkvKiBIRENQ IGFkYXB0YXRpb24oRFAvSERNSSkgcmVxdWlyZWQgb24gdGhlIHBvcnQgKi8KPiAgCWVudW0gaGRj cF93aXJlZF9wcm90b2NvbCBwcm90b2NvbDsKPiArCj4gKwkvKiBEZXRlY3RzIHdoZXRoZXIgUGFu ZWwgaXMgSERDUDIuMiBjYXBhYmxlICovCj4gKwlpbnQgKCpoZGNwXzJfMl9jYXBhYmxlKShzdHJ1 Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKPiArCQkJCWJvb2wgKmNhcGFi bGUpOwo+ICB9Owo+ICAKPiAgc3RydWN0IGludGVsX2hkY3Agewo+IEBAIC00MDAsNiArNDA0LDkg QEAgc3RydWN0IGludGVsX2hkY3Agewo+ICAJLyogRmxhZyBpbmRpY2F0ZXMgd2hldGhlciB0aGlz IGNvbm5lY3RvciBzdXBwb3J0cyBIRENQMi4yIG9yIG5vdC4gKi8KPiAgCXU4IGhkY3AyX3N1cHBv cnRlZDsKPiAgCj4gKwkvKiBIRENQMi4yIEVuY3J5cHRpb24gc3RhdHVzICovCj4gKwl1OCBoZGNw Ml9lbmNyeXB0ZWQ7Cj4gKwo+ICAJLyoKPiAgCSAqIENvbnRlbnQgU3RyZWFtIFR5cGUgZGVmaW5l ZCBieSBjb250ZW50IG93bmVyLiBUWVBFMCgweDApIGNvbnRlbnQgY2FuCj4gIAkgKiBmbG93IGlu IHRoZSBsaW5rIHByb3RlY3RlZCBieSBIRENQMi4yIG9yIEhEQ1AxLjQsIHdoZXJlIGFzIFRZUEUx KDB4MSkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRjcC5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRjcC5jCj4gaW5kZXggMmI3ODE0YTZmMTJiLi5m MGVlNDQ4ZTY1NDYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRj cC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRjcC5jCj4gQEAgLTc1LDYg Kzc1LDIzIEBAIGJvb2wgaW50ZWxfaGRjcF9jYXBhYmxlKHN0cnVjdCBpbnRlbF9jb25uZWN0b3Ig KmNvbm5lY3RvcikKPiAgCXJldHVybiBjYXBhYmxlOwo+ICB9Cj4gIAo+ICsvKiBJcyBIRENQMi4y IGNhcGFibGUgb24gUGxhdGZvcm0gYW5kIFNpbmsgKi8KPiArc3RhdGljIGJvb2wgaW50ZWxfaGRj cDJfY2FwYWJsZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4gK3sKPiArCXN0 cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gY29ubl90b19kaWdfcG9y dChjb25uZWN0b3IpOwo+ICsJc3RydWN0IGludGVsX2hkY3AgKmhkY3AgPSAmY29ubmVjdG9yLT5o ZGNwOwo+ICsJYm9vbCBjYXBhYmxlID0gZmFsc2U7Cj4gKwo+ICsJLyogSTkxNSBzdXBwb3J0IGZv ciBIRENQMi4yICovCj4gKwlpZiAoIWhkY3AtPmhkY3AyX3N1cHBvcnRlZCkKPiArCQlyZXR1cm4g ZmFsc2U7Cj4gKwo+ICsJLyogU2luaydzIGNhcGFiaWxpdHkgZm9yIEhEQ1AyLjIgKi8KPiArCWhk Y3AtPnNoaW0tPmhkY3BfMl8yX2NhcGFibGUoaW50ZWxfZGlnX3BvcnQsICZjYXBhYmxlKTsKPiAr Cj4gKwlyZXR1cm4gY2FwYWJsZTsKPiArfQo+ICsKPiAgc3RhdGljIGlubGluZSBib29sIGludGVs X2hkY3BfaW5fdXNlKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAgewo+ICAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJh c2UuZGV2KTsKPiBAQCAtMTAxNCw4ICsxMDMxLDcgQEAgaW50IGhkY3AyX2F1dGhlbnRpY2F0ZV9w b3J0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAgCXJldHVybiByZXQ7Cj4g IH0KPiAgCj4gLXN0YXRpYyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKQo+IC1pbnQgaGRjcDJfY2xv c2VfbWVpX3Nlc3Npb24oc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICtzdGF0 aWMgaW50IGhkY3AyX2Nsb3NlX21laV9zZXNzaW9uKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNv bm5lY3RvcikKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKPiAgCXN0cnVjdCBpOTE1X2NvbXBvbmVudF9tYXN0 ZXIgKmNvbXAgPSBkZXZfcHJpdi0+Y29tcF9tYXN0ZXI7Cj4gQEAgLTEwMjQsMTIgKzEwNDAsMTU3 IEBAIGludCBoZGNwMl9jbG9zZV9tZWlfc2Vzc2lvbihzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpj b25uZWN0b3IpCj4gIAkJCQkJCSAgJmNvbm5lY3Rvci0+aGRjcC5wb3J0X2RhdGEpOwo+ICB9Cj4g IAo+IC1zdGF0aWMgX19hdHRyaWJ1dGVfXygodW51c2VkKSkKPiAtaW50IGhkY3AyX2RlYXV0aGVu dGljYXRlX3BvcnQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICtzdGF0aWMg aW50IGhkY3AyX2RlYXV0aGVudGljYXRlX3BvcnQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29u bmVjdG9yKQo+ICB7Cj4gIAlyZXR1cm4gaGRjcDJfY2xvc2VfbWVpX3Nlc3Npb24oY29ubmVjdG9y KTsKPiAgfQo+ICAKPiArc3RhdGljIGludCBoZGNwMl9hdXRoZW50aWNhdGVfc2luayhzdHJ1Y3Qg aW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4gK3sKPiArCURSTV9FUlJPUigiU2luayBhdXRo ZW50aWNhdGlvbiBpcyBkb25lIGluIHN1YnNlcXVlbnQgcGF0Y2hlc1xuIik7Cj4gKwo+ICsJcmV0 dXJuIC1FSU5WQUw7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgaGRjcDJfZW5hYmxlX2VuY3J5cHRp b24oc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50 ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGNvbm5fdG9fZGlnX3BvcnQoY29ubmVj dG9yKTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29u bmVjdG9yLT5iYXNlLmRldik7Cj4gKwlzdHJ1Y3QgaW50ZWxfaGRjcCAqaGRjcCA9ICZjb25uZWN0 b3ItPmhkY3A7Cj4gKwllbnVtIHBvcnQgcG9ydCA9IGNvbm5lY3Rvci0+ZW5jb2Rlci0+cG9ydDsK PiArCWludCByZXQ7Cj4gKwo+ICsJV0FSTl9PTihJOTE1X1JFQUQoSERDUDJfU1RBVFVTX0RESShw b3J0KSkgJiBMSU5LX0VOQ1JZUFRJT05fU1RBVFVTKTsKPiArCj4gKwlpZiAoaGRjcC0+c2hpbS0+ dG9nZ2xlX3NpZ25hbGxpbmcpIHsKPiArCQlyZXQgPSBoZGNwLT5zaGltLT50b2dnbGVfc2lnbmFs bGluZyhpbnRlbF9kaWdfcG9ydCwgdHJ1ZSk7Cj4gKwkJaWYgKHJldCkgewo+ICsJCQlEUk1fRVJS T1IoIkZhaWxlZCB0byBlbmFibGUgSERDUCBzaWduYWxsaW5nLiAlZFxuIiwKPiArCQkJCSAgcmV0 KTsKPiArCQkJcmV0dXJuIHJldDsKPiArCQl9Cj4gKwl9Cj4gKwo+ICsJaWYgKEk5MTVfUkVBRChI RENQMl9TVEFUVVNfRERJKHBvcnQpKSAmIExJTktfQVVUSF9TVEFUVVMpIHsKPiArCQkvKiBMaW5r IGlzIEF1dGhlbnRpY2F0ZWQuIE5vdyBzZXQgZm9yIEVuY3J5cHRpb24gKi8KPiArCQlJOTE1X1dS SVRFKEhEQ1AyX0NUTF9EREkocG9ydCksCj4gKwkJCSAgIEk5MTVfUkVBRChIRENQMl9DVExfRERJ KHBvcnQpKSB8Cj4gKwkJCSAgIENUTF9MSU5LX0VOQ1JZUFRJT05fUkVRKTsKPiArCX0KPiArCj4g KwlyZXQgPSBpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcihkZXZfcHJpdiwgSERDUDJfU1RBVFVTX0RE SShwb3J0KSwKPiArCQkJCSAgICAgIExJTktfRU5DUllQVElPTl9TVEFUVVMsCj4gKwkJCQkgICAg ICBMSU5LX0VOQ1JZUFRJT05fU1RBVFVTLAo+ICsJCQkJICAgICAgRU5DUllQVF9TVEFUVVNfQ0hB TkdFX1RJTUVPVVRfTVMpOwo+ICsKPiArCXJldHVybiByZXQ7Cj4gK30KPiArCj4gK3N0YXRpYyBp bnQgaGRjcDJfZGlzYWJsZV9lbmNyeXB0aW9uKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5l Y3RvcikKPiArewo+ICsJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQg PSBjb25uX3RvX2RpZ19wb3J0KGNvbm5lY3Rvcik7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwo+ICsJc3RydWN0IGlu dGVsX2hkY3AgKmhkY3AgPSAmY29ubmVjdG9yLT5oZGNwOwo+ICsJZW51bSBwb3J0IHBvcnQgPSBj b25uZWN0b3ItPmVuY29kZXItPnBvcnQ7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCVdBUk5fT04oIShJ OTE1X1JFQUQoSERDUDJfU1RBVFVTX0RESShwb3J0KSkgJiBMSU5LX0VOQ1JZUFRJT05fU1RBVFVT KSk7Cj4gKwo+ICsJSTkxNV9XUklURShIRENQMl9DVExfRERJKHBvcnQpLAo+ICsJCSAgIEk5MTVf UkVBRChIRENQMl9DVExfRERJKHBvcnQpKSAmIH5DVExfTElOS19FTkNSWVBUSU9OX1JFUSk7Cj4g Kwo+ICsJcmV0ID0gaW50ZWxfd2FpdF9mb3JfcmVnaXN0ZXIoZGV2X3ByaXYsIEhEQ1AyX1NUQVRV U19EREkocG9ydCksCj4gKwkJCQkgICAgICBMSU5LX0VOQ1JZUFRJT05fU1RBVFVTLCAweDAsCj4g KwkJCQkgICAgICBFTkNSWVBUX1NUQVRVU19DSEFOR0VfVElNRU9VVF9NUyk7Cj4gKwlpZiAocmV0 ID09IC1FVElNRURPVVQpCj4gKwkJRFJNX0RFQlVHX0tNUygiRGlzYWJsZSBFbmNyeXB0aW9uIFRp bWVkb3V0Iik7Cj4gKwo+ICsJaWYgKGhkY3AtPnNoaW0tPnRvZ2dsZV9zaWduYWxsaW5nKSB7Cj4g KwkJcmV0ID0gaGRjcC0+c2hpbS0+dG9nZ2xlX3NpZ25hbGxpbmcoaW50ZWxfZGlnX3BvcnQsIGZh bHNlKTsKPiArCQlpZiAocmV0KSB7Cj4gKwkJCURSTV9FUlJPUigiRmFpbGVkIHRvIGRpc2FibGUg SERDUCBzaWduYWxsaW5nLiAlZFxuIiwKPiArCQkJCSAgcmV0KTsKPiArCQkJcmV0dXJuIHJldDsK PiArCQl9Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIHJldDsKPiArfQo+ICsKPiArc3RhdGljIGludCBo ZGNwMl9hdXRoZW50aWNhdGVfYW5kX2VuY3J5cHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29u bmVjdG9yKQo+ICt7Cj4gKwlpbnQgcmV0LCBpLCB0cmllcyA9IDM7Cj4gKwo+ICsJZm9yIChpID0g MDsgaSA8IHRyaWVzOyBpKyspIHsKPiArCQlyZXQgPSBoZGNwMl9hdXRoZW50aWNhdGVfc2luayhj b25uZWN0b3IpOwo+ICsJCWlmICghcmV0KQo+ICsJCQlicmVhazsKPiArCj4gKwkJLyogQ2xlYXJp bmcgdGhlIG1laSBoZGNwIHNlc3Npb24gKi8KPiArCQlEUk1fREVCVUdfS01TKCJIRENQMi4yIEF1 dGggJWQgb2YgJWQgRmFpbGVkLiglZClcbiIsCj4gKwkJCSAgICAgIGkgKyAxLCB0cmllcywgcmV0 KTsKPiArCQlpZiAoaGRjcDJfZGVhdXRoZW50aWNhdGVfcG9ydChjb25uZWN0b3IpIDwgMCkKPiAr CQkJRFJNX0RFQlVHX0tNUygiUG9ydCBkZWF1dGggZmFpbGVkLlxuIik7Cj4gKwl9Cj4gKwo+ICsJ aWYgKGkgIT0gdHJpZXMpIHsKPiArCQkvKgo+ICsJCSAqIEVuc3VyaW5nIHRoZSByZXF1aXJlZCAy MDBtU2VjIG1pbiB0aW1lIGludGVydmFsIGJldHdlZW4KPiArCQkgKiBTZXNzaW9uIEtleSBFeGNo YW5nZSBhbmQgZW5jcnlwdGlvbi4KPiArCQkgKi8KPiArCQltc2xlZXAoSERDUF8yXzJfREVMQVlf QkVGT1JFX0VOQ1JZUFRJT05fRU4pOwo+ICsJCXJldCA9IGhkY3AyX2VuYWJsZV9lbmNyeXB0aW9u KGNvbm5lY3Rvcik7Cj4gKwkJaWYgKHJldCA8IDApIHsKPiArCQkJRFJNX0RFQlVHX0tNUygiRW5j cnlwdGlvbiBFbmFibGUgRmFpbGVkLiglZClcbiIsIHJldCk7Cj4gKwkJCWlmIChoZGNwMl9kZWF1 dGhlbnRpY2F0ZV9wb3J0KGNvbm5lY3RvcikgPCAwKQo+ICsJCQkJRFJNX0RFQlVHX0tNUygiUG9y dCBkZWF1dGggZmFpbGVkLlxuIik7Cj4gKwkJfQo+ICsJfQo+ICsKPiArCXJldHVybiByZXQ7Cj4g K30KPiArCj4gK3N0YXRpYyBpbnQgX2ludGVsX2hkY3AyX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY29u bmVjdG9yICpjb25uZWN0b3IpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9oZGNwICpoZGNwID0gJmNv bm5lY3Rvci0+aGRjcDsKPiArCWludCByZXQ7Cj4gKwo+ICsJRFJNX0RFQlVHX0tNUygiWyVzOiVk XSBIRENQMi4yIGlzIGJlaW5nIGVuYWJsZWQuIFR5cGU6ICVkXG4iLAo+ICsJCSAgICAgIGNvbm5l Y3Rvci0+YmFzZS5uYW1lLCBjb25uZWN0b3ItPmJhc2UuYmFzZS5pZCwKPiArCQkgICAgICBoZGNw LT5jb250ZW50X3R5cGUpOwo+ICsKPiArCXJldCA9IGhkY3AyX2F1dGhlbnRpY2F0ZV9hbmRfZW5j cnlwdChjb25uZWN0b3IpOwo+ICsJaWYgKHJldCkgewo+ICsJCURSTV9ERUJVR19LTVMoIkhEQ1Ay IFR5cGUlZCAgRW5hYmxpbmcgRmFpbGVkLiAoJWQpXG4iLAo+ICsJCQkgICAgICBoZGNwLT5jb250 ZW50X3R5cGUsIHJldCk7Cj4gKwkJcmV0dXJuIHJldDsKPiArCX0KPiArCj4gKwlEUk1fREVCVUdf S01TKCJbJXM6JWRdIEhEQ1AyLjIgaXMgZW5hYmxlZC4gVHlwZSAlZFxuIiwKPiArCQkgICAgICBj b25uZWN0b3ItPmJhc2UubmFtZSwgY29ubmVjdG9yLT5iYXNlLmJhc2UuaWQsCj4gKwkJICAgICAg aGRjcC0+Y29udGVudF90eXBlKTsKPiArCj4gKwloZGNwLT5oZGNwMl9lbmNyeXB0ZWQgPSAxOwo+ ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgX2ludGVsX2hkY3AyX2Rpc2FibGUo c3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICt7Cj4gKwlpbnQgcmV0Owo+ICsK PiArCURSTV9ERUJVR19LTVMoIlslczolZF0gSERDUDIuMiBpcyBiZWluZyBEaXNhYmxlZFxuIiwK PiArCQkgICAgICBjb25uZWN0b3ItPmJhc2UubmFtZSwgY29ubmVjdG9yLT5iYXNlLmJhc2UuaWQp Owo+ICsKPiArCXJldCA9IGhkY3AyX2Rpc2FibGVfZW5jcnlwdGlvbihjb25uZWN0b3IpOwo+ICsK PiArCWlmIChoZGNwMl9kZWF1dGhlbnRpY2F0ZV9wb3J0KGNvbm5lY3RvcikgPCAwKQo+ICsJCURS TV9ERUJVR19LTVMoIlBvcnQgZGVhdXRoIGZhaWxlZC5cbiIpOwo+ICsKPiArCWNvbm5lY3Rvci0+ aGRjcC5oZGNwMl9lbmNyeXB0ZWQgPSAwOwo+ICsKPiArCXJldHVybiByZXQ7Cj4gK30KPiArCj4g IHN0YXRpYyBpbmxpbmUgdm9pZCBfaW50ZWxfaGRjcF9jaGVja193b3JrKHN0cnVjdCBpbnRlbF9j b25uZWN0b3IgKmNvbm5lY3RvcikKPiAgewo+ICAJc3RydWN0IGludGVsX2hkY3AgKmhkY3AgPSAm Y29ubmVjdG9yLT5oZGNwOwo+IEBAIC0xMTQ1LDIyICsxMzA2LDMzIEBAIGludCBpbnRlbF9oZGNw X2luaXQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICBpbnQgaW50ZWxfaGRj cF9lbmFibGUoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICB7Cj4gIAlzdHJ1 Y3QgaW50ZWxfaGRjcCAqaGRjcCA9ICZjb25uZWN0b3ItPmhkY3A7Cj4gLQlpbnQgcmV0Owo+ICsJ aW50IHJldCA9IC1FSU5WQUw7Cj4gIAo+ICAJaWYgKCFoZGNwLT5zaGltKQo+ICAJCXJldHVybiAt RU5PRU5UOwo+ICAKPiAgCW11dGV4X2xvY2soJmhkY3AtPm11dGV4KTsKPiAgCj4gLQlyZXQgPSBf aW50ZWxfaGRjcF9lbmFibGUoY29ubmVjdG9yKTsKPiAtCWlmIChyZXQpCj4gLQkJZ290byBvdXQ7 Cj4gKwkvKgo+ICsJICogQ29uc2lkZXJpbmcgdGhhdCBIRENQMi4yIGlzIG1vcmUgc2VjdXJlIHRo YW4gSERDUDEuNCwgSWYgdGhlIHNldHVwCj4gKwkgKiBpcyBjYXBhYmxlIG9mIEhEQ1AyLjIsIGl0 IGlzIHByZWZlcnJlZCB0byB1c2UgSERDUDIuMi4KPiArCSAqLwo+ICsJaWYgKGludGVsX2hkY3Ay X2NhcGFibGUoY29ubmVjdG9yKSkKPiArCQlyZXQgPSBfaW50ZWxfaGRjcDJfZW5hYmxlKGNvbm5l Y3Rvcik7Cj4gKwo+ICsJLyogV2hlbiBIRENQMi4yIGZhaWxzLCBIRENQMS40IHdpbGwgYmUgYXR0 ZW1wdGVkICovCj4gKwlpZiAocmV0ICYmIGludGVsX2hkY3BfY2FwYWJsZShjb25uZWN0b3IpKSB7 Cj4gKwkJcmV0ID0gX2ludGVsX2hkY3BfZW5hYmxlKGNvbm5lY3Rvcik7Cj4gKwkJaWYgKCFyZXQp Cj4gKwkJCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmaGRjcC0+Y2hlY2tfd29yaywKPiArCQkJCQkg ICAgICBEUk1fSERDUF9DSEVDS19QRVJJT0RfTVMpOwo+ICsJfQo+ICsKPiArCWlmICghcmV0KSB7 Cj4gKwkJaGRjcC0+dmFsdWUgPSBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fRU5BQkxFRDsK PiArCQlzY2hlZHVsZV93b3JrKCZoZGNwLT5wcm9wX3dvcmspOwo+ICsJfQo+ICAKPiAtCWhkY3At PnZhbHVlID0gRFJNX01PREVfQ09OVEVOVF9QUk9URUNUSU9OX0VOQUJMRUQ7Cj4gLQlzY2hlZHVs ZV93b3JrKCZoZGNwLT5wcm9wX3dvcmspOwo+IC0Jc2NoZWR1bGVfZGVsYXllZF93b3JrKCZoZGNw LT5jaGVja193b3JrLAo+IC0JCQkgICAgICBEUk1fSERDUF9DSEVDS19QRVJJT0RfTVMpOwo+IC1v dXQ6Cj4gIAltdXRleF91bmxvY2soJmhkY3AtPm11dGV4KTsKPiAgCXJldHVybiByZXQ7Cj4gIH0K PiBAQCAtMTE3Nyw3ICsxMzQ5LDkgQEAgaW50IGludGVsX2hkY3BfZGlzYWJsZShzdHJ1Y3QgaW50 ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4gIAo+ICAJaWYgKGhkY3AtPnZhbHVlICE9IERSTV9N T0RFX0NPTlRFTlRfUFJPVEVDVElPTl9VTkRFU0lSRUQpIHsKPiAgCQloZGNwLT52YWx1ZSA9IERS TV9NT0RFX0NPTlRFTlRfUFJPVEVDVElPTl9VTkRFU0lSRUQ7Cj4gLQkJaWYgKGhkY3AtPmhkY3Bf ZW5jcnlwdGVkKQo+ICsJCWlmIChoZGNwLT5oZGNwMl9lbmNyeXB0ZWQpCj4gKwkJCXJldCA9IF9p bnRlbF9oZGNwMl9kaXNhYmxlKGNvbm5lY3Rvcik7Cj4gKwkJZWxzZSBpZiAoaGRjcC0+aGRjcF9l bmNyeXB0ZWQpCj4gIAkJCXJldCA9IF9pbnRlbF9oZGNwX2Rpc2FibGUoY29ubmVjdG9yKTsKPiAg CX0KPiAgCj4gLS0gCj4gMi43LjQKPiAKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2lu ZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0 CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK