From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH 3/8] drm/i915: Revoke mmaps and prevent access to fence registers across reset Date: Thu, 07 Feb 2019 17:05:24 +0200 Message-ID: <87mun73ah7.fsf@gaia.fi.intel.com> References: <20190207071829.5574-1-chris@chris-wilson.co.uk> <20190207071829.5574-3-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 74E9B6EC60 for ; Thu, 7 Feb 2019 15:05:35 +0000 (UTC) In-Reply-To: <20190207071829.5574-3-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+IHdyaXRlczoKCj4gUHJldmlv dXNseSwgd2Ugd2VyZSBhYmxlIHRvIHJlbHkgb24gdGhlIHJlY3Vyc2l2ZSBwcm9wZXJ0aWVzIG9m Cj4gc3RydWN0X211dGV4IHRvIGFsbG93IHVzIHRvIHNlcmlhbGlzZSByZXZva2luZyBtbWFwcyBh bmQgcmVhY3F1aXJpbmcgdGhlCj4gRkVOQ0UgcmVnaXN0ZXJzIHdpdGggdGhlbSBiZWluZyBjbG9i YmVyZWQgb3ZlciBhIGdsb2JhbCBkZXZpY2UgcmVzZXQuCj4gSSB0aGVuIHByb2NlZWRlZCB0byB0 aHJvdyBvdXQgdGhlIGJhYnkgd2l0aCB0aGUgYmF0aCB3YXRlciBpbiBvcmRlciB0bwo+IHB1cnN1 ZSBhIHN0cnVjdF9tdXRleC1sZXNzIHJlc2V0Lgo+Cj4gUGVydXNpbmcgTFdOIGZvciBhbHRlcm5h dGl2ZSBzdHJhdGVnaWVzLCB0aGUgZGlsZW1tYSBvbiBob3cgdG8gc2VyaWFsaXNlCj4gYWNjZXNz IHRvIGEgZ2xvYmFsIHJlc291cmNlIG9uIG9uZSBzaWRlIHdhcyBhbnN3ZXJlZCBieQo+IGh0dHBz Oi8vbHduLm5ldC9BcnRpY2xlcy8yMDI4NDcvIC0tIFNsZWVwYWJsZSBSQ1U6CgpUaGlzIGhhcyBi ZWVuIGEgaGVscGZ1bCByZWZlcmVuY2UgZm9yIHVuZGVyc3RhbmRpbmcgdGhpcyBwYXRjaC4KCj4K PiAgICAgMSAgaW50IHJlYWRzaWRlKHZvaWQpIHsKPiAgICAgMiAgICAgIGludCBpZHg7Cj4gICAg IDMgICAgICByY3VfcmVhZF9sb2NrKCk7Cj4gICAgIDQJICAgaWYgKG5vbW9yZXNyY3UpIHsKPiAg ICAgNSAgICAgICAgICByY3VfcmVhZF91bmxvY2soKTsKPiAgICAgNgkgICAgICAgcmV0dXJuIC1F SU5WQUw7Cj4gICAgIDcgICAgICB9Cj4gICAgIDgJICAgaWR4ID0gc3JjdV9yZWFkX2xvY2soJnNz KTsKPiAgICAgOQkgICByY3VfcmVhZF91bmxvY2soKTsKPiAgICAgMTAJICAgLyogU1JDVSByZWFk LXNpZGUgY3JpdGljYWwgc2VjdGlvbi4gKi8KPiAgICAgMTEJICAgc3JjdV9yZWFkX3VubG9jaygm c3MsIGlkeCk7Cj4gICAgIDEyCSAgIHJldHVybiAwOwo+ICAgICAxMyB9Cj4gICAgIDE0Cj4gICAg IDE1IHZvaWQgY2xlYW51cCh2b2lkKQo+ICAgICAxNiB7Cj4gICAgIDE3ICAgICBub21vcmVzcmN1 ID0gMTsKPiAgICAgMTggICAgIHN5bmNocm9uaXplX3JjdSgpOwo+ICAgICAxOSAgICAgc3luY2hy b25pemVfc3JjdSgmc3MpOwo+ICAgICAyMCAgICAgY2xlYW51cF9zcmN1X3N0cnVjdCgmc3MpOwo+ ICAgICAyMSB9Cj4KPiBObyBtb3JlIHdvcnJ5aW5nIGFib3V0IHN0b3BfbWFjaGluZSwganVzdCBh biB1YmVyLWNvbXBsZXggbXV0ZXgsCj4gb3B0aW1pc2VkIGZvciByZWFkcywgd2l0aCB0aGUgb3Zl cmhlYWQgcHVzaGVkIHRvIHRoZSByYXJlIHJlc2V0IHBhdGguCj4KPiBIb3dldmVyLCB3ZSBkbyBy dW4gdGhlIHJpc2sgb2YgYSBkZWFkbG9jayBhcyB3ZSBhbGxvY2F0ZSB1bmRlcm5lYXRoIHRoZQo+ IFNSQ1UgcmVhZCBsb2NrLCBhbmQgdGhlIGFsbG9jYXRpb24gbWF5IHJlcXVpcmUgYSBHUFUgcmVz ZXQsIGNhdXNpbmcgYQo+IGRlcGVuZGVuY3kgY3ljbGUgdmlhIHRoZSBpbi1mbGlnaHQgcmVxdWVz dHMuIFdlIHJlc29sdmUgdGhhdCBieSBkZWNsYXJpbmcKPiB0aGUgZHJpdmVyIHdlZGdlZCBhbmQg Y2FuY2VsbGluZyBhbGwgaW4tZmxpZ2h0IHJlbmRlcmluZy4KPgo+IHYyOiBVc2UgZXhwZWRpdGVk IHJjdSBiYXJyaWVycyB0byBtYXRjaCBvdXIgZWFybGllciB0aW1pbmcKPiBjaGFyYWN0ZXJpc3Rp Y3MuCj4gdjM6IFRyeSB0byBhbm5vdGF0ZSBsb2NraW5nIGNvbnRleHRzIGZvciBzcGFyc2UKPiB2 NDogUmVkdWNlIHNlbGZ0ZXN0IGxvY2sgZHVyYXRpb24gdG8gYXZvaWQgYSByZXNldCBkZWFkbG9j ayB3aXRoIGZlbmNlcwo+IHY1OiBzL3NyY3UvcmVzZXRfYmFja29mZl9zcmN1Lwo+IHY2OiBSZW1v dmUgbW9yZSBzdGFsZSBjb21tZW50cwo+Cj4gVGVzdGNhc2U6IGlndC9nZW1fbW1hcF9ndHQvaGFu Zwo+IEZpeGVzOiBlYjhkMGY1YWY0ZWMgKCJkcm0vaTkxNTogUmVtb3ZlIEdQVSByZXNldCBkZXBl bmRlbmNlIG9uIHN0cnVjdF9tdXRleCIpCj4gU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxj aHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gQ2M6IE1pa2EgS3VvcHBhbGEgPG1pa2Eua3VvcHBh bGFAaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMu YyAgICAgICAgICAgfCAgMTIgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAg ICAgICAgICAgICAgIHwgIDE4ICstLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5j ICAgICAgICAgICAgICAgfCAgNTYgKysrLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2ZlbmNlX3JlZy5jICAgICB8ICAzNiArKy0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9ncHVfZXJyb3IuaCAgICAgICAgIHwgIDM5ICsrLS0tLS0KPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9yZXNldC5jICAgICAgICAgICAgIHwgMTEwICsrKysrKysrKysrLS0tLS0t LQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Jlc2V0LmggICAgICAgICAgICAgfCAgIDQg Kwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgICAgICAgICAgfCAgIDMg LQo+ICAuLi4vZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9oYW5nY2hlY2suYyAgfCAgIDUg Ky0KPiAgLi4uL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19nZW1fZGV2aWNlLmMgIHwgICAx ICsKPiAgMTAgZmlsZXMgY2hhbmdlZCwgMTE3IGluc2VydGlvbnMoKyksIDE2NyBkZWxldGlvbnMo LSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gaW5kZXggMGJkODkwYzA0ZmU0 Li5hNmZkMTU3YjE2MzcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k ZWJ1Z2ZzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+IEBA IC0xMjgxLDE0ICsxMjgxLDExIEBAIHN0YXRpYyBpbnQgaTkxNV9oYW5nY2hlY2tfaW5mbyhzdHJ1 Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKPiAgCWludGVsX3dha2VyZWZfdCB3YWtlcmVm Owo+ICAJZW51bSBpbnRlbF9lbmdpbmVfaWQgaWQ7Cj4gIAo+ICsJc2VxX3ByaW50ZihtLCAiUmVz ZXQgZmxhZ3M6ICVseFxuIiwgZGV2X3ByaXYtPmdwdV9lcnJvci5mbGFncyk7Cj4gIAlpZiAodGVz dF9iaXQoSTkxNV9XRURHRUQsICZkZXZfcHJpdi0+Z3B1X2Vycm9yLmZsYWdzKSkKPiAtCQlzZXFf cHV0cyhtLCAiV2VkZ2VkXG4iKTsKPiArCQlzZXFfcHV0cyhtLCAiXHRXZWRnZWRcbiIpOwo+ICAJ aWYgKHRlc3RfYml0KEk5MTVfUkVTRVRfQkFDS09GRiwgJmRldl9wcml2LT5ncHVfZXJyb3IuZmxh Z3MpKQo+IC0JCXNlcV9wdXRzKG0sICJSZXNldCBpbiBwcm9ncmVzczogc3RydWN0X211dGV4IGJh Y2tvZmZcbiIpOwo+IC0JaWYgKHdhaXRxdWV1ZV9hY3RpdmUoJmRldl9wcml2LT5ncHVfZXJyb3Iu d2FpdF9xdWV1ZSkpCj4gLQkJc2VxX3B1dHMobSwgIldhaXRlciBob2xkaW5nIHN0cnVjdCBtdXRl eFxuIik7Cj4gLQlpZiAod2FpdHF1ZXVlX2FjdGl2ZSgmZGV2X3ByaXYtPmdwdV9lcnJvci5yZXNl dF9xdWV1ZSkpCj4gLQkJc2VxX3B1dHMobSwgInN0cnVjdF9tdXRleCBibG9ja2VkIGZvciByZXNl dFxuIik7Cj4gKwkJc2VxX3B1dHMobSwgIlx0RGV2aWNlIChnbG9iYWwpIHJlc2V0IGluIHByb2dy ZXNzXG4iKTsKPiAgCj4gIAlpZiAoIWk5MTVfbW9kcGFyYW1zLmVuYWJsZV9oYW5nY2hlY2spIHsK PiAgCQlzZXFfcHV0cyhtLCAiSGFuZ2NoZWNrIGRpc2FibGVkXG4iKTsKPiBAQCAtMzg4NSw5ICsz ODgyLDYgQEAgaTkxNV93ZWRnZWRfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpCj4gIAkgKiB3aGls ZSBpdCBpcyB3cml0aW5nIHRvICdpOTE1X3dlZGdlZCcKPiAgCSAqLwo+ICAKPiAtCWlmIChpOTE1 X3Jlc2V0X2JhY2tvZmYoJmk5MTUtPmdwdV9lcnJvcikpCj4gLQkJcmV0dXJuIC1FQUdBSU47Cj4g LQo+ICAJaTkxNV9oYW5kbGVfZXJyb3IoaTkxNSwgdmFsLCBJOTE1X0VSUk9SX0NBUFRVUkUsCj4g IAkJCSAgIk1hbnVhbGx5IHNldCB3ZWRnZWQgZW5naW5lIG1hc2sgPSAlbGx4IiwgdmFsKTsKPiAg CXJldHVybiAwOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IGEyMjkzMTUyY2I2YS4u MzcyMzBhZTdmYmU2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTI5ODksNyAr Mjk4OSwxMiBAQCBpOTE1X2dlbV9vYmpfZmluaXNoX3NobWVtX2FjY2VzcyhzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqKQo+ICAJaTkxNV9nZW1fb2JqZWN0X3VucGluX3BhZ2VzKG9iaik7 Cj4gIH0KPiAgCj4gLWludCBfX211c3RfY2hlY2sgaTkxNV9tdXRleF9sb2NrX2ludGVycnVwdGli bGUoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gK3N0YXRpYyBpbmxpbmUgaW50IF9fbXVzdF9j aGVjawo+ICtpOTE1X211dGV4X2xvY2tfaW50ZXJydXB0aWJsZShzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQo+ICt7Cj4gKwlyZXR1cm4gbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCZkZXYtPnN0cnVj dF9tdXRleCk7Cj4gK30KPiArCj4gIGludCBpOTE1X2dlbV9kdW1iX2NyZWF0ZShzdHJ1Y3QgZHJt X2ZpbGUgKmZpbGVfcHJpdiwKPiAgCQkJIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJCSBz dHJ1Y3QgZHJtX21vZGVfY3JlYXRlX2R1bWIgKmFyZ3MpOwo+IEBAIC0zMDA2LDIxICszMDExLDEx IEBAIGludCBfX211c3RfY2hlY2sgaTkxNV9nZW1fc2V0X2dsb2JhbF9zZXFubyhzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCB1MzIgc2Vxbm8pOwo+ICBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICoKPiAgaTkx NV9nZW1fZmluZF9hY3RpdmVfcmVxdWVzdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUp Owo+ICAKPiAtc3RhdGljIGlubGluZSBib29sIGk5MTVfcmVzZXRfYmFja29mZihzdHJ1Y3QgaTkx NV9ncHVfZXJyb3IgKmVycm9yKQo+IC17Cj4gLQlyZXR1cm4gdW5saWtlbHkodGVzdF9iaXQoSTkx NV9SRVNFVF9CQUNLT0ZGLCAmZXJyb3ItPmZsYWdzKSk7Cj4gLX0KPiAtCj4gIHN0YXRpYyBpbmxp bmUgYm9vbCBpOTE1X3Rlcm1pbmFsbHlfd2VkZ2VkKHN0cnVjdCBpOTE1X2dwdV9lcnJvciAqZXJy b3IpCj4gIHsKPiAgCXJldHVybiB1bmxpa2VseSh0ZXN0X2JpdChJOTE1X1dFREdFRCwgJmVycm9y LT5mbGFncykpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW5saW5lIGJvb2wgaTkxNV9yZXNldF9iYWNr b2ZmX29yX3dlZGdlZChzdHJ1Y3QgaTkxNV9ncHVfZXJyb3IgKmVycm9yKQo+IC17Cj4gLQlyZXR1 cm4gaTkxNV9yZXNldF9iYWNrb2ZmKGVycm9yKSB8IGk5MTVfdGVybWluYWxseV93ZWRnZWQoZXJy b3IpOwo+IC19Cj4gLQoKU3RhbGUgY29tbWVudHMgaXMgYSBicm9hZCB0ZXJtLCBub3RoaW5nIHRv IGRpc2xpa2UgaGVyZS4gCgo+ICBzdGF0aWMgaW5saW5lIHUzMiBpOTE1X3Jlc2V0X2NvdW50KHN0 cnVjdCBpOTE1X2dwdV9lcnJvciAqZXJyb3IpCj4gIHsKPiAgCXJldHVybiBSRUFEX09OQ0UoZXJy b3ItPnJlc2V0X2NvdW50KTsKPiBAQCAtMzA5Myw3ICszMDg4LDYgQEAgc3RydWN0IGRybV9pOTE1 X2ZlbmNlX3JlZyAqCj4gIGk5MTVfcmVzZXJ2ZV9mZW5jZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpOwo+ICB2b2lkIGk5MTVfdW5yZXNlcnZlX2ZlbmNlKHN0cnVjdCBkcm1faTkx NV9mZW5jZV9yZWcgKmZlbmNlKTsKPiAgCj4gLXZvaWQgaTkxNV9nZW1fcmV2b2tlX2ZlbmNlcyhz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICB2b2lkIGk5MTVfZ2VtX3Jlc3Rv cmVfZmVuY2VzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gIAo+ICB2b2lk IGk5MTVfZ2VtX2RldGVjdF9iaXRfNl9zd2l6emxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gaW5kZXggMDVjZTkxNzZhYzRlLi4x ZWIzYTVmODY1NGMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0u Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBAQCAtMTAwLDQ3ICsx MDAsNiBAQCBzdGF0aWMgdm9pZCBpOTE1X2dlbV9pbmZvX3JlbW92ZV9vYmooc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJc3Bpbl91bmxvY2soJmRldl9wcml2LT5tbS5vYmpl Y3Rfc3RhdF9sb2NrKTsKPiAgfQo+ICAKPiAtc3RhdGljIGludAo+IC1pOTE1X2dlbV93YWl0X2Zv cl9lcnJvcihzdHJ1Y3QgaTkxNV9ncHVfZXJyb3IgKmVycm9yKQo+IC17Cj4gLQlpbnQgcmV0Owo+ IC0KPiAtCW1pZ2h0X3NsZWVwKCk7Cj4gLQo+IC0JLyoKPiAtCSAqIE9ubHkgd2FpdCAxMCBzZWNv bmRzIGZvciB0aGUgZ3B1IHJlc2V0IHRvIGNvbXBsZXRlIHRvIGF2b2lkIGhhbmdpbmcKPiAtCSAq IHVzZXJzcGFjZS4gSWYgaXQgdGFrZXMgdGhhdCBsb25nIHNvbWV0aGluZyByZWFsbHkgYmFkIGlz IGdvaW5nIG9uIGFuZAo+IC0JICogd2Ugc2hvdWxkIHNpbXBseSB0cnkgdG8gYmFpbCBvdXQgYW5k IGZhaWwgYXMgZ3JhY2VmdWxseSBhcyBwb3NzaWJsZS4KPiAtCSAqLwo+IC0JcmV0ID0gd2FpdF9l dmVudF9pbnRlcnJ1cHRpYmxlX3RpbWVvdXQoZXJyb3ItPnJlc2V0X3F1ZXVlLAo+IC0JCQkJCSAg ICAgICAhaTkxNV9yZXNldF9iYWNrb2ZmKGVycm9yKSwKPiAtCQkJCQkgICAgICAgSTkxNV9SRVNF VF9USU1FT1VUKTsKPiAtCWlmIChyZXQgPT0gMCkgewo+IC0JCURSTV9FUlJPUigiVGltZWQgb3V0 IHdhaXRpbmcgZm9yIHRoZSBncHUgcmVzZXQgdG8gY29tcGxldGVcbiIpOwo+IC0JCXJldHVybiAt RUlPOwo+IC0JfSBlbHNlIGlmIChyZXQgPCAwKSB7Cj4gLQkJcmV0dXJuIHJldDsKPiAtCX0gZWxz ZSB7Cj4gLQkJcmV0dXJuIDA7Cj4gLQl9Cj4gLX0KPiAtCj4gLWludCBpOTE1X211dGV4X2xvY2tf aW50ZXJydXB0aWJsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+IC17Cj4gLQlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gLQlpbnQgcmV0Owo+IC0K PiAtCXJldCA9IGk5MTVfZ2VtX3dhaXRfZm9yX2Vycm9yKCZkZXZfcHJpdi0+Z3B1X2Vycm9yKTsK PiAtCWlmIChyZXQpCj4gLQkJcmV0dXJuIHJldDsKPiAtCj4gLQlyZXQgPSBtdXRleF9sb2NrX2lu dGVycnVwdGlibGUoJmRldi0+c3RydWN0X211dGV4KTsKPiAtCWlmIChyZXQpCj4gLQkJcmV0dXJu IHJldDsKPiAtCj4gLQlyZXR1cm4gMDsKPiAtfQo+IC0KPiAgc3RhdGljIHUzMiBfX2k5MTVfZ2Vt X3Bhcmsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4gIHsKPiAgCWludGVsX3dha2Vy ZWZfdCB3YWtlcmVmOwo+IEBAIC0xODY5LDYgKzE4MjgsNyBAQCB2bV9mYXVsdF90IGk5MTVfZ2Vt X2ZhdWx0KHN0cnVjdCB2bV9mYXVsdCAqdm1mKQo+ICAJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7 Cj4gIAlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKPiAgCXBnb2ZmX3QgcGFnZV9vZmZzZXQ7Cj4gKwlp bnQgc3JjdTsKPiAgCWludCByZXQ7Cj4gIAo+ICAJLyogU2FuaXR5IGNoZWNrIHRoYXQgd2UgYWxs b3cgd3JpdGluZyBpbnRvIHRoaXMgb2JqZWN0ICovCj4gQEAgLTE5MDgsNyArMTg2OCw2IEBAIHZt X2ZhdWx0X3QgaTkxNV9nZW1fZmF1bHQoc3RydWN0IHZtX2ZhdWx0ICp2bWYpCj4gIAkJZ290byBl cnJfdW5sb2NrOwo+ICAJfQo+ICAKPiAtCj4gIAkvKiBOb3cgcGluIGl0IGludG8gdGhlIEdUVCBh cyBuZWVkZWQgKi8KPiAgCXZtYSA9IGk5MTVfZ2VtX29iamVjdF9nZ3R0X3BpbihvYmosIE5VTEws IDAsIDAsCj4gIAkJCQkgICAgICAgUElOX01BUFBBQkxFIHwKPiBAQCAtMTk0Niw5ICsxOTA1LDE1 IEBAIHZtX2ZhdWx0X3QgaTkxNV9nZW1fZmF1bHQoc3RydWN0IHZtX2ZhdWx0ICp2bWYpCj4gIAlp ZiAocmV0KQo+ICAJCWdvdG8gZXJyX3VucGluOwo+ICAKPiArCXNyY3UgPSBpOTE1X3Jlc2V0X3Ry eWxvY2soZGV2X3ByaXYpOwo+ICsJaWYgKHNyY3UgPCAwKSB7Cj4gKwkJcmV0ID0gc3JjdTsKPiAr CQlnb3RvIGVycl91bnBpbjsKPiArCX0KPiArCj4gIAlyZXQgPSBpOTE1X3ZtYV9waW5fZmVuY2Uo dm1hKTsKPiAgCWlmIChyZXQpCj4gLQkJZ290byBlcnJfdW5waW47Cj4gKwkJZ290byBlcnJfcmVz ZXQ7Cj4gIAo+ICAJLyogRmluYWxseSwgcmVtYXAgaXQgdXNpbmcgdGhlIG5ldyBHVFQgb2Zmc2V0 ICovCj4gIAlyZXQgPSByZW1hcF9pb19tYXBwaW5nKGFyZWEsCj4gQEAgLTE5NjksNiArMTkzNCw4 IEBAIHZtX2ZhdWx0X3QgaTkxNV9nZW1fZmF1bHQoc3RydWN0IHZtX2ZhdWx0ICp2bWYpCj4gIAo+ ICBlcnJfZmVuY2U6Cj4gIAlpOTE1X3ZtYV91bnBpbl9mZW5jZSh2bWEpOwo+ICtlcnJfcmVzZXQ6 Cj4gKwlpOTE1X3Jlc2V0X3VubG9jayhkZXZfcHJpdiwgc3JjdSk7Cj4gIGVycl91bnBpbjoKPiAg CV9faTkxNV92bWFfdW5waW4odm1hKTsKPiAgZXJyX3VubG9jazoKPiBAQCAtNTMyNiw2ICs1Mjkz LDcgQEAgaW50IGk5MTVfZ2VtX2luaXRfZWFybHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQo+ICAJaW5pdF93YWl0cXVldWVfaGVhZCgmZGV2X3ByaXYtPmdwdV9lcnJvci53YWl0 X3F1ZXVlKTsKPiAgCWluaXRfd2FpdHF1ZXVlX2hlYWQoJmRldl9wcml2LT5ncHVfZXJyb3IucmVz ZXRfcXVldWUpOwo+ICAJbXV0ZXhfaW5pdCgmZGV2X3ByaXYtPmdwdV9lcnJvci53ZWRnZV9tdXRl eCk7Cj4gKwlpbml0X3NyY3Vfc3RydWN0KCZkZXZfcHJpdi0+Z3B1X2Vycm9yLnJlc2V0X2JhY2tv ZmZfc3JjdSk7Cj4gIAo+ICAJYXRvbWljX3NldCgmZGV2X3ByaXYtPm1tLmJzZF9lbmdpbmVfZGlz cGF0Y2hfaW5kZXgsIDApOwo+ICAKPiBAQCAtNTM1OCw2ICs1MzI2LDggQEAgdm9pZCBpOTE1X2dl bV9jbGVhbnVwX2Vhcmx5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCUdF TV9CVUdfT04oYXRvbWljX3JlYWQoJmRldl9wcml2LT5tbS5mcmVlX2NvdW50KSk7Cj4gIAlXQVJO X09OKGRldl9wcml2LT5tbS5vYmplY3RfY291bnQpOwo+ICAKPiArCWNsZWFudXBfc3JjdV9zdHJ1 Y3QoJmRldl9wcml2LT5ncHVfZXJyb3IucmVzZXRfYmFja29mZl9zcmN1KTsKPiArCj4gIAlrbWVt X2NhY2hlX2Rlc3Ryb3koZGV2X3ByaXYtPnByaW9yaXRpZXMpOwo+ICAJa21lbV9jYWNoZV9kZXN0 cm95KGRldl9wcml2LT5kZXBlbmRlbmNpZXMpOwo+ICAJa21lbV9jYWNoZV9kZXN0cm95KGRldl9w cml2LT5yZXF1ZXN0cyk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX2ZlbmNlX3JlZy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZmVuY2VfcmVn LmMKPiBpbmRleCBiZTg5YmQ5NWFiN2MuLjFlYzE0MTdjZjhiNCAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9mZW5jZV9yZWcuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2ZlbmNlX3JlZy5jCj4gQEAgLTI3MCw2ICsyNzAsMTAgQEAgc3Rh dGljIGludCBmZW5jZV91cGRhdGUoc3RydWN0IGRybV9pOTE1X2ZlbmNlX3JlZyAqZmVuY2UsCj4g IAkJcmV0dXJuIDA7Cj4gIAl9Cj4gIAo+ICsJcmV0ID0gaTkxNV9yZXNldF90cnlsb2NrKGZlbmNl LT5pOTE1KTsKPiArCWlmIChyZXQgPCAwKQo+ICsJCWdvdG8gb3V0X3JwbTsKPiArCj4gIAlmZW5j ZV93cml0ZShmZW5jZSwgdm1hKTsKPiAgCWZlbmNlLT52bWEgPSB2bWE7Cj4gIAo+IEBAIC0yNzgs OCArMjgyLDEyIEBAIHN0YXRpYyBpbnQgZmVuY2VfdXBkYXRlKHN0cnVjdCBkcm1faTkxNV9mZW5j ZV9yZWcgKmZlbmNlLAo+ICAJCWxpc3RfbW92ZV90YWlsKCZmZW5jZS0+bGluaywgJmZlbmNlLT5p OTE1LT5tbS5mZW5jZV9saXN0KTsKPiAgCX0KPiAgCj4gKwlpOTE1X3Jlc2V0X3VubG9jayhmZW5j ZS0+aTkxNSwgcmV0KTsKPiArCXJldCA9IDA7Cj4gKwo+ICtvdXRfcnBtOgo+ICAJaW50ZWxfcnVu dGltZV9wbV9wdXQoZmVuY2UtPmk5MTUsIHdha2VyZWYpOwo+IC0JcmV0dXJuIDA7Cj4gKwlyZXR1 cm4gcmV0Owo+ICB9Cj4gIAo+ICAvKioKPiBAQCAtNDQyLDMyICs0NTAsNiBAQCB2b2lkIGk5MTVf dW5yZXNlcnZlX2ZlbmNlKHN0cnVjdCBkcm1faTkxNV9mZW5jZV9yZWcgKmZlbmNlKQo+ICAJbGlz dF9hZGQoJmZlbmNlLT5saW5rLCAmZmVuY2UtPmk5MTUtPm1tLmZlbmNlX2xpc3QpOwo+ICB9Cj4g IAo+IC0vKioKPiAtICogaTkxNV9nZW1fcmV2b2tlX2ZlbmNlcyAtIHJldm9rZSBmZW5jZSBzdGF0 ZQo+IC0gKiBAZGV2X3ByaXY6IGk5MTUgZGV2aWNlIHByaXZhdGUKPiAtICoKPiAtICogUmVtb3Zl cyBhbGwgR1RUIG1tYXBwaW5ncyB2aWEgdGhlIGZlbmNlIHJlZ2lzdGVycy4gVGhpcyBmb3JjZXMg YW55IHVzZXIKPiAtICogb2YgdGhlIGZlbmNlIHRvIHJlYWNxdWlyZSB0aGF0IGZlbmNlIGJlZm9y ZSBjb250aW51aW5nIHdpdGggdGhlaXIgYWNjZXNzLgo+IC0gKiBPbmUgdXNlIGlzIGR1cmluZyBH UFUgcmVzZXQgd2hlcmUgdGhlIGZlbmNlIHJlZ2lzdGVyIGlzIGxvc3QgYW5kIHdlIG5lZWQgdG8K PiAtICogcmV2b2tlIGNvbmN1cnJlbnQgdXNlcnNwYWNlIGFjY2VzcyB2aWEgR1RUIG1tYXBzIHVu dGlsIHRoZSBoYXJkd2FyZSBoYXMgYmVlbgo+IC0gKiByZXNldCBhbmQgdGhlIGZlbmNlIHJlZ2lz dGVycyBoYXZlIGJlZW4gcmVzdG9yZWQuCj4gLSAqLwo+IC12b2lkIGk5MTVfZ2VtX3Jldm9rZV9m ZW5jZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+IC17Cj4gLQlpbnQgaTsK PiAtCj4gLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7 Cj4gLQo+IC0JZm9yIChpID0gMDsgaSA8IGRldl9wcml2LT5udW1fZmVuY2VfcmVnczsgaSsrKSB7 Cj4gLQkJc3RydWN0IGRybV9pOTE1X2ZlbmNlX3JlZyAqZmVuY2UgPSAmZGV2X3ByaXYtPmZlbmNl X3JlZ3NbaV07Cj4gLQo+IC0JCUdFTV9CVUdfT04oZmVuY2UtPnZtYSAmJiBmZW5jZS0+dm1hLT5m ZW5jZSAhPSBmZW5jZSk7Cj4gLQo+IC0JCWlmIChmZW5jZS0+dm1hKQo+IC0JCQlpOTE1X3ZtYV9y ZXZva2VfbW1hcChmZW5jZS0+dm1hKTsKPiAtCX0KPiAtfQo+IC0KPiAgLyoqCj4gICAqIGk5MTVf Z2VtX3Jlc3RvcmVfZmVuY2VzIC0gcmVzdG9yZSBmZW5jZSBzdGF0ZQo+ICAgKiBAZGV2X3ByaXY6 IGk5MTUgZGV2aWNlIHByaXZhdGUKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9ncHVfZXJyb3IuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmgK PiBpbmRleCA1M2IxZjIyZGQzNjUuLmFmYTNhZGIyOGYwMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9ncHVfZXJyb3IuaAo+IEBAIC0yMDQsMzkgKzIwNCwxMyBAQCBzdHJ1Y3QgaTkxNV9n cHVfZXJyb3Igewo+ICAKPiAgCWF0b21pY190IHBlbmRpbmdfZmJfcGluOwo+ICAKPiAtCS8qKgo+ IC0JICogU3RhdGUgdmFyaWFibGUgY29udHJvbGxpbmcgdGhlIHJlc2V0IGZsb3cgYW5kIGNvdW50 Cj4gLQkgKgo+IC0JICogVGhpcyBpcyBhIGNvdW50ZXIgd2hpY2ggZ2V0cyBpbmNyZW1lbnRlZCB3 aGVuIHJlc2V0IGlzIHRyaWdnZXJlZCwKPiAtCSAqCj4gLQkgKiBCZWZvcmUgdGhlIHJlc2V0IGNv bW1lbmNlcywgdGhlIEk5MTVfUkVTRVRfQkFDS09GRiBiaXQgaXMgc2V0Cj4gLQkgKiBtZWFuaW5n IHRoYXQgYW55IHdhaXRlcnMgaG9sZGluZyBvbnRvIHRoZSBzdHJ1Y3RfbXV0ZXggc2hvdWxkCj4g LQkgKiByZWxpbnF1aXNoIHRoZSBsb2NrIGltbWVkaWF0ZWx5IGluIG9yZGVyIGZvciB0aGUgcmVz ZXQgdG8gc3RhcnQuCj4gLQkgKgo+IC0JICogSWYgcmVzZXQgaXMgbm90IGNvbXBsZXRlZCBzdWNj ZXNzZnVsbHksIHRoZSBJOTE1X1dFREdFIGJpdCBpcwo+IC0JICogc2V0IG1lYW5pbmcgdGhhdCBo YXJkd2FyZSBpcyB0ZXJtaW5hbGx5IHNvdXIgYW5kIHRoZXJlIGlzIG5vCj4gLQkgKiByZWNvdmVy eS4gQWxsIHdhaXRlcnMgb24gdGhlIHJlc2V0X3F1ZXVlIHdpbGwgYmUgd29rZW4gd2hlbgo+IC0J ICogdGhhdCBoYXBwZW5zLgo+IC0JICoKPiAtCSAqIFRoaXMgY291bnRlciBpcyB1c2VkIGJ5IHRo ZSB3YWl0X3NlcW5vIGNvZGUgdG8gbm90aWNlIHRoYXQgcmVzZXQKPiAtCSAqIGV2ZW50IGhhcHBl bmVkIGFuZCBpdCBuZWVkcyB0byByZXN0YXJ0IHRoZSBlbnRpcmUgaW9jdGwgKHNpbmNlIG1vc3QK PiAtCSAqIGxpa2VseSB0aGUgc2Vxbm8gaXQgd2FpdGVkIGZvciB3b24ndCBldmVyIHNpZ25hbCBh bnl0aW1lIHNvb24pLgo+IC0JICoKPiAtCSAqIFRoaXMgaXMgaW1wb3J0YW50IGZvciBsb2NrLWZy ZWUgd2FpdCBwYXRocywgd2hlcmUgbm8gY29udGVuZGVkIGxvY2sKPiAtCSAqIG5hdHVyYWxseSBl bmZvcmNlcyB0aGUgY29ycmVjdCBvcmRlcmluZyBiZXR3ZWVuIHRoZSBiYWlsLW91dCBvZiB0aGUK PiAtCSAqIHdhaXRlciBhbmQgdGhlIGdwdSByZXNldCB3b3JrIGNvZGUuCj4gLQkgKi8KCkkgbm90 aWNlZCBhbiBvbmUgbGluZSBjb21tZW50IG9uIGVhcmxpZXIgcGF0Y2guIEkgZG9uJ3Qgd2FudCB0 byBnbwpiYWNrIHRvIHNlZSBpZiBJIGRpZCBub3RpY2UgdGhpcyBlbGVwaGFudCBpbiBoZXJlLgoK Cj4gLQl1bnNpZ25lZCBsb25nIHJlc2V0X2NvdW50Owo+IC0KPiAgCS8qKgo+ICAJICogZmxhZ3M6 IENvbnRyb2wgdmFyaW91cyBzdGFnZXMgb2YgdGhlIEdQVSByZXNldAo+ICAJICoKPiAtCSAqICNJ OTE1X1JFU0VUX0JBQ0tPRkYgLSBXaGVuIHdlIHN0YXJ0IGEgcmVzZXQsIHdlIHdhbnQgdG8gc3Rv cCBhbnkKPiAtCSAqIG90aGVyIHVzZXJzIGFjcXVpcmluZyB0aGUgc3RydWN0X211dGV4LiBUbyBk byB0aGlzIHdlIHNldCB0aGUKPiAtCSAqICNJOTE1X1JFU0VUX0JBQ0tPRkYgYml0IGluIHRoZSBl cnJvciBmbGFncyB3aGVuIHdlIGRldGVjdCBhIHJlc2V0Cj4gLQkgKiBhbmQgdGhlbiBjaGVjayBm b3IgdGhhdCBiaXQgYmVmb3JlIGFjcXVpcmluZyB0aGUgc3RydWN0X211dGV4IChpbgo+IC0JICog aTkxNV9tdXRleF9sb2NrX2ludGVycnVwdGlibGUoKT8pLiBJOTE1X1JFU0VUX0JBQ0tPRkYgc2Vy dmVzIGEKPiAtCSAqIHNlY29uZGFyeSByb2xlIGluIHByZXZlbnRpbmcgdHdvIGNvbmN1cnJlbnQg Z2xvYmFsIHJlc2V0IGF0dGVtcHRzLgo+ICsJICogI0k5MTVfUkVTRVRfQkFDS09GRiAtIFdoZW4g d2Ugc3RhcnQgYSBnbG9iYWwgcmVzZXQsIHdlIG5lZWQgdG8KPiArCSAqIHNlcmlhbGlzZSB3aXRo IGFueSBvdGhlciB1c2VycyBhdHRlbXB0aW5nIHRvIGRvIHRoZSBzYW1lLCBhbmQKPiArCSAqIGFu eSBnbG9iYWwgcmVzb3VyY2VzIHRoYXQgbWF5IGJlIGNsb2JiZXIgYnkgdGhlIHJlc2V0IChzdWNo IGFzCj4gKwkgKiBGRU5DRSByZWdpc3RlcnMpLgo+ICAJICoKPiAgCSAqICNJOTE1X1JFU0VUX0VO R0lORVtudW1fZW5naW5lc10gLSBTaW5jZSB0aGUgZHJpdmVyIGRvZXNuJ3QgbmVlZCB0bwo+ICAJ ICogYWNxdWlyZSB0aGUgc3RydWN0X211dGV4IHRvIHJlc2V0IGFuIGVuZ2luZSwgd2UgbmVlZCBh biBleHBsaWNpdAo+IEBAIC0yNTUsNiArMjI5LDkgQEAgc3RydWN0IGk5MTVfZ3B1X2Vycm9yIHsK PiAgI2RlZmluZSBJOTE1X1JFU0VUX0VOR0lORQkyCj4gICNkZWZpbmUgSTkxNV9XRURHRUQJCShC SVRTX1BFUl9MT05HIC0gMSkKPiAgCj4gKwkvKiogTnVtYmVyIG9mIHRpbWVzIHRoZSBkZXZpY2Ug aGFzIGJlZW4gcmVzZXQgKGdsb2JhbCkgKi8KPiArCXUzMiByZXNldF9jb3VudDsKPiArCj4gIAkv KiogTnVtYmVyIG9mIHRpbWVzIGFuIGVuZ2luZSBoYXMgYmVlbiByZXNldCAqLwo+ICAJdTMyIHJl c2V0X2VuZ2luZV9jb3VudFtJOTE1X05VTV9FTkdJTkVTXTsKPiAgCj4gQEAgLTI3Miw2ICsyNDks OCBAQCBzdHJ1Y3QgaTkxNV9ncHVfZXJyb3Igewo+ICAJICovCj4gIAl3YWl0X3F1ZXVlX2hlYWRf dCByZXNldF9xdWV1ZTsKPiAgCj4gKwlzdHJ1Y3Qgc3JjdV9zdHJ1Y3QgcmVzZXRfYmFja29mZl9z cmN1Owo+ICsKCkkgaG9wZSBpdCBpcyBub3QgdG9vIHZlcmJvc2Ugbm93LiBPbiBmaXJzdCByZWFk aW5nCnRoZSBwYXRjaCB0aGVyZSBpcyBtb3JlIGNvbmZ1c2lvbiBhbmQgb25lIGRlc2lyZXMgZm9y CnZlcmJvc2VuZXNzIG9uIGFsbCB0aGUgcm9wZXMgb25lIGhhbmdzLiBMYXRlciB0aGF0CmRlc2ly ZSBvYnZpb3VzbHkgZGltaW5pc2hlcywgYXNzdW1pbmcKdW5kZXJzdGFuZGluZyBncm93cy4KCkJ1 dCB0aGVyZSBpcyBub3QgbXVjaCBjb2RlIG9uIHRvcCBvZiBpdCBhbmQKb24gdGhlcmUsIHJlYWRl ciBrbm93cyB3aGF0IGl0IGlzIGZvci4KCj4gIAlzdHJ1Y3QgaTkxNV9ncHVfcmVzdGFydCAqcmVz dGFydDsKPiAgfTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cmVzZXQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVzZXQuYwo+IGluZGV4IDBlMGRk ZjJlNjgxNS4uYzY3ZDZjMmEwOWEyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcmVzZXQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVzZXQuYwo+ IEBAIC02MzksNiArNjM5LDMyIEBAIHN0YXRpYyB2b2lkIHJlc2V0X3ByZXBhcmVfZW5naW5lKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgCWVuZ2luZS0+cmVzZXQucHJlcGFyZShl bmdpbmUpOwo+ICB9Cj4gIAo+ICtzdGF0aWMgdm9pZCByZXZva2VfbW1hcHMoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmk5MTUpCj4gK3sKPiArCWludCBpOwo+ICsKPiArCWZvciAoaSA9IDA7IGkg PCBpOTE1LT5udW1fZmVuY2VfcmVnczsgaSsrKSB7Cj4gKwkJc3RydWN0IGRybV92bWFfb2Zmc2V0 X25vZGUgKm5vZGU7Cj4gKwkJc3RydWN0IGk5MTVfdm1hICp2bWE7Cj4gKwkJdTY0IHZtYV9vZmZz ZXQ7Cj4gKwo+ICsJCXZtYSA9IFJFQURfT05DRShpOTE1LT5mZW5jZV9yZWdzW2ldLnZtYSk7Cj4g KwkJaWYgKCF2bWEpCj4gKwkJCWNvbnRpbnVlOwo+ICsKPiArCQlpZiAoIWk5MTVfdm1hX2hhc191 c2VyZmF1bHQodm1hKSkKPiArCQkJY29udGludWU7Cj4gKwo+ICsJCUdFTV9CVUdfT04odm1hLT5m ZW5jZSAhPSAmaTkxNS0+ZmVuY2VfcmVnc1tpXSk7Cj4gKwkJbm9kZSA9ICZ2bWEtPm9iai0+YmFz ZS52bWFfbm9kZTsKPiArCQl2bWFfb2Zmc2V0ID0gdm1hLT5nZ3R0X3ZpZXcucGFydGlhbC5vZmZz ZXQgPDwgUEFHRV9TSElGVDsKPiArCQl1bm1hcF9tYXBwaW5nX3JhbmdlKGk5MTUtPmRybS5hbm9u X2lub2RlLT5pX21hcHBpbmcsCj4gKwkJCQkgICAgZHJtX3ZtYV9ub2RlX29mZnNldF9hZGRyKG5v ZGUpICsgdm1hX29mZnNldCwKPiArCQkJCSAgICB2bWEtPnNpemUsCj4gKwkJCQkgICAgMSk7CgpD b2RlIG1hcHMgdG8gc3Vic2V0IG9mIHZtYV9yZW1vdmVfbW1hcC4gU2xpZ2h0IHBvdGVudGlhbAp0 byBjb25zb2xpZGF0ZSBidXQgdGhpcyB3YXMgbW9yZSBvZiBwZWFjZSBvZiBtaW5kCmNoZWNrIGZv ciByZXZpZXdlciB0aGF0IHRoZSBkZXRhaWxzIGFyZSBpZGVudGljYWwuCgo+ICsJfQo+ICt9Cj4g Kwo+ICBzdGF0aWMgdm9pZCByZXNldF9wcmVwYXJlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpp OTE1KQo+ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Cj4gQEAgLTY0OCw2 ICs2NzQsNyBAQCBzdGF0aWMgdm9pZCByZXNldF9wcmVwYXJlKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICppOTE1KQo+ICAJCXJlc2V0X3ByZXBhcmVfZW5naW5lKGVuZ2luZSk7Cj4gIAo+ICAJaW50 ZWxfdWNfc2FuaXRpemUoaTkxNSk7Cj4gKwlyZXZva2VfbW1hcHMoaTkxNSk7Cj4gIH0KPiAgCj4g IHN0YXRpYyBpbnQgZ3RfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIHVuc2ln bmVkIGludCBzdGFsbGVkX21hc2spCj4gQEAgLTkxMSw1MCArOTM4LDIyIEBAIGJvb2wgaTkxNV9n ZW1fdW5zZXRfd2VkZ2VkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+ICAJcmV0dXJu IHJldDsKPiAgfQo+ICAKPiAtc3RydWN0IF9faTkxNV9yZXNldCB7Cj4gLQlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqaTkxNTsKPiAtCXVuc2lnbmVkIGludCBzdGFsbGVkX21hc2s7Cj4gLX07Cj4g LQo+IC1zdGF0aWMgaW50IF9faTkxNV9yZXNldF9fQktMKHZvaWQgKmRhdGEpCj4gLXsKPiAtCXN0 cnVjdCBfX2k5MTVfcmVzZXQgKmFyZyA9IGRhdGE7Cj4gLQlpbnQgZXJyOwo+IC0KPiAtCWVyciA9 IGludGVsX2dwdV9yZXNldChhcmctPmk5MTUsIEFMTF9FTkdJTkVTKTsKPiAtCWlmIChlcnIpCj4g LQkJcmV0dXJuIGVycjsKPiAtCj4gLQlyZXR1cm4gZ3RfcmVzZXQoYXJnLT5pOTE1LCBhcmctPnN0 YWxsZWRfbWFzayk7Cj4gLX0KPiAtCj4gLSNpZiBSRVNFVF9VTkRFUl9TVE9QX01BQ0hJTkUKPiAt LyoKPiAtICogWFhYIEFuIGFsdGVybmF0aXZlIHRvIHVzaW5nIHN0b3BfbWFjaGluZSB3b3VsZCBi ZSB0byBwYXJrIG9ubHkgdGhlCj4gLSAqIHByb2Nlc3NlcyB0aGF0IGhhdmUgYSBHR1RUIG1tYXAu IEJ5IHJlbW90ZSBwYXJraW5nIHRoZSB0aHJlYWRzIChTSUdTVE9QKQo+IC0gKiB3ZSBzaG91bGQg YmUgYWJsZSB0byBwcmV2ZW50IHRoZWlyIG1lbW1vcnkgYWNjZXNzZXMgdmlhIHRoZSBsb3N0IGZl bmNlCj4gLSAqIHJlZ2lzdGVycyBvdmVyIHRoZSBjb3Vyc2Ugb2YgdGhlIHJlc2V0IHdpdGhvdXQg dGhlIHBvdGVudGlhbCByZWN1cnNpdmUKPiAtICogb2YgbXV0ZXhlcyBiZXR3ZWVuIHRoZSBwYWdl ZmF1bHQgaGFuZGxlciBhbmQgcmVzZXQuCj4gLSAqCj4gLSAqIFNlZSBpZ3QvZ2VtX21tYXBfZ3R0 L2hhbmcKPiAtICovCj4gLSNkZWZpbmUgX19kb19yZXNldChmbiwgYXJnKSBzdG9wX21hY2hpbmUo Zm4sIGFyZywgTlVMTCkKPiAtI2Vsc2UKPiAtI2RlZmluZSBfX2RvX3Jlc2V0KGZuLCBhcmcpIGZu KGFyZykKPiAtI2VuZGlmCj4gLQo+ICBzdGF0aWMgaW50IGRvX3Jlc2V0KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICppOTE1LCB1bnNpZ25lZCBpbnQgc3RhbGxlZF9tYXNrKQo+ICB7Cj4gLQlzdHJ1 Y3QgX19pOTE1X3Jlc2V0IGFyZyA9IHsgaTkxNSwgc3RhbGxlZF9tYXNrIH07Cj4gIAlpbnQgZXJy LCBpOwo+ICAKPiAtCWVyciA9IF9fZG9fcmVzZXQoX19pOTE1X3Jlc2V0X19CS0wsICZhcmcpOwo+ ICsJLyogRmx1c2ggZXZlcnlvbmUgY3VycmVudGx5IHVzaW5nIGEgcmVzb3VyY2UgYWJvdXQgdG8g YmUgY2xvYmJlcmVkICovCj4gKwlzeW5jaHJvbml6ZV9zcmN1KCZpOTE1LT5ncHVfZXJyb3IucmVz ZXRfYmFja29mZl9zcmN1KTsKPiArCj4gKwllcnIgPSBpbnRlbF9ncHVfcmVzZXQoaTkxNSwgQUxM X0VOR0lORVMpOwo+ICAJZm9yIChpID0gMDsgZXJyICYmIGkgPCBSRVNFVF9NQVhfUkVUUklFUzsg aSsrKSB7Cj4gLQkJbXNsZWVwKDEwMCk7Cj4gLQkJZXJyID0gX19kb19yZXNldChfX2k5MTVfcmVz ZXRfX0JLTCwgJmFyZyk7Cj4gKwkJbXNsZWVwKDEwICogKGkgKyAxKSk7Cj4gKwkJZXJyID0gaW50 ZWxfZ3B1X3Jlc2V0KGk5MTUsIEFMTF9FTkdJTkVTKTsKPiAgCX0KPiArCWlmIChlcnIpCj4gKwkJ cmV0dXJuIGVycjsKPiAgCj4gLQlyZXR1cm4gZXJyOwo+ICsJcmV0dXJuIGd0X3Jlc2V0KGk5MTUs IHN0YWxsZWRfbWFzayk7Cj4gIH0KPiAgCj4gIC8qKgo+IEBAIC05NjYsOCArOTY1LDYgQEAgc3Rh dGljIGludCBkb19yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgdW5zaWduZWQg aW50IHN0YWxsZWRfbWFzaykKPiAgICogUmVzZXQgdGhlIGNoaXAuICBVc2VmdWwgaWYgYSBoYW5n IGlzIGRldGVjdGVkLiBNYXJrcyB0aGUgZGV2aWNlIGFzIHdlZGdlZAo+ICAgKiBvbiBmYWlsdXJl Lgo+ICAgKgo+IC0gKiBDYWxsZXIgbXVzdCBob2xkIHRoZSBzdHJ1Y3RfbXV0ZXguCj4gLSAqCj4g ICAqIFByb2NlZHVyZSBpcyBmYWlybHkgc2ltcGxlOgo+ICAgKiAgIC0gcmVzZXQgdGhlIGNoaXAg dXNpbmcgdGhlIHJlc2V0IHJlZwo+ICAgKiAgIC0gcmUtaW5pdCBjb250ZXh0IHN0YXRlCj4gQEAg LTEyNzQsOSArMTI3MSwxMiBAQCB2b2lkIGk5MTVfaGFuZGxlX2Vycm9yKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICppOTE1LAo+ICAJCXdhaXRfZXZlbnQoaTkxNS0+Z3B1X2Vycm9yLnJlc2V0X3F1 ZXVlLAo+ICAJCQkgICAhdGVzdF9iaXQoSTkxNV9SRVNFVF9CQUNLT0ZGLAo+ICAJCQkJICAgICAm aTkxNS0+Z3B1X2Vycm9yLmZsYWdzKSk7Cj4gLQkJZ290byBvdXQ7Cj4gKwkJZ290byBvdXQ7IC8q IHBpZ2d5LWJhY2sgb24gdGhlIG90aGVyIHJlc2V0ICovCj4gIAl9Cj4gIAo+ICsJLyogTWFrZSBz dXJlIGk5MTVfcmVzZXRfdHJ5bG9jaygpIHNlZXMgdGhlIEk5MTVfUkVTRVRfQkFDS09GRiAqLwo+ ICsJc3luY2hyb25pemVfcmN1X2V4cGVkaXRlZCgpOwo+ICsKPiAgCS8qIFByZXZlbnQgYW55IG90 aGVyIHJlc2V0LWVuZ2luZSBhdHRlbXB0LiAqLwo+ICAJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwg aTkxNSwgdG1wKSB7Cj4gIAkJd2hpbGUgKHRlc3RfYW5kX3NldF9iaXQoSTkxNV9SRVNFVF9FTkdJ TkUgKyBlbmdpbmUtPmlkLAo+IEBAIC0xMzAwLDYgKzEzMDAsMzYgQEAgdm9pZCBpOTE1X2hhbmRs ZV9lcnJvcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKPiAgCWludGVsX3J1bnRpbWVf cG1fcHV0KGk5MTUsIHdha2VyZWYpOwo+ICB9Cj4gIAo+ICtpbnQgaTkxNV9yZXNldF90cnlsb2Nr KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+ICt7Cj4gKwlzdHJ1Y3QgaTkxNV9ncHVf ZXJyb3IgKmVycm9yID0gJmk5MTUtPmdwdV9lcnJvcjsKPiArCWludCBzcmN1Owo+ICsKPiArCXJj dV9yZWFkX2xvY2soKTsKPiArCXdoaWxlICh0ZXN0X2JpdChJOTE1X1JFU0VUX0JBQ0tPRkYsICZl cnJvci0+ZmxhZ3MpKSB7CgpUaGUgbWIgaXMgaW1wbGljaXQgaW4gaGVyZSBhbmQgdGhlIGFzIHRo ZSBzZXQgcmV0dXJucwphIHZhbHVlLCBpdCBpcyBleHBsaWNpdCBpbiB3cml0ZSBzaWRlLiBTbyBz aG91bGQgYmUgb2suCgo+ICsJCXJjdV9yZWFkX3VubG9jaygpOwo+ICsKPiArCQlpZiAod2FpdF9l dmVudF9pbnRlcnJ1cHRpYmxlKGVycm9yLT5yZXNldF9xdWV1ZSwKPiArCQkJCQkgICAgICF0ZXN0 X2JpdChJOTE1X1JFU0VUX0JBQ0tPRkYsCj4gKwkJCQkJCSAgICAgICAmZXJyb3ItPmZsYWdzKSkp Cj4gKwkJCXJldHVybiAtRUlOVFI7Cj4gKwo+ICsJCXJjdV9yZWFkX2xvY2soKTsKPiArCX0KPiAr CXNyY3UgPSBzcmN1X3JlYWRfbG9jaygmZXJyb3ItPnJlc2V0X2JhY2tvZmZfc3JjdSk7Cj4gKwly Y3VfcmVhZF91bmxvY2soKTsKPiArCj4gKwlyZXR1cm4gc3JjdTsKPiArfQo+ICsKPiArdm9pZCBp OTE1X3Jlc2V0X3VubG9jayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgaW50IHRhZykK PiArX19yZWxlYXNlcygmaTkxNS0+Z3B1X2Vycm9yLnJlc2V0X2JhY2tvZmZfc3JjdSkKPiArewo+ ICsJc3RydWN0IGk5MTVfZ3B1X2Vycm9yICplcnJvciA9ICZpOTE1LT5ncHVfZXJyb3I7Cj4gKwo+ ICsJc3JjdV9yZWFkX3VubG9jaygmZXJyb3ItPnJlc2V0X2JhY2tvZmZfc3JjdSwgdGFnKTsKPiAr fQo+ICsKPiAgYm9vbCBpOTE1X3Jlc2V0X2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpp OTE1KQo+ICB7Cj4gIAlpbnQgZXJyOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3Jlc2V0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Jlc2V0LmgKPiBpbmRl eCBmMmQzNDdmMzE5ZGYuLjg5M2M1ZDFjMmViOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3Jlc2V0LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Jl c2V0LmgKPiBAQCAtOSw2ICs5LDcgQEAKPiAgCj4gICNpbmNsdWRlIDxsaW51eC9jb21waWxlci5o Pgo+ICAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KPiArI2luY2x1ZGUgPGxpbnV4L3NyY3UuaD4K PiAgCj4gIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlOwo+ICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz Owo+IEBAIC0zMiw2ICszMyw5IEBAIGludCBpOTE1X3Jlc2V0X2VuZ2luZShzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUsCj4gIHZvaWQgaTkxNV9yZXNldF9yZXF1ZXN0KHN0cnVjdCBpOTE1 X3JlcXVlc3QgKnJxLCBib29sIGd1aWx0eSk7Cj4gIGJvb2wgaTkxNV9yZXNldF9mbHVzaChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7Cj4gIAo+ICtpbnQgX19tdXN0X2NoZWNrIGk5MTVf cmVzZXRfdHJ5bG9jayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7Cj4gK3ZvaWQgaTkx NV9yZXNldF91bmxvY2soc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIGludCB0YWcpOwo+ ICsKPiAgYm9vbCBpbnRlbF9oYXNfZ3B1X3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpp OTE1KTsKPiAgYm9vbCBpbnRlbF9oYXNfcmVzZXRfZW5naW5lKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICppOTE1KTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBpbmRleCA5ZWMzZDAw ZmJkMTkuLjUxYTE0NDUzNDUxOSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAg LTk4OSw5ICs5ODksNiBAQCBzdHJ1Y3QgaW50ZWxfY3J0YyB7Cj4gIAo+ICAJc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNvbmZpZzsKPiAgCj4gLQkvKiBnbG9iYWwgcmVzZXQgY291bnQgd2hlbiB0 aGUgbGFzdCBmbGlwIHdhcyBzdWJtaXR0ZWQgKi8KPiAtCXVuc2lnbmVkIGludCByZXNldF9jb3Vu dDsKPiAtCgpUaGVyZSBpcyBhIGV2ZW4gZGlmZmVyZW50IGxldmVsIG9uIHN0YWxlIG9uIHN0YWxl bmVzcy4KCgpPaywgSSByZW1lbWJlciBUdnJ0a28gbWVudGlvbmluZyBvbiBzb21lIHBhdGNoCnRo YXQgaGUgbmVlZGVkIGZldyBob3VycyBhbmQgYSBzbmFja2JyZWFrIGluIGJldHdlZW4Kd2hlbiBy ZXZpZXdpbmcuIEkgJ3dpbicgb24gdGhhdCBmcm9udCwgd2l0aCBhIGxhcmdlCm1hcmdpbi4KCk5v dyB3aGVuIGFsbCBwaWVjZXMgYXJlIGluIHBsYWNlLCBpdCBpcyBhIHRyaWNrXkheSAplbGVnYW50 IHdheSB0byBibG9jayBjbGllbnRzIGZyb20gYWNjZXNzaW5nIG1lbW9yeQp3aGVuIHdlIHB1bGwg b3V0IHRoZSBoYXJkd2FyZSBiZW5lYXRoIHRoZW0uCgpJIGFtIHRvcm4gYmV0d2VlbiBuZWVkaW5n IHRvIGNvbW1lbnQgdGhlIG1lY2hhbmlzbQppbnRvIG1vcmUgdmVyYm9zZSBjb21tZW50LiBCdXQg dGhlbiwgdGhlIGNvbW1lbnRzCmFyZSBhbHJlYWR5IHRoZXJlIGFuZCBpdCBpcyBtb3N0bHkgYWJv dXQKbGVhcm5pbmcgdGhlIHJjdS9zcmN1IGluIGEgbGV2ZWwgdGhhdCBtYWtlcyB5b3UKYmVsaWV2 ZSB0aGlzIHdvcmtzLiBBbmQgdGhlcmUgaXMgcGxlbnR5IG9mCnN1YmplY3QgbWF0ZXJpYWwgb24g dGhhdCB0b3BpYy4KClJldmlld2VkLWJ5OiBNaWthIEt1b3BwYWxhIDxtaWthLmt1b3BwYWxhQGxp bnV4LmludGVsLmNvbT4KCgo+ICAJLyogQWNjZXNzIHRvIHRoZXNlIHNob3VsZCBiZSBwcm90ZWN0 ZWQgYnkgZGV2X3ByaXYtPmlycV9sb2NrLiAqLwo+ICAJYm9vbCBjcHVfZmlmb191bmRlcnJ1bl9k aXNhYmxlZDsKPiAgCWJvb2wgcGNoX2ZpZm9fdW5kZXJydW5fZGlzYWJsZWQ7Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9oYW5nY2hlY2suYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9oYW5nY2hlY2suYwo+IGluZGV4IDdi NmYzYmVhOWVmOC4uNDg4NmZhYzEyNjI4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L3NlbGZ0ZXN0cy9pbnRlbF9oYW5nY2hlY2suYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L3NlbGZ0ZXN0cy9pbnRlbF9oYW5nY2hlY2suYwo+IEBAIC0xMDM5LDggKzEwMzksNiBAQCBz dGF0aWMgaW50IF9faWd0X3Jlc2V0X2V2aWN0X3ZtYShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq aTkxNSwKPiAgCj4gIAkvKiBDaGVjayB0aGF0IHdlIGNhbiByZWNvdmVyIGFuIHVuYmluZCBzdHVj ayBvbiBhIGhhbmdpbmcgcmVxdWVzdCAqLwo+ICAKPiAtCWlndF9nbG9iYWxfcmVzZXRfbG9jayhp OTE1KTsKPiAtCj4gIAltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKPiAgCWVy ciA9IGhhbmdfaW5pdCgmaCwgaTkxNSk7Cj4gIAlpZiAoZXJyKQo+IEBAIC0xMTM4LDcgKzExMzYs OSBAQCBzdGF0aWMgaW50IF9faWd0X3Jlc2V0X2V2aWN0X3ZtYShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqaTkxNSwKPiAgCX0KPiAgCj4gIG91dF9yZXNldDoKPiArCWlndF9nbG9iYWxfcmVzZXRf bG9jayhpOTE1KTsKPiAgCWZha2VfaGFuZ2NoZWNrKHJxLT5pOTE1LCBpbnRlbF9lbmdpbmVfZmxh ZyhycS0+ZW5naW5lKSk7Cj4gKwlpZ3RfZ2xvYmFsX3Jlc2V0X3VubG9jayhpOTE1KTsKPiAgCj4g IAlpZiAodHNrKSB7Cj4gIAkJc3RydWN0IGlndF93ZWRnZV9tZSB3Owo+IEBAIC0xMTU5LDcgKzEx NTksNiBAQCBzdGF0aWMgaW50IF9faWd0X3Jlc2V0X2V2aWN0X3ZtYShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqaTkxNSwKPiAgCWhhbmdfZmluaSgmaCk7Cj4gIHVubG9jazoKPiAgCW11dGV4X3Vu bG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4gLQlpZ3RfZ2xvYmFsX3Jlc2V0X3VubG9j ayhpOTE1KTsKPiAgCj4gIAlpZiAoaTkxNV90ZXJtaW5hbGx5X3dlZGdlZCgmaTkxNS0+Z3B1X2Vy cm9yKSkKPiAgCQlyZXR1cm4gLUVJTzsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvc2VsZnRlc3RzL21vY2tfZ2VtX2RldmljZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2Vs ZnRlc3RzL21vY2tfZ2VtX2RldmljZS5jCj4gaW5kZXggMTRhZTQ2ZmRhNDlmLi5mYzUxNmEyOTcw ZjQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZ2Vt X2RldmljZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZ2Vt X2RldmljZS5jCj4gQEAgLTE4OSw2ICsxODksNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq bW9ja19nZW1fZGV2aWNlKHZvaWQpCj4gIAo+ICAJaW5pdF93YWl0cXVldWVfaGVhZCgmaTkxNS0+ Z3B1X2Vycm9yLndhaXRfcXVldWUpOwo+ICAJaW5pdF93YWl0cXVldWVfaGVhZCgmaTkxNS0+Z3B1 X2Vycm9yLnJlc2V0X3F1ZXVlKTsKPiArCWluaXRfc3JjdV9zdHJ1Y3QoJmk5MTUtPmdwdV9lcnJv ci5yZXNldF9iYWNrb2ZmX3NyY3UpOwo+ICAJbXV0ZXhfaW5pdCgmaTkxNS0+Z3B1X2Vycm9yLndl ZGdlX211dGV4KTsKPiAgCj4gIAlpOTE1LT53cSA9IGFsbG9jX29yZGVyZWRfd29ya3F1ZXVlKCJt b2NrIiwgMCk7Cj4gLS0gCj4gMi4yMC4xCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo=