From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v8 09/35] drm/i915: Implement HDCP2.2 link integrity check Date: Fri, 7 Dec 2018 15:36:43 +0100 Message-ID: <20181207143643.GH21184@phenom.ffwll.local> References: <1543315413-24302-1-git-send-email-ramalingam.c@intel.com> <1543315413-24302-10-git-send-email-ramalingam.c@intel.com> <20181206132721.GR21184@phenom.ffwll.local> <9deb273a-5e8e-0b69-c2b9-b1b145d5ef1e@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: <9deb273a-5e8e-0b69-c2b9-b1b145d5ef1e@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "C, Ramalingam" Cc: daniel.vetter@ffwll.ch, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, tomas.winkler@intel.com List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBEZWMgMDcsIDIwMTggYXQgMTI6MTY6MTFQTSArMDUzMCwgQywgUmFtYWxpbmdhbSB3 cm90ZToKPiAKPiBPbiAxMi82LzIwMTggNjo1NyBQTSwgRGFuaWVsIFZldHRlciB3cm90ZToKPiA+ IE9uIFR1ZSwgTm92IDI3LCAyMDE4IGF0IDA0OjEzOjA3UE0gKzA1MzAsIFJhbWFsaW5nYW0gQyB3 cm90ZToKPiA+ID4gSW1wbGVtZW50cyB0aGUgbGluayBpbnRlZ3JpdHkgY2hlY2sgb25jZSBpbiA1 MDBtU2VjLgo+ID4gPiAKPiA+ID4gT25jZSBlbmNyeXB0aW9uIGlzIGVuYWJsZWQsIGFuIG9uZ29p bmcgTGluayBJbnRlZ3JpdHkgQ2hlY2sgaXMKPiA+ID4gcGVyZm9ybWVkIGJ5IHRoZSBIRENQIFJl Y2VpdmVyIHRvIGNoZWNrIHRoYXQgY2lwaGVyIHN5bmNocm9uaXphdGlvbgo+ID4gPiBpcyBtYWlu dGFpbmVkIGJldHdlZW4gdGhlIEhEQ1AgVHJhbnNtaXR0ZXIgYW5kIHRoZSBIRENQIFJlY2VpdmVy Lgo+ID4gPiAKPiA+ID4gT24gdGhlIGRldGVjdGlvbiBvZiBzeW5jaHJvbml6YXRpb24gbG9zdCwg dGhlIEhEQ1AgUmVjZWl2ZXIgbXVzdCBhc3NlcnQKPiA+ID4gdGhlIGNvcnJlc3BvbmRpbmcgYml0 cyBvZiB0aGUgUnhTdGF0dXMgcmVnaXN0ZXIuIFRoZSBUcmFuc21pdHRlciBwb2xscwo+ID4gPiB0 aGUgUnhTdGF0dXMgcmVnaXN0ZXIgYW5kIGl0IG1heSBpbml0aWF0ZSByZS1hdXRoZW50aWNhdGlv bi4KPiA+ID4gCj4gPiA+IHYyOgo+ID4gPiAgICBSZWJhc2VkLgo+ID4gPiB2MzoKPiA+ID4gICAg Tm8gQ2hhbmdlcy4KPiA+ID4gdjQ6Cj4gPiA+ICAgIGVudW0gY2hlY2tfbGlua19yZXNwb25zZSBp cyB1c2VkIGNoZWNrIHRoZSBsaW5rIHN0YXR1cyBbVW1hXQo+ID4gPiB2NToKPiA+ID4gICAgUmVi YXNlZCBhcyBwYXJ0IG9mIHBhdGNoIHJlb3JkZXJpbmcuCj4gPiA+IHY2Ogo+ID4gPiAgICBSZXF1 aXJlZCBtZW1iZXJzIG9mIGludGVsX2hkY3AgaXMgZGVmaW5lZCBbU2VhbiBQYXVsXQo+ID4gPiB2 NzoKPiA+ID4gICAgaGRjcDJfY2hlY2tfbGluayBpcyBjYW5jZWxsZWQgYXQgcmVxdWlyZWQgcGxh Y2VzLgo+ID4gPiB2ODoKPiA+ID4gICAgUmViYXNlZCBmb3IgdGhlIGNvbXBvbmVudCBpL2YgY2hh bmdlcy4KPiA+ID4gICAgRXJyb3JzIGR1ZSB0byB0aGUgc2lua3MgYXJlIHJlcG9ydGVkIGFzIERF QlVHIGxvZ3MuCj4gPiA+IAo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBSYW1hbGluZ2FtIEMgPHJhbWFs aW5nYW0uY0BpbnRlbC5jb20+Cj4gPiA+IFJldmlld2VkLWJ5OiBVbWEgU2hhbmthciA8dW1hLnNo YW5rYXJAaW50ZWwuY29tPgo+ID4gPiAtLS0KPiA+ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMgfCAxMSArKystLQo+ID4gPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oICAgICB8ICA1ICsrKwo+ID4gPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2hkY3AuYyAgICB8IDgzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQo+ID4g PiAgIGluY2x1ZGUvZHJtL2RybV9oZGNwLmggICAgICAgICAgICAgICB8ICA4ICsrKysKPiA+ID4g ICA0IGZpbGVzIGNoYW5nZWQsIDEwMyBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQo+ID4g PiAKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gPiBpbmRleCBlOWY0 ZTIyYjJhNGUuLmZjNjNiYWJjZTE2NSAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYwo+ID4gPiBAQCAtMTU4MzMsMTUgKzE1ODMzLDIwIEBAIHN0YXRpYyB2b2lk IGludGVsX2hwZF9wb2xsX2Zpbmkoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+ID4gICB7Cj4g PiA+ICAgCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcjsKPiA+ID4gICAJc3RydWN0 IGRybV9jb25uZWN0b3JfbGlzdF9pdGVyIGNvbm5faXRlcjsKPiA+ID4gKwlzdHJ1Y3QgaW50ZWxf aGRjcCAqaGRjcDsKPiA+ID4gICAJLyogS2lsbCBhbGwgdGhlIHdvcmsgdGhhdCBtYXkgaGF2ZSBi ZWVuIHF1ZXVlZCBieSBocGQuICovCj4gPiA+ICAgCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2Jl Z2luKGRldiwgJmNvbm5faXRlcik7Cj4gPiA+ICAgCWZvcl9lYWNoX2ludGVsX2Nvbm5lY3Rvcl9p dGVyKGNvbm5lY3RvciwgJmNvbm5faXRlcikgewo+ID4gPiArCQloZGNwID0gJmNvbm5lY3Rvci0+ aGRjcDsKPiA+ID4gKwo+ID4gPiAgIAkJaWYgKGNvbm5lY3Rvci0+bW9kZXNldF9yZXRyeV93b3Jr LmZ1bmMpCj4gPiA+ICAgCQkJY2FuY2VsX3dvcmtfc3luYygmY29ubmVjdG9yLT5tb2Rlc2V0X3Jl dHJ5X3dvcmspOwo+ID4gPiAtCQlpZiAoY29ubmVjdG9yLT5oZGNwLnNoaW0pIHsKPiA+ID4gLQkJ CWNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygmY29ubmVjdG9yLT5oZGNwLmNoZWNrX3dvcmspOwo+ ID4gPiAtCQkJY2FuY2VsX3dvcmtfc3luYygmY29ubmVjdG9yLT5oZGNwLnByb3Bfd29yayk7Cj4g PiA+ICsJCWlmIChoZGNwLT5zaGltKSB7Cj4gPiA+ICsJCQljYW5jZWxfZGVsYXllZF93b3JrX3N5 bmMoJmhkY3AtPmNoZWNrX3dvcmspOwo+ID4gPiArCQkJY2FuY2VsX3dvcmtfc3luYygmaGRjcC0+ cHJvcF93b3JrKTsKPiA+ID4gKwkJCWlmIChoZGNwLT5oZGNwMl9zdXBwb3J0ZWQpCj4gPiA+ICsJ CQkJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZoZGNwLT5oZGNwMl9jaGVja193b3JrKTsKPiA+ IExvY2tpbmcgb2YgdGhlc2Ugd29ya2VycyBpcyBhbHdheXMgdHJpY2t5IC4uLiB3aHkgY2FuJ3Qg d2UgdXNlIHRoZSBzYW1lCj4gPiB3b3JrZXIgZm9yIGJvdGggY2hlY2tpbmcgaGRjcDIgYW5kIGhk Y3AxIGxpbmsgc3RhdHVzPwo+IAo+IERvYWJsZSBzaW1pbGFyIHRvIGhvdyB3ZSBhcmUgZG9pbmcg aGRjcF9lbmFibGUuIE5lZWRzIHRoZSB0cmFja2luZyBvZiB0aGUgc3BlYyBpbgo+IHVzZSB0byBw aWNrIHByb3BlciB0aW1lb3V0IGFuZCBmdW5jdGlvbnMuCgpZZWFoIHdlIGRlZmluaXRlbHkgd2Fu dCBzZXBhcmF0ZSBlbmFibGUvZGlzYWJsZSBmdW5jdGlvbnMgZm9yIGhkY3AxIGFuZApoZGNwMi4g SSB3YXMgdGhpbmtpbmcgb2Ygb25seSBzaGFyaW5nIHRoZSBjb250ZW50X3Byb3RlY3Rpb24gc3Rh dHVzIGxvZ2ljLAphbmQgdGhlIHdvcmtlciBzY2hlZHVsaW5nIGxvZ2ljLiBUaGF0IGxvb2tzIHRo ZSBzYW1lLCBhbmQgaW1vIHRoYXQncyB0aGUKdHJpY2t5IHBhcnQuIEkuZS4gc2VwYXJhdGUgdGhl IGRybSBpbnRlcmZhY2luZyBzaWRlIG1vcmUgZnJvbSB0aGUgaGRjcCBodwpmbG93LgoKPiBJIHdp bGwgbG9vayBpbnRvIGl0Lgo+IAo+ID4gCj4gPiBPZiBjb3Vyc2UgbmVlZCB0byB1c2UgdGhlIHJp Z2h0IHRpbWVvdXQgYW5kIGNhbGwgdGhlIHJpZ2h0IGZ1bmN0aW9ucywgYnV0Cj4gPiBJIHRoaW5r IGdpdmVzIHVzIGxlc3MgZHVwbGljYXRpb24gaW4gdGhlIGNvbXBsaWNhdGVkIGNvZGUuCj4gPiAK PiA+IAo+ID4gPiAgIAkJfQo+ID4gPiAgIAl9Cj4gPiA+ICAgCWRybV9jb25uZWN0b3JfbGlzdF9p dGVyX2VuZCgmY29ubl9pdGVyKTsKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+ID4g aW5kZXggMjRkMjU4NDg4ZWZlLi5lNmUzMmJmNTI1NjggMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rydi5oCj4gPiA+IEBAIC00MDMsNiArNDAzLDkgQEAgc3RydWN0IGludGVsX2hk Y3Bfc2hpbSB7Cj4gPiA+ICAgCSAqLwo+ID4gPiAgIAlpbnQgKCpjb25maWdfc3RyZWFtX3R5cGUp KHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAo+ID4gPiAgIAkJCQkg IHZvaWQgKmJ1Ziwgc2l6ZV90IHNpemUpOwo+ID4gPiArCj4gPiA+ICsJLyogSERDUDIuMiBMaW5r IEludGVncml0eSBDaGVjayAqLwo+ID4gPiArCWludCAoKmNoZWNrXzJfMl9saW5rKShzdHJ1Y3Qg aW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCk7Cj4gPiA+ICAgfTsKPiA+ID4gICBz dHJ1Y3QgaW50ZWxfaGRjcCB7Cj4gPiA+IEBAIC00NDUsNiArNDQ4LDggQEAgc3RydWN0IGludGVs X2hkY3Agewo+ID4gPiAgIAkgKiBvdmVyIHJlLUF1dGggaGFzIHRvIGJlIHRyaWdnZXJlZC4KPiA+ ID4gICAJICovCj4gPiA+ICAgCXUzMiBzZXFfbnVtX207Cj4gPiA+ICsKPiA+ID4gKwlzdHJ1Y3Qg ZGVsYXllZF93b3JrIGhkY3AyX2NoZWNrX3dvcms7Cj4gPiA+ICAgfTsKPiA+ID4gICBzdHJ1Y3Qg aW50ZWxfY29ubmVjdG9yIHsKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2hkY3AuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkY3AuYwo+ID4gPiBp bmRleCA2NzlmM2MxNjQ1ODIuLjk4YjExMjM5NWE1YSAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRjcC5jCj4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2hkY3AuYwo+ID4gPiBAQCAtMTYyNiw2ICsxNjI2LDgxIEBAIHN0YXRpYyBpbnQg X2ludGVsX2hkY3AyX2Rpc2FibGUoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ ID4gPiAgIAlyZXR1cm4gcmV0Owo+ID4gPiAgIH0KPiA+ID4gKy8qIEltcGxlbWVudHMgdGhlIExp bmsgSW50ZWdyaXR5IENoZWNrIGZvciBIRENQMi4yICovCj4gPiA+ICtzdGF0aWMgaW50IGludGVs X2hkY3AyX2NoZWNrX2xpbmsoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ID4g PiArewo+ID4gPiArCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0g Y29ubl90b19kaWdfcG9ydChjb25uZWN0b3IpOwo+ID4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7Cj4gPiA+ICsJc3Ry dWN0IGludGVsX2hkY3AgKmhkY3AgPSAmY29ubmVjdG9yLT5oZGNwOwo+ID4gPiArCWVudW0gcG9y dCBwb3J0ID0gY29ubmVjdG9yLT5lbmNvZGVyLT5wb3J0Owo+ID4gPiArCj4gPiA+ICsJaW50IHJl dCA9IDA7Cj4gPiA+ICsKPiA+ID4gKwlpZiAoIWhkY3AtPnNoaW0pCj4gPiA+ICsJCXJldHVybiAt RU5PRU5UOwo+ID4gV2h5IGlzIHRoaXMgcG9zc2libGU/IFNob3VsZCB3ZSB3cmFwIGl0IGludG8g YXQgbGVhc3QgYSBXQVJOX09OPwo+IAo+IHdlIGNvdWxkIGxhbmQgaGVyZSBmcm9tIENQX0lSUSwg d2l0aCBoZGNwX2V4aXQgY2FsbGVkIGZvciBzaGltIHJlbW92YWwuCj4gQnV0IGNvdWxkIGF2b2lk IGlmIHdlIGFzc2VydCBvbiB0aGUgSERDUCBhdXRoL2VuY3J5cHQgc3RhdHVzIG9mIHRoZSBwb3J0 Cj4gYmVmb3JlIGNoZWNrX2xpbmsuCj4gCj4gPiAKPiA+ID4gKwo+ID4gPiArCW11dGV4X2xvY2so JmhkY3AtPm11dGV4KTsKPiA+ID4gKwo+ID4gPiArCWlmIChoZGNwLT52YWx1ZSA9PSBEUk1fTU9E RV9DT05URU5UX1BST1RFQ1RJT05fVU5ERVNJUkVEKQo+ID4gPiArCQlnb3RvIG91dDsKPiA+ID4g Kwo+ID4gPiArCWlmICghKEk5MTVfUkVBRChIRENQMl9TVEFUVVNfRERJKHBvcnQpKSAmIExJTktf RU5DUllQVElPTl9TVEFUVVMpKSB7Cj4gPiA+ICsJCURSTV9FUlJPUigiSERDUDIuMiBjaGVjayBm YWlsZWQ6IGxpbmsgaXMgbm90IGVuY3J5cHRlZCwgJXhcbiIsCj4gPiA+ICsJCQkgIEk5MTVfUkVB RChIRENQMl9TVEFUVVNfRERJKHBvcnQpKSk7Cj4gPiA+ICsJCXJldCA9IC1FTlhJTzsKPiA+ID4g KwkJaGRjcC0+dmFsdWUgPSBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fREVTSVJFRDsKPiA+ ID4gKwkJc2NoZWR1bGVfd29yaygmaGRjcC0+cHJvcF93b3JrKTsKPiA+ID4gKwkJZ290byBvdXQ7 Cj4gPiA+ICsJfQo+ID4gPiArCj4gPiA+ICsJcmV0ID0gaGRjcC0+c2hpbS0+Y2hlY2tfMl8yX2xp bmsoaW50ZWxfZGlnX3BvcnQpOwo+ID4gPiArCWlmIChyZXQgPT0gRFJNX0hEQ1BfTElOS19QUk9U RUNURUQpIHsKPiA+ID4gKwkJaWYgKGhkY3AtPnZhbHVlICE9IERSTV9NT0RFX0NPTlRFTlRfUFJP VEVDVElPTl9VTkRFU0lSRUQpIHsKPiA+ID4gKwkJCWhkY3AtPnZhbHVlID0gRFJNX01PREVfQ09O VEVOVF9QUk9URUNUSU9OX0VOQUJMRUQ7Cj4gPiA+ICsJCQlzY2hlZHVsZV93b3JrKCZoZGNwLT5w cm9wX3dvcmspOwo+ID4gPiArCQl9Cj4gPiA+ICsJCWdvdG8gb3V0Owo+ID4gPiArCX0KPiA+ID4g Kwo+ID4gPiArCURSTV9ERUJVR19LTVMoIlslczolZF0gSERDUDIuMiBsaW5rIGZhaWxlZCwgcmV0 cnlpbmcgYXV0aFxuIiwKPiA+ID4gKwkJICAgICAgY29ubmVjdG9yLT5iYXNlLm5hbWUsIGNvbm5l Y3Rvci0+YmFzZS5iYXNlLmlkKTsKPiA+ID4gKwo+ID4gPiArCXJldCA9IF9pbnRlbF9oZGNwMl9k aXNhYmxlKGNvbm5lY3Rvcik7Cj4gPiA+ICsJaWYgKHJldCkgewo+ID4gPiArCQlEUk1fRVJST1Io IlslczolZF0gRmFpbGVkIHRvIGRpc2FibGUgaGRjcDIuMiAoJWQpXG4iLAo+ID4gPiArCQkJICBj b25uZWN0b3ItPmJhc2UubmFtZSwgY29ubmVjdG9yLT5iYXNlLmJhc2UuaWQsIHJldCk7Cj4gPiA+ ICsJCWhkY3AtPnZhbHVlID0gRFJNX01PREVfQ09OVEVOVF9QUk9URUNUSU9OX0RFU0lSRUQ7Cj4g PiA+ICsJCXNjaGVkdWxlX3dvcmsoJmhkY3AtPnByb3Bfd29yayk7Cj4gPiA+ICsJCWdvdG8gb3V0 Owo+ID4gPiArCX0KPiA+ID4gKwo+ID4gPiArCXJldCA9IF9pbnRlbF9oZGNwMl9lbmFibGUoY29u bmVjdG9yKTsKPiA+ID4gKwlpZiAocmV0KSB7Cj4gPiA+ICsJCURSTV9ERUJVR19LTVMoIlslczol ZF0gRmFpbGVkIHRvIGVuYWJsZSBoZGNwMi4yICglZClcbiIsCj4gPiA+ICsJCQkgICAgICBjb25u ZWN0b3ItPmJhc2UubmFtZSwgY29ubmVjdG9yLT5iYXNlLmJhc2UuaWQsCj4gPiA+ICsJCQkgICAg ICByZXQpOwo+ID4gPiArCQloZGNwLT52YWx1ZSA9IERSTV9NT0RFX0NPTlRFTlRfUFJPVEVDVElP Tl9ERVNJUkVEOwo+ID4gPiArCQlzY2hlZHVsZV93b3JrKCZoZGNwLT5wcm9wX3dvcmspOwo+ID4g PiArCQlnb3RvIG91dDsKPiA+ID4gKwl9Cj4gPiA+ICsKPiA+ID4gK291dDoKPiA+ID4gKwltdXRl eF91bmxvY2soJmhkY3AtPm11dGV4KTsKPiA+ID4gKwlyZXR1cm4gcmV0Owo+ID4gPiArfQo+ID4g PiArCj4gPiA+ICtzdGF0aWMgdm9pZCBpbnRlbF9oZGNwMl9jaGVja193b3JrKHN0cnVjdCB3b3Jr X3N0cnVjdCAqd29yaykKPiA+ID4gK3sKPiA+ID4gKwlzdHJ1Y3QgaW50ZWxfaGRjcCAqaGRjcCA9 IGNvbnRhaW5lcl9vZih0b19kZWxheWVkX3dvcmsod29yayksCj4gPiA+ICsJCQkJCSAgICAgICBz dHJ1Y3QgaW50ZWxfaGRjcCwKPiA+ID4gKwkJCQkJICAgICAgIGhkY3AyX2NoZWNrX3dvcmspOwo+ ID4gPiArCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciA9IGludGVsX2hkY3BfdG9f Y29ubmVjdG9yKGhkY3ApOwo+ID4gPiArCj4gPiA+ICsJaWYgKCFpbnRlbF9oZGNwMl9jaGVja19s aW5rKGNvbm5lY3RvcikpCj4gPiA+ICsJCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmaGRjcC0+aGRj cDJfY2hlY2tfd29yaywKPiA+ID4gKwkJCQkgICAgICBEUk1fSERDUDJfQ0hFQ0tfUEVSSU9EX01T KTsKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiAgIHN0YXRpYyBpbnQgaTkxNV9oZGNwX2NvbXBvbmVu dF9tYXN0ZXJfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gPiA+ICAgewo+ID4gPiAgIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBrZGV2X3RvX2k5MTUoZGV2KTsKPiA+ID4g QEAgLTE3NjIsNiArMTgzNyw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2hkY3AyX2luaXQoc3RydWN0 IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ID4gPiAgIAkJcmV0dXJuOwo+ID4gPiAgIAl9 Cj4gPiA+ICsJSU5JVF9ERUxBWUVEX1dPUksoJmhkY3AtPmhkY3AyX2NoZWNrX3dvcmssIGludGVs X2hkY3AyX2NoZWNrX3dvcmspOwo+ID4gPiAgIAloZGNwLT5oZGNwMl9zdXBwb3J0ZWQgPSAxOwo+ ID4gPiAgIH0KPiA+ID4gQEAgLTE4MzYsOCArMTkxMiwxMiBAQCBpbnQgaW50ZWxfaGRjcF9lbmFi bGUoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ID4gPiAgIAkgKiBDb25zaWRl cmluZyB0aGF0IEhEQ1AyLjIgaXMgbW9yZSBzZWN1cmUgdGhhbiBIRENQMS40LCBJZiB0aGUgc2V0 dXAKPiA+ID4gICAJICogaXMgY2FwYWJsZSBvZiBIRENQMi4yLCBpdCBpcyBwcmVmZXJyZWQgdG8g dXNlIEhEQ1AyLjIuCj4gPiA+ICAgCSAqLwo+ID4gPiAtCWlmIChpbnRlbF9oZGNwMl9jYXBhYmxl KGNvbm5lY3RvcikpCj4gPiA+ICsJaWYgKGludGVsX2hkY3AyX2NhcGFibGUoY29ubmVjdG9yKSkg ewo+ID4gPiAgIAkJcmV0ID0gX2ludGVsX2hkY3AyX2VuYWJsZShjb25uZWN0b3IpOwo+ID4gPiAr CQlpZiAoIXJldCkKPiA+ID4gKwkJCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmaGRjcC0+aGRjcDJf Y2hlY2tfd29yaywKPiA+ID4gKwkJCQkJICAgICAgRFJNX0hEQ1AyX0NIRUNLX1BFUklPRF9NUyk7 Cj4gPiA+ICsJfQo+ID4gPiAgIAkvKiBXaGVuIEhEQ1AyLjIgZmFpbHMsIEhEQ1AxLjQgd2lsbCBi ZSBhdHRlbXB0ZWQgKi8KPiA+ID4gICAJaWYgKHJldCAmJiBpbnRlbF9oZGNwX2NhcGFibGUoY29u bmVjdG9yKSkgewo+ID4gPiBAQCAtMTg3Niw2ICsxOTU2LDcgQEAgaW50IGludGVsX2hkY3BfZGlz YWJsZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4gPiA+ICAgCW11dGV4X3Vu bG9jaygmaGRjcC0+bXV0ZXgpOwo+ID4gPiAgIAljYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJmhk Y3AtPmNoZWNrX3dvcmspOwo+ID4gPiArCWNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygmaGRjcC0+ aGRjcDJfY2hlY2tfd29yayk7Cj4gPiA+ICAgCXJldHVybiByZXQ7Cj4gPiA+ICAgfQo+ID4gPiBk aWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2hkY3AuaCBiL2luY2x1ZGUvZHJtL2RybV9oZGNw LmgKPiA+ID4gaW5kZXggM2U0NWE3NjE4YWIzLi5iZTA3YTJiNTZkMjMgMTAwNjQ0Cj4gPiA+IC0t LSBhL2luY2x1ZGUvZHJtL2RybV9oZGNwLmgKPiA+ID4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2hk Y3AuaAo+ID4gPiBAQCAtMTEsNiArMTEsMTQgQEAKPiA+ID4gICAvKiBQZXJpb2Qgb2YgaGRjcCBj aGVja3MgKHRvIGVuc3VyZSB3ZSdyZSBzdGlsbCBhdXRoZW50aWNhdGVkKSAqLwo+ID4gPiAgICNk ZWZpbmUgRFJNX0hEQ1BfQ0hFQ0tfUEVSSU9EX01TCQkoMTI4ICogMTYpCj4gPiA+ICsjZGVmaW5l IERSTV9IRENQMl9DSEVDS19QRVJJT0RfTVMJCTUwMAo+ID4gPiArCj4gPiA+ICtlbnVtIGNoZWNr X2xpbmtfcmVzcG9uc2Ugewo+ID4gPiArCURSTV9IRENQX0xJTktfUFJPVEVDVEVECT0gMCwKPiA+ ID4gKwlEUk1fSERDUF9UT1BPTE9HWV9DSEFOR0UsCj4gPiA+ICsJRFJNX0hEQ1BfTElOS19JTlRF R1JJVFlfRkFJTFVSRSwKPiA+ID4gKwlEUk1fSERDUF9SRUFVVEhfUkVRVUVTVAo+ID4gPiArfTsK PiA+IFRoZSBkcm1faGRjcC5oIGNoYW5nZXMgbmVlZCB0byBiZSBhbGwgc3BsaXQgb3V0IGludG8g c2VwZWFyYXRlIHBhdGNoZXMgSQo+ID4gdGhpbmsuIEp1c3QgZm9yIGhpZ2hsaWdodGluZyBvZiB0 aGUgbmV3IHNoYXJlZCBiaXRzLiBBbHNvIGFwcGxpZXMgdG8gdGhlCj4gPiBwcmV2aW91cyBvbmUu Cj4gCj4gSXMgdGhpcyBzcGVjaWZpYyB0byBkcm1faGRjcC5oPyBJbiB0aGUgcHJldmlvdXMgdmVy c2lvbiBpIGhhZCBhbGwgaGVhZGVyCj4gY2hhbmdlcyBpbiBhIHNpbmdsZSBwYXRjaC4gQnV0IFNl YW5wYXVsIHN1Z2dlc3RlZCBmb3IgYmV0dGVyIHVuZGVyc3RhbmRpbmcKPiBvZiB0aGUgY2hhbmdl cywgdG8gaW50cm9kdWNlIHRoZSBjaGFuZ2VzIGF0IHRoZSBwYXRjaGVzIHdoZXJlIHRoZXkgYXJl IHVzZWQuCgpIbSwgY29uZmxpY3RpbmcgcmV2aWV3IGNvbW1lbnRzIDotLwoKPiBTdGlsbCBzaG91 bGQgd2UgZ28gYmFjayBvbiB0aGlzPwoKV2UgbmVlZCBhY2tzIGZvciBhbGwgZHJtIGNoYW5nZXMg d2hlbiB3ZSB3YW50IHRvIG1lcmdlIHRoZW0gdGhyb3VnaApkcm0taW50ZWwgKHdoaWNoIEkgdGhp bmsgaXMgdGhlIGJlc3QgdHJlZSBmb3IgdGhpcyBzZXJpZXMpLiBTbyBpdCBoZWxwcyB0bwpzcGxp dCB0aGVtIG91dC4gWW91IGNhbiBzdGlsbCBoYXZlIHRoZW0gYWxsIGp1c3Qgc3BsaXQgb3V0IHJp Z2h0IGJlZm9yZQp0aGUgaTkxNSBwYXRjaCB0aGF0IHVzZXMgdGhlIG5ldyBmdW5jdGlvbnMgKGlu c3RlYWQgb2Ygb25lIG92ZXJhbGwKZHJtX2hkY3AuaCBwYXRjaCwgd2hpY2ggSSBhZ3JlZSB3aXRo IFNlYW4gY2FuIGJlIHRyaWNreSB0byB1bmRlcnN0YW5kKS4KClNlcGFyYXRlIHBhdGNoIGlzIG1v cmUgdG8gaGlnaGxpZ2h0IHRvIG5vbi1pbnRlbCBwZW9wbGUgdGhhdCB3ZSdyZQp0b3VjaGluZyBj b3JlIGNvZGUgaGVyZSB0b28uCi1EYW5pZWwKCj4gCj4gLS1SYW0KPiAKPiA+IAo+ID4gT3RoZXJ3 aXNlIGxvb2tzIGFsbCByZWFzb25hYmxlLgo+ID4gLURhbmllbAo+ID4gCj4gPiAKPiA+ID4gICAv KiBTaGFyZWQgbGVuZ3Rocy9tYXNrcyBiZXR3ZWVuIEhETUkvRFZJL0Rpc3BsYXlQb3J0ICovCj4g PiA+ICAgI2RlZmluZSBEUk1fSERDUF9BTl9MRU4JCQkJOAo+ID4gPiAtLSAKPiA+ID4gMi43LjQK PiA+ID4gCgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9y YXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==