From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jonathan Marek Subject: Re: [RFC PATCH v1 09/15] drm/msm/gpu: Move address space setup to the GPU targets Date: Fri, 1 Mar 2019 18:01:06 -0500 Message-ID: <3f584b2d-9d9e-e18d-e745-cdb8f3599c59@marek.ca> References: <1551469117-3404-1-git-send-email-jcrouse@codeaurora.org> <1551469117-3404-10-git-send-email-jcrouse@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1551469117-3404-10-git-send-email-jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Jordan Crouse , freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Kees Cook , jean-philippe.brucker-5wv7dgnIgG8@public.gmane.org, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Sharat Masetty , linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, Bjorn Andersson , David Airlie , Rob Clark , dianders-uWgjrcJnOmJ4cg9Nei1l7Q@public.gmane.org, hoegsberg-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org, Mamta Shukla , Thomas Zimmermann , Daniel Vetter , Sean Paul , baolu.lu-VuQAYsv1563Yd54FQh9/CA@public.gmane.org List-Id: dri-devel@lists.freedesktop.org VGhlcmUgaXMgYW4gZXJyb3IgaW4gdGhlIGEyeHggcGFydCBvZiB0aGlzIHBhdGNoOiAweGZmZiBp biBhZHJlbm9fZ3B1LmMgCmJlY2FtZSAweGZmIGluIGEyeHhfZ3B1LmMKCk9uIDMvMS8xOSAyOjM4 IFBNLCBKb3JkYW4gQ3JvdXNlIHdyb3RlOgo+IE1vdmUgdGhlIGFkZHJlc3Mgc3BhY2Ugc3RldXAg Y29kZSBvdXQgb2YgdGhlIGdlbmVyaWMgbXNtIEdQVSBjb2RlIHRvCj4gdG8gdGhlIGluZGl2aWR1 YWwgR1BVIHRhcmdldHMuIFRoaXMgYWxsb3dzIHVzIHRvIGRvIHRhcmdldCBzcGVjaWZpYwo+IHNl dHVwIHN1Y2ggYXMgZ3B1bW11IGZvciBhMnh4IG9yIHNwbGl0IHBhZ2V0YWJsZXMgYW5kIHBlci1p bnN0YW5jZQo+IHBhZ2V0YWJsZXMgZm9yIG5ld2VyIGE1eHggYW5kIGE2eHggdGFyZ2V0cy4gQWxs IHRoaXMgaXMgYXQgdGhlCj4gZXhwZW5zZSBvZiBkdXBsaWNhdGVkIGNvZGUgaW4gc29tZSBvZiB0 aGUgdGFyZ2V0IGZpbGVzIGJ1dCBJIHRoaW5rCj4gaXQgcGF5cyBmb3IgaXRzZWxmIGluIGltcHJv dmVkIGNvZGUgZmxvdyBhbmQgZmxleGliaWxpdHkuCj4gCj4gU2lnbmVkLW9mZi1ieTogSm9yZGFu IENyb3VzZSA8amNyb3VzZUBjb2RlYXVyb3JhLm9yZz4KPiAtLS0KPiAKPiAgIGRyaXZlcnMvZ3B1 L2RybS9tc20vYWRyZW5vL2EyeHhfZ3B1LmMgICB8IDM3ICsrKysrKysrKysrKysrKystLS0tLS0K PiAgIGRyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2EzeHhfZ3B1LmMgICB8IDUwICsrKysrKysr KysrKysrKysrKysrKystLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTR4 eF9ncHUuYyAgIHwgNTEgKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQo+ICAgZHJpdmVy cy9ncHUvZHJtL21zbS9hZHJlbm8vYTV4eF9ncHUuYyAgIHwgMzcgKysrKysrKysrKysrKysrKysr Ky0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTZ4eF9ncHUuYyAgIHwgMzcgKysr KysrKysrKysrKysrKysrKy0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYWRyZW5v X2dwdS5jIHwgIDcgLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dlbS5oICAgICAg ICAgICB8ICAxICsKPiAgIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dwdS5jICAgICAgICAgICB8 IDU0ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJt L21zbS9tc21fZ3B1LmggICAgICAgICAgIHwgIDIgKysKPiAgIDkgZmlsZXMgY2hhbmdlZCwgMTcz IGluc2VydGlvbnMoKyksIDEwMyBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL21zbS9hZHJlbm8vYTJ4eF9ncHUuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRy ZW5vL2EyeHhfZ3B1LmMKPiBpbmRleCAxZjgzYmMxLi40OTI0MWQwIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2EyeHhfZ3B1LmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vbXNtL2FkcmVuby9hMnh4X2dwdS5jCj4gQEAgLTQwMSw2ICs0MDEsMzAgQEAgc3RhdGljIHN0 cnVjdCBtc21fZ3B1X3N0YXRlICphMnh4X2dwdV9zdGF0ZV9nZXQoc3RydWN0IG1zbV9ncHUgKmdw dSkKPiAgIAlyZXR1cm4gc3RhdGU7Cj4gICB9Cj4gICAKPiArc3RhdGljIHN0cnVjdCBtc21fZ2Vt X2FkZHJlc3Nfc3BhY2UgKgo+ICthMnh4X2NyZWF0ZV9hZGRyZXNzX3NwYWNlKHN0cnVjdCBtc21f Z3B1ICpncHUpCj4gK3sKPiArCXN0cnVjdCBtc21fZ2VtX2FkZHJlc3Nfc3BhY2UgKmFzcGFjZTsK PiArCWludCByZXQ7Cj4gKwo+ICsJYXNwYWNlID0gbXNtX2dlbV9hZGRyZXNzX3NwYWNlX2NyZWF0 ZV9hMnh4KCZncHUtPnBkZXYtPmRldiwgZ3B1LAo+ICsJCSJncHUiLCBTWl8xNk0sIFNaXzE2TSAr IDB4ZmYgKiBTWl82NEspOwo+ICsJaWYgKElTX0VSUihhc3BhY2UpKSB7Cj4gKwkJRFJNX0RFVl9F UlJPUihncHUtPmRldi0+ZGV2LAo+ICsJCQkiTm8gbWVtb3J5IHByb3RlY3Rpb24gd2l0aG91dCBN TVVcbiIpOwo+ICsJCXJldHVybiBFUlJfUFRSKC1FTlhJTyk7Cj4gKwl9Cj4gKwo+ICsJcmV0ID0g YXNwYWNlLT5tbXUtPmZ1bmNzLT5hdHRhY2goYXNwYWNlLT5tbXUsIE5VTEwsIDApOwo+ICsJaWYg KHJldCkgewo+ICsJCW1zbV9nZW1fYWRkcmVzc19zcGFjZV9wdXQoYXNwYWNlKTsKPiArCQlyZXR1 cm4gRVJSX1BUUihyZXQpOwo+ICsJfQo+ICsKPiArCXJldHVybiBhc3BhY2U7Cj4gK30KPiArCj4g Kwo+ICAgLyogUmVnaXN0ZXIgb2Zmc2V0IGRlZmluZXMgZm9yIEEyWFggLSBjb3B5IG9mIEEzWFgg Ki8KPiAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgYTJ4eF9yZWdpc3Rlcl9vZmZzZXRzW1JF R19BRFJFTk9fUkVHSVNURVJfTUFYXSA9IHsKPiAgIAlSRUdfQURSRU5PX0RFRklORShSRUdfQURS RU5PX0NQX1JCX0JBU0UsIFJFR19BWFhYX0NQX1JCX0JBU0UpLAo+IEBAIC00MjksNiArNDUzLDcg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhZHJlbm9fZ3B1X2Z1bmNzIGZ1bmNzID0gewo+ICAgI2Vu ZGlmCj4gICAJCS5ncHVfc3RhdGVfZ2V0ID0gYTJ4eF9ncHVfc3RhdGVfZ2V0LAo+ICAgCQkuZ3B1 X3N0YXRlX3B1dCA9IGFkcmVub19ncHVfc3RhdGVfcHV0LAo+ICsJCS5jcmVhdGVfYWRkcmVzc19z cGFjZSA9IGEyeHhfY3JlYXRlX2FkZHJlc3Nfc3BhY2UsCj4gICAJfSwKPiAgIH07Cj4gICAKPiBA QCAtNDczLDE2ICs0OTgsOCBAQCBzdHJ1Y3QgbXNtX2dwdSAqYTJ4eF9ncHVfaW5pdChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KQo+ICAgCWFkcmVub19ncHUtPnJlZ19vZmZzZXRzID0gYTJ4eF9yZWdp c3Rlcl9vZmZzZXRzOwo+ICAgCj4gICAJcmV0ID0gYWRyZW5vX2dwdV9pbml0KGRldiwgcGRldiwg YWRyZW5vX2dwdSwgJmZ1bmNzLCAxKTsKPiAtCWlmIChyZXQpCj4gLQkJZ290byBmYWlsOwo+IC0K PiAtCWlmICghZ3B1LT5hc3BhY2UpIHsKPiAtCQlkZXZfZXJyKGRldi0+ZGV2LCAiTm8gbWVtb3J5 IHByb3RlY3Rpb24gd2l0aG91dCBNTVVcbiIpOwo+IC0JCXJldCA9IC1FTlhJTzsKPiAtCQlnb3Rv IGZhaWw7Cj4gLQl9Cj4gLQo+IC0JcmV0dXJuIGdwdTsKPiArCWlmICghcmV0KQo+ICsJCXJldHVy biBncHU7Cj4gICAKPiAgIGZhaWw6Cj4gICAJaWYgKGEyeHhfZ3B1KQo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hM3h4X2dwdS5jIGIvZHJpdmVycy9ncHUvZHJtL21z bS9hZHJlbm8vYTN4eF9ncHUuYwo+IGluZGV4IGMzYjRiYzYuLjMzYWI1ZTggMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTN4eF9ncHUuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9tc20vYWRyZW5vL2EzeHhfZ3B1LmMKPiBAQCAtMjEsNiArMjEsNyBAQAo+ICAgIyAg aW5jbHVkZSA8bWFjaC9vY21lbS5oPgo+ICAgI2VuZGlmCj4gICAKPiArI2luY2x1ZGUgIm1zbV9n ZW0uaCIKPiAgICNpbmNsdWRlICJhM3h4X2dwdS5oIgo+ICAgCj4gICAjZGVmaW5lIEEzWFhfSU5U MF9NQVNLIFwKPiBAQCAtNDMzLDYgKzQzNCw0MSBAQCBzdGF0aWMgc3RydWN0IG1zbV9ncHVfc3Rh dGUgKmEzeHhfZ3B1X3N0YXRlX2dldChzdHJ1Y3QgbXNtX2dwdSAqZ3B1KQo+ICAgCXJldHVybiBz dGF0ZTsKPiAgIH0KPiAgIAo+ICtzdGF0aWMgc3RydWN0IG1zbV9nZW1fYWRkcmVzc19zcGFjZSAq Cj4gK2EzeHhfY3JlYXRlX2FkZHJlc3Nfc3BhY2Uoc3RydWN0IG1zbV9ncHUgKmdwdSkKPiArewo+ ICsJc3RydWN0IG1zbV9nZW1fYWRkcmVzc19zcGFjZSAqYXNwYWNlOwo+ICsJc3RydWN0IGlvbW11 X2RvbWFpbiAqaW9tbXU7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCWlvbW11ID0gaW9tbXVfZG9tYWlu X2FsbG9jKCZwbGF0Zm9ybV9idXNfdHlwZSk7Cj4gKwlpZiAoIWlvbW11KSB7Cj4gKwkJRFJNX0RF Vl9FUlJPUihncHUtPmRldi0+ZGV2LAo+ICsJCQkiTm8gbWVtb3J5IHByb3RlY3Rpb24gd2l0aG91 dCBJT01NVVxuIik7Cj4gKwkJcmV0dXJuIEVSUl9QVFIoLUVOWElPKTsKPiArCX0KPiArCj4gKwlp b21tdS0+Z2VvbWV0cnkuYXBlcnR1cmVfc3RhcnQgPSBTWl8xNk07Cj4gKwlpb21tdS0+Z2VvbWV0 cnkuYXBlcnR1cmVfZW5kID0gMHhmZmZmZmZmZjsKPiArCj4gKwlhc3BhY2UgPSBtc21fZ2VtX2Fk ZHJlc3Nfc3BhY2VfY3JlYXRlKCZncHUtPnBkZXYtPmRldiwgaW9tbXUsICJncHUiKTsKPiArCWlm IChJU19FUlIoYXNwYWNlKSkgewo+ICsJCWlvbW11X2RvbWFpbl9mcmVlKGlvbW11KTsKPiArCQlE Uk1fREVWX0VSUk9SKGdwdS0+ZGV2LT5kZXYsICJmYWlsZWQgdG8gaW5pdCBtbXU6ICVsZFxuIiwK PiArCQkJUFRSX0VSUihhc3BhY2UpKTsKPiArCQlyZXR1cm4gYXNwYWNlOwo+ICsJfQo+ICsKPiAr CXJldCA9IGFzcGFjZS0+bW11LT5mdW5jcy0+YXR0YWNoKGFzcGFjZS0+bW11LCBOVUxMLCAwKTsK PiArCWlmIChyZXQpIHsKPiArCQltc21fZ2VtX2FkZHJlc3Nfc3BhY2VfcHV0KGFzcGFjZSk7Cj4g KwkJcmV0dXJuIEVSUl9QVFIocmV0KTsKPiArCX0KPiArCj4gKwlyZXR1cm4gYXNwYWNlOwo+ICt9 Cj4gKwo+ICsKPiAgIC8qIFJlZ2lzdGVyIG9mZnNldCBkZWZpbmVzIGZvciBBM1hYICovCj4gICBz dGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGEzeHhfcmVnaXN0ZXJfb2Zmc2V0c1tSRUdfQURSRU5P X1JFR0lTVEVSX01BWF0gPSB7Cj4gICAJUkVHX0FEUkVOT19ERUZJTkUoUkVHX0FEUkVOT19DUF9S Ql9CQVNFLCBSRUdfQVhYWF9DUF9SQl9CQVNFKSwKPiBAQCAtNDYxLDYgKzQ5Nyw3IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgYWRyZW5vX2dwdV9mdW5jcyBmdW5jcyA9IHsKPiAgICNlbmRpZgo+ICAg CQkuZ3B1X3N0YXRlX2dldCA9IGEzeHhfZ3B1X3N0YXRlX2dldCwKPiAgIAkJLmdwdV9zdGF0ZV9w dXQgPSBhZHJlbm9fZ3B1X3N0YXRlX3B1dCwKPiArCQkuY3JlYXRlX2FkZHJlc3Nfc3BhY2UgPSBh M3h4X2NyZWF0ZV9hZGRyZXNzX3NwYWNlLAo+ICAgCX0sCj4gICB9Owo+ICAgCj4gQEAgLTUyMCwx OSArNTU3LDYgQEAgc3RydWN0IG1zbV9ncHUgKmEzeHhfZ3B1X2luaXQoc3RydWN0IGRybV9kZXZp Y2UgKmRldikKPiAgICNlbmRpZgo+ICAgCX0KPiAgIAo+IC0JaWYgKCFncHUtPmFzcGFjZSkgewo+ IC0JCS8qIFRPRE8gd2UgdGhpbmsgaXQgaXMgcG9zc2libGUgdG8gY29uZmlndXJlIHRoZSBHUFUg dG8KPiAtCQkgKiByZXN0cmljdCBhY2Nlc3MgdG8gVlJBTSBjYXJ2ZW91dC4gIEJ1dCB0aGUgcmVx dWlyZWQKPiAtCQkgKiByZWdpc3RlcnMgYXJlIHVua25vd24uICBGb3Igbm93IGp1c3QgYmFpbCBv dXQgYW5kCj4gLQkJICogbGltcCBhbG9uZyB3aXRoIGp1c3QgbW9kZXNldHRpbmcuICBJZiBpdCB0 dXJucyBvdXQKPiAtCQkgKiB0byBub3QgYmUgcG9zc2libGUgdG8gcmVzdHJpY3QgYWNjZXNzLCB0 aGVuIHdlIG11c3QKPiAtCQkgKiBpbXBsZW1lbnQgYSBjbWRzdHJlYW0gdmFsaWRhdG9yLgo+IC0J CSAqLwo+IC0JCURSTV9ERVZfRVJST1IoZGV2LT5kZXYsICJObyBtZW1vcnkgcHJvdGVjdGlvbiB3 aXRob3V0IElPTU1VXG4iKTsKPiAtCQlyZXQgPSAtRU5YSU87Cj4gLQkJZ290byBmYWlsOwo+IC0J fQo+IC0KPiAgIAlyZXR1cm4gZ3B1Owo+ICAgCj4gICBmYWlsOgo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hNHh4X2dwdS5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9h ZHJlbm8vYTR4eF9ncHUuYwo+IGluZGV4IDE4ZjlhOGUuLjA4YTU3MjkgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTR4eF9ncHUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9tc20vYWRyZW5vL2E0eHhfZ3B1LmMKPiBAQCAtMTUsNiArMTUsOCBAQAo+ICAgIyAgaW5j bHVkZSA8c29jL3Fjb20vb2NtZW0uaD4KPiAgICNlbmRpZgo+ICAgCj4gKyNpbmNsdWRlICJtc21f Z2VtLmgiCj4gKwo+ICAgI2RlZmluZSBBNFhYX0lOVDBfTUFTSyBcCj4gICAJKEE0WFhfSU5UMF9S QkJNX0FIQl9FUlJPUiB8ICAgICAgICBcCj4gICAJIEE0WFhfSU5UMF9SQkJNX0FUQl9CVVNfT1ZF UkZMT1cgfCBcCj4gQEAgLTUzMCw2ICs1MzIsNDEgQEAgc3RhdGljIGludCBhNHh4X2dldF90aW1l c3RhbXAoc3RydWN0IG1zbV9ncHUgKmdwdSwgdWludDY0X3QgKnZhbHVlKQo+ICAgCXJldHVybiAw Owo+ICAgfQo+ICAgCj4gK3N0YXRpYyBzdHJ1Y3QgbXNtX2dlbV9hZGRyZXNzX3NwYWNlICoKPiAr YTR4eF9jcmVhdGVfYWRkcmVzc19zcGFjZShzdHJ1Y3QgbXNtX2dwdSAqZ3B1KQo+ICt7Cj4gKwlz dHJ1Y3QgbXNtX2dlbV9hZGRyZXNzX3NwYWNlICphc3BhY2U7Cj4gKwlzdHJ1Y3QgaW9tbXVfZG9t YWluICppb21tdTsKPiArCWludCByZXQ7Cj4gKwo+ICsJaW9tbXUgPSBpb21tdV9kb21haW5fYWxs b2MoJnBsYXRmb3JtX2J1c190eXBlKTsKPiArCWlmICghaW9tbXUpIHsKPiArCQlEUk1fREVWX0VS Uk9SKGdwdS0+ZGV2LT5kZXYsCj4gKwkJCSJObyBtZW1vcnkgcHJvdGVjdGlvbiB3aXRob3V0IElP TU1VXG4iKTsKPiArCQlyZXR1cm4gRVJSX1BUUigtRU5YSU8pOwo+ICsJfQo+ICsKPiArCWlvbW11 LT5nZW9tZXRyeS5hcGVydHVyZV9zdGFydCA9IFNaXzE2TTsKPiArCWlvbW11LT5nZW9tZXRyeS5h cGVydHVyZV9lbmQgPSAweGZmZmZmZmZmOwo+ICsKPiArCWFzcGFjZSA9IG1zbV9nZW1fYWRkcmVz c19zcGFjZV9jcmVhdGUoJmdwdS0+cGRldi0+ZGV2LCBpb21tdSwgImdwdSIpOwo+ICsJaWYgKElT X0VSUihhc3BhY2UpKSB7Cj4gKwkJaW9tbXVfZG9tYWluX2ZyZWUoaW9tbXUpOwo+ICsJCURSTV9E RVZfRVJST1IoZ3B1LT5kZXYtPmRldiwgImZhaWxlZCB0byBpbml0IG1tdTogJWxkXG4iLAo+ICsJ CQlQVFJfRVJSKGFzcGFjZSkpOwo+ICsJCXJldHVybiBhc3BhY2U7Cj4gKwl9Cj4gKwo+ICsJcmV0 ID0gYXNwYWNlLT5tbXUtPmZ1bmNzLT5hdHRhY2goYXNwYWNlLT5tbXUsIE5VTEwsIDApOwo+ICsJ aWYgKHJldCkgewo+ICsJCW1zbV9nZW1fYWRkcmVzc19zcGFjZV9wdXQoYXNwYWNlKTsKPiArCQly ZXR1cm4gRVJSX1BUUihyZXQpOwo+ICsJfQo+ICsKPiArCXJldHVybiBhc3BhY2U7Cj4gK30KPiAr Cj4gKwo+ICAgc3RhdGljIGNvbnN0IHN0cnVjdCBhZHJlbm9fZ3B1X2Z1bmNzIGZ1bmNzID0gewo+ ICAgCS5iYXNlID0gewo+ICAgCQkuZ2V0X3BhcmFtID0gYWRyZW5vX2dldF9wYXJhbSwKPiBAQCAt NTQ3LDYgKzU4NCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYWRyZW5vX2dwdV9mdW5jcyBmdW5j cyA9IHsKPiAgICNlbmRpZgo+ICAgCQkuZ3B1X3N0YXRlX2dldCA9IGE0eHhfZ3B1X3N0YXRlX2dl dCwKPiAgIAkJLmdwdV9zdGF0ZV9wdXQgPSBhZHJlbm9fZ3B1X3N0YXRlX3B1dCwKPiArCQkuY3Jl YXRlX2FkZHJlc3Nfc3BhY2UgPSBhNHh4X2NyZWF0ZV9hZGRyZXNzX3NwYWNlLAo+ICAgCX0sCj4g ICAJLmdldF90aW1lc3RhbXAgPSBhNHh4X2dldF90aW1lc3RhbXAsCj4gICB9Owo+IEBAIC02MDAs MTkgKzYzOCw2IEBAIHN0cnVjdCBtc21fZ3B1ICphNHh4X2dwdV9pbml0KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCj4gICAjZW5kaWYKPiAgIAl9Cj4gICAKPiAtCWlmICghZ3B1LT5hc3BhY2UpIHsK PiAtCQkvKiBUT0RPIHdlIHRoaW5rIGl0IGlzIHBvc3NpYmxlIHRvIGNvbmZpZ3VyZSB0aGUgR1BV IHRvCj4gLQkJICogcmVzdHJpY3QgYWNjZXNzIHRvIFZSQU0gY2FydmVvdXQuICBCdXQgdGhlIHJl cXVpcmVkCj4gLQkJICogcmVnaXN0ZXJzIGFyZSB1bmtub3duLiAgRm9yIG5vdyBqdXN0IGJhaWwg b3V0IGFuZAo+IC0JCSAqIGxpbXAgYWxvbmcgd2l0aCBqdXN0IG1vZGVzZXR0aW5nLiAgSWYgaXQg dHVybnMgb3V0Cj4gLQkJICogdG8gbm90IGJlIHBvc3NpYmxlIHRvIHJlc3RyaWN0IGFjY2Vzcywg dGhlbiB3ZSBtdXN0Cj4gLQkJICogaW1wbGVtZW50IGEgY21kc3RyZWFtIHZhbGlkYXRvci4KPiAt CQkgKi8KPiAtCQlEUk1fREVWX0VSUk9SKGRldi0+ZGV2LCAiTm8gbWVtb3J5IHByb3RlY3Rpb24g d2l0aG91dCBJT01NVVxuIik7Cj4gLQkJcmV0ID0gLUVOWElPOwo+IC0JCWdvdG8gZmFpbDsKPiAt CX0KPiAtCj4gICAJcmV0dXJuIGdwdTsKPiAgIAo+ICAgZmFpbDoKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTV4eF9ncHUuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20v YWRyZW5vL2E1eHhfZ3B1LmMKPiBpbmRleCA0NTY2MmQzLi4zZDZmNDE0IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2E1eHhfZ3B1LmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vbXNtL2FkcmVuby9hNXh4X2dwdS5jCj4gQEAgLTE0NTYsNiArMTQ1NiwzOCBAQCBzdGF0 aWMgdW5zaWduZWQgbG9uZyBhNXh4X2dwdV9idXN5KHN0cnVjdCBtc21fZ3B1ICpncHUpCj4gICAJ cmV0dXJuICh1bnNpZ25lZCBsb25nKWJ1c3lfdGltZTsKPiAgIH0KPiAgIAo+ICtzdGF0aWMgc3Ry dWN0IG1zbV9nZW1fYWRkcmVzc19zcGFjZSAqCj4gK2E1eHhfY3JlYXRlX2FkZHJlc3Nfc3BhY2Uo c3RydWN0IG1zbV9ncHUgKmdwdSkKPiArewo+ICsJc3RydWN0IG1zbV9nZW1fYWRkcmVzc19zcGFj ZSAqYXNwYWNlOwo+ICsJc3RydWN0IGlvbW11X2RvbWFpbiAqaW9tbXU7Cj4gKwlpbnQgcmV0Owo+ ICsKPiArCWlvbW11ID0gaW9tbXVfZG9tYWluX2FsbG9jKCZwbGF0Zm9ybV9idXNfdHlwZSk7Cj4g KwlpZiAoIWlvbW11KQo+ICsJCXJldHVybiBOVUxMOwo+ICsKPiArCWlvbW11LT5nZW9tZXRyeS5h cGVydHVyZV9zdGFydCA9IDB4MTAwMDAwMDAwVUxMOwo+ICsJaW9tbXUtPmdlb21ldHJ5LmFwZXJ0 dXJlX2VuZCA9IDB4MWZmZmZmZmZmVUxMOwo+ICsKPiArCWFzcGFjZSA9IG1zbV9nZW1fYWRkcmVz c19zcGFjZV9jcmVhdGUoJmdwdS0+cGRldi0+ZGV2LCBpb21tdSwgImdwdSIpOwo+ICsJaWYgKElT X0VSUihhc3BhY2UpKSB7Cj4gKwkJaW9tbXVfZG9tYWluX2ZyZWUoaW9tbXUpOwo+ICsJCURSTV9E RVZfRVJST1IoZ3B1LT5kZXYtPmRldiwgImZhaWxlZCB0byBpbml0IG1tdTogJWxkXG4iLAo+ICsJ CQlQVFJfRVJSKGFzcGFjZSkpOwo+ICsJCXJldHVybiBhc3BhY2U7Cj4gKwl9Cj4gKwo+ICsJcmV0 ID0gYXNwYWNlLT5tbXUtPmZ1bmNzLT5hdHRhY2goYXNwYWNlLT5tbXUsIE5VTEwsIDApOwo+ICsJ aWYgKHJldCkgewo+ICsJCW1zbV9nZW1fYWRkcmVzc19zcGFjZV9wdXQoYXNwYWNlKTsKPiArCQly ZXR1cm4gRVJSX1BUUihyZXQpOwo+ICsJfQo+ICsKPiArCW1zbV9tbXVfc2V0X2ZhdWx0X2hhbmRs ZXIoYXNwYWNlLT5tbXUsIGdwdSwgYTV4eF9mYXVsdF9oYW5kbGVyKTsKPiArCXJldHVybiBhc3Bh Y2U7Cj4gK30KPiArCj4gICBzdGF0aWMgY29uc3Qgc3RydWN0IGFkcmVub19ncHVfZnVuY3MgZnVu Y3MgPSB7Cj4gICAJLmJhc2UgPSB7Cj4gICAJCS5nZXRfcGFyYW0gPSBhZHJlbm9fZ2V0X3BhcmFt LAo+IEBAIC0xNDc3LDYgKzE1MDksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGFkcmVub19ncHVf ZnVuY3MgZnVuY3MgPSB7Cj4gICAJCS5ncHVfYnVzeSA9IGE1eHhfZ3B1X2J1c3ksCj4gICAJCS5n cHVfc3RhdGVfZ2V0ID0gYTV4eF9ncHVfc3RhdGVfZ2V0LAo+ICAgCQkuZ3B1X3N0YXRlX3B1dCA9 IGE1eHhfZ3B1X3N0YXRlX3B1dCwKPiArCQkuY3JlYXRlX2FkZHJlc3Nfc3BhY2UgPSBhNXh4X2Ny ZWF0ZV9hZGRyZXNzX3NwYWNlLAo+ICAgCX0sCj4gICAJLmdldF90aW1lc3RhbXAgPSBhNXh4X2dl dF90aW1lc3RhbXAsCj4gICB9Owo+IEBAIC0xNTIzLDcgKzE1NTYsNiBAQCBzdHJ1Y3QgbXNtX2dw dSAqYTV4eF9ncHVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAgCj4gICAJYWRyZW5v X2dwdS0+cmVnaXN0ZXJzID0gYTV4eF9yZWdpc3RlcnM7Cj4gICAJYWRyZW5vX2dwdS0+cmVnX29m ZnNldHMgPSBhNXh4X3JlZ2lzdGVyX29mZnNldHM7Cj4gLQo+ICAgCWE1eHhfZ3B1LT5sbV9sZWFr YWdlID0gMHg0RTAwMUE7Cj4gICAKPiAgIAljaGVja19zcGVlZF9iaW4oJnBkZXYtPmRldik7Cj4g QEAgLTE1MzQsOSArMTU2Niw2IEBAIHN0cnVjdCBtc21fZ3B1ICphNXh4X2dwdV9pbml0KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCj4gICAJCXJldHVybiBFUlJfUFRSKHJldCk7Cj4gICAJfQo+ICAg Cj4gLQlpZiAoZ3B1LT5hc3BhY2UpCj4gLQkJbXNtX21tdV9zZXRfZmF1bHRfaGFuZGxlcihncHUt PmFzcGFjZS0+bW11LCBncHUsIGE1eHhfZmF1bHRfaGFuZGxlcik7Cj4gLQo+ICAgCS8qIFNldCB1 cCB0aGUgcHJlZW1wdGlvbiBzcGVjaWZpYyBiaXRzIGFuZCBwaWVjZXMgZm9yIGVhY2ggcmluZ2J1 ZmZlciAqLwo+ICAgCWE1eHhfcHJlZW1wdF9pbml0KGdwdSk7Cj4gICAKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTZ4eF9ncHUuYyBiL2RyaXZlcnMvZ3B1L2RybS9t c20vYWRyZW5vL2E2eHhfZ3B1LmMKPiBpbmRleCAxYzIwZDU5Li5mMmUwODAwIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2E2eHhfZ3B1LmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vbXNtL2FkcmVuby9hNnh4X2dwdS5jCj4gQEAgLTc4Myw2ICs3ODMsMzggQEAgc3Rh dGljIHVuc2lnbmVkIGxvbmcgYTZ4eF9ncHVfYnVzeShzdHJ1Y3QgbXNtX2dwdSAqZ3B1KQo+ICAg CXJldHVybiAodW5zaWduZWQgbG9uZylidXN5X3RpbWU7Cj4gICB9Cj4gICAKPiArc3RhdGljIHN0 cnVjdCBtc21fZ2VtX2FkZHJlc3Nfc3BhY2UgKgo+ICthNnh4X2NyZWF0ZV9hZGRyZXNzX3NwYWNl KHN0cnVjdCBtc21fZ3B1ICpncHUpCj4gK3sKPiArCXN0cnVjdCBtc21fZ2VtX2FkZHJlc3Nfc3Bh Y2UgKmFzcGFjZTsKPiArCXN0cnVjdCBpb21tdV9kb21haW4gKmlvbW11Owo+ICsJaW50IHJldDsK PiArCj4gKwlpb21tdSA9IGlvbW11X2RvbWFpbl9hbGxvYygmcGxhdGZvcm1fYnVzX3R5cGUpOwo+ ICsJaWYgKCFpb21tdSkKPiArCQlyZXR1cm4gTlVMTDsKPiArCj4gKwlpb21tdS0+Z2VvbWV0cnku YXBlcnR1cmVfc3RhcnQgPSAweDEwMDAwMDAwMFVMTDsKPiArCWlvbW11LT5nZW9tZXRyeS5hcGVy dHVyZV9lbmQgPSAweDFmZmZmZmZmZlVMTDsKPiArCj4gKwlhc3BhY2UgPSBtc21fZ2VtX2FkZHJl c3Nfc3BhY2VfY3JlYXRlKCZncHUtPnBkZXYtPmRldiwgaW9tbXUsICJncHUiKTsKPiArCWlmIChJ U19FUlIoYXNwYWNlKSkgewo+ICsJCWlvbW11X2RvbWFpbl9mcmVlKGlvbW11KTsKPiArCQlEUk1f REVWX0VSUk9SKGdwdS0+ZGV2LT5kZXYsICJmYWlsZWQgdG8gaW5pdCBtbXU6ICVsZFxuIiwKPiAr CQkJUFRSX0VSUihhc3BhY2UpKTsKPiArCQlyZXR1cm4gYXNwYWNlOwo+ICsJfQo+ICsKPiArCXJl dCA9IGFzcGFjZS0+bW11LT5mdW5jcy0+YXR0YWNoKGFzcGFjZS0+bW11LCBOVUxMLCAwKTsKPiAr CWlmIChyZXQpIHsKPiArCQltc21fZ2VtX2FkZHJlc3Nfc3BhY2VfcHV0KGFzcGFjZSk7Cj4gKwkJ cmV0dXJuIEVSUl9QVFIocmV0KTsKPiArCX0KPiArCj4gKwltc21fbW11X3NldF9mYXVsdF9oYW5k bGVyKGFzcGFjZS0+bW11LCBncHUsIGE2eHhfZmF1bHRfaGFuZGxlcik7Cj4gKwlyZXR1cm4gYXNw YWNlOwo+ICt9Cj4gKwo+ICAgc3RhdGljIGNvbnN0IHN0cnVjdCBhZHJlbm9fZ3B1X2Z1bmNzIGZ1 bmNzID0gewo+ICAgCS5iYXNlID0gewo+ICAgCQkuZ2V0X3BhcmFtID0gYWRyZW5vX2dldF9wYXJh bSwKPiBAQCAtODAzLDYgKzgzNSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYWRyZW5vX2dwdV9m dW5jcyBmdW5jcyA9IHsKPiAgIAkJLmdwdV9zZXRfZnJlcSA9IGE2eHhfZ211X3NldF9mcmVxLAo+ ICAgCQkuZ3B1X3N0YXRlX2dldCA9IGE2eHhfZ3B1X3N0YXRlX2dldCwKPiAgIAkJLmdwdV9zdGF0 ZV9wdXQgPSBhNnh4X2dwdV9zdGF0ZV9wdXQsCj4gKwkJLmNyZWF0ZV9hZGRyZXNzX3NwYWNlID0g YTZ4eF9jcmVhdGVfYWRkcmVzc19zcGFjZSwKPiAgIAl9LAo+ICAgCS5nZXRfdGltZXN0YW1wID0g YTZ4eF9nZXRfdGltZXN0YW1wLAo+ICAgfTsKPiBAQCAtODQ1LDkgKzg3OCw1IEBAIHN0cnVjdCBt c21fZ3B1ICphNnh4X2dwdV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gICAJCXJldHVy biBFUlJfUFRSKHJldCk7Cj4gICAJfQo+ICAgCj4gLQlpZiAoZ3B1LT5hc3BhY2UpCj4gLQkJbXNt X21tdV9zZXRfZmF1bHRfaGFuZGxlcihncHUtPmFzcGFjZS0+bW11LCBncHUsCj4gLQkJCQlhNnh4 X2ZhdWx0X2hhbmRsZXIpOwo+IC0KPiAgIAlyZXR1cm4gZ3B1Owo+ICAgfQo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hZHJlbm9fZ3B1LmMgYi9kcml2ZXJzL2dwdS9k cm0vbXNtL2FkcmVuby9hZHJlbm9fZ3B1LmMKPiBpbmRleCAyY2ZlZTFhLi5kYzllYTgyIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2FkcmVub19ncHUuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2FkcmVub19ncHUuYwo+IEBAIC03NjUsMTMgKzc2 NSw2IEBAIGludCBhZHJlbm9fZ3B1X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRybSwgc3RydWN0 IHBsYXRmb3JtX2RldmljZSAqcGRldiwKPiAgIAlhZHJlbm9fZ3B1LT5yZXYgPSBjb25maWctPnJl djsKPiAgIAo+ICAgCWFkcmVub19ncHVfY29uZmlnLmlvbmFtZSA9ICJrZ3NsXzNkMF9yZWdfbWVt b3J5IjsKPiAtCj4gLQlhZHJlbm9fZ3B1X2NvbmZpZy52YV9zdGFydCA9IFNaXzE2TTsKPiAtCWFk cmVub19ncHVfY29uZmlnLnZhX2VuZCA9IDB4ZmZmZmZmZmY7Cj4gLQkvKiBtYXhpbXVtIHJhbmdl IG9mIGEyeHggbW11ICovCj4gLQlpZiAoYWRyZW5vX2lzX2EyeHgoYWRyZW5vX2dwdSkpCj4gLQkJ YWRyZW5vX2dwdV9jb25maWcudmFfZW5kID0gU1pfMTZNICsgMHhmZmYgKiBTWl82NEs7Cj4gLQo+ ICAgCWFkcmVub19ncHVfY29uZmlnLm5yX3JpbmdzID0gbnJfcmluZ3M7Cj4gICAKPiAgIAlhZHJl bm9fZ2V0X3B3cmxldmVscygmcGRldi0+ZGV2LCBncHUpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vbXNtL21zbV9nZW0uaCBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dlbS5oCj4g aW5kZXggNWUyMWQwMS4uNzc3ZjVmYiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNt L21zbV9nZW0uaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dlbS5oCj4gQEAgLTIx LDYgKzIxLDcgQEAKPiAgICNpbmNsdWRlIDxsaW51eC9rcmVmLmg+Cj4gICAjaW5jbHVkZSA8bGlu dXgvcmVzZXJ2YXRpb24uaD4KPiAgICNpbmNsdWRlICJtc21fZHJ2LmgiCj4gKyNpbmNsdWRlICJt c21fbW11LmgiCj4gICAKPiAgIC8qIEFkZGl0aW9uYWwgaW50ZXJuYWwtdXNlIG9ubHkgQk8gZmxh Z3M6ICovCj4gICAjZGVmaW5lIE1TTV9CT19TVE9MRU4gICAgICAgIDB4MTAwMDAwMDAgICAgLyog dHJ5IHRvIHVzZSBzdG9sZW4vc3BsYXNoIG1lbW9yeSAqLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vbXNtL21zbV9ncHUuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dwdS5jCj4g aW5kZXggNzliNzFiMS4uZWM0OGJiMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNt L21zbV9ncHUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dwdS5jCj4gQEAgLTIw LDcgKzIwLDYgQEAKPiAgICNpbmNsdWRlICJtc21fbW11LmgiCj4gICAjaW5jbHVkZSAibXNtX2Zl bmNlLmgiCj4gICAjaW5jbHVkZSAibXNtX2dwdV90cmFjZS5oIgo+IC0jaW5jbHVkZSAiYWRyZW5v L2FkcmVub19ncHUuaCIKPiAgIAo+ICAgI2luY2x1ZGUgPGdlbmVyYXRlZC91dHNyZWxlYXNlLmg+ Cj4gICAjaW5jbHVkZSA8bGludXgvc3RyaW5nX2hlbHBlcnMuaD4KPiBAQCAtODIxLDUxICs4MjAs NiBAQCBzdGF0aWMgaW50IGdldF9jbG9ja3Moc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwg c3RydWN0IG1zbV9ncHUgKmdwdSkKPiAgIAlyZXR1cm4gMDsKPiAgIH0KPiAgIAo+IC1zdGF0aWMg c3RydWN0IG1zbV9nZW1fYWRkcmVzc19zcGFjZSAqCj4gLW1zbV9ncHVfY3JlYXRlX2FkZHJlc3Nf c3BhY2Uoc3RydWN0IG1zbV9ncHUgKmdwdSwgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwK PiAtCQl1aW50NjRfdCB2YV9zdGFydCwgdWludDY0X3QgdmFfZW5kKQo+IC17Cj4gLQlzdHJ1Y3Qg bXNtX2dlbV9hZGRyZXNzX3NwYWNlICphc3BhY2U7Cj4gLQlpbnQgcmV0Owo+IC0KPiAtCS8qCj4g LQkgKiBTZXR1cCBJT01NVS4uIGV2ZW50dWFsbHkgd2Ugd2lsbCAoSSB0aGluaykgZG8gdGhpcyBv bmNlIHBlciBjb250ZXh0Cj4gLQkgKiBhbmQgaGF2ZSBzZXBhcmF0ZSBwYWdlIHRhYmxlcyBwZXIg Y29udGV4dC4gIEZvciBub3csIHRvIGtlZXAgdGhpbmdzCj4gLQkgKiBzaW1wbGUgYW5kIHRvIGdl dCBzb21ldGhpbmcgd29ya2luZywganVzdCB1c2UgYSBzaW5nbGUgYWRkcmVzcyBzcGFjZToKPiAt CSAqLwo+IC0JaWYgKCFhZHJlbm9faXNfYTJ4eCh0b19hZHJlbm9fZ3B1KGdwdSkpKSB7Cj4gLQkJ c3RydWN0IGlvbW11X2RvbWFpbiAqaW9tbXUgPSBpb21tdV9kb21haW5fYWxsb2MoJnBsYXRmb3Jt X2J1c190eXBlKTsKPiAtCQlpZiAoIWlvbW11KQo+IC0JCQlyZXR1cm4gTlVMTDsKPiAtCj4gLQkJ aW9tbXUtPmdlb21ldHJ5LmFwZXJ0dXJlX3N0YXJ0ID0gdmFfc3RhcnQ7Cj4gLQkJaW9tbXUtPmdl b21ldHJ5LmFwZXJ0dXJlX2VuZCA9IHZhX2VuZDsKPiAtCj4gLQkJRFJNX0RFVl9JTkZPKGdwdS0+ ZGV2LT5kZXYsICIlczogdXNpbmcgSU9NTVVcbiIsIGdwdS0+bmFtZSk7Cj4gLQo+IC0JCWFzcGFj ZSA9IG1zbV9nZW1fYWRkcmVzc19zcGFjZV9jcmVhdGUoJnBkZXYtPmRldiwgaW9tbXUsICJncHUi KTsKPiAtCQlpZiAoSVNfRVJSKGFzcGFjZSkpCj4gLQkJCWlvbW11X2RvbWFpbl9mcmVlKGlvbW11 KTsKPiAtCX0gZWxzZSB7Cj4gLQkJYXNwYWNlID0gbXNtX2dlbV9hZGRyZXNzX3NwYWNlX2NyZWF0 ZV9hMnh4KCZwZGV2LT5kZXYsIGdwdSwgImdwdSIsCj4gLQkJCXZhX3N0YXJ0LCB2YV9lbmQpOwo+ IC0JfQo+IC0KPiAtCWlmIChJU19FUlIoYXNwYWNlKSkgewo+IC0JCURSTV9ERVZfRVJST1IoZ3B1 LT5kZXYtPmRldiwgImZhaWxlZCB0byBpbml0IG1tdTogJWxkXG4iLAo+IC0JCQlQVFJfRVJSKGFz cGFjZSkpOwo+IC0JCXJldHVybiBFUlJfQ0FTVChhc3BhY2UpOwo+IC0JfQo+IC0KPiAtCXJldCA9 IGFzcGFjZS0+bW11LT5mdW5jcy0+YXR0YWNoKGFzcGFjZS0+bW11LCBOVUxMLCAwKTsKPiAtCWlm IChyZXQpIHsKPiAtCQltc21fZ2VtX2FkZHJlc3Nfc3BhY2VfcHV0KGFzcGFjZSk7Cj4gLQkJcmV0 dXJuIEVSUl9QVFIocmV0KTsKPiAtCX0KPiAtCj4gLQlyZXR1cm4gYXNwYWNlOwo+IC19Cj4gLQo+ ICAgaW50IG1zbV9ncHVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLCBzdHJ1Y3QgcGxhdGZv cm1fZGV2aWNlICpwZGV2LAo+ICAgCQlzdHJ1Y3QgbXNtX2dwdSAqZ3B1LCBjb25zdCBzdHJ1Y3Qg bXNtX2dwdV9mdW5jcyAqZnVuY3MsCj4gICAJCWNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBtc21f Z3B1X2NvbmZpZyAqY29uZmlnKQo+IEBAIC05MzgsMTIgKzg5Miw4IEBAIGludCBtc21fZ3B1X2lu aXQoc3RydWN0IGRybV9kZXZpY2UgKmRybSwgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwK PiAgIAo+ICAgCW1zbV9kZXZmcmVxX2luaXQoZ3B1KTsKPiAgIAo+IC0JZ3B1LT5hc3BhY2UgPSBt c21fZ3B1X2NyZWF0ZV9hZGRyZXNzX3NwYWNlKGdwdSwgcGRldiwKPiAtCQljb25maWctPnZhX3N0 YXJ0LCBjb25maWctPnZhX2VuZCk7Cj4gLQo+IC0JaWYgKGdwdS0+YXNwYWNlID09IE5VTEwpCj4g LQkJRFJNX0RFVl9JTkZPKGRybS0+ZGV2LCAiJXM6IG5vIElPTU1VLCBmYWxsYmFjayB0byBWUkFN IGNhcnZlb3V0IVxuIiwgbmFtZSk7Cj4gLQllbHNlIGlmIChJU19FUlIoZ3B1LT5hc3BhY2UpKSB7 Cj4gKwlncHUtPmFzcGFjZSA9IGdwdS0+ZnVuY3MtPmNyZWF0ZV9hZGRyZXNzX3NwYWNlKGdwdSk7 Cj4gKwlpZiAoSVNfRVJSKGdwdS0+YXNwYWNlKSkgewo+ICAgCQlyZXQgPSBQVFJfRVJSKGdwdS0+ YXNwYWNlKTsKPiAgIAkJZ290byBmYWlsOwo+ICAgCX0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL21zbS9tc21fZ3B1LmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9ncHUuaAo+IGlu ZGV4IGNhMTcwODYuLjgxYjk4NjEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9t c21fZ3B1LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9ncHUuaAo+IEBAIC03NCw2 ICs3NCw4IEBAIHN0cnVjdCBtc21fZ3B1X2Z1bmNzIHsKPiAgIAlpbnQgKCpncHVfc3RhdGVfcHV0 KShzdHJ1Y3QgbXNtX2dwdV9zdGF0ZSAqc3RhdGUpOwo+ICAgCXVuc2lnbmVkIGxvbmcgKCpncHVf Z2V0X2ZyZXEpKHN0cnVjdCBtc21fZ3B1ICpncHUpOwo+ICAgCXZvaWQgKCpncHVfc2V0X2ZyZXEp KHN0cnVjdCBtc21fZ3B1ICpncHUsIHVuc2lnbmVkIGxvbmcgZnJlcSk7Cj4gKwlzdHJ1Y3QgbXNt X2dlbV9hZGRyZXNzX3NwYWNlICooKmNyZWF0ZV9hZGRyZXNzX3NwYWNlKQo+ICsJCShzdHJ1Y3Qg bXNtX2dwdSAqZ3B1KTsKPiAgIH07Cj4gICAKPiAgIHN0cnVjdCBtc21fZ3B1IHsKPiAKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRnJlZWRyZW5vIG1haWxp bmcgbGlzdApGcmVlZHJlbm9AbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZnJlZWRyZW5v