From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joonas Lahtinen Subject: Re: [PATCH] drm/i915: Remove drm_i915_private->dev backpointer Date: Mon, 30 May 2016 09:58:15 +0300 Message-ID: <1464591495.4825.7.camel@linux.intel.com> References: <57485675.7090807@linux.intel.com> <1464360402-29509-1-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 1FD56898A8 for ; Mon, 30 May 2016 06:58:20 +0000 (UTC) In-Reply-To: <1464360402-29509-1-git-send-email-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 T24gcGUsIDIwMTYtMDUtMjcgYXQgMTU6NDYgKzAxMDAsIENocmlzIFdpbHNvbiB3cm90ZToKPiBO b3cgdGhhdCBkcm1faTkxNV9wcml2YXRlIGNvbnRhaW5zIGRybV9kZXZpY2UsIHdlIGNhbiBkaXJl Y3RseSBnbyB0byB0aGUKPiBkcm1fZGV2aWNlIGFzIHJlcXVpcmVkOgo+IAo+IMKgwqDCoHRleHQJ wqDCoMKgZGF0YQnCoMKgwqDCoGJzcwnCoMKgwqDCoGRlYwnCoMKgwqDCoGhleAlmaWxlbmFtZQo+ IDExMDUxNTMJwqDCoDIzMjA3CcKgwqDCoMKgNDE2CTExMjg3NzYJwqAxMTM5NDgJaTkxNS5rbyAo YmVmb3JlKQo+IDExMDI4NDkJwqDCoDIzMjA3CcKgwqDCoMKgNDE2CTExMjY0NzIJwqAxMTMwNDgJ aTkxNS5rbyAoYWZ0ZXIpCj4gCj4gcy9kZXZfcHJpdi0+ZGV2LT4vZGV2X3ByaXYtPmRybS4vCj4g cy9kZXZfcHJpdi0+ZGV2L1wmZGV2X3ByaXYtPmRybS4vCgpMb3NlIHRoZSBkb3QgZnJvbSBsYXN0 IHJlcGxhZW1lbnQgcGF0dGVybiwgYW5kIEknbSBhbHNvIHByZXR0eSBzdXJlIFwKaXMgbm90IG5l ZWRlZCBpbiBmcm9udCBvZiAmCgo+IAo+IFRoZXJlIGlzIHN0aWxsIGEgZmFpciBhbW91bnQgdGhh dCB3ZSBjYW4gdGlkeSBieSBoYW5kLgo+IAo+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8 Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgoKV2l0aCBhY3R1YWwgd29ya2luZyBjb21tYW5kIGxp bmVzIGZvciBwZW9wbGUgdG8gZGVhbCB3aXRoIHRoZSBjb25mbGljdApwYWluOwoKUmV2aWV3ZWQt Ynk6IEpvb25hcyBMYWh0aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4KCj4g LS0tCj4gCj4gVGhpcyB3aWxsIGNhdXNlIGEgZmFpciBhbW91bnQgb2YgY29uZmxpY3QgdGhvdWdo LiBOb3doZXJlIGFzIG5lYXIgYXMKPiBwbGVhc2FudCBhcyBpdCBjb3VsZCBiZSB5ZXQuCj4gLUNo cmlzCj4gCj4gLS0tCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuY8KgwqDC oMKgwqDCoMKgwqDCoMKgfCAxNiArKysrLS0tLQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB8IDQ1ICsrKysrKysrKysrLS0tLS0t LS0tLQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqB8IDEzICsrKy0tLS0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt LmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfCAxMCArKy0tLQo+IMKgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jwqDCoMKgwqDCoMKgfMKgwqA2ICstLQo+IMKgZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jwqDCoMKgfMKgwqA0ICstCj4g wqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuY8KgwqDCoMKgwqDCoMKgwqDCoMKg fCAxMCArKy0tLQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVuZGVyX3N0YXRl LmMgfMKgwqAyICstCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zaHJpbmtlci5j wqDCoMKgwqDCoHwgMTAgKystLS0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vy cm9yLmPCoMKgwqDCoMKgwqDCoMKgfMKgwqA0ICstCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2d1Y19zdWJtaXNzaW9uLmPCoMKgwqB8wqDCoDggKystLQo+IMKgZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9pcnEuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB8IDM2ICsrKysrKysr LS0tLS0tLS0tCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3RyYWNlLmjCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqB8IDIwICsrKysrLS0tLS0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2F1ZGlvLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfCAxMiArKystLS0KPiDCoGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Jpb3MuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHzCoMKgMiAr LQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY3NyLmPCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoHzCoMKgNCArLQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j wqDCoMKgwqDCoMKgwqDCoMKgfCA1OCArKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCj4gwqBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oHwgMTQgKysrLS0tLQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuY8Kg wqDCoMKgwqDCoMKgwqB8wqDCoDIgKy0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Zi Yy5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB8wqDCoDQgKy0KPiDCoGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2ZiZGV2LmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfMKgwqA4ICsrLS0KPiDC oGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZpZm9fdW5kZXJydW4uY8KgwqDCoHwgMTAgKyst LS0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuY8KgwqDCoMKgwqDC oHzCoMKgMiArLQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgfMKgwqAyICstCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9o b3RwbHVnLmPCoMKgwqDCoMKgwqDCoMKgwqB8wqDCoDggKystLQo+IMKgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfaTJjLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHzCoMKgNiArLS0KPiDC oGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqB8IDEwICsrLS0tCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vcHJlZ2lvbi5jwqDC oMKgwqDCoMKgwqDCoHwgMTAgKystLS0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX292 ZXJsYXkuY8KgwqDCoMKgwqDCoMKgwqDCoHwgMjIgKysrKystLS0tLS0KPiDCoGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3BhbmVsLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfMKgwqA2ICstLQo+ IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqB8IDMwICsrKysrKystLS0tLS0tCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9y aW5nYnVmZmVyLmPCoMKgwqDCoMKgwqB8IDEwICsrLS0tCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9ydW50aW1lX3BtLmPCoMKgwqDCoMKgwqB8IDI2ICsrKysrKy0tLS0tLS0KPiDCoGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nkdm8uY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHzC oMKgMiArLQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmPCoMKgwqDCoMKg wqDCoMKgwqDCoHzCoMKgNiArLS0KPiDCoDM1IGZpbGVzIGNoYW5nZWQsIDIxOCBpbnNlcnRpb25z KCspLCAyMjAgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMK PiBpbmRleCBkMDE4ZWM1MDkzYmEuLmFiZTEyYWMxMzRjZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZGVidWdmcy5jCj4gQEAgLTQ0MCwxNSArNDQwLDE1IEBAIHN0YXRpYyB2b2lkIHByaW50 X2NvbnRleHRfc3RhdHMoc3RydWN0IHNlcV9maWxlICptLAo+IMKgCj4gwqAJbWVtc2V0KCZzdGF0 cywgMCwgc2l6ZW9mKHN0YXRzKSk7Cj4gwqAKPiAtCW11dGV4X2xvY2soJmRldl9wcml2LT5kZXYt PnN0cnVjdF9tdXRleCk7Cj4gKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRl eCk7Cj4gwqAJaWYgKGRldl9wcml2LT5rZXJuZWxfY29udGV4dCkKPiDCoAkJcGVyX2ZpbGVfY3R4 X3N0YXRzKDAsIGRldl9wcml2LT5rZXJuZWxfY29udGV4dCwgJnN0YXRzKTsKPiDCoAo+IC0JbGlz dF9mb3JfZWFjaF9lbnRyeShmaWxlLCAmZGV2X3ByaXYtPmRldi0+ZmlsZWxpc3QsIGxoZWFkKSB7 Cj4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGZpbGUsICZkZXZfcHJpdi0+ZHJtLmZpbGVsaXN0LCBs aGVhZCkgewo+IMKgCQlzdHJ1Y3QgZHJtX2k5MTVfZmlsZV9wcml2YXRlICpmcHJpdiA9IGZpbGUt PmRyaXZlcl9wcml2Owo+IMKgCQlpZHJfZm9yX2VhY2goJmZwcml2LT5jb250ZXh0X2lkciwgcGVy X2ZpbGVfY3R4X3N0YXRzLCAmc3RhdHMpOwo+IMKgCX0KPiAtCW11dGV4X3VubG9jaygmZGV2X3By aXYtPmRldi0+c3RydWN0X211dGV4KTsKPiArCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRybS5z dHJ1Y3RfbXV0ZXgpOwo+IMKgCj4gwqAJcHJpbnRfZmlsZV9zdGF0cyhtLCAiW2tdY29udGV4dHMi LCBzdGF0cyk7Cj4gwqB9Cj4gQEAgLTI3NzcsOCArMjc3Nyw4IEBAIHN0YXRpYyBpbnQgaTkxNV9y dW50aW1lX3BtX3N0YXR1cyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKPiDCoAlz ZXFfcHJpbnRmKG0sICJEZXZpY2UgUG93ZXIgTWFuYWdlbWVudCAoQ09ORklHX1BNKSBkaXNhYmxl ZFxuIik7Cj4gwqAjZW5kaWYKPiDCoAlzZXFfcHJpbnRmKG0sICJQQ0kgZGV2aWNlIHBvd2VyIHN0 YXRlOiAlcyBbJWRdXG4iLAo+IC0JCcKgwqDCoHBjaV9wb3dlcl9uYW1lKGRldl9wcml2LT5kZXYt PnBkZXYtPmN1cnJlbnRfc3RhdGUpLAo+IC0JCcKgwqDCoGRldl9wcml2LT5kZXYtPnBkZXYtPmN1 cnJlbnRfc3RhdGUpOwo+ICsJCcKgwqDCoHBjaV9wb3dlcl9uYW1lKGRldl9wcml2LT5kcm0ucGRl di0+Y3VycmVudF9zdGF0ZSksCj4gKwkJwqDCoMKgZGV2X3ByaXYtPmRybS5wZGV2LT5jdXJyZW50 X3N0YXRlKTsKPiDCoAo+IMKgCXJldHVybiAwOwo+IMKgfQo+IEBAIC01MTE4LDcgKzUxMTgsNyBA QCBpOTE1X2NhY2hlX3NoYXJpbmdfZ2V0KHZvaWQgKmRhdGEsIHU2NCAqdmFsKQo+IMKgCXNucGNy ID0gSTkxNV9SRUFEKEdFTjZfTUJDVU5JVF9TTlBDUik7Cj4gwqAKPiDCoAlpbnRlbF9ydW50aW1l X3BtX3B1dChkZXZfcHJpdik7Cj4gLQltdXRleF91bmxvY2soJmRldl9wcml2LT5kZXYtPnN0cnVj dF9tdXRleCk7Cj4gKwltdXRleF91bmxvY2soJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsK PiDCoAo+IMKgCSp2YWwgPSAoc25wY3IgJiBHRU42X01CQ19TTlBDUl9NQVNLKSA+PiBHRU42X01C Q19TTlBDUl9TSElGVDsKPiDCoAo+IEBAIC01NTAwLDcgKzU1MDAsNyBAQCB2b2lkIGludGVsX2Rp c3BsYXlfY3JjX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiDCoAo+IMKgaW50IGk5MTVf ZGVidWdmc19yZWdpc3RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gwqB7 Cj4gLQlzdHJ1Y3QgZHJtX21pbm9yICptaW5vciA9IGRldl9wcml2LT5kZXYtPnByaW1hcnk7Cj4g KwlzdHJ1Y3QgZHJtX21pbm9yICptaW5vciA9IGRldl9wcml2LT5kcm0ucHJpbWFyeTsKPiDCoAlp bnQgcmV0LCBpOwo+IMKgCj4gwqAJcmV0ID0gaTkxNV9mb3JjZXdha2VfY3JlYXRlKG1pbm9yLT5k ZWJ1Z2ZzX3Jvb3QsIG1pbm9yKTsKPiBAQCAtNTUyOCw3ICs1NTI4LDcgQEAgaW50IGk5MTVfZGVi dWdmc19yZWdpc3RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gwqAKPiDC oHZvaWQgaTkxNV9kZWJ1Z2ZzX3VucmVnaXN0ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQo+IMKgewo+IC0Jc3RydWN0IGRybV9taW5vciAqbWlub3IgPSBkZXZfcHJpdi0+ZGV2 LT5wcmltYXJ5Owo+ICsJc3RydWN0IGRybV9taW5vciAqbWlub3IgPSBkZXZfcHJpdi0+ZHJtLnBy aW1hcnk7Cj4gwqAJaW50IGk7Cj4gwqAKPiDCoAlkcm1fZGVidWdmc19yZW1vdmVfZmlsZXMoaTkx NV9kZWJ1Z2ZzX2xpc3QsCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gaW5kZXggYmY2MDdjYThk ZGI0Li43YzcwNDY5MjE5ZTIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiBAQCAtNzcs NyArNzcsNyBAQCBfX2k5MTVfcHJpbnRrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwgY29uc3QgY2hhciAqbGV2ZWwsCj4gwqAJwqDCoMKgwqDCoMKgY29uc3QgY2hhciAqZm10LCAu Li4pCj4gwqB7Cj4gwqAJc3RhdGljIGJvb2wgc2hvd25fYnVnX29uY2U7Cj4gLQlzdHJ1Y3QgZGV2 aWNlICpkZXYgPSBkZXZfcHJpdi0+ZGV2LT5kZXY7Cj4gKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBk ZXZfcHJpdi0+ZHJtLmRldjsKPiDCoAlib29sIGlzX2Vycm9yID0gbGV2ZWxbMV0gPD0gS0VSTl9F UlJbMV07Cj4gwqAJYm9vbCBpc19kZWJ1ZyA9IGxldmVsWzFdID09IEtFUk5fREVCVUdbMV07Cj4g wqAJc3RydWN0IHZhX2Zvcm1hdCB2YWY7Cj4gQEAgLTY4MSw3ICs2ODEsNyBAQCBvdXQ6Cj4gwqBz dGF0aWMgaW50IGk5MTVfa2lja19vdXRfZmlybXdhcmVfZmIoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQo+IMKgewo+IMKgCXN0cnVjdCBhcGVydHVyZXNfc3RydWN0ICphcDsKPiAt CXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gZGV2X3ByaXYtPmRldi0+cGRldjsKPiArCXN0cnVjdCBw Y2lfZGV2ICpwZGV2ID0gZGV2X3ByaXYtPmRybS5wZGV2Owo+IMKgCXN0cnVjdCBpOTE1X2dndHQg KmdndHQgPSAmZGV2X3ByaXYtPmdndHQ7Cj4gwqAJYm9vbCBwcmltYXJ5Owo+IMKgCWludCByZXQ7 Cj4gQEAgLTc1Myw4ICs3NTMsOCBAQCBzdGF0aWMgdm9pZCBpOTE1X2R1bXBfZGV2aWNlX2luZm8o c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+IMKgCURSTV9ERUJVR19EUklWRVIo Imk5MTUgZGV2aWNlIGluZm86IGdlbj0laSwgcGNpaWQ9MHglMDR4IHJldj0weCUwMnggZmxhZ3M9 Igo+IMKgCQkJwqBERVZfSU5GT19GT1JfRUFDSF9GTEFHKFBSSU5UX1MsIFNFUF9FTVBUWSksCj4g wqAJCQnCoGluZm8tPmdlbiwKPiAtCQkJwqBkZXZfcHJpdi0+ZGV2LT5wZGV2LT5kZXZpY2UsCj4g LQkJCcKgZGV2X3ByaXYtPmRldi0+cGRldi0+cmV2aXNpb24sCj4gKwkJCcKgZGV2X3ByaXYtPmRy bS5wZGV2LT5kZXZpY2UsCj4gKwkJCcKgZGV2X3ByaXYtPmRybS5wZGV2LT5yZXZpc2lvbiwKPiDC oAkJCcKgREVWX0lORk9fRk9SX0VBQ0hfRkxBRyhQUklOVF9GTEFHLCBTRVBfQ09NTUEpKTsKPiDC oCN1bmRlZiBQUklOVF9TCj4gwqAjdW5kZWYgU0VQX0VNUFRZCj4gQEAgLTEyNDUsNyArMTI0NSw3 IEBAIHN0YXRpYyBpbnQgaTkxNV9kcml2ZXJfaW5pdF9lYXJseShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCj4gwqAgKi8KPiDCoHN0YXRpYyB2b2lkIGk5MTVfZHJpdmVyX2NsZWFu dXBfZWFybHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+IMKgewo+IC0JaTkx NV9nZW1fbG9hZF9jbGVhbnVwKGRldl9wcml2LT5kZXYpOwo+ICsJaTkxNV9nZW1fbG9hZF9jbGVh bnVwKCZkZXZfcHJpdi0+ZHJtKTsKPiDCoAlpOTE1X3dvcmtxdWV1ZXNfY2xlYW51cChkZXZfcHJp dik7Cj4gwqB9Cj4gwqAKPiBAQCAtMTMwMCw3ICsxMzAwLDcgQEAgc3RhdGljIHZvaWQgaTkxNV9t bWlvX2NsZWFudXAoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiDCoCAqLwo+IMKgc3RhdGljIGlu dCBpOTE1X2RyaXZlcl9pbml0X21taW8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQo+IMKgewo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGRldl9wcml2LT5kZXY7Cj4gKwlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRldl9wcml2LT5kcm07Cj4gwqAJaW50IHJldDsKPiDC oAo+IMKgCWlmIChpOTE1X2luamVjdF9sb2FkX2ZhaWx1cmUoKSkKPiBAQCAtMTMyOSw3ICsxMzI5 LDcgQEAgcHV0X2JyaWRnZToKPiDCoCAqLwo+IMKgc3RhdGljIHZvaWQgaTkxNV9kcml2ZXJfY2xl YW51cF9tbWlvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiDCoHsKPiAtCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkZXZfcHJpdi0+ZGV2Owo+ICsJc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9ICZkZXZfcHJpdi0+ZHJtOwo+IMKgCj4gwqAJaW50ZWxfdW5jb3JlX2ZpbmkoZGV2 X3ByaXYpOwo+IMKgCWk5MTVfbW1pb19jbGVhbnVwKGRldik7Cj4gQEAgLTEzNDUsNyArMTM0NSw3 IEBAIHN0YXRpYyB2b2lkIGk5MTVfZHJpdmVyX2NsZWFudXBfbW1pbyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCj4gwqAgKi8KPiDCoHN0YXRpYyBpbnQgaTkxNV9kcml2ZXJfaW5p dF9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gwqB7Cj4gLQlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gZGV2X3ByaXYtPmRldjsKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSAmZGV2X3ByaXYtPmRybTsKPiDCoAlzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0ID0gJmRldl9w cml2LT5nZ3R0Owo+IMKgCXVpbnQzMl90IGFwZXJ0dXJlX3NpemU7Cj4gwqAJaW50IHJldDsKPiBA QCAtMTQ2Miw3ICsxNDYyLDcgQEAgb3V0X2dndHQ6Cj4gwqAgKi8KPiDCoHN0YXRpYyB2b2lkIGk5 MTVfZHJpdmVyX2NsZWFudXBfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ IMKgewo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGRldl9wcml2LT5kZXY7Cj4gKwlzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRldl9wcml2LT5kcm07Cj4gwqAJc3RydWN0IGk5MTVfZ2d0 dCAqZ2d0dCA9ICZkZXZfcHJpdi0+Z2d0dDsKPiDCoAo+IMKgCWlmIChkZXYtPnBkZXYtPm1zaV9l bmFibGVkKQo+IEBAIC0xNDgzLDcgKzE0ODMsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2RyaXZlcl9j bGVhbnVwX2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiDCoCAqLwo+IMKg c3RhdGljIHZvaWQgaTkxNV9kcml2ZXJfcmVnaXN0ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQo+IMKgewo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGRldl9wcml2LT5k ZXY7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRldl9wcml2LT5kcm07Cj4gwqAKPiDC oAlpOTE1X2dlbV9zaHJpbmtlcl9pbml0KGRldl9wcml2KTsKPiDCoAo+IEBAIC0xNTM5LDkgKzE1 MzksOSBAQCBzdGF0aWMgdm9pZCBpOTE1X2RyaXZlcl91bnJlZ2lzdGVyKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKPiDCoAlpbnRlbF9vcHJlZ2lvbl91bnJlZ2lzdGVyKGRldl9w cml2KTsKPiDCoAo+IMKgCWludGVsX21vZGVzZXRfdW5yZWdpc3RlcihkZXZfcHJpdik7Cj4gLQlp OTE1X3RlYXJkb3duX3N5c2ZzKGRldl9wcml2LT5kZXYpOwo+ICsJaTkxNV90ZWFyZG93bl9zeXNm cygmZGV2X3ByaXYtPmRybSk7Cj4gwqAJaTkxNV9kZWJ1Z2ZzX3VucmVnaXN0ZXIoZGV2X3ByaXYp Owo+IC0JZHJtX2Rldl91bnJlZ2lzdGVyKGRldl9wcml2LT5kZXYpOwo+ICsJZHJtX2Rldl91bnJl Z2lzdGVyKCZkZXZfcHJpdi0+ZHJtKTsKPiDCoAo+IMKgCWk5MTVfZ2VtX3Nocmlua2VyX2NsZWFu dXAoZGV2X3ByaXYpOwo+IMKgfQo+IEBAIC0xNTc2LDcgKzE1NzYsNiBAQCBpbnQgaTkxNV9kcml2 ZXJfbG9hZChzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQg KmVudCkKPiDCoAkvKiBNdXN0IGJlIHNldCBiZWZvcmUgY2FsbGluZyBfX2k5MTVfcHJpbnRrICov Cj4gwqAJZGV2X3ByaXYtPmRybS5wZGV2ID0gcGRldjsKPiDCoAlkZXZfcHJpdi0+ZHJtLmRldl9w cml2YXRlID0gZGV2X3ByaXY7Cj4gLQlkZXZfcHJpdi0+ZGV2ID0gJmRldl9wcml2LT5kcm07Cj4g wqAKPiDCoAlyZXQgPSBpOTE1X2RyaXZlcl9pbml0X2Vhcmx5KGRldl9wcml2LCBlbnQpOwo+IMKg CWlmIChyZXQgPCAwKQo+IEBAIC0xNjA0LDEzICsxNjAzLDEzIEBAIGludCBpOTE1X2RyaXZlcl9s b2FkKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZW50 KQo+IMKgCcKgKiB0byB0aGUgcm9sZS9lZmZlY3Qgb2YgdGhlIGdpdmVuIGluaXQgc3RlcC4KPiDC oAnCoCovCj4gwqAJaWYgKElOVEVMX0lORk8oZGV2X3ByaXYpLT5udW1fcGlwZXMpIHsKPiAtCQly ZXQgPSBkcm1fdmJsYW5rX2luaXQoZGV2X3ByaXYtPmRldiwKPiArCQlyZXQgPSBkcm1fdmJsYW5r X2luaXQoJmRldl9wcml2LT5kcm0sCj4gwqAJCQkJwqDCoMKgwqDCoMKgSU5URUxfSU5GTyhkZXZf cHJpdiktPm51bV9waXBlcyk7Cj4gwqAJCWlmIChyZXQpCj4gwqAJCQlnb3RvIG91dF9jbGVhbnVw X2h3Owo+IMKgCX0KPiDCoAo+IC0JcmV0ID0gaTkxNV9sb2FkX21vZGVzZXRfaW5pdChkZXZfcHJp di0+ZGV2KTsKPiArCXJldCA9IGk5MTVfbG9hZF9tb2Rlc2V0X2luaXQoJmRldl9wcml2LT5kcm0p Owo+IMKgCWlmIChyZXQgPCAwKQo+IMKgCQlnb3RvIG91dF9jbGVhbnVwX3ZibGFuazsKPiDCoAo+ IEBAIC0xNjIzLDcgKzE2MjIsNyBAQCBpbnQgaTkxNV9kcml2ZXJfbG9hZChzdHJ1Y3QgcGNpX2Rl diAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVudCkKPiDCoAlyZXR1cm4gMDsK PiDCoAo+IMKgb3V0X2NsZWFudXBfdmJsYW5rOgo+IC0JZHJtX3ZibGFua19jbGVhbnVwKGRldl9w cml2LT5kZXYpOwo+ICsJZHJtX3ZibGFua19jbGVhbnVwKCZkZXZfcHJpdi0+ZHJtKTsKPiDCoG91 dF9jbGVhbnVwX2h3Ogo+IMKgCWk5MTVfZHJpdmVyX2NsZWFudXBfaHcoZGV2X3ByaXYpOwo+IMKg b3V0X2NsZWFudXBfbW1pbzoKPiBAQCAtMTc0NCw3ICsxNzQzLDcgQEAgc3RhdGljIHZvaWQgaTkx NV9kcml2ZXJfcG9zdGNsb3NlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmls ZSAqZmlsZSkKPiDCoAo+IMKgc3RhdGljIHZvaWQgaW50ZWxfc3VzcGVuZF9lbmNvZGVycyhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gwqB7Cj4gLQlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gZGV2X3ByaXYtPmRldjsKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAmZGV2 X3ByaXYtPmRybTsKPiDCoAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcjsKPiDCoAo+IMKg CWRybV9tb2Rlc2V0X2xvY2tfYWxsKGRldik7Cj4gQEAgLTIxMTIsNyArMjExMSw3IEBAIGludCBp OTE1X3Jlc3VtZV9zd2l0Y2hlcm9vKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gwqAgKi8KPiDC oGludCBpOTE1X3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiDCoHsK PiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkZXZfcHJpdi0+ZGV2Owo+ICsJc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9ICZkZXZfcHJpdi0+ZHJtOwo+IMKgCXN0cnVjdCBpOTE1X2dwdV9lcnJv ciAqZXJyb3IgPSAmZGV2X3ByaXYtPmdwdV9lcnJvcjsKPiDCoAl1bnNpZ25lZCByZXNldF9jb3Vu dGVyOwo+IMKgCWludCByZXQ7Cj4gQEAgLTIyMTYsNyArMjIxNSw3IEBAIHN0YXRpYyBpbnQgaTkx NV9wbV9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKPiDCoAo+IMKgc3RhdGljIGludCBpOTE1 X3BtX3N1c3BlbmRfbGF0ZShzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gwqB7Cj4gLQlzdHJ1Y3QgZHJt X2RldmljZSAqZHJtX2RldiA9IGRldl90b19pOTE1KGRldiktPmRldjsKPiArCXN0cnVjdCBkcm1f ZGV2aWNlICpkcm1fZGV2ID0gJmRldl90b19pOTE1KGRldiktPmRybTsKPiDCoAo+IMKgCS8qCj4g wqAJwqAqIFdlIGhhdmUgYSBzdXNwZW5kIG9yZGVyaW5nIGlzc3VlIHdpdGggdGhlIHNuZC1oZGEg ZHJpdmVyIGFsc28KPiBAQCAtMjIzNSw3ICsyMjM0LDcgQEAgc3RhdGljIGludCBpOTE1X3BtX3N1 c3BlbmRfbGF0ZShzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gwqAKPiDCoHN0YXRpYyBpbnQgaTkxNV9w bV9wb3dlcm9mZl9sYXRlKHN0cnVjdCBkZXZpY2UgKmRldikKPiDCoHsKPiAtCXN0cnVjdCBkcm1f ZGV2aWNlICpkcm1fZGV2ID0gZGV2X3RvX2k5MTUoZGV2KS0+ZGV2Owo+ICsJc3RydWN0IGRybV9k ZXZpY2UgKmRybV9kZXYgPSAmZGV2X3RvX2k5MTUoZGV2KS0+ZHJtOwo+IMKgCj4gwqAJaWYgKGRy bV9kZXYtPnN3aXRjaF9wb3dlcl9zdGF0ZSA9PSBEUk1fU1dJVENIX1BPV0VSX09GRikKPiDCoAkJ cmV0dXJuIDA7Cj4gQEAgLTIyNDUsNyArMjI0NCw3IEBAIHN0YXRpYyBpbnQgaTkxNV9wbV9wb3dl cm9mZl9sYXRlKHN0cnVjdCBkZXZpY2UgKmRldikKPiDCoAo+IMKgc3RhdGljIGludCBpOTE1X3Bt X3Jlc3VtZV9lYXJseShzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gwqB7Cj4gLQlzdHJ1Y3QgZHJtX2Rl dmljZSAqZHJtX2RldiA9IGRldl90b19pOTE1KGRldiktPmRldjsKPiArCXN0cnVjdCBkcm1fZGV2 aWNlICpkcm1fZGV2ID0gJmRldl90b19pOTE1KGRldiktPmRybTsKPiDCoAo+IMKgCWlmIChkcm1f ZGV2LT5zd2l0Y2hfcG93ZXJfc3RhdGUgPT0gRFJNX1NXSVRDSF9QT1dFUl9PRkYpCj4gwqAJCXJl dHVybiAwOwo+IEBAIC0yMjU1LDcgKzIyNTQsNyBAQCBzdGF0aWMgaW50IGk5MTVfcG1fcmVzdW1l X2Vhcmx5KHN0cnVjdCBkZXZpY2UgKmRldikKPiDCoAo+IMKgc3RhdGljIGludCBpOTE1X3BtX3Jl c3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gwqB7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZHJt X2RldiA9IGRldl90b19pOTE1KGRldiktPmRldjsKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkcm1f ZGV2ID0gJmRldl90b19pOTE1KGRldiktPmRybTsKPiDCoAo+IMKgCWlmIChkcm1fZGV2LT5zd2l0 Y2hfcG93ZXJfc3RhdGUgPT0gRFJNX1NXSVRDSF9QT1dFUl9PRkYpCj4gwqAJCXJldHVybiAwOwo+ IEBAIC0yNjMwLDcgKzI2MjksNyBAQCBlcnIxOgo+IMKgc3RhdGljIGludCB2bHZfcmVzdW1lX3By ZXBhcmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+IMKgCQkJCWJvb2wgcnBt X3Jlc3VtZSkKPiDCoHsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkZXZfcHJpdi0+ZGV2 Owo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZkZXZfcHJpdi0+ZHJtOwo+IMKgCWludCBl cnI7Cj4gwqAJaW50IHJldDsKPiDCoAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IDFk ZjE0MWU0YWI2Yi4uM2JhMjg5ZGYzODQzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4g QEAgLTMxNywxNSArMzE3LDE1IEBAIHN0cnVjdCBpOTE1X2hvdHBsdWcgewo+IMKgCQlmb3JfZWFj aF9pZiAoKF9fcG9ydHNfbWFzaykgJiAoMSA8PCAoX19wb3J0KSkpCj4gwqAKPiDCoCNkZWZpbmUg Zm9yX2VhY2hfY3J0YyhkZXYsIGNydGMpIFwKPiAtCWxpc3RfZm9yX2VhY2hfZW50cnkoY3J0Yywg JmRldi0+bW9kZV9jb25maWcuY3J0Y19saXN0LCBoZWFkKQo+ICsJbGlzdF9mb3JfZWFjaF9lbnRy eShjcnRjLCAmKGRldiktPm1vZGVfY29uZmlnLmNydGNfbGlzdCwgaGVhZCkKPiDCoAo+IMKgI2Rl ZmluZSBmb3JfZWFjaF9pbnRlbF9wbGFuZShkZXYsIGludGVsX3BsYW5lKSBcCj4gwqAJbGlzdF9m b3JfZWFjaF9lbnRyeShpbnRlbF9wbGFuZSwJCQlcCj4gLQkJCcKgwqDCoMKgJmRldi0+bW9kZV9j b25maWcucGxhbmVfbGlzdCwJXAo+ICsJCQnCoMKgwqDCoCYoZGV2KS0+bW9kZV9jb25maWcucGxh bmVfbGlzdCwJXAo+IMKgCQkJwqDCoMKgwqBiYXNlLmhlYWQpCj4gwqAKPiDCoCNkZWZpbmUgZm9y X2VhY2hfaW50ZWxfcGxhbmVfbWFzayhkZXYsIGludGVsX3BsYW5lLCBwbGFuZV9tYXNrKQkJXAo+ IC0JbGlzdF9mb3JfZWFjaF9lbnRyeShpbnRlbF9wbGFuZSwgJmRldi0+bW9kZV9jb25maWcucGxh bmVfbGlzdCwJXAo+ICsJbGlzdF9mb3JfZWFjaF9lbnRyeShpbnRlbF9wbGFuZSwgJihkZXYpLT5t b2RlX2NvbmZpZy5wbGFuZV9saXN0LAlcCj4gwqAJCQnCoMKgwqDCoGJhc2UuaGVhZCkJCQkJCVwK PiDCoAkJZm9yX2VhY2hfaWYgKChwbGFuZV9tYXNrKSAmCQkJCVwKPiDCoAkJCcKgwqDCoMKgwqAo MSA8PCBkcm1fcGxhbmVfaW5kZXgoJmludGVsX3BsYW5lLT5iYXNlKSkpCj4gQEAgLTMzNywxMCAr MzM3LDEwIEBAIHN0cnVjdCBpOTE1X2hvdHBsdWcgewo+IMKgCQlmb3JfZWFjaF9pZiAoKGludGVs X3BsYW5lKS0+cGlwZSA9PSAoaW50ZWxfY3J0YyktPnBpcGUpCj4gwqAKPiDCoCNkZWZpbmUgZm9y X2VhY2hfaW50ZWxfY3J0YyhkZXYsIGludGVsX2NydGMpIFwKPiAtCWxpc3RfZm9yX2VhY2hfZW50 cnkoaW50ZWxfY3J0YywgJmRldi0+bW9kZV9jb25maWcuY3J0Y19saXN0LCBiYXNlLmhlYWQpCj4g KwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGludGVsX2NydGMsICYoZGV2KS0+bW9kZV9jb25maWcuY3J0 Y19saXN0LCBiYXNlLmhlYWQpCj4gwqAKPiDCoCNkZWZpbmUgZm9yX2VhY2hfaW50ZWxfY3J0Y19t YXNrKGRldiwgaW50ZWxfY3J0YywgY3J0Y19tYXNrKSBcCj4gLQlsaXN0X2Zvcl9lYWNoX2VudHJ5 KGludGVsX2NydGMsICZkZXYtPm1vZGVfY29uZmlnLmNydGNfbGlzdCwgYmFzZS5oZWFkKSBcCj4g KwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGludGVsX2NydGMsICYoZGV2KS0+bW9kZV9jb25maWcuY3J0 Y19saXN0LCBiYXNlLmhlYWQpIFwKPiDCoAkJZm9yX2VhY2hfaWYgKChjcnRjX21hc2spICYgKDEg PDwgZHJtX2NydGNfaW5kZXgoJmludGVsX2NydGMtPmJhc2UpKSkKPiDCoAo+IMKgI2RlZmluZSBm b3JfZWFjaF9pbnRlbF9lbmNvZGVyKGRldiwgaW50ZWxfZW5jb2RlcikJCVwKPiBAQCAtMzUwLDcg KzM1MCw3IEBAIHN0cnVjdCBpOTE1X2hvdHBsdWcgewo+IMKgCj4gwqAjZGVmaW5lIGZvcl9lYWNo X2ludGVsX2Nvbm5lY3RvcihkZXYsIGludGVsX2Nvbm5lY3RvcikJCVwKPiDCoAlsaXN0X2Zvcl9l YWNoX2VudHJ5KGludGVsX2Nvbm5lY3RvciwJCQlcCj4gLQkJCcKgwqDCoMKgJmRldi0+bW9kZV9j b25maWcuY29ubmVjdG9yX2xpc3QsCVwKPiArCQkJwqDCoMKgwqAmKGRldiktPm1vZGVfY29uZmln LmNvbm5lY3Rvcl9saXN0LAlcCj4gwqAJCQnCoMKgwqDCoGJhc2UuaGVhZCkKPiDCoAo+IMKgI2Rl ZmluZSBmb3JfZWFjaF9lbmNvZGVyX29uX2NydGMoZGV2LCBfX2NydGMsIGludGVsX2VuY29kZXIp IFwKPiBAQCAtMTcyNCw3ICsxNzI0LDYgQEAgc3RydWN0IGludGVsX3dtX2NvbmZpZyB7Cj4gwqBz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7Cj4gwqAJc3RydWN0IGRybV9kZXZpY2UgZHJtOwo+IMKg Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2Owo+IMKgCXN0cnVjdCBrbWVtX2NhY2hlICpvYmpl Y3RzOwo+IMKgCXN0cnVjdCBrbWVtX2NhY2hlICp2bWFzOwo+IMKgCXN0cnVjdCBrbWVtX2NhY2hl ICpyZXF1ZXN0czsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0u YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBpbmRleCA4OTk2N2Y5N2MwOTcu LjQ5ZTA1OTA3MjZkNSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IEBAIC0xNDI4LDcg KzE0MjgsNyBAQCBfX2k5MTVfZ2VtX3JlcXVlc3RfcmV0aXJlX191cHRvKHN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqcmVxKQo+IMKgCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9 IHJlcS0+ZW5naW5lOwo+IMKgCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqdG1wOwo+IMKg Cj4gLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZlbmdpbmUtPmk5MTUtPmRldi0+c3RydWN0X211dGV4 KTsKPiArCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmVuZ2luZS0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRl eCk7Cj4gwqAKPiDCoAlpZiAobGlzdF9lbXB0eSgmcmVxLT5saXN0KSkKPiDCoAkJcmV0dXJuOwo+ IEBAIC0xNDU2LDcgKzE0NTYsNyBAQCBpOTE1X3dhaXRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKnJlcSkKPiDCoAo+IMKgCWludGVycnVwdGlibGUgPSBkZXZfcHJpdi0+bW0u aW50ZXJydXB0aWJsZTsKPiDCoAo+IC0JQlVHX09OKCFtdXRleF9pc19sb2NrZWQoJmRldl9wcml2 LT5kZXYtPnN0cnVjdF9tdXRleCkpOwo+ICsJQlVHX09OKCFtdXRleF9pc19sb2NrZWQoJmRldl9w cml2LT5kcm0uc3RydWN0X211dGV4KSk7Cj4gwqAKPiDCoAlyZXQgPSBfX2k5MTVfd2FpdF9yZXF1 ZXN0KHJlcSwgaW50ZXJydXB0aWJsZSwgTlVMTCwgTlVMTCk7Cj4gwqAJaWYgKHJldCkKPiBAQCAt MzAyNyw3ICszMDI3LDcgQEAgaTkxNV9nZW1fcmV0aXJlX3dvcmtfaGFuZGxlcihzdHJ1Y3Qgd29y a19zdHJ1Y3QgKndvcmspCj4gwqB7Cj4gwqAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0KPiDCoAkJY29udGFpbmVyX29mKHdvcmssIHR5cGVvZigqZGV2X3ByaXYpLCBtbS5yZXRp cmVfd29yay53b3JrKTsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkZXZfcHJpdi0+ZGV2 Owo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZkZXZfcHJpdi0+ZHJtOwo+IMKgCWJvb2wg aWRsZTsKPiDCoAo+IMKgCS8qIENvbWUgYmFjayBsYXRlciBpZiB0aGUgZGV2aWNlIGlzIGJ1c3ku Li4gKi8KPiBAQCAtMzA0Niw3ICszMDQ2LDcgQEAgaTkxNV9nZW1faWRsZV93b3JrX2hhbmRsZXIo c3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+IMKgewo+IMKgCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9Cj4gwqAJCWNvbnRhaW5lcl9vZih3b3JrLCB0eXBlb2YoKmRldl9wcml2 KSwgbW0uaWRsZV93b3JrLndvcmspOwo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGRldl9w cml2LT5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRldl9wcml2LT5kcm07Cj4g wqAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwo+IMKgCj4gwqAJZm9yX2VhY2hfZW5n aW5lKGVuZ2luZSwgZGV2X3ByaXYpCj4gQEAgLTQ5NzYsNyArNDk3Niw3IEBAIGluaXRfZW5naW5l X2xpc3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiDCoHZvaWQKPiDCoGk5MTVf Z2VtX2xvYWRfaW5pdF9mZW5jZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ IMKgewo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGRldl9wcml2LT5kZXY7Cj4gKwlzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRldl9wcml2LT5kcm07Cj4gwqAKPiDCoAlpZiAoSU5URUxf SU5GTyhkZXZfcHJpdiktPmdlbiA+PSA3ICYmICFJU19WQUxMRVlWSUVXKGRldl9wcml2KSAmJgo+ IMKgCcKgwqDCoMKgIUlTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9jb250ZXh0LmMKPiBpbmRleCBhM2IxMWFhYzIzYTQuLjRmMzk0OWU2ZDQ4MCAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKPiBAQCAtMTU0LDcg KzE1NCw3IEBAIHZvaWQgaTkxNV9nZW1fY29udGV4dF9mcmVlKHN0cnVjdCBrcmVmICpjdHhfcmVm KQo+IMKgCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHggPSBjb250YWluZXJfb2YoY3R4X3Jl ZiwgdHlwZW9mKCpjdHgpLCByZWYpOwo+IMKgCWludCBpOwo+IMKgCj4gLQlsb2NrZGVwX2Fzc2Vy dF9oZWxkKCZjdHgtPmk5MTUtPmRldi0+c3RydWN0X211dGV4KTsKPiArCWxvY2tkZXBfYXNzZXJ0 X2hlbGQoJmN0eC0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4gwqAJdHJhY2VfaTkxNV9jb250 ZXh0X2ZyZWUoY3R4KTsKPiDCoAo+IMKgCS8qCj4gQEAgLTQ0NSw3ICs0NDUsNyBAQCB2b2lkIGk5 MTVfZ2VtX2NvbnRleHRfbG9zdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4g wqB7Cj4gwqAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwo+IMKgCj4gLQlsb2NrZGVw X2Fzc2VydF9oZWxkKCZkZXZfcHJpdi0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+ICsJbG9ja2RlcF9h c3NlcnRfaGVsZCgmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOwo+IMKgCj4gwqAJZm9yX2Vh Y2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYpIHsKPiDCoAkJaWYgKGVuZ2luZS0+bGFzdF9jb250 ZXh0KSB7Cj4gQEAgLTg2Myw3ICs4NjMsNyBAQCBpbnQgaTkxNV9zd2l0Y2hfY29udGV4dChzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiDCoAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUgPSByZXEtPmVuZ2luZTsKPiDCoAo+IMKgCVdBUk5fT04oaTkxNS5lbmFibGVfZXhl Y2xpc3RzKTsKPiAtCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJnJlcS0+aTkxNS0+ZGV2LT5zdHJ1Y3Rf bXV0ZXgpOwo+ICsJbG9ja2RlcF9hc3NlcnRfaGVsZCgmcmVxLT5pOTE1LT5kcm0uc3RydWN0X211 dGV4KTsKPiDCoAo+IMKgCWlmICghcmVxLT5jdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5zdGF0ZSkg ewo+IMKgCQlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqdG8gPSByZXEtPmN0eDsKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCj4gaW5kZXggODRkOTkwMzMxYWJk Li5lMmI2MjcyYmEzZGEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fZXhlY2J1ZmZlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhl Y2J1ZmZlci5jCj4gQEAgLTEzMzAsMTAgKzEzMzAsMTAgQEAgZ2VuOF9kaXNwYXRjaF9ic2Rfcmlu ZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHN0cnVjdCBkcm1fZmlsZSAqZmls ZSkKPiDCoAkvKiBDaGVjayB3aGV0aGVyIHRoZSBmaWxlX3ByaXYgaGFzIGFscmVhZHkgc2VsZWN0 ZWQgb25lIHJpbmcuICovCj4gwqAJaWYgKChpbnQpZmlsZV9wcml2LT5ic2RfcmluZyA8IDApIHsK PiDCoAkJLyogSWYgbm90LCB1c2UgdGhlIHBpbmctcG9uZyBtZWNoYW5pc20gdG8gc2VsZWN0IG9u ZS4gKi8KPiAtCQltdXRleF9sb2NrKCZkZXZfcHJpdi0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+ICsJ CW11dGV4X2xvY2soJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKPiDCoAkJZmlsZV9wcml2 LT5ic2RfcmluZyA9IGRldl9wcml2LT5tbS5ic2RfcmluZ19kaXNwYXRjaF9pbmRleDsKPiDCoAkJ ZGV2X3ByaXYtPm1tLmJzZF9yaW5nX2Rpc3BhdGNoX2luZGV4IF49IDE7Cj4gLQkJbXV0ZXhfdW5s b2NrKCZkZXZfcHJpdi0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+ICsJCW11dGV4X3VubG9jaygmZGV2 X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOwo+IMKgCX0KPiDCoAo+IMKgCXJldHVybiBmaWxlX3By aXYtPmJzZF9yaW5nOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4gaW5kZXggNDY2 ODQ3NzlkNGQ2Li45ODA2NWViNDNmYjUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fZ3R0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9n dHQuYwo+IEBAIC0xNTMsNyArMTUzLDcgQEAgaW50IGludGVsX3Nhbml0aXplX2VuYWJsZV9wcGd0 dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gwqAjZW5kaWYKPiDCoAo+IMKg CS8qIEVhcmx5IFZMViBkb2Vzbid0IGhhdmUgdGhpcyAqLwo+IC0JaWYgKElTX1ZBTExFWVZJRVco ZGV2X3ByaXYpICYmIGRldl9wcml2LT5kZXYtPnBkZXYtPnJldmlzaW9uIDwgMHhiKSB7Cj4gKwlp ZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgJiYgZGV2X3ByaXYtPmRybS5wZGV2LT5yZXZpc2lv biA8IDB4Yikgewo+IMKgCQlEUk1fREVCVUdfRFJJVkVSKCJkaXNhYmxpbmcgUFBHVFQgb24gcHJl LUIzIHN0ZXAgVkxWXG4iKTsKPiDCoAkJcmV0dXJuIDA7Cj4gwqAJfQo+IEBAIC0yMTMzLDcgKzIx MzMsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2FkZHJlc3Nfc3BhY2VfaW5pdChzdHJ1Y3QgaTkxNV9h ZGRyZXNzX3NwYWNlICp2bSwKPiDCoAkJCQnCoMKgwqDCoHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKPiDCoHsKPiDCoAlkcm1fbW1faW5pdCgmdm0tPm1tLCB2bS0+c3RhcnQsIHZt LT50b3RhbCk7Cj4gLQl2bS0+ZGV2ID0gZGV2X3ByaXYtPmRldjsKPiArCXZtLT5kZXYgPSAmZGV2 X3ByaXYtPmRybTsKPiDCoAlJTklUX0xJU1RfSEVBRCgmdm0tPmFjdGl2ZV9saXN0KTsKPiDCoAlJ TklUX0xJU1RfSEVBRCgmdm0tPmluYWN0aXZlX2xpc3QpOwo+IMKgCWxpc3RfYWRkX3RhaWwoJnZt LT5nbG9iYWxfbGluaywgJmRldl9wcml2LT52bV9saXN0KTsKPiBAQCAtMjI2MSw3ICsyMjYxLDcg QEAgc3RhdGljIGJvb2wgZG9faWRsaW5nKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKPiDCoAo+IMKgCWlmICh1bmxpa2VseShnZ3R0LT5kb19pZGxlX21hcHMpKSB7Cj4gwqAJCWRl dl9wcml2LT5tbS5pbnRlcnJ1cHRpYmxlID0gZmFsc2U7Cj4gLQkJaWYgKGk5MTVfZ3B1X2lkbGUo ZGV2X3ByaXYtPmRldikpIHsKPiArCQlpZiAoaTkxNV9ncHVfaWRsZSgmZGV2X3ByaXYtPmRybSkp IHsKPiDCoAkJCURSTV9FUlJPUigiQ291bGRuJ3QgaWRsZSBHUFVcbiIpOwo+IMKgCQkJLyogV2Fp dCBhIGJpdCwgaW4gaG9wZXMgaXQgYXZvaWRzIHRoZSBoYW5nICovCj4gwqAJCQl1ZGVsYXkoMTAp Owo+IEBAIC0zMTM3LDcgKzMxMzcsNyBAQCBzdGF0aWMgaW50IGk5MTVfZ21jaF9wcm9iZShzdHJ1 Y3QgaTkxNV9nZ3R0ICpnZ3R0KQo+IMKgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoZGV2KTsKPiDCoAlpbnQgcmV0Owo+IMKgCj4gLQlyZXQgPSBpbnRlbF9nbWNo X3Byb2JlKGRldl9wcml2LT5icmlkZ2VfZGV2LCBkZXZfcHJpdi0+ZGV2LT5wZGV2LCBOVUxMKTsK PiArCXJldCA9IGludGVsX2dtY2hfcHJvYmUoZGV2X3ByaXYtPmJyaWRnZV9kZXYsIGRldl9wcml2 LT5kcm0ucGRldiwgTlVMTCk7Cj4gwqAJaWYgKCFyZXQpIHsKPiDCoAkJRFJNX0VSUk9SKCJmYWls ZWQgdG8gc2V0IHVwIGdtY2hcbiIpOwo+IMKgCQlyZXR1cm4gLUVJTzsKPiBAQCAtMzE0Niw3ICsz MTQ2LDcgQEAgc3RhdGljIGludCBpOTE1X2dtY2hfcHJvYmUoc3RydWN0IGk5MTVfZ2d0dCAqZ2d0 dCkKPiDCoAlpbnRlbF9ndHRfZ2V0KCZnZ3R0LT5iYXNlLnRvdGFsLCAmZ2d0dC0+c3RvbGVuX3Np emUsCj4gwqAJCcKgwqDCoMKgwqDCoCZnZ3R0LT5tYXBwYWJsZV9iYXNlLCAmZ2d0dC0+bWFwcGFi bGVfZW5kKTsKPiDCoAo+IC0JZ2d0dC0+ZG9faWRsZV9tYXBzID0gbmVlZHNfaWRsZV9tYXBzKGRl dl9wcml2LT5kZXYpOwo+ICsJZ2d0dC0+ZG9faWRsZV9tYXBzID0gbmVlZHNfaWRsZV9tYXBzKCZk ZXZfcHJpdi0+ZHJtKTsKPiDCoAlnZ3R0LT5iYXNlLmluc2VydF9lbnRyaWVzID0gaTkxNV9nZ3R0 X2luc2VydF9lbnRyaWVzOwo+IMKgCWdndHQtPmJhc2UuY2xlYXJfcmFuZ2UgPSBpOTE1X2dndHRf Y2xlYXJfcmFuZ2U7Cj4gwqAJZ2d0dC0+YmFzZS5iaW5kX3ZtYSA9IGdndHRfYmluZF92bWE7Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlbmRlcl9zdGF0ZS5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVuZGVyX3N0YXRlLmMKPiBpbmRleCA3 YzkzMzI3YjcwZmUuLjhhMTI5ODQzOTU2ZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9yZW5kZXJfc3RhdGUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX3JlbmRlcl9zdGF0ZS5jCj4gQEAgLTU4LDcgKzU4LDcgQEAgc3RhdGljIGludCBy ZW5kZXJfc3RhdGVfaW5pdChzdHJ1Y3QgcmVuZGVyX3N0YXRlICpzbywKPiDCoAlpZiAoc28tPnJv ZGF0YS0+YmF0Y2hfaXRlbXMgKiA0ID4gNDA5NikKPiDCoAkJcmV0dXJuIC1FSU5WQUw7Cj4gwqAK PiAtCXNvLT5vYmogPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRlKGRldl9wcml2LT5kZXYsIDQwOTYp Owo+ICsJc28tPm9iaiA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGUoJmRldl9wcml2LT5kcm0sIDQw OTYpOwo+IMKgCWlmIChJU19FUlIoc28tPm9iaikpCj4gwqAJCXJldHVybiBQVFJfRVJSKHNvLT5v YmopOwo+IMKgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3No cmlua2VyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zaHJpbmtlci5jCj4gaW5k ZXggNTM4YzMwNDk5ODQ4Li5lNjM4NTI3OTUzOTUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fc2hyaW5rZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX3Nocmlua2VyLmMKPiBAQCAtMjU3LDcgKzI1Nyw3IEBAIGk5MTVfZ2VtX3Nocmlu a2VyX2NvdW50KHN0cnVjdCBzaHJpbmtlciAqc2hyaW5rZXIsIHN0cnVjdCBzaHJpbmtfY29udHJv bCAqc2MpCj4gwqB7Cj4gwqAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0KPiDC oAkJY29udGFpbmVyX29mKHNocmlua2VyLCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSwgbW0uc2hy aW5rZXIpOwo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGRldl9wcml2LT5kZXY7Cj4gKwlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRldl9wcml2LT5kcm07Cj4gwqAJc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm9iajsKPiDCoAl1bnNpZ25lZCBsb25nIGNvdW50Owo+IMKgCWJvb2wg dW5sb2NrOwo+IEBAIC0yODYsNyArMjg2LDcgQEAgaTkxNV9nZW1fc2hyaW5rZXJfc2NhbihzdHJ1 Y3Qgc2hyaW5rZXIgKnNocmlua2VyLCBzdHJ1Y3Qgc2hyaW5rX2NvbnRyb2wgKnNjKQo+IMKgewo+ IMKgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9Cj4gwqAJCWNvbnRhaW5lcl9v ZihzaHJpbmtlciwgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUsIG1tLnNocmlua2VyKTsKPiAtCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkZXZfcHJpdi0+ZGV2Owo+ICsJc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9ICZkZXZfcHJpdi0+ZHJtOwo+IMKgCXVuc2lnbmVkIGxvbmcgZnJlZWQ7Cj4gwqAJ Ym9vbCB1bmxvY2s7Cj4gwqAKPiBAQCAtMzIxLDcgKzMyMSw3IEBAIGk5MTVfZ2VtX3Nocmlua2Vy X2xvY2tfdW5pbnRlcnJ1cHRpYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK PiDCoHsKPiDCoAl1bnNpZ25lZCBsb25nIHRpbWVvdXQgPSBtc2Vjc190b19qaWZmaWVzKHRpbWVv dXRfbXMpICsgMTsKPiDCoAo+IC0Jd2hpbGUgKCFpOTE1X2dlbV9zaHJpbmtlcl9sb2NrKGRldl9w cml2LT5kZXYsICZzbHUtPnVubG9jaykpIHsKPiArCXdoaWxlICghaTkxNV9nZW1fc2hyaW5rZXJf bG9jaygmZGV2X3ByaXYtPmRybSwgJnNsdS0+dW5sb2NrKSkgewo+IMKgCQlzY2hlZHVsZV90aW1l b3V0X2tpbGxhYmxlKDEpOwo+IMKgCQlpZiAoZmF0YWxfc2lnbmFsX3BlbmRpbmcoY3VycmVudCkp Cj4gwqAJCQlyZXR1cm4gZmFsc2U7Cj4gQEAgLTM0Miw3ICszNDIsNyBAQCBpOTE1X2dlbV9zaHJp bmtlcl91bmxvY2tfdW5pbnRlcnJ1cHRpYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKPiDCoHsKPiDCoAlkZXZfcHJpdi0+bW0uaW50ZXJydXB0aWJsZSA9IHNsdS0+d2FzX2lu dGVycnVwdGlibGU7Cj4gwqAJaWYgKHNsdS0+dW5sb2NrKQo+IC0JCW11dGV4X3VubG9jaygmZGV2 X3ByaXYtPmRldi0+c3RydWN0X211dGV4KTsKPiArCQltdXRleF91bmxvY2soJmRldl9wcml2LT5k cm0uc3RydWN0X211dGV4KTsKPiDCoH0KPiDCoAo+IMKgc3RhdGljIGludAo+IEBAIC00MDgsNyAr NDA4LDcgQEAgaTkxNV9nZW1fc2hyaW5rZXJfdm1hcChzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5i LCB1bnNpZ25lZCBsb25nIGV2ZW50LCB2b2lkICpwdHIKPiDCoAkJcmV0dXJuIE5PVElGWV9ET05F Owo+IMKgCj4gwqAJLyogRm9yY2UgZXZlcnl0aGluZyBvbnRvIHRoZSBpbmFjdGl2ZSBsaXN0cyAq Lwo+IC0JcmV0ID0gaTkxNV9ncHVfaWRsZShkZXZfcHJpdi0+ZGV2KTsKPiArCXJldCA9IGk5MTVf Z3B1X2lkbGUoJmRldl9wcml2LT5kcm0pOwo+IMKgCWlmIChyZXQpCj4gwqAJCWdvdG8gb3V0Owo+ IMKgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCj4gaW5kZXggMzRmZjI0NTlj ZWVhLi4wYzY5ZTRiZWU3YTQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9ncHVfZXJyb3IuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9y LmMKPiBAQCAtMTIzMCw3ICsxMjMwLDcgQEAgc3RhdGljIHZvaWQgaTkxNV9nZW1fY2FwdHVyZV9i dWZmZXJzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiDCoHN0YXRpYyB2b2lk IGk5MTVfY2FwdHVyZV9yZWdfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+IMKgCQkJCcKgwqDCoHN0cnVjdCBkcm1faTkxNV9lcnJvcl9zdGF0ZSAqZXJyb3IpCj4gwqB7 Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZGV2X3ByaXYtPmRldjsKPiArCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYtPmRybTsKPiDCoAlpbnQgaTsKPiDCoAo+IMKgCS8q IEdlbmVyYWwgb3JnYW5pemF0aW9uCj4gQEAgLTEzOTUsNyArMTM5NSw3IEBAIHZvaWQgaTkxNV9j YXB0dXJlX2Vycm9yX3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiDC oAkJRFJNX0lORk8oIlBsZWFzZSBmaWxlIGEgX25ld18gYnVnIHJlcG9ydCBvbiBidWdzLmZyZWVk ZXNrdG9wLm9yZyBhZ2FpbnN0IERSSSAtPiBEUk0vSW50ZWxcbiIpOwo+IMKgCQlEUk1fSU5GTygi ZHJtL2k5MTUgZGV2ZWxvcGVycyBjYW4gdGhlbiByZWFzc2lnbiB0byB0aGUgcmlnaHQgY29tcG9u ZW50IGlmIGl0J3Mgbm90IGEga2VybmVsIGlzc3VlLlxuIik7Cj4gwqAJCURSTV9JTkZPKCJUaGUg Z3B1IGNyYXNoIGR1bXAgaXMgcmVxdWlyZWQgdG8gYW5hbHl6ZSBncHUgaGFuZ3MsIHNvIHBsZWFz ZSBhbHdheXMgYXR0YWNoIGl0LlxuIik7Cj4gLQkJRFJNX0lORk8oIkdQVSBjcmFzaCBkdW1wIHNh dmVkIHRvIC9zeXMvY2xhc3MvZHJtL2NhcmQlZC9lcnJvclxuIiwgZGV2X3ByaXYtPmRldi0+cHJp bWFyeS0+aW5kZXgpOwo+ICsJCURSTV9JTkZPKCJHUFUgY3Jhc2ggZHVtcCBzYXZlZCB0byAvc3lz L2NsYXNzL2RybS9jYXJkJWQvZXJyb3JcbiIsIGRldl9wcml2LT5kcm0ucHJpbWFyeS0+aW5kZXgp Owo+IMKgCQl3YXJuZWQgPSB0cnVlOwo+IMKgCX0KPiDCoH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCj4gaW5kZXggYWM3MjQ1MWM1NzFjLi4yMTQxMzkwNTUw MTMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lv bi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCj4g QEAgLTE1Myw3ICsxNTMsNyBAQCBzdGF0aWMgaW50IGhvc3QyZ3VjX3NhbXBsZV9mb3JjZXdha2Uo c3RydWN0IGludGVsX2d1YyAqZ3VjLAo+IMKgCQkJCcKgwqDCoMKgwqBzdHJ1Y3QgaTkxNV9ndWNf Y2xpZW50ICpjbGllbnQpCj4gwqB7Cj4gwqAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gZ3VjX3RvX2k5MTUoZ3VjKTsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkZXZf cHJpdi0+ZGV2Owo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZkZXZfcHJpdi0+ZHJtOwo+ IMKgCXUzMiBkYXRhWzJdOwo+IMKgCj4gwqAJZGF0YVswXSA9IEhPU1QyR1VDX0FDVElPTl9TQU1Q TEVfRk9SQ0VXQUtFOwo+IEBAIC03OTAsNyArNzkwLDcgQEAgc3RhdGljIHZvaWQgZ3VjX2NyZWF0 ZV9sb2coc3RydWN0IGludGVsX2d1YyAqZ3VjKQo+IMKgCj4gwqAJb2JqID0gZ3VjLT5sb2dfb2Jq Owo+IMKgCWlmICghb2JqKSB7Cj4gLQkJb2JqID0gZ2VtX2FsbG9jYXRlX2d1Y19vYmooZGV2X3By aXYtPmRldiwgc2l6ZSk7Cj4gKwkJb2JqID0gZ2VtX2FsbG9jYXRlX2d1Y19vYmooJmRldl9wcml2 LT5kcm0sIHNpemUpOwo+IMKgCQlpZiAoIW9iaikgewo+IMKgCQkJLyogbG9nZ2luZyB3aWxsIGJl IG9mZiAqLwo+IMKgCQkJaTkxNS5ndWNfbG9nX2xldmVsID0gLTE7Cj4gQEAgLTg1MCw3ICs4NTAs NyBAQCBzdGF0aWMgdm9pZCBndWNfY3JlYXRlX2FkcyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCj4g wqAKPiDCoAlvYmogPSBndWMtPmFkc19vYmo7Cj4gwqAJaWYgKCFvYmopIHsKPiAtCQlvYmogPSBn ZW1fYWxsb2NhdGVfZ3VjX29iaihkZXZfcHJpdi0+ZGV2LCBQQUdFX0FMSUdOKHNpemUpKTsKPiAr CQlvYmogPSBnZW1fYWxsb2NhdGVfZ3VjX29iaigmZGV2X3ByaXYtPmRybSwgUEFHRV9BTElHTihz aXplKSk7Cj4gwqAJCWlmICghb2JqKQo+IMKgCQkJcmV0dXJuOwo+IMKgCj4gQEAgLTkxOCw3ICs5 MTgsNyBAQCBpbnQgaTkxNV9ndWNfc3VibWlzc2lvbl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCj4gwqAJaWYgKGd1Yy0+Y3R4X3Bvb2xfb2JqKQo+IMKgCQlyZXR1cm4gMDsgLyogYWxyZWFk eSBhbGxvY2F0ZWQgKi8KPiDCoAo+IC0JZ3VjLT5jdHhfcG9vbF9vYmogPSBnZW1fYWxsb2NhdGVf Z3VjX29iaihkZXZfcHJpdi0+ZGV2LCBnZW1zaXplKTsKPiArCWd1Yy0+Y3R4X3Bvb2xfb2JqID0g Z2VtX2FsbG9jYXRlX2d1Y19vYmooJmRldl9wcml2LT5kcm0sIGdlbXNpemUpOwo+IMKgCWlmICgh Z3VjLT5jdHhfcG9vbF9vYmopCj4gwqAJCXJldHVybiAtRU5PTUVNOwo+IMKgCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2lycS5jCj4gaW5kZXggY2FhZjFlMmE3YmMxLi45NWI4NzU0OWY0MWMgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfaXJxLmMKPiBAQCAtMzk3LDcgKzM5Nyw3IEBAIHZvaWQgZ2VuNl9kaXNh YmxlX3Jwc19pbnRlcnJ1cHRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiDC oAo+IMKgCXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsKPiDCoAo+IC0Jc3lu Y2hyb25pemVfaXJxKGRldl9wcml2LT5kZXYtPmlycSk7Cj4gKwlzeW5jaHJvbml6ZV9pcnEoZGV2 X3ByaXYtPmRybS5pcnEpOwo+IMKgfQo+IMKgCj4gwqAvKioKPiBAQCAtNTc3LDcgKzU3Nyw3IEBA IGk5MTVfZW5hYmxlX3BpcGVzdGF0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwg ZW51bSBwaXBlIHBpcGUsCj4gwqAJdTMyIGVuYWJsZV9tYXNrOwo+IMKgCj4gwqAJaWYgKElTX1ZB TExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQo+IC0JCWVuYWJs ZV9tYXNrID0gdmx2X2dldF9waXBlc3RhdF9lbmFibGVfbWFzayhkZXZfcHJpdi0+ZGV2LAo+ICsJ CWVuYWJsZV9tYXNrID0gdmx2X2dldF9waXBlc3RhdF9lbmFibGVfbWFzaygmZGV2X3ByaXYtPmRy bSwKPiDCoAkJCQkJCQnCoMKgwqBzdGF0dXNfbWFzayk7Cj4gwqAJZWxzZQo+IMKgCQllbmFibGVf bWFzayA9IHN0YXR1c19tYXNrIDw8IDE2Owo+IEBAIC01OTEsNyArNTkxLDcgQEAgaTkxNV9kaXNh YmxlX3BpcGVzdGF0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwaXBl IHBpcGUsCj4gwqAJdTMyIGVuYWJsZV9tYXNrOwo+IMKgCj4gwqAJaWYgKElTX1ZBTExFWVZJRVco ZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQo+IC0JCWVuYWJsZV9tYXNrID0g dmx2X2dldF9waXBlc3RhdF9lbmFibGVfbWFzayhkZXZfcHJpdi0+ZGV2LAo+ICsJCWVuYWJsZV9t YXNrID0gdmx2X2dldF9waXBlc3RhdF9lbmFibGVfbWFzaygmZGV2X3ByaXYtPmRybSwKPiDCoAkJ CQkJCQnCoMKgwqBzdGF0dXNfbWFzayk7Cj4gwqAJZWxzZQo+IMKgCQllbmFibGVfbWFzayA9IHN0 YXR1c19tYXNrIDw8IDE2Owo+IEBAIC0xMTk3LDcgKzExOTcsNyBAQCBzdGF0aWMgdm9pZCBpdnli cmlkZ2VfcGFyaXR5X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+IMKgCcKgKiBJbiBv cmRlciB0byBwcmV2ZW50IGEgZ2V0L3B1dCBzdHlsZSBpbnRlcmZhY2UsIGFjcXVpcmUgc3RydWN0 IG11dGV4Cj4gwqAJwqAqIGFueSB0aW1lIHdlIGFjY2VzcyB0aG9zZSByZWdpc3RlcnMuCj4gwqAJ wqAqLwo+IC0JbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmRldi0+c3RydWN0X211dGV4KTsKPiArCW11 dGV4X2xvY2soJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKPiDCoAo+IMKgCS8qIElmIHdl J3ZlIHNjcmV3ZWQgdXAgdHJhY2tpbmcsIGp1c3QgbGV0IHRoZSBpbnRlcnJ1cHQgZmlyZSBhZ2Fp biAqLwo+IMKgCWlmIChXQVJOX09OKCFkZXZfcHJpdi0+bDNfcGFyaXR5LndoaWNoX3NsaWNlKSkK PiBAQCAtMTIzMyw3ICsxMjMzLDcgQEAgc3RhdGljIHZvaWQgaXZ5YnJpZGdlX3Bhcml0eV93b3Jr KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiDCoAkJcGFyaXR5X2V2ZW50WzRdID0ga2FzcHJp bnRmKEdGUF9LRVJORUwsICJTTElDRT0lZCIsIHNsaWNlKTsKPiDCoAkJcGFyaXR5X2V2ZW50WzVd ID0gTlVMTDsKPiDCoAo+IC0JCWtvYmplY3RfdWV2ZW50X2VudigmZGV2X3ByaXYtPmRldi0+cHJp bWFyeS0+a2Rldi0+a29iaiwKPiArCQlrb2JqZWN0X3VldmVudF9lbnYoJmRldl9wcml2LT5kcm0u cHJpbWFyeS0+a2Rldi0+a29iaiwKPiDCoAkJCQnCoMKgwqBLT0JKX0NIQU5HRSwgcGFyaXR5X2V2 ZW50KTsKPiDCoAo+IMKgCQlEUk1fREVCVUcoIlBhcml0eSBlcnJvcjogU2xpY2UgPSAlZCwgUm93 ID0gJWQsIEJhbmsgPSAlZCwgU3ViIGJhbmsgPSAlZC5cbiIsCj4gQEAgLTEyNTMsNyArMTI1Myw3 IEBAIG91dDoKPiDCoAlnZW41X2VuYWJsZV9ndF9pcnEoZGV2X3ByaXYsIEdUX1BBUklUWV9FUlJP UihkZXZfcHJpdikpOwo+IMKgCXNwaW5fdW5sb2NrX2lycSgmZGV2X3ByaXYtPmlycV9sb2NrKTsK PiDCoAo+IC0JbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+ICsJ bXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4gwqB9Cj4gwqAKPiDC oHN0YXRpYyB2b2lkIGl2eWJyaWRnZV9wYXJpdHlfZXJyb3JfaXJxX2hhbmRsZXIoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+IEBAIC0xNTM4LDcgKzE1MzgsNyBAQCBzdGF0aWMg dm9pZCBkaXNwbGF5X3BpcGVfY3JjX2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKPiDCoAo+IMKgCWVudHJ5ID0gJnBpcGVfY3JjLT5lbnRyaWVzW2hlYWRdOwo+ IMKgCj4gLQllbnRyeS0+ZnJhbWUgPSBkZXZfcHJpdi0+ZGV2LT5kcml2ZXItPmdldF92Ymxhbmtf Y291bnRlcihkZXZfcHJpdi0+ZGV2LAo+ICsJZW50cnktPmZyYW1lID0gZGV2X3ByaXYtPmRybS5k cml2ZXItPmdldF92YmxhbmtfY291bnRlcigmZGV2X3ByaXYtPmRybSwKPiDCoAkJCQkJCQkJwqBw aXBlKTsKPiDCoAllbnRyeS0+Y3JjWzBdID0gY3JjMDsKPiDCoAllbnRyeS0+Y3JjWzFdID0gY3Jj MTsKPiBAQCAtMTYzNiw3ICsxNjM2LDcgQEAgc3RhdGljIGJvb2wgaW50ZWxfcGlwZV9oYW5kbGVf dmJsYW5rKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiDCoHsKPiDCoAlib29s IHJldDsKPiDCoAo+IC0JcmV0ID0gZHJtX2hhbmRsZV92YmxhbmsoZGV2X3ByaXYtPmRldiwgcGlw ZSk7Cj4gKwlyZXQgPSBkcm1faGFuZGxlX3ZibGFuaygmZGV2X3ByaXYtPmRybSwgcGlwZSk7Cj4g wqAJaWYgKHJldCkKPiDCoAkJaW50ZWxfZmluaXNoX3BhZ2VfZmxpcF9tbWlvKGRldl9wcml2LCBw aXBlKTsKPiDCoAo+IEBAIC0yNTM2LDcgKzI1MzYsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2Vycm9y X3dha2VfdXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+IMKgICovCj4gwqBz dGF0aWMgdm9pZCBpOTE1X3Jlc2V0X2FuZF93YWtldXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQo+IMKgewo+IC0Jc3RydWN0IGtvYmplY3QgKmtvYmogPSAmZGV2X3ByaXYtPmRl di0+cHJpbWFyeS0+a2Rldi0+a29iajsKPiArCXN0cnVjdCBrb2JqZWN0ICprb2JqID0gJmRldl9w cml2LT5kcm0ucHJpbWFyeS0+a2Rldi0+a29iajsKPiDCoAljaGFyICplcnJvcl9ldmVudFtdID0g eyBJOTE1X0VSUk9SX1VFVkVOVCAiPTEiLCBOVUxMIH07Cj4gwqAJY2hhciAqcmVzZXRfZXZlbnRb XSA9IHsgSTkxNV9SRVNFVF9VRVZFTlQgIj0xIiwgTlVMTCB9Owo+IMKgCWNoYXIgKnJlc2V0X2Rv bmVfZXZlbnRbXSA9IHsgSTkxNV9FUlJPUl9VRVZFTlQgIj0wIiwgTlVMTCB9Owo+IEBAIC0zNDU1 LDcgKzM0NTUsNyBAQCB2b2lkIGdlbjhfaXJxX3Bvd2VyX3dlbGxfcHJlX2Rpc2FibGUoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+IMKgCXNwaW5fdW5sb2NrX2lycSgmZGV2X3By aXYtPmlycV9sb2NrKTsKPiDCoAo+IMKgCS8qIG1ha2Ugc3VyZSB3ZSdyZSBkb25lIHByb2Nlc3Np bmcgZGlzcGxheSBpcnFzICovCj4gLQlzeW5jaHJvbml6ZV9pcnEoZGV2X3ByaXYtPmRldi0+aXJx KTsKPiArCXN5bmNocm9uaXplX2lycShkZXZfcHJpdi0+ZHJtLmlycSk7Cj4gwqB9Cj4gwqAKPiDC oHN0YXRpYyB2b2lkIGNoZXJyeXZpZXdfaXJxX3ByZWluc3RhbGwoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKPiBAQCAtMzQ4MSw3ICszNDgxLDcgQEAgc3RhdGljIHUzMiBpbnRlbF9ocGRfZW5hYmxl ZF9pcnFzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiDCoAlzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlcjsKPiDCoAl1MzIgZW5hYmxlZF9pcnFzID0gMDsKPiDCoAo+IC0J Zm9yX2VhY2hfaW50ZWxfZW5jb2RlcihkZXZfcHJpdi0+ZGV2LCBlbmNvZGVyKQo+ICsJZm9yX2Vh Y2hfaW50ZWxfZW5jb2RlcigmZGV2X3ByaXYtPmRybSwgZW5jb2RlcikKPiDCoAkJaWYgKGRldl9w cml2LT5ob3RwbHVnLnN0YXRzW2VuY29kZXItPmhwZF9waW5dLnN0YXRlID09IEhQRF9FTkFCTEVE KQo+IMKgCQkJZW5hYmxlZF9pcnFzIHw9IGhwZFtlbmNvZGVyLT5ocGRfcGluXTsKPiDCoAo+IEBA IC00NTY0LDcgKzQ1NjQsNyBAQCBzdGF0aWMgdm9pZCBpOTY1X2lycV91bmluc3RhbGwoc3RydWN0 IGRybV9kZXZpY2UgKiBkZXYpCj4gwqAgKi8KPiDCoHZvaWQgaW50ZWxfaXJxX2luaXQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+IMKgewo+IC0Jc3RydWN0IGRybV9kZXZpY2Ug KmRldiA9IGRldl9wcml2LT5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRldl9w cml2LT5kcm07Cj4gwqAKPiDCoAlpbnRlbF9ocGRfaW5pdF93b3JrKGRldl9wcml2KTsKPiDCoAo+ IEBAIC00Njg0LDcgKzQ2ODQsNyBAQCBpbnQgaW50ZWxfaXJxX2luc3RhbGwoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQo+IMKgCcKgKi8KPiDCoAlkZXZfcHJpdi0+cG0uaXJxc19l bmFibGVkID0gdHJ1ZTsKPiDCoAo+IC0JcmV0dXJuIGRybV9pcnFfaW5zdGFsbChkZXZfcHJpdi0+ ZGV2LCBkZXZfcHJpdi0+ZGV2LT5wZGV2LT5pcnEpOwo+ICsJcmV0dXJuIGRybV9pcnFfaW5zdGFs bCgmZGV2X3ByaXYtPmRybSwgZGV2X3ByaXYtPmRybS5wZGV2LT5pcnEpOwo+IMKgfQo+IMKgCj4g wqAvKioKPiBAQCAtNDY5Niw3ICs0Njk2LDcgQEAgaW50IGludGVsX2lycV9pbnN0YWxsKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiDCoCAqLwo+IMKgdm9pZCBpbnRlbF9pcnFf dW5pbnN0YWxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiDCoHsKPiAtCWRy bV9pcnFfdW5pbnN0YWxsKGRldl9wcml2LT5kZXYpOwo+ICsJZHJtX2lycV91bmluc3RhbGwoJmRl dl9wcml2LT5kcm0pOwo+IMKgCWludGVsX2hwZF9jYW5jZWxfd29yayhkZXZfcHJpdik7Cj4gwqAJ ZGV2X3ByaXYtPnBtLmlycXNfZW5hYmxlZCA9IGZhbHNlOwo+IMKgfQo+IEBAIC00NzEwLDkgKzQ3 MTAsOSBAQCB2b2lkIGludGVsX2lycV91bmluc3RhbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQo+IMKgICovCj4gwqB2b2lkIGludGVsX3J1bnRpbWVfcG1fZGlzYWJsZV9pbnRl cnJ1cHRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiDCoHsKPiAtCWRldl9w cml2LT5kZXYtPmRyaXZlci0+aXJxX3VuaW5zdGFsbChkZXZfcHJpdi0+ZGV2KTsKPiArCWRldl9w cml2LT5kcm0uZHJpdmVyLT5pcnFfdW5pbnN0YWxsKCZkZXZfcHJpdi0+ZHJtKTsKPiDCoAlkZXZf cHJpdi0+cG0uaXJxc19lbmFibGVkID0gZmFsc2U7Cj4gLQlzeW5jaHJvbml6ZV9pcnEoZGV2X3By aXYtPmRldi0+aXJxKTsKPiArCXN5bmNocm9uaXplX2lycShkZXZfcHJpdi0+ZHJtLmlycSk7Cj4g wqB9Cj4gwqAKPiDCoC8qKgo+IEBAIC00NzI1LDYgKzQ3MjUsNiBAQCB2b2lkIGludGVsX3J1bnRp bWVfcG1fZGlzYWJsZV9pbnRlcnJ1cHRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKPiDCoHZvaWQgaW50ZWxfcnVudGltZV9wbV9lbmFibGVfaW50ZXJydXB0cyhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gwqB7Cj4gwqAJZGV2X3ByaXYtPnBtLmlycXNfZW5h YmxlZCA9IHRydWU7Cj4gLQlkZXZfcHJpdi0+ZGV2LT5kcml2ZXItPmlycV9wcmVpbnN0YWxsKGRl dl9wcml2LT5kZXYpOwo+IC0JZGV2X3ByaXYtPmRldi0+ZHJpdmVyLT5pcnFfcG9zdGluc3RhbGwo ZGV2X3ByaXYtPmRldik7Cj4gKwlkZXZfcHJpdi0+ZHJtLmRyaXZlci0+aXJxX3ByZWluc3RhbGwo JmRldl9wcml2LT5kcm0pOwo+ICsJZGV2X3ByaXYtPmRybS5kcml2ZXItPmlycV9wb3N0aW5zdGFs bCgmZGV2X3ByaXYtPmRybSk7Cj4gwqB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfdHJhY2UuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdHJhY2UuaAo+IGlu ZGV4IDY3NjhkYjAzMmY4NC4uNGQ1MzBkZDNlZWQwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfdHJhY2UuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf dHJhY2UuaAo+IEBAIC0xMTgsNyArMTE4LDcgQEAgVFJBQ0VfRVZFTlQoaTkxNV9nZW1fc2hyaW5r LAo+IMKgCQkJwqDCoMKgwqDCoCksCj4gwqAKPiDCoAnCoMKgwqDCoFRQX2Zhc3RfYXNzaWduKAo+ IC0JCQnCoMKgwqBfX2VudHJ5LT5kZXYgPSBpOTE1LT5kZXYtPnByaW1hcnktPmluZGV4Owo+ICsJ CQnCoMKgwqBfX2VudHJ5LT5kZXYgPSBpOTE1LT5kcm0ucHJpbWFyeS0+aW5kZXg7Cj4gwqAJCQnC oMKgwqBfX2VudHJ5LT50YXJnZXQgPSB0YXJnZXQ7Cj4gwqAJCQnCoMKgwqBfX2VudHJ5LT5mbGFn cyA9IGZsYWdzOwo+IMKgCQkJwqDCoMKgKSwKPiBAQCAtNDYyLDcgKzQ2Miw3IEBAIFRSQUNFX0VW RU5UKGk5MTVfZ2VtX3Jpbmdfc3luY190bywKPiDCoAkJCcKgwqDCoMKgwqApLAo+IMKgCj4gwqAJ wqDCoMKgwqBUUF9mYXN0X2Fzc2lnbigKPiAtCQkJwqDCoMKgX19lbnRyeS0+ZGV2ID0gZnJvbS0+ aTkxNS0+ZGV2LT5wcmltYXJ5LT5pbmRleDsKPiArCQkJwqDCoMKgX19lbnRyeS0+ZGV2ID0gZnJv bS0+aTkxNS0+ZHJtLnByaW1hcnktPmluZGV4Owo+IMKgCQkJwqDCoMKgX19lbnRyeS0+c3luY19m cm9tID0gZnJvbS0+aWQ7Cj4gwqAJCQnCoMKgwqBfX2VudHJ5LT5zeW5jX3RvID0gdG9fcmVxLT5l bmdpbmUtPmlkOwo+IMKgCQkJwqDCoMKgX19lbnRyeS0+c2Vxbm8gPSBpOTE1X2dlbV9yZXF1ZXN0 X2dldF9zZXFubyhyZXEpOwo+IEBAIC00ODYsNyArNDg2LDcgQEAgVFJBQ0VfRVZFTlQoaTkxNV9n ZW1fcmluZ19kaXNwYXRjaCwKPiDCoAkJCcKgwqDCoMKgwqApLAo+IMKgCj4gwqAJwqDCoMKgwqBU UF9mYXN0X2Fzc2lnbigKPiAtCQkJwqDCoMKgX19lbnRyeS0+ZGV2ID0gcmVxLT5pOTE1LT5kZXYt PnByaW1hcnktPmluZGV4Owo+ICsJCQnCoMKgwqBfX2VudHJ5LT5kZXYgPSByZXEtPmk5MTUtPmRy bS5wcmltYXJ5LT5pbmRleDsKPiDCoAkJCcKgwqDCoF9fZW50cnktPnJpbmcgPSByZXEtPmVuZ2lu ZS0+aWQ7Cj4gwqAJCQnCoMKgwqBfX2VudHJ5LT5zZXFubyA9IHJlcS0+c2Vxbm87Cj4gwqAJCQnC oMKgwqBfX2VudHJ5LT5mbGFncyA9IGZsYWdzOwo+IEBAIC01MDksNyArNTA5LDcgQEAgVFJBQ0Vf RVZFTlQoaTkxNV9nZW1fcmluZ19mbHVzaCwKPiDCoAkJCcKgwqDCoMKgwqApLAo+IMKgCj4gwqAJ wqDCoMKgwqBUUF9mYXN0X2Fzc2lnbigKPiAtCQkJwqDCoMKgX19lbnRyeS0+ZGV2ID0gcmVxLT5p OTE1LT5kZXYtPnByaW1hcnktPmluZGV4Owo+ICsJCQnCoMKgwqBfX2VudHJ5LT5kZXYgPSByZXEt Pmk5MTUtPmRybS5wcmltYXJ5LT5pbmRleDsKPiDCoAkJCcKgwqDCoF9fZW50cnktPnJpbmcgPSBy ZXEtPmVuZ2luZS0+aWQ7Cj4gwqAJCQnCoMKgwqBfX2VudHJ5LT5pbnZhbGlkYXRlID0gaW52YWxp ZGF0ZTsKPiDCoAkJCcKgwqDCoF9fZW50cnktPmZsdXNoID0gZmx1c2g7Cj4gQEAgLTUzMSw3ICs1 MzEsNyBAQCBERUNMQVJFX0VWRU5UX0NMQVNTKGk5MTVfZ2VtX3JlcXVlc3QsCj4gwqAJCQnCoMKg wqDCoMKgKSwKPiDCoAo+IMKgCcKgwqDCoMKgVFBfZmFzdF9hc3NpZ24oCj4gLQkJCcKgwqDCoF9f ZW50cnktPmRldiA9IHJlcS0+aTkxNS0+ZGV2LT5wcmltYXJ5LT5pbmRleDsKPiArCQkJwqDCoMKg X19lbnRyeS0+ZGV2ID0gcmVxLT5pOTE1LT5kcm0ucHJpbWFyeS0+aW5kZXg7Cj4gwqAJCQnCoMKg wqBfX2VudHJ5LT5yaW5nID0gcmVxLT5lbmdpbmUtPmlkOwo+IMKgCQkJwqDCoMKgX19lbnRyeS0+ c2Vxbm8gPSByZXEtPnNlcW5vOwo+IMKgCQkJwqDCoMKgKSwKPiBAQCAtNTU2LDcgKzU1Niw3IEBA IFRSQUNFX0VWRU5UKGk5MTVfZ2VtX3JlcXVlc3Rfbm90aWZ5LAo+IMKgCQkJwqDCoMKgwqDCoCks Cj4gwqAKPiDCoAnCoMKgwqDCoFRQX2Zhc3RfYXNzaWduKAo+IC0JCQnCoMKgwqBfX2VudHJ5LT5k ZXYgPSBlbmdpbmUtPmk5MTUtPmRldi0+cHJpbWFyeS0+aW5kZXg7Cj4gKwkJCcKgwqDCoF9fZW50 cnktPmRldiA9IGVuZ2luZS0+aTkxNS0+ZHJtLnByaW1hcnktPmluZGV4Owo+IMKgCQkJwqDCoMKg X19lbnRyeS0+cmluZyA9IGVuZ2luZS0+aWQ7Cj4gwqAJCQnCoMKgwqBfX2VudHJ5LT5zZXFubyA9 IGVuZ2luZS0+Z2V0X3NlcW5vKGVuZ2luZSk7Cj4gwqAJCQnCoMKgwqApLAo+IEBAIC01OTMsMTEg KzU5MywxMSBAQCBUUkFDRV9FVkVOVChpOTE1X2dlbV9yZXF1ZXN0X3dhaXRfYmVnaW4sCj4gwqAJ wqDCoMKgwqDCoCogbGVzcyBkZXNpcmFibGUuCj4gwqAJwqDCoMKgwqDCoCovCj4gwqAJwqDCoMKg wqBUUF9mYXN0X2Fzc2lnbigKPiAtCQkJwqDCoMKgX19lbnRyeS0+ZGV2ID0gcmVxLT5pOTE1LT5k ZXYtPnByaW1hcnktPmluZGV4Owo+ICsJCQnCoMKgwqBfX2VudHJ5LT5kZXYgPSByZXEtPmk5MTUt PmRybS5wcmltYXJ5LT5pbmRleDsKPiDCoAkJCcKgwqDCoF9fZW50cnktPnJpbmcgPSByZXEtPmVu Z2luZS0+aWQ7Cj4gwqAJCQnCoMKgwqBfX2VudHJ5LT5zZXFubyA9IHJlcS0+c2Vxbm87Cj4gwqAJ CQnCoMKgwqBfX2VudHJ5LT5ibG9ja2luZyA9Cj4gLQkJCQnCoMKgwqDCoMKgbXV0ZXhfaXNfbG9j a2VkKCZyZXEtPmk5MTUtPmRldi0+c3RydWN0X211dGV4KTsKPiArCQkJCcKgwqDCoMKgwqBtdXRl eF9pc19sb2NrZWQoJnJlcS0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4gwqAJCQnCoMKgwqAp LAo+IMKgCj4gwqAJwqDCoMKgwqBUUF9wcmludGsoImRldj0ldSwgcmluZz0ldSwgc2Vxbm89JXUs IGJsb2NraW5nPSVzIiwKPiBAQCAtNzQ2LDcgKzc0Niw3IEBAIERFQ0xBUkVfRVZFTlRfQ0xBU1Mo aTkxNV9jb250ZXh0LAo+IMKgCVRQX2Zhc3RfYXNzaWduKAo+IMKgCQkJX19lbnRyeS0+Y3R4ID0g Y3R4Owo+IMKgCQkJX19lbnRyeS0+dm0gPSBjdHgtPnBwZ3R0ID8gJmN0eC0+cHBndHQtPmJhc2Ug OiBOVUxMOwo+IC0JCQlfX2VudHJ5LT5kZXYgPSBjdHgtPmk5MTUtPmRldi0+cHJpbWFyeS0+aW5k ZXg7Cj4gKwkJCV9fZW50cnktPmRldiA9IGN0eC0+aTkxNS0+ZHJtLnByaW1hcnktPmluZGV4Owo+ IMKgCSksCj4gwqAKPiDCoAlUUF9wcmludGsoImRldj0ldSwgY3R4PSVwLCBjdHhfdm09JXAiLAo+ IEBAIC03ODYsNyArNzg2LDcgQEAgVFJBQ0VfRVZFTlQoc3dpdGNoX21tLAo+IMKgCQkJX19lbnRy eS0+cmluZyA9IGVuZ2luZS0+aWQ7Cj4gwqAJCQlfX2VudHJ5LT50byA9IHRvOwo+IMKgCQkJX19l bnRyeS0+dm0gPSB0by0+cHBndHQ/ICZ0by0+cHBndHQtPmJhc2UgOiBOVUxMOwo+IC0JCQlfX2Vu dHJ5LT5kZXYgPSBlbmdpbmUtPmk5MTUtPmRldi0+cHJpbWFyeS0+aW5kZXg7Cj4gKwkJCV9fZW50 cnktPmRldiA9IGVuZ2luZS0+aTkxNS0+ZHJtLnByaW1hcnktPmluZGV4Owo+IMKgCSksCj4gwqAK PiDCoAlUUF9wcmludGsoImRldj0ldSwgcmluZz0ldSwgY3R4PSVwLCBjdHhfdm09JXAiLAo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYwo+IGluZGV4IGI5MzI5YzJhNjcwYS4uMjhkN2Q0NDM3 ZTMyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jCj4gQEAgLTc0OSwxNCArNzQ5 LDE0IEBAIHN0YXRpYyBpbnQgaTkxNV9hdWRpb19jb21wb25lbnRfYmluZChzdHJ1Y3QgZGV2aWNl ICppOTE1X2RldiwKPiDCoAlpZiAoV0FSTl9PTihhY29tcC0+b3BzIHx8IGFjb21wLT5kZXYpKQo+ IMKgCQlyZXR1cm4gLUVFWElTVDsKPiDCoAo+IC0JZHJtX21vZGVzZXRfbG9ja19hbGwoZGV2X3By aXYtPmRldik7Cj4gKwlkcm1fbW9kZXNldF9sb2NrX2FsbCgmZGV2X3ByaXYtPmRybSk7Cj4gwqAJ YWNvbXAtPm9wcyA9ICZpOTE1X2F1ZGlvX2NvbXBvbmVudF9vcHM7Cj4gwqAJYWNvbXAtPmRldiA9 IGk5MTVfZGV2Owo+IMKgCUJVSUxEX0JVR19PTihNQVhfUE9SVFMgIT0gSTkxNV9NQVhfUE9SVFMp Owo+IMKgCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGFjb21wLT5hdWRfc2FtcGxlX3JhdGUp OyBpKyspCj4gwqAJCWFjb21wLT5hdWRfc2FtcGxlX3JhdGVbaV0gPSAwOwo+IMKgCWRldl9wcml2 LT5hdWRpb19jb21wb25lbnQgPSBhY29tcDsKPiAtCWRybV9tb2Rlc2V0X3VubG9ja19hbGwoZGV2 X3ByaXYtPmRldik7Cj4gKwlkcm1fbW9kZXNldF91bmxvY2tfYWxsKCZkZXZfcHJpdi0+ZHJtKTsK PiDCoAo+IMKgCXJldHVybiAwOwo+IMKgfQo+IEBAIC03NjcsMTEgKzc2NywxMSBAQCBzdGF0aWMg dm9pZCBpOTE1X2F1ZGlvX2NvbXBvbmVudF91bmJpbmQoc3RydWN0IGRldmljZSAqaTkxNV9kZXYs Cj4gwqAJc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50ICphY29tcCA9IGRhdGE7Cj4gwqAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2X3RvX2k5MTUoaTkxNV9kZXYpOwo+ IMKgCj4gLQlkcm1fbW9kZXNldF9sb2NrX2FsbChkZXZfcHJpdi0+ZGV2KTsKPiArCWRybV9tb2Rl c2V0X2xvY2tfYWxsKCZkZXZfcHJpdi0+ZHJtKTsKPiDCoAlhY29tcC0+b3BzID0gTlVMTDsKPiDC oAlhY29tcC0+ZGV2ID0gTlVMTDsKPiDCoAlkZXZfcHJpdi0+YXVkaW9fY29tcG9uZW50ID0gTlVM TDsKPiAtCWRybV9tb2Rlc2V0X3VubG9ja19hbGwoZGV2X3ByaXYtPmRldik7Cj4gKwlkcm1fbW9k ZXNldF91bmxvY2tfYWxsKCZkZXZfcHJpdi0+ZHJtKTsKPiDCoH0KPiDCoAo+IMKgc3RhdGljIGNv bnN0IHN0cnVjdCBjb21wb25lbnRfb3BzIGk5MTVfYXVkaW9fY29tcG9uZW50X2JpbmRfb3BzID0g ewo+IEBAIC03OTksNyArNzk5LDcgQEAgdm9pZCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9pbml0KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiDCoHsKPiDCoAlpbnQgcmV0Owo+IMKg Cj4gLQlyZXQgPSBjb21wb25lbnRfYWRkKGRldl9wcml2LT5kZXYtPmRldiwgJmk5MTVfYXVkaW9f Y29tcG9uZW50X2JpbmRfb3BzKTsKPiArCXJldCA9IGNvbXBvbmVudF9hZGQoZGV2X3ByaXYtPmRy bS5kZXYsICZpOTE1X2F1ZGlvX2NvbXBvbmVudF9iaW5kX29wcyk7Cj4gwqAJaWYgKHJldCA8IDAp IHsKPiDCoAkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gYWRkIGF1ZGlvIGNvbXBvbmVudCAoJWQpXG4i LCByZXQpOwo+IMKgCQkvKiBjb250aW51ZSB3aXRoIHJlZHVjZWQgZnVuY3Rpb25hbGl0eSAqLwo+ IEBAIC04MjEsNiArODIxLDYgQEAgdm9pZCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9jbGVhbnVwKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiDCoAlpZiAoIWRldl9wcml2LT5hdWRp b19jb21wb25lbnRfcmVnaXN0ZXJlZCkKPiDCoAkJcmV0dXJuOwo+IMKgCj4gLQljb21wb25lbnRf ZGVsKGRldl9wcml2LT5kZXYtPmRldiwgJmk5MTVfYXVkaW9fY29tcG9uZW50X2JpbmRfb3BzKTsK PiArCWNvbXBvbmVudF9kZWwoZGV2X3ByaXYtPmRybS5kZXYsICZpOTE1X2F1ZGlvX2NvbXBvbmVu dF9iaW5kX29wcyk7Cj4gwqAJZGV2X3ByaXYtPmF1ZGlvX2NvbXBvbmVudF9yZWdpc3RlcmVkID0g ZmFsc2U7Cj4gwqB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Jp b3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Jpb3MuYwo+IGluZGV4IDYyNGU3NTVl NDUxZi4uYjM1NmExNDllYjRhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Jpb3MuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Jpb3MuYwo+IEBA IC0xNDIxLDcgKzE0MjEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHZidF9oZWFkZXIgKmZpbmRf dmJ0KHZvaWQgX19pb21lbSAqYmlvcywgc2l6ZV90IHNpemUpCj4gwqBpbnQKPiDCoGludGVsX2Jp b3NfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gwqB7Cj4gLQlzdHJ1 Y3QgcGNpX2RldiAqcGRldiA9IGRldl9wcml2LT5kZXYtPnBkZXY7Cj4gKwlzdHJ1Y3QgcGNpX2Rl diAqcGRldiA9IGRldl9wcml2LT5kcm0ucGRldjsKPiDCoAljb25zdCBzdHJ1Y3QgdmJ0X2hlYWRl ciAqdmJ0ID0gZGV2X3ByaXYtPm9wcmVnaW9uLnZidDsKPiDCoAljb25zdCBzdHJ1Y3QgYmRiX2hl YWRlciAqYmRiOwo+IMKgCXU4IF9faW9tZW0gKmJpb3MgPSBOVUxMOwo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jc3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Nzci5jCj4gaW5kZXggMmIzYjQyOGQ5Y2QyLi4xYTY0ODY5MzJmYzcgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY3NyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9jc3IuYwo+IEBAIC00MTMsNyArNDEzLDcgQEAgc3RhdGljIHZvaWQgY3Ny X2xvYWRfd29ya19mbihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4gwqAJY3NyID0gJmRldl9w cml2LT5jc3I7Cj4gwqAKPiDCoAlyZXQgPSByZXF1ZXN0X2Zpcm13YXJlKCZmdywgZGV2X3ByaXYt PmNzci5md19wYXRoLAo+IC0JCQnCoMKgwqDCoMKgwqDCoCZkZXZfcHJpdi0+ZGV2LT5wZGV2LT5k ZXYpOwo+ICsJCQnCoMKgwqDCoMKgwqDCoCZkZXZfcHJpdi0+ZHJtLnBkZXYtPmRldik7Cj4gwqAJ aWYgKGZ3KQo+IMKgCQlkZXZfcHJpdi0+Y3NyLmRtY19wYXlsb2FkID0gcGFyc2VfY3NyX2Z3KGRl dl9wcml2LCBmdyk7Cj4gwqAKPiBAQCAtNDI3LDcgKzQyNyw3IEBAIHN0YXRpYyB2b2lkIGNzcl9s b2FkX3dvcmtfZm4oc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+IMKgCQkJwqBDU1JfVkVSU0lP Tl9NQUpPUihjc3ItPnZlcnNpb24pLAo+IMKgCQkJwqBDU1JfVkVSU0lPTl9NSU5PUihjc3ItPnZl cnNpb24pKTsKPiDCoAl9IGVsc2Ugewo+IC0JCWRldl9ub3RpY2UoZGV2X3ByaXYtPmRldi0+ZGV2 LAo+ICsJCWRldl9ub3RpY2UoZGV2X3ByaXYtPmRybS5kZXYsCj4gwqAJCQnCoMKgwqAiRmFpbGVk IHRvIGxvYWQgRE1DIGZpcm13YXJlIgo+IMKgCQkJwqDCoMKgIiBbIiBGSVJNV0FSRV9VUkwgIl0s Igo+IMKgCQkJwqDCoMKgIiBkaXNhYmxpbmcgcnVudGltZSBwb3dlciBtYW5hZ2VtZW50LlxuIik7 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IGluZGV4IDhjNDA5NDYxMWIyMS4u YTM0NjgzMmNiNWUxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBA IC0xMjM0LDcgKzEyMzQsNyBAQCB2b2lkIGFzc2VydF9mZGlfcnhfcGxsKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKPiDCoHZvaWQgYXNzZXJ0X3BhbmVsX3VubG9ja2VkKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiDCoAkJCcKgwqDCoGVudW0gcGlwZSBwaXBl KQo+IMKgewo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGRldl9wcml2LT5kZXY7Cj4gKwlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRldl9wcml2LT5kcm07Cj4gwqAJaTkxNV9yZWdfdCBw cF9yZWc7Cj4gwqAJdTMyIHZhbDsKPiDCoAllbnVtIHBpcGUgcGFuZWxfcGlwZSA9IFBJUEVfQTsK PiBAQCAtMTI3Niw3ICsxMjc2LDcgQEAgdm9pZCBhc3NlcnRfcGFuZWxfdW5sb2NrZWQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+IMKgc3RhdGljIHZvaWQgYXNzZXJ0X2N1cnNv cihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gwqAJCQnCoMKgZW51bSBwaXBl IHBpcGUsIGJvb2wgc3RhdGUpCj4gwqB7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZGV2 X3ByaXYtPmRldjsKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYtPmRybTsK PiDCoAlib29sIGN1cl9zdGF0ZTsKPiDCoAo+IMKgCWlmIChJU184NDVHKGRldikgfHwgSVNfSTg2 NUcoZGV2KSkKPiBAQCAtMTMzOCw3ICsxMzM4LDcgQEAgc3RhdGljIHZvaWQgYXNzZXJ0X3BsYW5l KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiDCoHN0YXRpYyB2b2lkIGFzc2Vy dF9wbGFuZXNfZGlzYWJsZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+IMKg CQkJCcKgwqDCoGVudW0gcGlwZSBwaXBlKQo+IMKgewo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IGRldl9wcml2LT5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRldl9wcml2 LT5kcm07Cj4gwqAJaW50IGk7Cj4gwqAKPiDCoAkvKiBQcmltYXJ5IHBsYW5lcyBhcmUgZml4ZWQg dG8gcGlwZXMgb24gZ2VuNCsgKi8KPiBAQCAtMTM2NCw3ICsxMzY0LDcgQEAgc3RhdGljIHZvaWQg YXNzZXJ0X3BsYW5lc19kaXNhYmxlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs Cj4gwqBzdGF0aWMgdm9pZCBhc3NlcnRfc3ByaXRlc19kaXNhYmxlZChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCj4gwqAJCQkJwqDCoMKgwqBlbnVtIHBpcGUgcGlwZSkKPiDCoHsK PiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkZXZfcHJpdi0+ZGV2Owo+ICsJc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9ICZkZXZfcHJpdi0+ZHJtOwo+IMKgCWludCBzcHJpdGU7Cj4gwqAKPiDC oAlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gOSkgewo+IEBAIC0xODIxLDcgKzE4MjEsNyBA QCB2b2lkIHZsdl93YWl0X3BvcnRfcmVhZHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAo+IMKgc3RhdGljIHZvaWQgaXJvbmxha2VfZW5hYmxlX3BjaF90cmFuc2NvZGVyKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiDCoAkJCQkJwqDCoMKgZW51bSBwaXBlIHBp cGUpCj4gwqB7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZGV2X3ByaXYtPmRldjsKPiAr CXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYtPmRybTsKPiDCoAlzdHJ1Y3QgZHJt X2NydGMgKmNydGMgPSBkZXZfcHJpdi0+cGlwZV90b19jcnRjX21hcHBpbmdbcGlwZV07Cj4gwqAJ c3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwo+IMKg CWk5MTVfcmVnX3QgcmVnOwo+IEBAIC0xOTA2LDcgKzE5MDYsNyBAQCBzdGF0aWMgdm9pZCBscHRf ZW5hYmxlX3BjaF90cmFuc2NvZGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK PiDCoHN0YXRpYyB2b2lkIGlyb25sYWtlX2Rpc2FibGVfcGNoX3RyYW5zY29kZXIoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+IMKgCQkJCQnCoMKgwqDCoGVudW0gcGlwZSBwaXBl KQo+IMKgewo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGRldl9wcml2LT5kZXY7Cj4gKwlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRldl9wcml2LT5kcm07Cj4gwqAJaTkxNV9yZWdfdCBy ZWc7Cj4gwqAJdWludDMyX3QgdmFsOwo+IMKgCj4gQEAgLTMxMTgsNyArMzExOCw3IEBAIHN0YXRp YyB2b2lkIGludGVsX2NvbXBsZXRlX3BhZ2VfZmxpcHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQo+IMKgewo+IMKgCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjOwo+IMKgCj4gLQlm b3JfZWFjaF9pbnRlbF9jcnRjKGRldl9wcml2LT5kZXYsIGNydGMpCj4gKwlmb3JfZWFjaF9pbnRl bF9jcnRjKCZkZXZfcHJpdi0+ZHJtLCBjcnRjKQo+IMKgCQlpbnRlbF9maW5pc2hfcGFnZV9mbGlw X2NzKGRldl9wcml2LCBjcnRjLT5waXBlKTsKPiDCoH0KPiDCoAo+IEBAIC0zMTUyLDEyICszMTUy LDEyIEBAIHZvaWQgaW50ZWxfcHJlcGFyZV9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCj4gwqAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNSB8fCBJU19HNFgoZGV2 X3ByaXYpKQo+IMKgCQlyZXR1cm47Cj4gwqAKPiAtCWRybV9tb2Rlc2V0X2xvY2tfYWxsKGRldl9w cml2LT5kZXYpOwo+ICsJZHJtX21vZGVzZXRfbG9ja19hbGwoJmRldl9wcml2LT5kcm0pOwo+IMKg CS8qCj4gwqAJwqAqIERpc2FibGluZyB0aGUgY3J0Y3MgZ3JhY2VmdWxseSBzZWVtcyBuaWNlci4g QWxzbyB0aGUKPiDCoAnCoCogZzMzIGRvY3Mgc2F5IHdlIHNob3VsZCBhdCBsZWFzdCBkaXNhYmxl IGFsbCB0aGUgcGxhbmVzLgo+IMKgCcKgKi8KPiAtCWludGVsX2Rpc3BsYXlfc3VzcGVuZChkZXZf cHJpdi0+ZGV2KTsKPiArCWludGVsX2Rpc3BsYXlfc3VzcGVuZCgmZGV2X3ByaXYtPmRybSk7Cj4g wqB9Cj4gwqAKPiDCoHZvaWQgaW50ZWxfZmluaXNoX3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKPiBAQCAtMzE4NCw3ICszMTg0LDcgQEAgdm9pZCBpbnRlbF9maW5pc2hf cmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+IMKgCQnCoCogRklYTUU6 IEF0b21pYyB3aWxsIG1ha2UgdGhpcyBvYnNvbGV0ZSBzaW5jZSB3ZSB3b24ndCBzY2hlZHVsZQo+ IMKgCQnCoCogQ1MtYmFzZWQgZmxpcHMgKHdoaWNoIG1pZ2h0IGdldCBsb3N0IGluIGdwdSByZXNl dHMpIGFueSBtb3JlLgo+IMKgCQnCoCovCj4gLQkJaW50ZWxfdXBkYXRlX3ByaW1hcnlfcGxhbmVz KGRldl9wcml2LT5kZXYpOwo+ICsJCWludGVsX3VwZGF0ZV9wcmltYXJ5X3BsYW5lcygmZGV2X3By aXYtPmRybSk7Cj4gwqAJCXJldHVybjsKPiDCoAl9Cj4gwqAKPiBAQCAtMzE5NSwxOCArMzE5NSwx OCBAQCB2b2lkIGludGVsX2ZpbmlzaF9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCj4gwqAJaW50ZWxfcnVudGltZV9wbV9kaXNhYmxlX2ludGVycnVwdHMoZGV2X3ByaXYp Owo+IMKgCWludGVsX3J1bnRpbWVfcG1fZW5hYmxlX2ludGVycnVwdHMoZGV2X3ByaXYpOwo+IMKg Cj4gLQlpbnRlbF9tb2Rlc2V0X2luaXRfaHcoZGV2X3ByaXYtPmRldik7Cj4gKwlpbnRlbF9tb2Rl c2V0X2luaXRfaHcoJmRldl9wcml2LT5kcm0pOwo+IMKgCj4gwqAJc3Bpbl9sb2NrX2lycSgmZGV2 X3ByaXYtPmlycV9sb2NrKTsKPiDCoAlpZiAoZGV2X3ByaXYtPmRpc3BsYXkuaHBkX2lycV9zZXR1 cCkKPiDCoAkJZGV2X3ByaXYtPmRpc3BsYXkuaHBkX2lycV9zZXR1cChkZXZfcHJpdik7Cj4gwqAJ c3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwo+IMKgCj4gLQlpbnRlbF9kaXNw bGF5X3Jlc3VtZShkZXZfcHJpdi0+ZGV2KTsKPiArCWludGVsX2Rpc3BsYXlfcmVzdW1lKCZkZXZf cHJpdi0+ZHJtKTsKPiDCoAo+IMKgCWludGVsX2hwZF9pbml0KGRldl9wcml2KTsKPiDCoAo+IC0J ZHJtX21vZGVzZXRfdW5sb2NrX2FsbChkZXZfcHJpdi0+ZGV2KTsKPiArCWRybV9tb2Rlc2V0X3Vu bG9ja19hbGwoJmRldl9wcml2LT5kcm0pOwo+IMKgfQo+IMKgCj4gwqBzdGF0aWMgYm9vbCBpbnRl bF9jcnRjX2hhc19wZW5kaW5nX2ZsaXAoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+IEBAIC01NDg4 LDE0ICs1NDg4LDE0IEBAIHN0YXRpYyB2b2lkIGJyb3h0b25fc2V0X2NkY2xrKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50IGNkY2xrKQo+IMKgCQlyZXR1cm47Cj4gwqAJfQo+ IMKgCj4gLQlpbnRlbF91cGRhdGVfY2RjbGsoZGV2X3ByaXYtPmRldik7Cj4gKwlpbnRlbF91cGRh dGVfY2RjbGsoJmRldl9wcml2LT5kcm0pOwo+IMKgfQo+IMKgCj4gwqBzdGF0aWMgdm9pZCBieHRf c2FuaXRpemVfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+IMKgewo+ IMKgCXUzMiBjZGN0bCwgZXhwZWN0ZWQ7Cj4gwqAKPiAtCWludGVsX3VwZGF0ZV9jZGNsayhkZXZf cHJpdi0+ZGV2KTsKPiArCWludGVsX3VwZGF0ZV9jZGNsaygmZGV2X3ByaXYtPmRybSk7Cj4gwqAK PiDCoAlpZiAoZGV2X3ByaXYtPmNkY2xrX3BsbC52Y28gPT0gMCB8fAo+IMKgCcKgwqDCoMKgZGV2 X3ByaXYtPmNkY2xrX2ZyZXEgPT0gZGV2X3ByaXYtPmNkY2xrX3BsbC5yZWYpCj4gQEAgLTU2Mjgs NyArNTYyOCw3IEBAIHZvaWQgc2tsX3NldF9wcmVmZXJyZWRfY2RjbGtfdmNvKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50IHZjbykKPiDCoAlkZXZfcHJpdi0+c2tsX3ByZWZl cnJlZF92Y29fZnJlcSA9IHZjbzsKPiDCoAo+IMKgCWlmIChjaGFuZ2VkKQo+IC0JCWludGVsX3Vw ZGF0ZV9tYXhfY2RjbGsoZGV2X3ByaXYtPmRldik7Cj4gKwkJaW50ZWxfdXBkYXRlX21heF9jZGNs aygmZGV2X3ByaXYtPmRybSk7Cj4gwqB9Cj4gwqAKPiDCoHN0YXRpYyB2b2lkCj4gQEAgLTU3MTgs NyArNTcxOCw3IEBAIHN0YXRpYyBib29sIHNrbF9jZGNsa193YWl0X2Zvcl9wY3VfcmVhZHkoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+IMKgCj4gwqBzdGF0aWMgdm9pZCBza2xf c2V0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50IGNkY2xrLCBp bnQgdmNvKQo+IMKgewo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGRldl9wcml2LT5kZXY7 Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRldl9wcml2LT5kcm07Cj4gwqAJdTMyIGZy ZXFfc2VsZWN0LCBwY3VfYWNrOwo+IMKgCj4gwqAJV0FSTl9PTigoY2RjbGsgPT0gMjQwMDApICE9 ICh2Y28gPT0gMCkpOwo+IEBAIC01ODE2LDcgKzU4MTYsNyBAQCBzdGF0aWMgdm9pZCBza2xfc2Fu aXRpemVfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+IMKgCWlmICgo STkxNV9SRUFEKFNXRl9JTEsoMHgxOCkpICYgMHgwMEZGRkZGRikgPT0gMCkKPiDCoAkJZ290byBz YW5pdGl6ZTsKPiDCoAo+IC0JaW50ZWxfdXBkYXRlX2NkY2xrKGRldl9wcml2LT5kZXYpOwo+ICsJ aW50ZWxfdXBkYXRlX2NkY2xrKCZkZXZfcHJpdi0+ZHJtKTsKPiDCoAkvKiBJcyBQTEwgZW5hYmxl ZCBhbmQgbG9ja2VkID8gKi8KPiDCoAlpZiAoZGV2X3ByaXYtPmNkY2xrX3BsbC52Y28gPT0gMCB8 fAo+IMKgCcKgwqDCoMKgZGV2X3ByaXYtPmNkY2xrX2ZyZXEgPT0gZGV2X3ByaXYtPmNkY2xrX3Bs bC5yZWYpCj4gQEAgLTk0NTEsNyArOTQ1MSw3IEBAIG91dDoKPiDCoAo+IMKgc3RhdGljIHZvaWQg YXNzZXJ0X2Nhbl9kaXNhYmxlX2xjcGxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKPiDCoHsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkZXZfcHJpdi0+ZGV2Owo+ICsJ c3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZkZXZfcHJpdi0+ZHJtOwo+IMKgCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjOwo+IMKgCj4gwqAJZm9yX2VhY2hfaW50ZWxfY3J0YyhkZXYsIGNydGMpCj4g QEAgLTk0ODUsNyArOTQ4NSw3IEBAIHN0YXRpYyB2b2lkIGFzc2VydF9jYW5fZGlzYWJsZV9sY3Bs bChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gwqAKPiDCoHN0YXRpYyB1aW50 MzJfdCBoc3dfcmVhZF9kY29tcChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4g wqB7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZGV2X3ByaXYtPmRldjsKPiArCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYtPmRybTsKPiDCoAo+IMKgCWlmIChJU19IQVNX RUxMKGRldikpCj4gwqAJCXJldHVybiBJOTE1X1JFQUQoRF9DT01QX0hTVyk7Cj4gQEAgLTk0OTUs NyArOTQ5NSw3IEBAIHN0YXRpYyB1aW50MzJfdCBoc3dfcmVhZF9kY29tcChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gwqAKPiDCoHN0YXRpYyB2b2lkIGhzd193cml0ZV9kY29t cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHVpbnQzMl90IHZhbCkKPiDCoHsK PiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkZXZfcHJpdi0+ZGV2Owo+ICsJc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9ICZkZXZfcHJpdi0+ZHJtOwo+IMKgCj4gwqAJaWYgKElTX0hBU1dFTEwo ZGV2KSkgewo+IMKgCQltdXRleF9sb2NrKCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spOwo+IEBAIC05 NjEwLDcgKzk2MTAsNyBAQCBzdGF0aWMgdm9pZCBoc3dfcmVzdG9yZV9sY3BsbChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gwqAJfQo+IMKgCj4gwqAJaW50ZWxfdW5jb3JlX2Zv cmNld2FrZV9wdXQoZGV2X3ByaXYsIEZPUkNFV0FLRV9BTEwpOwo+IC0JaW50ZWxfdXBkYXRlX2Nk Y2xrKGRldl9wcml2LT5kZXYpOwo+ICsJaW50ZWxfdXBkYXRlX2NkY2xrKCZkZXZfcHJpdi0+ZHJt KTsKPiDCoH0KPiDCoAo+IMKgLyoKPiBAQCAtOTYzOCw3ICs5NjM4LDcgQEAgc3RhdGljIHZvaWQg aHN3X3Jlc3RvcmVfbGNwbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+IMKg ICovCj4gwqB2b2lkIGhzd19lbmFibGVfcGM4KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKPiDCoHsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkZXZfcHJpdi0+ZGV2Owo+ ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZkZXZfcHJpdi0+ZHJtOwo+IMKgCXVpbnQzMl90 IHZhbDsKPiDCoAo+IMKgCURSTV9ERUJVR19LTVMoIkVuYWJsaW5nIHBhY2thZ2UgQzgrXG4iKTsK PiBAQCAtOTY1NSw3ICs5NjU1LDcgQEAgdm9pZCBoc3dfZW5hYmxlX3BjOChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gwqAKPiDCoHZvaWQgaHN3X2Rpc2FibGVfcGM4KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiDCoHsKPiAtCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBkZXZfcHJpdi0+ZGV2Owo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZkZXZf cHJpdi0+ZHJtOwo+IMKgCXVpbnQzMl90IHZhbDsKPiDCoAo+IMKgCURSTV9ERUJVR19LTVMoIkRp c2FibGluZyBwYWNrYWdlIEM4K1xuIik7Cj4gQEAgLTExMTI4LDcgKzExMTI4LDcgQEAgc3RhdGlj IGJvb2wgcGFnZWZsaXBfZmluaXNoZWQoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gwqAKPiDC oHZvaWQgaW50ZWxfZmluaXNoX3BhZ2VfZmxpcF9jcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsIGludCBwaXBlKQo+IMKgewo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGRl dl9wcml2LT5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRldl9wcml2LT5kcm07 Cj4gwqAJc3RydWN0IGRybV9jcnRjICpjcnRjID0gZGV2X3ByaXYtPnBpcGVfdG9fY3J0Y19tYXBw aW5nW3BpcGVdOwo+IMKgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxf Y3J0YyhjcnRjKTsKPiDCoAlzdHJ1Y3QgaW50ZWxfZmxpcF93b3JrICp3b3JrOwo+IEBAIC0xMTE1 NSw3ICsxMTE1NSw3IEBAIHZvaWQgaW50ZWxfZmluaXNoX3BhZ2VfZmxpcF9jcyhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCBwaXBlKQo+IMKgCj4gwqB2b2lkIGludGVsX2Zp bmlzaF9wYWdlX2ZsaXBfbW1pbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGlu dCBwaXBlKQo+IMKgewo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGRldl9wcml2LT5kZXY7 Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRldl9wcml2LT5kcm07Cj4gwqAJc3RydWN0 IGRybV9jcnRjICpjcnRjID0gZGV2X3ByaXYtPnBpcGVfdG9fY3J0Y19tYXBwaW5nW3BpcGVdOwo+ IMKgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsK PiDCoAlzdHJ1Y3QgaW50ZWxfZmxpcF93b3JrICp3b3JrOwo+IEBAIC0xMTYxMSw3ICsxMTYxMSw3 IEBAIHN0YXRpYyBib29sIF9fcGFnZWZsaXBfc3RhbGxfY2hlY2tfY3Moc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAo+IMKgCj4gwqB2b2lkIGludGVsX2NoZWNrX3BhZ2VfZmxpcChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCBwaXBlKQo+IMKgewo+IC0Jc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IGRldl9wcml2LT5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gJmRldl9wcml2LT5kcm07Cj4gwqAJc3RydWN0IGRybV9jcnRjICpjcnRjID0gZGV2 X3ByaXYtPnBpcGVfdG9fY3J0Y19tYXBwaW5nW3BpcGVdOwo+IMKgCXN0cnVjdCBpbnRlbF9jcnRj ICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiDCoAlzdHJ1Y3QgaW50ZWxfZmxp cF93b3JrICp3b3JrOwo+IEBAIC0xNTQzMywxMiArMTU0MzMsMTIgQEAgdm9pZCBpbnRlbF9tb2Rl c2V0X2luaXRfaHcoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiDCoAo+IMKgdm9pZCBpbnRlbF9t b2Rlc2V0X3JlZ2lzdGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiDCoHsK PiAtCWRybV9jb25uZWN0b3JfcmVnaXN0ZXJfYWxsKGRldl9wcml2LT5kZXYpOwo+ICsJZHJtX2Nv bm5lY3Rvcl9yZWdpc3Rlcl9hbGwoJmRldl9wcml2LT5kcm0pOwo+IMKgfQo+IMKgCj4gwqB2b2lk IGludGVsX21vZGVzZXRfdW5yZWdpc3RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCj4gwqB7Cj4gLQlkcm1fY29ubmVjdG9yX3VucmVnaXN0ZXJfYWxsKGRldl9wcml2LT5kZXYp Owo+ICsJZHJtX2Nvbm5lY3Rvcl91bnJlZ2lzdGVyX2FsbCgmZGV2X3ByaXYtPmRybSk7Cj4gwqB9 Cj4gwqAKPiDCoC8qCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rw LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gaW5kZXggZDA3N2YzMGQ2ODA0 Li45N2YzOWU0ZjEzNjEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiBAQCAtNTA5LDcg KzUwOSw3IEBAIHZsdl9pbml0aWFsX3Bvd2VyX3NlcXVlbmNlcl9zZXR1cChzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwKQo+IMKgCj4gwqB2b2lkIHZsdl9wb3dlcl9zZXF1ZW5jZXJfcmVzZXQoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+IMKgewo+IC0Jc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IGRldl9wcml2LT5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRl dl9wcml2LT5kcm07Cj4gwqAJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXI7Cj4gwqAKPiDC oAlpZiAoV0FSTl9PTighSVNfVkFMTEVZVklFVyhkZXYpICYmICFJU19DSEVSUllWSUVXKGRldikp KQo+IEBAIC0yMjEzLDcgKzIyMTMsNyBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV9lZHBfcGxsX29u KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gwqAJwqAqIDIuIFByb2dyYW0gRFAgUExMIGVu YWJsZQo+IMKgCcKgKi8KPiDCoAlpZiAoSVNfR0VONShkZXZfcHJpdikpCj4gLQkJaW50ZWxfd2Fp dF9mb3JfdmJsYW5rX2lmX2FjdGl2ZShkZXZfcHJpdi0+ZGV2LCAhY3J0Yy0+cGlwZSk7Cj4gKwkJ aW50ZWxfd2FpdF9mb3JfdmJsYW5rX2lmX2FjdGl2ZSgmZGV2X3ByaXYtPmRybSwgIWNydGMtPnBp cGUpOwo+IMKgCj4gwqAJaW50ZWxfZHAtPkRQIHw9IERQX1BMTF9FTkFCTEU7Cj4gwqAKPiBAQCAt MzMxMiw3ICszMzEyLDcgQEAgaW50ZWxfZHBfbGlua19kb3duKHN0cnVjdCBpbnRlbF9kcCAqaW50 ZWxfZHApCj4gwqAJCUk5MTVfV1JJVEUoaW50ZWxfZHAtPm91dHB1dF9yZWcsIERQKTsKPiDCoAkJ UE9TVElOR19SRUFEKGludGVsX2RwLT5vdXRwdXRfcmVnKTsKPiDCoAo+IC0JCWludGVsX3dhaXRf Zm9yX3ZibGFua19pZl9hY3RpdmUoZGV2X3ByaXYtPmRldiwgUElQRV9BKTsKPiArCQlpbnRlbF93 YWl0X2Zvcl92YmxhbmtfaWZfYWN0aXZlKCZkZXZfcHJpdi0+ZHJtLCBQSVBFX0EpOwo+IMKgCQlp bnRlbF9zZXRfY3B1X2ZpZm9fdW5kZXJydW5fcmVwb3J0aW5nKGRldl9wcml2LCBQSVBFX0EsIHRy dWUpOwo+IMKgCQlpbnRlbF9zZXRfcGNoX2ZpZm9fdW5kZXJydW5fcmVwb3J0aW5nKGRldl9wcml2 LCBQSVBFX0EsIHRydWUpOwo+IMKgCX0KPiBAQCAtNTA3OCw3ICs1MDc4LDcgQEAgdm9pZCBpbnRl bF9lZHBfZHJyc19kaXNhYmxlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gwqAJfQo+IMKg Cj4gwqAJaWYgKGRldl9wcml2LT5kcnJzLnJlZnJlc2hfcmF0ZV90eXBlID09IERSUlNfTE9XX1JS KQo+IC0JCWludGVsX2RwX3NldF9kcnJzX3N0YXRlKGRldl9wcml2LT5kZXYsCj4gKwkJaW50ZWxf ZHBfc2V0X2RycnNfc3RhdGUoJmRldl9wcml2LT5kcm0sCj4gwqAJCQlpbnRlbF9kcC0+YXR0YWNo ZWRfY29ubmVjdG9yLT5wYW5lbC4KPiDCoAkJCWZpeGVkX21vZGUtPnZyZWZyZXNoKTsKPiDCoAo+ IEBAIC01MTEwLDcgKzUxMTAsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9lZHBfZHJyc19kb3duY2xv Y2tfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4gwqAJCWdvdG8gdW5sb2NrOwo+IMKg Cj4gwqAJaWYgKGRldl9wcml2LT5kcnJzLnJlZnJlc2hfcmF0ZV90eXBlICE9IERSUlNfTE9XX1JS KQo+IC0JCWludGVsX2RwX3NldF9kcnJzX3N0YXRlKGRldl9wcml2LT5kZXYsCj4gKwkJaW50ZWxf ZHBfc2V0X2RycnNfc3RhdGUoJmRldl9wcml2LT5kcm0sCj4gwqAJCQlpbnRlbF9kcC0+YXR0YWNo ZWRfY29ubmVjdG9yLT5wYW5lbC4KPiDCoAkJCWRvd25jbG9ja19tb2RlLT52cmVmcmVzaCk7Cj4g wqAKPiBAQCAtNTE1NCw3ICs1MTU0LDcgQEAgdm9pZCBpbnRlbF9lZHBfZHJyc19pbnZhbGlkYXRl KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gwqAKPiDCoAkvKiBpbnZhbGlkYXRlIG1lYW5zIGJ1 c3kgc2NyZWVuIGhlbmNlIHVwY2xvY2sgKi8KPiDCoAlpZiAoZnJvbnRidWZmZXJfYml0cyAmJiBk ZXZfcHJpdi0+ZHJycy5yZWZyZXNoX3JhdGVfdHlwZSA9PSBEUlJTX0xPV19SUikKPiAtCQlpbnRl bF9kcF9zZXRfZHJyc19zdGF0ZShkZXZfcHJpdi0+ZGV2LAo+ICsJCWludGVsX2RwX3NldF9kcnJz X3N0YXRlKCZkZXZfcHJpdi0+ZHJtLAo+IMKgCQkJCWRldl9wcml2LT5kcnJzLmRwLT5hdHRhY2hl ZF9jb25uZWN0b3ItPnBhbmVsLgo+IMKgCQkJCWZpeGVkX21vZGUtPnZyZWZyZXNoKTsKPiDCoAo+ IEBAIC01MTk5LDcgKzUxOTksNyBAQCB2b2lkIGludGVsX2VkcF9kcnJzX2ZsdXNoKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCj4gwqAKPiDCoAkvKiBmbHVzaCBtZWFucyBidXN5IHNjcmVlbiBoZW5j ZSB1cGNsb2NrICovCj4gwqAJaWYgKGZyb250YnVmZmVyX2JpdHMgJiYgZGV2X3ByaXYtPmRycnMu cmVmcmVzaF9yYXRlX3R5cGUgPT0gRFJSU19MT1dfUlIpCj4gLQkJaW50ZWxfZHBfc2V0X2RycnNf c3RhdGUoZGV2X3ByaXYtPmRldiwKPiArCQlpbnRlbF9kcF9zZXRfZHJyc19zdGF0ZSgmZGV2X3By aXYtPmRybSwKPiDCoAkJCQlkZXZfcHJpdi0+ZHJycy5kcC0+YXR0YWNoZWRfY29ubmVjdG9yLT5w YW5lbC4KPiDCoAkJCQlmaXhlZF9tb2RlLT52cmVmcmVzaCk7Cj4gwqAKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RwbGxfbWdyLmMKPiBpbmRleCAwMmE3OTYyYTY3ZjEuLmY3YzE4ZjNkNjFjOSAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYwo+IEBAIC0zMzEsNyArMzMx LDcgQEAgc3RhdGljIHZvaWQgaWJ4X3BjaF9kcGxsX2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCj4gwqBzdGF0aWMgdm9pZCBpYnhfcGNoX2RwbGxfZGlzYWJsZShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gwqAJCQkJwqBzdHJ1Y3QgaW50ZWxfc2hh cmVkX2RwbGwgKnBsbCkKPiDCoHsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkZXZfcHJp di0+ZGV2Owo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZkZXZfcHJpdi0+ZHJtOwo+IMKg CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjOwo+IMKgCj4gwqAJLyogTWFrZSBzdXJlIG5vIHRyYW5z Y29kZXIgaXNuJ3Qgc3RpbGwgZGVwZW5kaW5nIG9uIHVzLiAqLwo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2ZiYy5jCj4gaW5kZXggMGRlYTVmYmNkOGFhLi40YWE2NDljN2ZhMzEgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9mYmMuYwo+IEBAIC0zODksNyArMzg5LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxf ZmJjX3dvcmtfZm4oc3RydWN0IHdvcmtfc3RydWN0ICpfX3dvcmspCj4gwqAJc3RydWN0IGludGVs X2ZiYyAqZmJjID0gJmRldl9wcml2LT5mYmM7Cj4gwqAJc3RydWN0IGludGVsX2ZiY193b3JrICp3 b3JrID0gJmZiYy0+d29yazsKPiDCoAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IGZiYy0+Y3J0 YzsKPiAtCXN0cnVjdCBkcm1fdmJsYW5rX2NydGMgKnZibGFuayA9ICZkZXZfcHJpdi0+ZGV2LT52 YmxhbmtbY3J0Yy0+cGlwZV07Cj4gKwlzdHJ1Y3QgZHJtX3ZibGFua19jcnRjICp2YmxhbmsgPSAm ZGV2X3ByaXYtPmRybS52YmxhbmtbY3J0Yy0+cGlwZV07Cj4gwqAKPiDCoAlpZiAoZHJtX2NydGNf dmJsYW5rX2dldCgmY3J0Yy0+YmFzZSkpIHsKPiDCoAkJRFJNX0VSUk9SKCJ2Ymxhbmsgbm90IGF2 YWlsYWJsZSBmb3IgRkJDIG9uIHBpcGUgJWNcbiIsCj4gQEAgLTEyMTYsNyArMTIxNiw3IEBAIHZv aWQgaW50ZWxfZmJjX2luaXRfcGlwZV9zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCj4gwqAJaWYgKCFub19mYmNfb25fbXVsdGlwbGVfcGlwZXMoZGV2X3ByaXYpKQo+IMKg CQlyZXR1cm47Cj4gwqAKPiAtCWZvcl9lYWNoX2ludGVsX2NydGMoZGV2X3ByaXYtPmRldiwgY3J0 YykKPiArCWZvcl9lYWNoX2ludGVsX2NydGMoJmRldl9wcml2LT5kcm0sIGNydGMpCj4gwqAJCWlm IChpbnRlbF9jcnRjX2FjdGl2ZSgmY3J0Yy0+YmFzZSkgJiYKPiDCoAkJwqDCoMKgwqB0b19pbnRl bF9wbGFuZV9zdGF0ZShjcnRjLT5iYXNlLnByaW1hcnktPnN0YXRlKS0+dmlzaWJsZSkKPiDCoAkJ CWRldl9wcml2LT5mYmMudmlzaWJsZV9waXBlc19tYXNrIHw9ICgxIDw8IGNydGMtPnBpcGUpOwo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmRldi5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJkZXYuYwo+IGluZGV4IDk5ZTI3NTMwZTI2NC4uYTkxYWM5 MGYwZWNiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiZGV2LmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmRldi5jCj4gQEAgLTY5Miw5ICs2 OTIsOSBAQCBvdXQ6Cj4gwqAKPiDCoHN0YXRpYyB2b2lkIGludGVsX2ZiZGV2X3N1c3BlbmRfd29y a2VyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiDCoHsKPiAtCWludGVsX2ZiZGV2X3NldF9z dXNwZW5kKGNvbnRhaW5lcl9vZih3b3JrLAo+IC0JCQkJCcKgwqDCoMKgwqBzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSwKPiAtCQkJCQnCoMKgwqDCoMKgZmJkZXZfc3VzcGVuZF93b3JrKS0+ZGV2LAo+ ICsJaW50ZWxfZmJkZXZfc2V0X3N1c3BlbmQoJmNvbnRhaW5lcl9vZih3b3JrLAo+ICsJCQkJCcKg wqDCoMKgwqDCoHN0cnVjdCBkcm1faTkxNV9wcml2YXRlLAo+ICsJCQkJCcKgwqDCoMKgwqDCoGZi ZGV2X3N1c3BlbmRfd29yayktPmRybSwKPiDCoAkJCQlGQklORk9fU1RBVEVfUlVOTklORywKPiDC oAkJCQl0cnVlKTsKPiDCoH0KPiBAQCAtNzQyLDcgKzc0Miw3IEBAIHN0YXRpYyB2b2lkIGludGVs X2ZiZGV2X2luaXRpYWxfY29uZmlnKHZvaWQgKmRhdGEsIGFzeW5jX2Nvb2tpZV90IGNvb2tpZSkK PiDCoAkvKiBEdWUgdG8gcGVjdWxpYXIgaW5pdCBvcmRlciB3cnQgdG8gaHBkIGhhbmRsaW5nIHRo aXMgaXMgc2VwYXJhdGUuICovCj4gwqAJaWYgKGRybV9mYl9oZWxwZXJfaW5pdGlhbF9jb25maWco JmlmYmRldi0+aGVscGVyLAo+IMKgCQkJCQnCoGlmYmRldi0+cHJlZmVycmVkX2JwcCkpCj4gLQkJ aW50ZWxfZmJkZXZfZmluaShkZXZfcHJpdi0+ZGV2KTsKPiArCQlpbnRlbF9mYmRldl9maW5pKCZk ZXZfcHJpdi0+ZHJtKTsKPiDCoH0KPiDCoAo+IMKgdm9pZCBpbnRlbF9mYmRldl9pbml0aWFsX2Nv bmZpZ19hc3luYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9maWZvX3VuZGVycnVuLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9maWZvX3VuZGVycnVuLmMKPiBpbmRleCA5YmU4MzlhMjQyZjkuLmQ2ZWY4ZTU4MzNh ZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9maWZvX3VuZGVycnVu LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9maWZvX3VuZGVycnVuLmMKPiBA QCAtMjg5LDcgKzI4OSw3IEBAIGJvb2wgaW50ZWxfc2V0X2NwdV9maWZvX3VuZGVycnVuX3JlcG9y dGluZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gwqAJYm9vbCByZXQ7Cj4g wqAKPiDCoAlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPmlycV9sb2NrLCBmbGFncyk7Cj4g LQlyZXQgPSBfX2ludGVsX3NldF9jcHVfZmlmb191bmRlcnJ1bl9yZXBvcnRpbmcoZGV2X3ByaXYt PmRldiwgcGlwZSwKPiArCXJldCA9IF9faW50ZWxfc2V0X2NwdV9maWZvX3VuZGVycnVuX3JlcG9y dGluZygmZGV2X3ByaXYtPmRybSwgcGlwZSwKPiDCoAkJCQkJCcKgwqDCoMKgwqDCoGVuYWJsZSk7 Cj4gwqAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPmlycV9sb2NrLCBmbGFncyk7 Cj4gwqAKPiBAQCAtMzM0LDEwICszMzQsMTAgQEAgYm9vbCBpbnRlbF9zZXRfcGNoX2ZpZm9fdW5k ZXJydW5fcmVwb3J0aW5nKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiDCoAlp bnRlbF9jcnRjLT5wY2hfZmlmb191bmRlcnJ1bl9kaXNhYmxlZCA9ICFlbmFibGU7Cj4gwqAKPiDC oAlpZiAoSEFTX1BDSF9JQlgoZGV2X3ByaXYpKQo+IC0JCWlieF9zZXRfZmlmb191bmRlcnJ1bl9y ZXBvcnRpbmcoZGV2X3ByaXYtPmRldiwgcGNoX3RyYW5zY29kZXIsCj4gKwkJaWJ4X3NldF9maWZv X3VuZGVycnVuX3JlcG9ydGluZygmZGV2X3ByaXYtPmRybSwgcGNoX3RyYW5zY29kZXIsCj4gwqAJ CQkJCQllbmFibGUpOwo+IMKgCWVsc2UKPiAtCQljcHRfc2V0X2ZpZm9fdW5kZXJydW5fcmVwb3J0 aW5nKGRldl9wcml2LT5kZXYsIHBjaF90cmFuc2NvZGVyLAo+ICsJCWNwdF9zZXRfZmlmb191bmRl cnJ1bl9yZXBvcnRpbmcoJmRldl9wcml2LT5kcm0sIHBjaF90cmFuc2NvZGVyLAo+IMKgCQkJCQkJ ZW5hYmxlLCBvbGQpOwo+IMKgCj4gwqAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYt PmlycV9sb2NrLCBmbGFncyk7Cj4gQEAgLTQwNSw3ICs0MDUsNyBAQCB2b2lkIGludGVsX2NoZWNr X2NwdV9maWZvX3VuZGVycnVucyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4g wqAKPiDCoAlzcGluX2xvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xvY2spOwo+IMKgCj4gLQlmb3Jf ZWFjaF9pbnRlbF9jcnRjKGRldl9wcml2LT5kZXYsIGNydGMpIHsKPiArCWZvcl9lYWNoX2ludGVs X2NydGMoJmRldl9wcml2LT5kcm0sIGNydGMpIHsKPiDCoAkJaWYgKGNydGMtPmNwdV9maWZvX3Vu ZGVycnVuX2Rpc2FibGVkKQo+IMKgCQkJY29udGludWU7Cj4gwqAKPiBAQCAtNDMyLDcgKzQzMiw3 IEBAIHZvaWQgaW50ZWxfY2hlY2tfcGNoX2ZpZm9fdW5kZXJydW5zKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKPiDCoAo+IMKgCXNwaW5fbG9ja19pcnEoJmRldl9wcml2LT5pcnFf bG9jayk7Cj4gwqAKPiAtCWZvcl9lYWNoX2ludGVsX2NydGMoZGV2X3ByaXYtPmRldiwgY3J0Yykg ewo+ICsJZm9yX2VhY2hfaW50ZWxfY3J0YygmZGV2X3ByaXYtPmRybSwgY3J0Yykgewo+IMKgCQlp ZiAoY3J0Yy0+cGNoX2ZpZm9fdW5kZXJydW5fZGlzYWJsZWQpCj4gwqAJCQljb250aW51ZTsKPiDC oAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMKPiBpbmRleCAyOTI3M2U1 ZmVlMjIuLjYzY2NhZjAwYTE0ZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9ndWNfbG9hZGVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNf bG9hZGVyLmMKPiBAQCAtMzAxLDcgKzMwMSw3IEBAIHN0YXRpYyB1MzIgZ3VjX3dvcGNtX3NpemUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+IMKgc3RhdGljIGludCBndWNfdWNv ZGVfeGZlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gwqB7Cj4gwqAJc3Ry dWN0IGludGVsX2d1Y19mdyAqZ3VjX2Z3ID0gJmRldl9wcml2LT5ndWMuZ3VjX2Z3Owo+IC0Jc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IGRldl9wcml2LT5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gJmRldl9wcml2LT5kcm07Cj4gwqAJaW50IHJldDsKPiDCoAo+IMKgCXJldCA9IGk5 MTVfZ2VtX29iamVjdF9zZXRfdG9fZ3R0X2RvbWFpbihndWNfZnctPmd1Y19md19vYmosIGZhbHNl KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCj4gaW5kZXggY2VhNmI0ZGU0MDE4Li5iMDJj NTJkM2U3OTkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCj4gQEAgLTExNTQsNyAr MTE1NCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2Rpc2FibGVfaGRtaShzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlcikKPiDCoAkJSTkxNV9XUklURShpbnRlbF9oZG1pLT5oZG1pX3JlZywgdGVt cCk7Cj4gwqAJCVBPU1RJTkdfUkVBRChpbnRlbF9oZG1pLT5oZG1pX3JlZyk7Cj4gwqAKPiAtCQlp bnRlbF93YWl0X2Zvcl92YmxhbmtfaWZfYWN0aXZlKGRldl9wcml2LT5kZXYsIFBJUEVfQSk7Cj4g KwkJaW50ZWxfd2FpdF9mb3JfdmJsYW5rX2lmX2FjdGl2ZSgmZGV2X3ByaXYtPmRybSwgUElQRV9B KTsKPiDCoAkJaW50ZWxfc2V0X2NwdV9maWZvX3VuZGVycnVuX3JlcG9ydGluZyhkZXZfcHJpdiwg UElQRV9BLCB0cnVlKTsKPiDCoAkJaW50ZWxfc2V0X3BjaF9maWZvX3VuZGVycnVuX3JlcG9ydGlu ZyhkZXZfcHJpdiwgUElQRV9BLCB0cnVlKTsKPiDCoAl9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2hvdHBsdWcuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2hvdHBsdWcuYwo+IGluZGV4IDM4ZWVjYTdhNmU3Mi4uNTE0MzRlYzg3MWYyIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hvdHBsdWcuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2hvdHBsdWcuYwo+IEBAIC0xNDQsNyArMTQ0LDcgQEAgc3RhdGlj IGJvb2wgaW50ZWxfaHBkX2lycV9zdG9ybV9kZXRlY3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAo+IMKgCj4gwqBzdGF0aWMgdm9pZCBpbnRlbF9ocGRfaXJxX3N0b3JtX2Rpc2Fi bGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+IMKgewo+IC0Jc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IGRldl9wcml2LT5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gJmRldl9wcml2LT5kcm07Cj4gwqAJc3RydWN0IGRybV9tb2RlX2NvbmZpZyAqbW9kZV9jb25m aWcgPSAmZGV2LT5tb2RlX2NvbmZpZzsKPiDCoAlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRl bF9jb25uZWN0b3I7Cj4gwqAJc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXI7Cj4g QEAgLTE5MSw3ICsxOTEsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9ocGRfaXJxX3N0b3JtX3JlZW5h YmxlX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+IMKgCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9Cj4gwqAJCWNvbnRhaW5lcl9vZih3b3JrLCB0eXBlb2YoKmRldl9w cml2KSwKPiDCoAkJCcKgwqDCoMKgwqBob3RwbHVnLnJlZW5hYmxlX3dvcmsud29yayk7Cj4gLQlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZGV2X3ByaXYtPmRldjsKPiArCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSAmZGV2X3ByaXYtPmRybTsKPiDCoAlzdHJ1Y3QgZHJtX21vZGVfY29uZmlnICpt b2RlX2NvbmZpZyA9ICZkZXYtPm1vZGVfY29uZmlnOwo+IMKgCWludCBpOwo+IMKgCj4gQEAgLTMw Miw3ICszMDIsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2hvdHBsdWdfd29ya19mdW5jKHN0cnVjdCB3 b3JrX3N0cnVjdCAqd29yaykKPiDCoHsKPiDCoAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPQo+IMKgCQljb250YWluZXJfb2Yod29yaywgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUs IGhvdHBsdWcuaG90cGx1Z193b3JrKTsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkZXZf cHJpdi0+ZGV2Owo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZkZXZfcHJpdi0+ZHJtOwo+ IMKgCXN0cnVjdCBkcm1fbW9kZV9jb25maWcgKm1vZGVfY29uZmlnID0gJmRldi0+bW9kZV9jb25m aWc7Cj4gwqAJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yOwo+IMKgCXN0 cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyOwo+IEBAIC00NTUsNyArNDU1LDcgQEAg dm9pZCBpbnRlbF9ocGRfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAo+IMKgICovCj4gwqB2b2lkIGludGVsX2hwZF9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKPiDCoHsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkZXZfcHJp di0+ZGV2Owo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZkZXZfcHJpdi0+ZHJtOwo+IMKg CXN0cnVjdCBkcm1fbW9kZV9jb25maWcgKm1vZGVfY29uZmlnID0gJmRldi0+bW9kZV9jb25maWc7 Cj4gwqAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKPiDCoAlpbnQgaTsKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaTJjLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9pMmMuYwo+IGluZGV4IDgxZGUyMzA5OGJlNy4uYmVmNDMxMGEzMDVkIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2kyYy5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaTJjLmMKPiBAQCAtMTM4LDcgKzEzOCw3IEBAIHN0YXRp YyB2b2lkIGludGVsX2kyY19xdWlya19zZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LCBib29sIGVuYWJsZSkKPiDCoHN0YXRpYyB1MzIgZ2V0X3Jlc2VydmVkKHN0cnVjdCBpbnRl bF9nbWJ1cyAqYnVzKQo+IMKgewo+IMKgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IGJ1cy0+ZGV2X3ByaXY7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZGV2X3ByaXYt PmRldjsKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYtPmRybTsKPiDCoAl1 MzIgcmVzZXJ2ZWQgPSAwOwo+IMKgCj4gwqAJLyogT24gbW9zdCBjaGlwcywgdGhlc2UgYml0cyBt dXN0IGJlIHByZXNlcnZlZCBpbiBzb2Z0d2FyZS4gKi8KPiBAQCAtMjEyLDcgKzIxMiw3IEBAIGlu dGVsX2dwaW9fcHJlX3hmZXIoc3RydWN0IGkyY19hZGFwdGVyICphZGFwdGVyKQo+IMKgCQkJCQnC oMKgwqDCoMKgwqDCoGFkYXB0ZXIpOwo+IMKgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGJ1cy0+ZGV2X3ByaXY7Cj4gwqAKPiAtCWludGVsX2kyY19yZXNldChkZXZfcHJpdi0+ ZGV2KTsKPiArCWludGVsX2kyY19yZXNldCgmZGV2X3ByaXYtPmRybSk7Cj4gwqAJaW50ZWxfaTJj X3F1aXJrX3NldChkZXZfcHJpdiwgdHJ1ZSk7Cj4gwqAJc2V0X2RhdGEoYnVzLCAxKTsKPiDCoAlz ZXRfY2xvY2soYnVzLCAxKTsKPiBAQCAtNjg4LDcgKzY4OCw3IEBAIGludCBpbnRlbF9zZXR1cF9n bWJ1cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+IMKgCQkJZ290byBlcnI7Cj4gwqAJfQo+IMKg Cj4gLQlpbnRlbF9pMmNfcmVzZXQoZGV2X3ByaXYtPmRldik7Cj4gKwlpbnRlbF9pMmNfcmVzZXQo JmRldl9wcml2LT5kcm0pOwo+IMKgCj4gwqAJcmV0dXJuIDA7Cj4gwqAKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9scmMuYwo+IGluZGV4IDVjMTkxYTFhZmFhZi4uNmVjYWRlZjhmNDNkIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiBAQCAtODgzLDcgKzg4Myw3IEBAIHZvaWQgaW50ZWxfZXhl Y2xpc3RzX2NhbmNlbF9yZXF1ZXN0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4g wqAJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsICp0bXA7Cj4gwqAJTElTVF9IRUFE KGNhbmNlbF9saXN0KTsKPiDCoAo+IC0JV0FSTl9PTighbXV0ZXhfaXNfbG9ja2VkKCZlbmdpbmUt Pmk5MTUtPmRldi0+c3RydWN0X211dGV4KSk7Cj4gKwlXQVJOX09OKCFtdXRleF9pc19sb2NrZWQo JmVuZ2luZS0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCkpOwo+IMKgCj4gwqAJc3Bpbl9sb2NrX2Jo KCZlbmdpbmUtPmV4ZWNsaXN0X2xvY2spOwo+IMKgCWxpc3RfcmVwbGFjZV9pbml0KCZlbmdpbmUt PmV4ZWNsaXN0X3F1ZXVlLCAmY2FuY2VsX2xpc3QpOwo+IEBAIC05NDIsNyArOTQyLDcgQEAgc3Rh dGljIGludCBpbnRlbF9scl9jb250ZXh0X3BpbihzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4 LAo+IMKgCXUzMiAqbHJjX3JlZ19zdGF0ZTsKPiDCoAlpbnQgcmV0Owo+IMKgCj4gLQlsb2NrZGVw X2Fzc2VydF9oZWxkKCZjdHgtPmk5MTUtPmRldi0+c3RydWN0X211dGV4KTsKPiArCWxvY2tkZXBf YXNzZXJ0X2hlbGQoJmN0eC0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4gwqAKPiDCoAlpZiAo Y2UtPnBpbl9jb3VudCsrKQo+IMKgCQlyZXR1cm4gMDsKPiBAQCAtOTkyLDcgKzk5Miw3IEBAIHZv aWQgaW50ZWxfbHJfY29udGV4dF91bnBpbihzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAo+ IMKgewo+IMKgCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSA9ICZjdHgtPmVuZ2luZVtlbmdpbmUt PmlkXTsKPiDCoAo+IC0JbG9ja2RlcF9hc3NlcnRfaGVsZCgmY3R4LT5pOTE1LT5kZXYtPnN0cnVj dF9tdXRleCk7Cj4gKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZjdHgtPmk5MTUtPmRybS5zdHJ1Y3Rf bXV0ZXgpOwo+IMKgCUdFTV9CVUdfT04oY2UtPnBpbl9jb3VudCA9PSAwKTsKPiDCoAo+IMKgCWlm ICgtLWNlLT5waW5fY291bnQpCj4gQEAgLTEzMTcsNyArMTMxNyw3IEBAIHN0YXRpYyBpbnQgbHJj X3NldHVwX3dhX2N0eF9vYmooc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCB1MzIgc2l6 ZSkKPiDCoHsKPiDCoAlpbnQgcmV0Owo+IMKgCj4gLQllbmdpbmUtPndhX2N0eC5vYmogPSBpOTE1 X2dlbV9vYmplY3RfY3JlYXRlKGVuZ2luZS0+aTkxNS0+ZGV2LAo+ICsJZW5naW5lLT53YV9jdHgu b2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZSgmZW5naW5lLT5pOTE1LT5kcm0sCj4gwqAJCQkJ CQnCoMKgwqBQQUdFX0FMSUdOKHNpemUpKTsKPiDCoAlpZiAoSVNfRVJSKGVuZ2luZS0+d2FfY3R4 Lm9iaikpIHsKPiDCoAkJRFJNX0RFQlVHX0RSSVZFUigiYWxsb2MgTFJDIFdBIGN0eCBiYWNraW5n IG9iaiBmYWlsZWQuXG4iKTsKPiBAQCAtMjQ3OCw3ICsyNDc4LDcgQEAgc3RhdGljIGludCBleGVj bGlzdHNfY29udGV4dF9kZWZlcnJlZF9hbGxvYyhzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4 LAo+IMKgCS8qIE9uZSBleHRyYSBwYWdlIGFzIHRoZSBzaGFyaW5nIGRhdGEgYmV0d2VlbiBkcml2 ZXIgYW5kIEd1QyAqLwo+IMKgCWNvbnRleHRfc2l6ZSArPSBQQUdFX1NJWkUgKiBMUkNfUFBIV1NQ X1BOOwo+IMKgCj4gLQljdHhfb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZShjdHgtPmk5MTUt PmRldiwgY29udGV4dF9zaXplKTsKPiArCWN0eF9vYmogPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRl KCZjdHgtPmk5MTUtPmRybSwgY29udGV4dF9zaXplKTsKPiDCoAlpZiAoSVNfRVJSKGN0eF9vYmop KSB7Cj4gwqAJCURSTV9ERUJVR19EUklWRVIoIkFsbG9jIExSQyBiYWNraW5nIG9iaiBmYWlsZWQu XG4iKTsKPiDCoAkJcmV0dXJuIFBUUl9FUlIoY3R4X29iaik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX29wcmVnaW9uLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9vcHJlZ2lvbi5jCj4gaW5kZXggZjZkOGEyMWQyYzQ5Li4wODQ3NmMxZTRlYTQgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ByZWdpb24uYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX29wcmVnaW9uLmMKPiBAQCAtMjQ0LDcgKzI0NCw3IEBA IHN0YXRpYyBpbnQgc3dzY2koc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+IMKg CQnCoHUzMiBmdW5jdGlvbiwgdTMyIHBhcm0sIHUzMiAqcGFybV9vdXQpCj4gwqB7Cj4gwqAJc3Ry dWN0IG9wcmVnaW9uX3N3c2NpICpzd3NjaSA9IGRldl9wcml2LT5vcHJlZ2lvbi5zd3NjaTsKPiAt CXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gZGV2X3ByaXYtPmRldi0+cGRldjsKPiArCXN0cnVjdCBw Y2lfZGV2ICpwZGV2ID0gZGV2X3ByaXYtPmRybS5wZGV2Owo+IMKgCXUzMiBtYWluX2Z1bmN0aW9u LCBzdWJfZnVuY3Rpb24sIHNjaWM7Cj4gwqAJdTE2IHN3c2NpX3ZhbDsKPiDCoAl1MzIgZHNscDsK PiBAQCAtNDE4LDcgKzQxOCw3IEBAIHN0YXRpYyB1MzIgYXNsZV9zZXRfYmFja2xpZ2h0KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIGJjbHApCj4gwqB7Cj4gwqAJc3RydWN0 IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yOwo+IMKgCXN0cnVjdCBvcHJlZ2lvbl9hc2xlICph c2xlID0gZGV2X3ByaXYtPm9wcmVnaW9uLmFzbGU7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gZGV2X3ByaXYtPmRldjsKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYt PmRybTsKPiDCoAo+IMKgCURSTV9ERUJVR19EUklWRVIoImJjbHAgPSAweCUwOHhcbiIsIGJjbHAp Owo+IMKgCj4gQEAgLTY2MCw3ICs2NjAsNyBAQCBzdGF0aWMgdm9pZCBzZXRfZGlkKHN0cnVjdCBp bnRlbF9vcHJlZ2lvbiAqb3ByZWdpb24sIGludCBpLCB1MzIgdmFsKQo+IMKgc3RhdGljIHZvaWQg aW50ZWxfZGlkbF9vdXRwdXRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiDC oHsKPiDCoAlzdHJ1Y3QgaW50ZWxfb3ByZWdpb24gKm9wcmVnaW9uID0gJmRldl9wcml2LT5vcHJl Z2lvbjsKPiAtCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gZGV2X3ByaXYtPmRldi0+cGRldjsKPiAr CXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gZGV2X3ByaXYtPmRybS5wZGV2Owo+IMKgCXN0cnVjdCBk cm1fY29ubmVjdG9yICpjb25uZWN0b3I7Cj4gwqAJYWNwaV9oYW5kbGUgaGFuZGxlOwo+IMKgCXN0 cnVjdCBhY3BpX2RldmljZSAqYWNwaV9kZXYsICphY3BpX2NkZXYsICphY3BpX3ZpZGVvX2J1cyA9 IE5VTEw7Cj4gQEAgLTcyNCw3ICs3MjQsNyBAQCBlbmQ6Cj4gwqAKPiDCoGJsaW5kX3NldDoKPiDC oAlpID0gMDsKPiAtCWxpc3RfZm9yX2VhY2hfZW50cnkoY29ubmVjdG9yLCAmZGV2X3ByaXYtPmRl di0+bW9kZV9jb25maWcuY29ubmVjdG9yX2xpc3QsIGhlYWQpIHsKPiArCWxpc3RfZm9yX2VhY2hf ZW50cnkoY29ubmVjdG9yLCAmZGV2X3ByaXYtPmRybS5tb2RlX2NvbmZpZy5jb25uZWN0b3JfbGlz dCwgaGVhZCkgewo+IMKgCQlpbnQgb3V0cHV0X3R5cGUgPSBBQ1BJX09USEVSX09VVFBVVDsKPiDC oAkJaWYgKGkgPj0gbWF4X291dHB1dHMpIHsKPiDCoAkJCURSTV9ERUJVR19LTVMoIk1vcmUgdGhh biAldSBvdXRwdXRzIGluIGNvbm5lY3RvciBsaXN0XG4iLAo+IEBAIC05MTYsNyArOTE2LDcgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCBkbWlfc3lzdGVtX2lkIGludGVsX25vX29wcmVnaW9uX3ZidFtd ID0gewo+IMKgaW50IGludGVsX29wcmVnaW9uX3NldHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKPiDCoHsKPiDCoAlzdHJ1Y3QgaW50ZWxfb3ByZWdpb24gKm9wcmVnaW9uID0g JmRldl9wcml2LT5vcHJlZ2lvbjsKPiAtCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gZGV2X3ByaXYt PmRldi0+cGRldjsKPiArCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gZGV2X3ByaXYtPmRybS5wZGV2 Owo+IMKgCXUzMiBhc2xzLCBtYm94ZXM7Cj4gwqAJY2hhciBidWZbc2l6ZW9mKE9QUkVHSU9OX1NJ R05BVFVSRSldOwo+IMKgCWludCBlcnIgPSAwOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9vdmVybGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vdmVy bGF5LmMKPiBpbmRleCBlYjkzZjkwYmI3NGQuLjVjODNkNzE5NmE1MSAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vdmVybGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9vdmVybGF5LmMKPiBAQCAtNDA5LDcgKzQwOSw3IEBAIHN0YXRpYyBpbnQg aW50ZWxfb3ZlcmxheV9yZWxlYXNlX29sZF92aWQoc3RydWN0IGludGVsX292ZXJsYXkgKm92ZXJs YXkpCj4gwqAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gJmRldl9wcml2LT5lbmdp bmVbUkNTXTsKPiDCoAlpbnQgcmV0Owo+IMKgCj4gLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZkZXZf cHJpdi0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+ICsJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3By aXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOwo+IMKgCj4gwqAJLyogT25seSB3YWl0IGlmIHRoZXJlIGlz IGFjdHVhbGx5IGFuIG9sZCBmcmFtZSB0byByZWxlYXNlIHRvCj4gwqAJwqAqIGd1YXJhbnRlZSBm b3J3YXJkIHByb2dyZXNzLgo+IEBAIC03NDEsOCArNzQxLDggQEAgc3RhdGljIGludCBpbnRlbF9v dmVybGF5X2RvX3B1dF9pbWFnZShzdHJ1Y3QgaW50ZWxfb3ZlcmxheSAqb3ZlcmxheSwKPiDCoAl1 MzIgc3dpZHRoLCBzd2lkdGhzdywgc2hlaWdodCwgb3N0cmlkZTsKPiDCoAllbnVtIHBpcGUgcGlw ZSA9IG92ZXJsYXktPmNydGMtPnBpcGU7Cj4gwqAKPiAtCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRl dl9wcml2LT5kZXYtPnN0cnVjdF9tdXRleCk7Cj4gLQlXQVJOX09OKCFkcm1fbW9kZXNldF9pc19s b2NrZWQoJmRldl9wcml2LT5kZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rpb25fbXV0ZXgpKTsKPiAr CWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKPiArCVdB Uk5fT04oIWRybV9tb2Rlc2V0X2lzX2xvY2tlZCgmZGV2X3ByaXYtPmRybS5tb2RlX2NvbmZpZy5j b25uZWN0aW9uX211dGV4KSk7Cj4gwqAKPiDCoAlyZXQgPSBpbnRlbF9vdmVybGF5X3JlbGVhc2Vf b2xkX3ZpZChvdmVybGF5KTsKPiDCoAlpZiAocmV0ICE9IDApCj4gQEAgLTgzNiw3ICs4MzYsNyBA QCBzdGF0aWMgaW50IGludGVsX292ZXJsYXlfZG9fcHV0X2ltYWdlKHN0cnVjdCBpbnRlbF9vdmVy bGF5ICpvdmVybGF5LAo+IMKgCW92ZXJsYXktPm9sZF92aWRfYm8gPSBvdmVybGF5LT52aWRfYm87 Cj4gwqAJb3ZlcmxheS0+dmlkX2JvID0gbmV3X2JvOwo+IMKgCj4gLQlpbnRlbF9mcm9udGJ1ZmZl cl9mbGlwKGRldl9wcml2LT5kZXYsIElOVEVMX0ZST05UQlVGRkVSX09WRVJMQVkocGlwZSkpOwo+ ICsJaW50ZWxfZnJvbnRidWZmZXJfZmxpcCgmZGV2X3ByaXYtPmRybSwgSU5URUxfRlJPTlRCVUZG RVJfT1ZFUkxBWShwaXBlKSk7Cj4gwqAKPiDCoAlyZXR1cm4gMDsKPiDCoAo+IEBAIC04NTEsOCAr ODUxLDggQEAgaW50IGludGVsX292ZXJsYXlfc3dpdGNoX29mZihzdHJ1Y3QgaW50ZWxfb3Zlcmxh eSAqb3ZlcmxheSkKPiDCoAlzdHJ1Y3Qgb3ZlcmxheV9yZWdpc3RlcnMgX19pb21lbSAqcmVnczsK PiDCoAlpbnQgcmV0Owo+IMKgCj4gLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZkZXZfcHJpdi0+ZGV2 LT5zdHJ1Y3RfbXV0ZXgpOwo+IC0JV0FSTl9PTighZHJtX21vZGVzZXRfaXNfbG9ja2VkKCZkZXZf cHJpdi0+ZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0aW9uX211dGV4KSk7Cj4gKwlsb2NrZGVwX2Fz c2VydF9oZWxkKCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4gKwlXQVJOX09OKCFkcm1f bW9kZXNldF9pc19sb2NrZWQoJmRldl9wcml2LT5kcm0ubW9kZV9jb25maWcuY29ubmVjdGlvbl9t dXRleCkpOwo+IMKgCj4gwqAJcmV0ID0gaW50ZWxfb3ZlcmxheV9yZWNvdmVyX2Zyb21faW50ZXJy dXB0KG92ZXJsYXkpOwo+IMKgCWlmIChyZXQgIT0gMCkKPiBAQCAtMTM3OSw3ICsxMzc5LDcgQEAg dm9pZCBpbnRlbF9zZXR1cF9vdmVybGF5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKPiDCoAlpZiAoIW92ZXJsYXkpCj4gwqAJCXJldHVybjsKPiDCoAo+IC0JbXV0ZXhfbG9jaygm ZGV2X3ByaXYtPmRldi0+c3RydWN0X211dGV4KTsKPiArCW11dGV4X2xvY2soJmRldl9wcml2LT5k cm0uc3RydWN0X211dGV4KTsKPiDCoAlpZiAoV0FSTl9PTihkZXZfcHJpdi0+b3ZlcmxheSkpCj4g wqAJCWdvdG8gb3V0X2ZyZWU7Cj4gwqAKPiBAQCAtMTM4Nyw5ICsxMzg3LDkgQEAgdm9pZCBpbnRl bF9zZXR1cF9vdmVybGF5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiDCoAo+ IMKgCXJlZ19ibyA9IE5VTEw7Cj4gwqAJaWYgKCFPVkVSTEFZX05FRURTX1BIWVNJQ0FMKGRldl9w cml2KSkKPiAtCQlyZWdfYm8gPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbihkZXZfcHJp di0+ZGV2LCBQQUdFX1NJWkUpOwo+ICsJCXJlZ19ibyA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVf c3RvbGVuKCZkZXZfcHJpdi0+ZHJtLCBQQUdFX1NJWkUpOwo+IMKgCWlmIChyZWdfYm8gPT0gTlVM TCkKPiAtCQlyZWdfYm8gPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRlKGRldl9wcml2LT5kZXYsIFBB R0VfU0laRSk7Cj4gKwkJcmVnX2JvID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZSgmZGV2X3ByaXYt PmRybSwgUEFHRV9TSVpFKTsKPiDCoAlpZiAoSVNfRVJSKHJlZ19ibykpCj4gwqAJCWdvdG8gb3V0 X2ZyZWU7Cj4gwqAJb3ZlcmxheS0+cmVnX2JvID0gcmVnX2JvOwo+IEBAIC0xNDM0LDcgKzE0MzQs NyBAQCB2b2lkIGludGVsX3NldHVwX292ZXJsYXkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQo+IMKgCWludGVsX292ZXJsYXlfdW5tYXBfcmVncyhvdmVybGF5LCByZWdzKTsKPiDC oAo+IMKgCWRldl9wcml2LT5vdmVybGF5ID0gb3ZlcmxheTsKPiAtCW11dGV4X3VubG9jaygmZGV2 X3ByaXYtPmRldi0+c3RydWN0X211dGV4KTsKPiArCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRy bS5zdHJ1Y3RfbXV0ZXgpOwo+IMKgCURSTV9JTkZPKCJpbml0aWFsaXplZCBvdmVybGF5IHN1cHBv cnRcbiIpOwo+IMKgCXJldHVybjsKPiDCoAo+IEBAIC0xNDQ0LDcgKzE0NDQsNyBAQCBvdXRfdW5w aW5fYm86Cj4gwqBvdXRfZnJlZV9ibzoKPiDCoAlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSjC rl9iby0+YmFzZSk7Cj4gwqBvdXRfZnJlZToKPiAtCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRl di0+c3RydWN0X211dGV4KTsKPiArCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3Rf bXV0ZXgpOwo+IMKgCWtmcmVlKG92ZXJsYXkpOwo+IMKgCXJldHVybjsKPiDCoH0KPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3BhbmVsLmMKPiBpbmRleCBlZmFlZTdhN2Y5MzMuLjYyMGU0ZDU4ZGY4ZSAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYwo+IEBAIC01MDQsNyArNTA0LDcgQEAg c3RhdGljIHUzMiBpOXh4X2dldF9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29u bmVjdG9yKQo+IMKgCWlmIChwYW5lbC0+YmFja2xpZ2h0LmNvbWJpbmF0aW9uX21vZGUpIHsKPiDC oAkJdTggbGJwYzsKPiDCoAo+IC0JCXBjaV9yZWFkX2NvbmZpZ19ieXRlKGRldl9wcml2LT5kZXYt PnBkZXYsIExCUEMsICZsYnBjKTsKPiArCQlwY2lfcmVhZF9jb25maWdfYnl0ZShkZXZfcHJpdi0+ ZHJtLnBkZXYsIExCUEMsICZsYnBjKTsKPiDCoAkJdmFsICo9IGxicGM7Cj4gwqAJfQo+IMKgCj4g QEAgLTU5Miw3ICs1OTIsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X3NldF9iYWNrbGlnaHQoc3RydWN0 IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCB1MzIgbGV2ZWwpCj4gwqAKPiDCoAkJbGJwYyA9 IGxldmVsICogMHhmZSAvIHBhbmVsLT5iYWNrbGlnaHQubWF4ICsgMTsKPiDCoAkJbGV2ZWwgLz0g bGJwYzsKPiAtCQlwY2lfd3JpdGVfY29uZmlnX2J5dGUoZGV2X3ByaXYtPmRldi0+cGRldiwgTEJQ QywgbGJwYyk7Cj4gKwkJcGNpX3dyaXRlX2NvbmZpZ19ieXRlKGRldl9wcml2LT5kcm0ucGRldiwg TEJQQywgbGJwYyk7Cj4gwqAJfQo+IMKgCj4gwqAJaWYgKElTX0dFTjQoZGV2X3ByaXYpKSB7Cj4g QEAgLTgyMiw3ICs4MjIsNyBAQCB2b2lkIGludGVsX3BhbmVsX2Rpc2FibGVfYmFja2xpZ2h0KHN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiDCoAnCoCogYmFja2xpZ2h0LiBUaGlz IHdpbGwgbGVhdmUgdGhlIGJhY2tsaWdodCBvbiB1bm5lY2Vzc2FyaWx5IHdoZW4KPiDCoAnCoCog YW5vdGhlciBjbGllbnQgaXMgbm90IGFjdGl2YXRlZC4KPiDCoAnCoCovCj4gLQlpZiAoZGV2X3By aXYtPmRldi0+c3dpdGNoX3Bvd2VyX3N0YXRlID09IERSTV9TV0lUQ0hfUE9XRVJfQ0hBTkdJTkcp IHsKPiArCWlmIChkZXZfcHJpdi0+ZHJtLnN3aXRjaF9wb3dlcl9zdGF0ZSA9PSBEUk1fU1dJVENI X1BPV0VSX0NIQU5HSU5HKSB7Cj4gwqAJCURSTV9ERUJVR19EUklWRVIoIlNraXBwaW5nIGJhY2ts aWdodCBkaXNhYmxlIG9uIHZnYSBzd2l0Y2hcbiIpOwo+IMKgCQlyZXR1cm47Cj4gwqAJfQo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcG0uYwo+IGluZGV4IGI2ZGZkMDI2NDk1MC4uZTk2YWIxYzgxYmY5IDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gQEAgLTI5NCw3ICsyOTQsNyBAQCBzdGF0aWMg dm9pZCBjaHZfc2V0X21lbW9yeV9wbTUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LCBib29sIGVuYWJsZSkKPiDCoAo+IMKgdm9pZCBpbnRlbF9zZXRfbWVtb3J5X2N4c3Ioc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBib29sIGVuYWJsZSkKPiDCoHsKPiAtCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBkZXZfcHJpdi0+ZGV2Owo+ICsJc3RydWN0IGRybV9kZXZpY2Ug KmRldiA9ICZkZXZfcHJpdi0+ZHJtOwo+IMKgCXUzMiB2YWw7Cj4gwqAKPiDCoAlpZiAoSVNfVkFM TEVZVklFVyhkZXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2KSkgewo+IEBAIC0yMjExLDcgKzIyMTEs NyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wcmludF93bV9sYXRlbmN5KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCj4gwqBzdGF0aWMgYm9vbCBpbGtfaW5jcmVhc2Vfd21fbGF0ZW5jeShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gwqAJCQkJwqDCoMKgwqB1aW50MTZfdCB3bVs1XSwg dWludDE2X3QgbWluKQo+IMKgewo+IC0JaW50IGxldmVsLCBtYXhfbGV2ZWwgPSBpbGtfd21fbWF4 X2xldmVsKGRldl9wcml2LT5kZXYpOwo+ICsJaW50IGxldmVsLCBtYXhfbGV2ZWwgPSBpbGtfd21f bWF4X2xldmVsKCZkZXZfcHJpdi0+ZHJtKTsKPiDCoAo+IMKgCWlmICh3bVswXSA+PSBtaW4pCj4g wqAJCXJldHVybiBmYWxzZTsKPiBAQCAtMjc0MCw3ICsyNzQwLDcgQEAgc3RhdGljIGJvb2wgX2ls a19kaXNhYmxlX2xwX3dtKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiDCoHN0 YXRpYyB2b2lkIGlsa193cml0ZV93bV92YWx1ZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAo+IMKgCQkJCXN0cnVjdCBpbGtfd21fdmFsdWVzICpyZXN1bHRzKQo+IMKgewo+IC0J c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGRldl9wcml2LT5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gJmRldl9wcml2LT5kcm07Cj4gwqAJc3RydWN0IGlsa193bV92YWx1ZXMgKnBy ZXZpb3VzID0gJmRldl9wcml2LT53bS5odzsKPiDCoAl1bnNpZ25lZCBpbnQgZGlydHk7Cj4gwqAJ dWludDMyX3QgdmFsOwo+IEBAIC0zMzM2LDEzICszMzM2LDEzIEBAIHN0YXRpYyBpbnQgc2tsX2Nv bXB1dGVfcGxhbmVfd20oY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ IMKgfQo+IMKgCj4gwqBzdGF0aWMgaW50Cj4gLXNrbF9jb21wdXRlX3dtX2xldmVsKGNvbnN0IHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiArc2tsX2NvbXB1dGVfd21fbGV2ZWwo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+IMKgCQnCoMKgwqDCoMKgc3RydWN0 IHNrbF9kZGJfYWxsb2NhdGlvbiAqZGRiLAo+IMKgCQnCoMKgwqDCoMKgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNzdGF0ZSwKPiDCoAkJwqDCoMKgwqDCoGludCBsZXZlbCwKPiDCoAkJwqDCoMKg wqDCoHN0cnVjdCBza2xfd21fbGV2ZWwgKnJlc3VsdCkKPiDCoHsKPiAtCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBkZXZfcHJpdi0+ZGV2Owo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZk ZXZfcHJpdi0+ZHJtOwo+IMKgCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IGNzdGF0 ZS0+YmFzZS5zdGF0ZTsKPiDCoAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2lu dGVsX2NydGMoY3N0YXRlLT5iYXNlLmNydGMpOwo+IMKgCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5l Owo+IEBAIC0zNDM5LDcgKzM0MzksNyBAQCBzdGF0aWMgaW50IHNrbF9idWlsZF9waXBlX3dtKHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUsCj4gwqAJCQnCoMKgwqDCoMKgc3RydWN0IHNr bF9waXBlX3dtICpwaXBlX3dtKQo+IMKgewo+IMKgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBj c3RhdGUtPmJhc2UuY3J0Yy0+ZGV2Owo+IC0JY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gwqAJaW50IGxldmVsLCBtYXhfbGV2ZWwg PSBpbGtfd21fbWF4X2xldmVsKGRldik7Cj4gwqAJaW50IHJldDsKPiDCoAo+IEBAIC0zNTI2LDcg KzM1MjYsNyBAQCBzdGF0aWMgdm9pZCBza2xfZGRiX2VudHJ5X3dyaXRlKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKPiDCoHN0YXRpYyB2b2lkIHNrbF93cml0ZV93bV92YWx1ZXMo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+IMKgCQkJCWNvbnN0IHN0cnVjdCBz a2xfd21fdmFsdWVzICpuZXcpCj4gwqB7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZGV2 X3ByaXYtPmRldjsKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYtPmRybTsK PiDCoAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YzsKPiDCoAo+IMKgCWZvcl9lYWNoX2ludGVsX2Ny dGMoZGV2LCBjcnRjKSB7Cj4gQEAgLTM2MjMsNyArMzYyMyw3IEBAIHNrbF9kZGJfYWxsb2NhdGlv bl9pbmNsdWRlZChjb25zdCBzdHJ1Y3Qgc2tsX2RkYl9hbGxvY2F0aW9uICpvbGQsCj4gwqBzdGF0 aWMgdm9pZCBza2xfZmx1c2hfd21fdmFsdWVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKPiDCoAkJCQlzdHJ1Y3Qgc2tsX3dtX3ZhbHVlcyAqbmV3X3ZhbHVlcykKPiDCoHsKPiAt CXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkZXZfcHJpdi0+ZGV2Owo+ICsJc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9ICZkZXZfcHJpdi0+ZHJtOwo+IMKgCXN0cnVjdCBza2xfZGRiX2FsbG9jYXRp b24gKmN1cl9kZGIsICpuZXdfZGRiOwo+IMKgCWJvb2wgcmVhbGxvY2F0ZWRbSTkxNV9NQVhfUElQ RVNdID0ge307Cj4gwqAJc3RydWN0IGludGVsX2NydGMgKmNydGM7Cj4gQEAgLTM4ODcsNyArMzg4 Nyw3IEBAIHN0YXRpYyB2b2lkIGlsa19jb21wdXRlX3dtX2NvbmZpZyhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAo+IMKgCj4gwqBzdGF0aWMgdm9pZCBpbGtfcHJvZ3JhbV93YXRlcm1hcmtzKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiDCoHsKPiAtCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBkZXZfcHJpdi0+ZGV2Owo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZkZXZf cHJpdi0+ZHJtOwo+IMKgCXN0cnVjdCBpbnRlbF9waXBlX3dtIGxwX3dtXzFfMiA9IHt9LCBscF93 bV81XzYgPSB7fSwgKmJlc3RfbHBfd207Cj4gwqAJc3RydWN0IGlsa193bV9tYXhpbXVtcyBtYXg7 Cj4gwqAJc3RydWN0IGludGVsX3dtX2NvbmZpZyBjb25maWcgPSB7fTsKPiBAQCAtNTUwNSw3ICs1 NTA1LDcgQEAgc3RhdGljIHZvaWQgdmFsbGV5dmlld19zZXR1cF9wY3R4KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKPiDCoAl1MzIgcGNicjsKPiDCoAlpbnQgcGN0eF9zaXplID0g MjQqMTAyNDsKPiDCoAo+IC0JbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmRldi0+c3RydWN0X211dGV4 KTsKPiArCW11dGV4X2xvY2soJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKPiDCoAo+IMKg CXBjYnIgPSBJOTE1X1JFQUQoVkxWX1BDQlIpOwo+IMKgCWlmIChwY2JyKSB7Cj4gQEAgLTU1MTMs NyArNTUxMyw3IEBAIHN0YXRpYyB2b2lkIHZhbGxleXZpZXdfc2V0dXBfcGN0eChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gwqAJCWludCBwY2JyX29mZnNldDsKPiDCoAo+IMKg CQlwY2JyX29mZnNldCA9IChwY2JyICYgKH40MDk1KSkgLSBkZXZfcHJpdi0+bW0uc3RvbGVuX2Jh c2U7Cj4gLQkJcGN0eCA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuX2Zvcl9wcmVhbGxv Y2F0ZWQoZGV2X3ByaXYtPmRldiwKPiArCQlwY3R4ID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9z dG9sZW5fZm9yX3ByZWFsbG9jYXRlZCgmZGV2X3ByaXYtPmRybSwKPiDCoAkJCQkJCQkJwqDCoMKg wqDCoMKgcGNicl9vZmZzZXQsCj4gwqAJCQkJCQkJCcKgwqDCoMKgwqDCoEk5MTVfR1RUX09GRlNF VF9OT05FLAo+IMKgCQkJCQkJCQnCoMKgwqDCoMKgwqBwY3R4X3NpemUpOwo+IEBAIC01NTMwLDcg KzU1MzAsNyBAQCBzdGF0aWMgdm9pZCB2YWxsZXl2aWV3X3NldHVwX3BjdHgoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQo+IMKgCcKgKiBvdmVybGFwIHdpdGggb3RoZXIgcmFuZ2Vz LCBzdWNoIGFzIHRoZSBmcmFtZSBidWZmZXIsIHByb3RlY3RlZAo+IMKgCcKgKiBtZW1vcnksIG9y IGFueSBvdGhlciByZWxldmFudCByYW5nZXMuCj4gwqAJwqAqLwo+IC0JcGN0eCA9IGk5MTVfZ2Vt X29iamVjdF9jcmVhdGVfc3RvbGVuKGRldl9wcml2LT5kZXYsIHBjdHhfc2l6ZSk7Cj4gKwlwY3R4 ID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW4oJmRldl9wcml2LT5kcm0sIHBjdHhfc2l6 ZSk7Cj4gwqAJaWYgKCFwY3R4KSB7Cj4gwqAJCURSTV9ERUJVRygibm90IGVub3VnaCBzdG9sZW4g c3BhY2UgZm9yIFBDVFgsIGRpc2FibGluZ1xuIik7Cj4gwqAJCWdvdG8gb3V0Owo+IEBAIC01NTQy LDcgKzU1NDIsNyBAQCBzdGF0aWMgdm9pZCB2YWxsZXl2aWV3X3NldHVwX3BjdHgoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+IMKgb3V0Ogo+IMKgCURSTV9ERUJVR19EUklWRVIo IlBDQlI6IDB4JTA4eFxuIiwgSTkxNV9SRUFEKFZMVl9QQ0JSKSk7Cj4gwqAJZGV2X3ByaXYtPnZs dl9wY3R4ID0gcGN0eDsKPiAtCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRldi0+c3RydWN0X211 dGV4KTsKPiArCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOwo+IMKg fQo+IMKgCj4gwqBzdGF0aWMgdm9pZCB2YWxsZXl2aWV3X2NsZWFudXBfcGN0eChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gQEAgLTY0ODYsOSArNjQ4Niw5IEBAIHZvaWQgaW50 ZWxfZW5hYmxlX2d0X3Bvd2Vyc2F2ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp Cj4gwqAKPiDCoAlpZiAoSVNfSVJPTkxBS0VfTShkZXZfcHJpdikpIHsKPiDCoAkJaXJvbmxha2Vf ZW5hYmxlX2RycHMoZGV2X3ByaXYpOwo+IC0JCW11dGV4X2xvY2soJmRldl9wcml2LT5kZXYtPnN0 cnVjdF9tdXRleCk7Cj4gKwkJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgp Owo+IMKgCQlpbnRlbF9pbml0X2Vtb24oZGV2X3ByaXYpOwo+IC0JCW11dGV4X3VubG9jaygmZGV2 X3ByaXYtPmRldi0+c3RydWN0X211dGV4KTsKPiArCQltdXRleF91bmxvY2soJmRldl9wcml2LT5k cm0uc3RydWN0X211dGV4KTsKPiDCoAl9IGVsc2UgaWYgKElOVEVMX0lORk8oZGV2X3ByaXYpLT5n ZW4gPj0gNikgewo+IMKgCQkvKgo+IMKgCQnCoCogUENVIGNvbW11bmljYXRpb24gaXMgc2xvdyBh bmQgdGhpcyBkb2Vzbid0IG5lZWQgdG8gYmUKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmlu Z2J1ZmZlci5jCj4gaW5kZXggOGQzNWEzOTc4ZjliLi4xN2M1NWUzYmYzNDYgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCj4gQEAgLTY2NSw3ICs2NjUsNyBAQCBp bnRlbF9pbml0X3BpcGVfY29udHJvbChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4g wqAKPiDCoAlXQVJOX09OKGVuZ2luZS0+c2NyYXRjaC5vYmopOwo+IMKgCj4gLQllbmdpbmUtPnNj cmF0Y2gub2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZShlbmdpbmUtPmk5MTUtPmRldiwgNDA5 Nik7Cj4gKwllbmdpbmUtPnNjcmF0Y2gub2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZSgmZW5n aW5lLT5pOTE1LT5kcm0sIDQwOTYpOwo+IMKgCWlmIChJU19FUlIoZW5naW5lLT5zY3JhdGNoLm9i aikpIHsKPiDCoAkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gYWxsb2NhdGUgc2Vxbm8gcGFnZVxuIik7 Cj4gwqAJCXJldCA9IFBUUl9FUlIoZW5naW5lLT5zY3JhdGNoLm9iaik7Cj4gQEAgLTIwMTIsNyAr MjAxMiw3IEBAIHN0YXRpYyB2b2lkIGNsZWFudXBfcGh5c19zdGF0dXNfcGFnZShzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gwqAJaWYgKCFkZXZfcHJpdi0+c3RhdHVzX3BhZ2VfZG1h aCkKPiDCoAkJcmV0dXJuOwo+IMKgCj4gLQlkcm1fcGNpX2ZyZWUoZGV2X3ByaXYtPmRldiwgZGV2 X3ByaXYtPnN0YXR1c19wYWdlX2RtYWgpOwo+ICsJZHJtX3BjaV9mcmVlKCZkZXZfcHJpdi0+ZHJt LCBkZXZfcHJpdi0+c3RhdHVzX3BhZ2VfZG1haCk7Cj4gwqAJZW5naW5lLT5zdGF0dXNfcGFnZS5w YWdlX2FkZHIgPSBOVUxMOwo+IMKgfQo+IMKgCj4gQEAgLTIwMzgsNyArMjAzOCw3IEBAIHN0YXRp YyBpbnQgaW5pdF9zdGF0dXNfcGFnZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4g wqAJCXVuc2lnbmVkIGZsYWdzOwo+IMKgCQlpbnQgcmV0Owo+IMKgCj4gLQkJb2JqID0gaTkxNV9n ZW1fb2JqZWN0X2NyZWF0ZShlbmdpbmUtPmk5MTUtPmRldiwgNDA5Nik7Cj4gKwkJb2JqID0gaTkx NV9nZW1fb2JqZWN0X2NyZWF0ZSgmZW5naW5lLT5pOTE1LT5kcm0sIDQwOTYpOwo+IMKgCQlpZiAo SVNfRVJSKG9iaikpIHsKPiDCoAkJCURSTV9FUlJPUigiRmFpbGVkIHRvIGFsbG9jYXRlIHN0YXR1 cyBwYWdlXG4iKTsKPiDCoAkJCXJldHVybiBQVFJfRVJSKG9iaik7Cj4gQEAgLTIwODcsNyArMjA4 Nyw3IEBAIHN0YXRpYyBpbnQgaW5pdF9waHlzX3N0YXR1c19wYWdlKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZSkKPiDCoAo+IMKgCWlmICghZGV2X3ByaXYtPnN0YXR1c19wYWdlX2RtYWgp IHsKPiDCoAkJZGV2X3ByaXYtPnN0YXR1c19wYWdlX2RtYWggPQo+IC0JCQlkcm1fcGNpX2FsbG9j KGRldl9wcml2LT5kZXYsIFBBR0VfU0laRSwgUEFHRV9TSVpFKTsKPiArCQkJZHJtX3BjaV9hbGxv YygmZGV2X3ByaXYtPmRybSwgUEFHRV9TSVpFLCBQQUdFX1NJWkUpOwo+IMKgCQlpZiAoIWRldl9w cml2LT5zdGF0dXNfcGFnZV9kbWFoKQo+IMKgCQkJcmV0dXJuIC1FTk9NRU07Cj4gwqAJfQo+IEBA IC0yMjIwLDcgKzIyMjAsNyBAQCBpbnRlbF9lbmdpbmVfY3JlYXRlX3JpbmdidWZmZXIoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBpbnQgc2l6ZSkKPiDCoAlyaW5nLT5sYXN0X3JldGly ZWRfaGVhZCA9IC0xOwo+IMKgCWludGVsX3JpbmdfdXBkYXRlX3NwYWNlKHJpbmcpOwo+IMKgCj4g LQlyZXQgPSBpbnRlbF9hbGxvY19yaW5nYnVmZmVyX29iaihlbmdpbmUtPmk5MTUtPmRldiwgcmlu Zyk7Cj4gKwlyZXQgPSBpbnRlbF9hbGxvY19yaW5nYnVmZmVyX29iaigmZW5naW5lLT5pOTE1LT5k cm0sIHJpbmcpOwo+IMKgCWlmIChyZXQpIHsKPiDCoAkJRFJNX0RFQlVHX0RSSVZFUigiRmFpbGVk IHRvIGFsbG9jYXRlIHJpbmdidWZmZXIgJXM6ICVkXG4iLAo+IMKgCQkJCcKgZW5naW5lLT5uYW1l LCByZXQpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1l X3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKPiBpbmRleCBm ZThmYWYzMGJkYTcuLjc0MjQ2N2I4NGNjZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9ydW50aW1lX3BtLmMKPiBAQCAtMjY3LDcgKzI2Nyw3IEBAIHZvaWQgaW50ZWxfZGlzcGxheV9z ZXRfaW5pdF9wb3dlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gwqAgKi8K PiDCoHN0YXRpYyB2b2lkIGhzd19wb3dlcl93ZWxsX3Bvc3RfZW5hYmxlKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKPiDCoHsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBk ZXZfcHJpdi0+ZGV2Owo+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZkZXZfcHJpdi0+ZHJt Owo+IMKgCj4gwqAJLyoKPiDCoAnCoCogQWZ0ZXIgd2UgcmUtZW5hYmxlIHRoZSBwb3dlciB3ZWxs LCBpZiB3ZSB0b3VjaCBWR0EgcmVnaXN0ZXIgMHgzZDUKPiBAQCAtMjk4LDcgKzI5OCw3IEBAIHN0 YXRpYyB2b2lkIGhzd19wb3dlcl93ZWxsX3ByZV9kaXNhYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKPiDCoHN0YXRpYyB2b2lkIHNrbF9wb3dlcl93ZWxsX3Bvc3RfZW5hYmxl KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiDCoAkJCQnCoMKgwqDCoMKgwqDC oHN0cnVjdCBpOTE1X3Bvd2VyX3dlbGwgKnBvd2VyX3dlbGwpCj4gwqB7Cj4gLQlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gZGV2X3ByaXYtPmRldjsKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSAmZGV2X3ByaXYtPmRybTsKPiDCoAo+IMKgCS8qCj4gwqAJwqAqIEFmdGVyIHdlIHJlLWVuYWJs ZSB0aGUgcG93ZXIgd2VsbCwgaWYgd2UgdG91Y2ggVkdBIHJlZ2lzdGVyIDB4M2Q1Cj4gQEAgLTgy MSw3ICs4MjEsNyBAQCBzdGF0aWMgdm9pZCBnZW45X2RjX29mZl9wb3dlcl93ZWxsX2VuYWJsZShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gwqAJZ2VuOV9zZXRfZGNfc3RhdGUo ZGV2X3ByaXYsIERDX1NUQVRFX0RJU0FCTEUpOwo+IMKgCj4gwqAJV0FSTl9PTihkZXZfcHJpdi0+ Y2RjbGtfZnJlcSAhPQo+IC0JCWRldl9wcml2LT5kaXNwbGF5LmdldF9kaXNwbGF5X2Nsb2NrX3Nw ZWVkKGRldl9wcml2LT5kZXYpKTsKPiArCQlkZXZfcHJpdi0+ZGlzcGxheS5nZXRfZGlzcGxheV9j bG9ja19zcGVlZCgmZGV2X3ByaXYtPmRybSkpOwo+IMKgCj4gwqAJZ2VuOV9hc3NlcnRfZGJ1Zl9l bmFibGVkKGRldl9wcml2KTsKPiDCoAo+IEBAIC05NzksNyArOTc5LDcgQEAgc3RhdGljIHZvaWQg dmx2X2Rpc3BsYXlfcG93ZXJfd2VsbF9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKPiDCoAnCoCoKPiDCoAnCoCogQ0hWIERQTEwgQi9DIGhhdmUgc29tZSBpc3N1ZXMgaWYg VkdBIG1vZGUgaXMgZW5hYmxlZC4KPiDCoAnCoCovCj4gLQlmb3JfZWFjaF9waXBlKGRldl9wcml2 LT5kZXYsIHBpcGUpIHsKPiArCWZvcl9lYWNoX3BpcGUoJmRldl9wcml2LT5kcm0sIHBpcGUpIHsK PiDCoAkJdTMyIHZhbCA9IEk5MTVfUkVBRChEUExMKHBpcGUpKTsKPiDCoAo+IMKgCQl2YWwgfD0g RFBMTF9SRUZfQ0xLX0VOQUJMRV9WTFYgfCBEUExMX1ZHQV9NT0RFX0RJUzsKPiBAQCAtMTAwNCw3 ICsxMDA0LDcgQEAgc3RhdGljIHZvaWQgdmx2X2Rpc3BsYXlfcG93ZXJfd2VsbF9pbml0KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiDCoAo+IMKgCWludGVsX2hwZF9pbml0KGRl dl9wcml2KTsKPiDCoAo+IC0JaTkxNV9yZWRpc2FibGVfdmdhX3Bvd2VyX29uKGRldl9wcml2LT5k ZXYpOwo+ICsJaTkxNV9yZWRpc2FibGVfdmdhX3Bvd2VyX29uKCZkZXZfcHJpdi0+ZHJtKTsKPiDC oH0KPiDCoAo+IMKgc3RhdGljIHZvaWQgdmx2X2Rpc3BsYXlfcG93ZXJfd2VsbF9kZWluaXQoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+IEBAIC0xMDE0LDcgKzEwMTQsNyBAQCBz dGF0aWMgdm9pZCB2bHZfZGlzcGxheV9wb3dlcl93ZWxsX2RlaW5pdChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCj4gwqAJc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+aXJxX2xv Y2spOwo+IMKgCj4gwqAJLyogbWFrZSBzdXJlIHdlJ3JlIGRvbmUgcHJvY2Vzc2luZyBkaXNwbGF5 IGlycXMgKi8KPiAtCXN5bmNocm9uaXplX2lycShkZXZfcHJpdi0+ZGV2LT5pcnEpOwo+ICsJc3lu Y2hyb25pemVfaXJxKGRldl9wcml2LT5kcm0uaXJxKTsKPiDCoAo+IMKgCXZsdl9wb3dlcl9zZXF1 ZW5jZXJfcmVzZXQoZGV2X3ByaXYpOwo+IMKgfQo+IEBAIC0yMTQ4LDcgKzIxNDgsNyBAQCBpbnQg aW50ZWxfcG93ZXJfZG9tYWluc19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKPiDCoCAqLwo+IMKgdm9pZCBpbnRlbF9wb3dlcl9kb21haW5zX2Zpbmkoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQo+IMKgewo+IC0Jc3RydWN0IGRldmljZSAqZGV2aWNlID0g JmRldl9wcml2LT5kZXYtPnBkZXYtPmRldjsKPiArCXN0cnVjdCBkZXZpY2UgKmRldmljZSA9ICZk ZXZfcHJpdi0+ZHJtLnBkZXYtPmRldjsKPiDCoAo+IMKgCS8qCj4gwqAJwqAqIFRoZSBpOTE1Lmtv IG1vZHVsZSBpcyBzdGlsbCBub3QgcHJlcGFyZWQgdG8gYmUgbG9hZGVkIHdoZW4KPiBAQCAtMjQ1 NCw3ICsyNDU0LDcgQEAgc3RhdGljIHZvaWQgdmx2X2NtbmxhbmVfd2Eoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQo+IMKgICovCj4gwqB2b2lkIGludGVsX3Bvd2VyX2RvbWFpbnNf aW5pdF9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGJvb2wgcmVzdW1lKQo+ IMKgewo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGRldl9wcml2LT5kZXY7Cj4gKwlzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRldl9wcml2LT5kcm07Cj4gwqAJc3RydWN0IGk5MTVfcG93 ZXJfZG9tYWlucyAqcG93ZXJfZG9tYWlucyA9ICZkZXZfcHJpdi0+cG93ZXJfZG9tYWluczsKPiDC oAo+IMKgCXBvd2VyX2RvbWFpbnMtPmluaXRpYWxpemluZyA9IHRydWU7Cj4gQEAgLTI1MTYsNyAr MjUxNiw3IEBAIHZvaWQgaW50ZWxfcG93ZXJfZG9tYWluc19zdXNwZW5kKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKPiDCoCAqLwo+IMKgdm9pZCBpbnRlbF9ydW50aW1lX3BtX2dl dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gwqB7Cj4gLQlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gZGV2X3ByaXYtPmRldjsKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSAmZGV2X3ByaXYtPmRybTsKPiDCoAlzdHJ1Y3QgZGV2aWNlICpkZXZpY2UgPSAmZGV2LT5wZGV2 LT5kZXY7Cj4gwqAKPiDCoAlwbV9ydW50aW1lX2dldF9zeW5jKGRldmljZSk7Cj4gQEAgLTI1Mzcs NyArMjUzNyw3IEBAIHZvaWQgaW50ZWxfcnVudGltZV9wbV9nZXQoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQo+IMKgICovCj4gwqBib29sIGludGVsX3J1bnRpbWVfcG1fZ2V0X2lm X2luX3VzZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gwqB7Cj4gLQlzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2ID0gZGV2X3ByaXYtPmRldjsKPiArCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSAmZGV2X3ByaXYtPmRybTsKPiDCoAlzdHJ1Y3QgZGV2aWNlICpkZXZpY2UgPSAmZGV2 LT5wZGV2LT5kZXY7Cj4gwqAKPiDCoAlpZiAoSVNfRU5BQkxFRChDT05GSUdfUE0pKSB7Cj4gQEAg LTI1NzksNyArMjU3OSw3IEBAIGJvb2wgaW50ZWxfcnVudGltZV9wbV9nZXRfaWZfaW5fdXNlKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiDCoCAqLwo+IMKgdm9pZCBpbnRlbF9y dW50aW1lX3BtX2dldF9ub3Jlc3VtZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp Cj4gwqB7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZGV2X3ByaXYtPmRldjsKPiArCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYtPmRybTsKPiDCoAlzdHJ1Y3QgZGV2aWNl ICpkZXZpY2UgPSAmZGV2LT5wZGV2LT5kZXY7Cj4gwqAKPiDCoAlhc3NlcnRfcnBtX3dha2Vsb2Nr X2hlbGQoZGV2X3ByaXYpOwo+IEBAIC0yNTk4LDcgKzI1OTgsNyBAQCB2b2lkIGludGVsX3J1bnRp bWVfcG1fZ2V0X25vcmVzdW1lKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiDC oCAqLwo+IMKgdm9pZCBpbnRlbF9ydW50aW1lX3BtX3B1dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCj4gwqB7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZGV2X3ByaXYt PmRldjsKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYtPmRybTsKPiDCoAlz dHJ1Y3QgZGV2aWNlICpkZXZpY2UgPSAmZGV2LT5wZGV2LT5kZXY7Cj4gwqAKPiDCoAlhc3NlcnRf cnBtX3dha2Vsb2NrX2hlbGQoZGV2X3ByaXYpOwo+IEBAIC0yNjIxLDcgKzI2MjEsNyBAQCB2b2lk IGludGVsX3J1bnRpbWVfcG1fcHV0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK PiDCoCAqLwo+IMKgdm9pZCBpbnRlbF9ydW50aW1lX3BtX2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCj4gwqB7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZGV2 X3ByaXYtPmRldjsKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYtPmRybTsK PiDCoAlzdHJ1Y3QgZGV2aWNlICpkZXZpY2UgPSAmZGV2LT5wZGV2LT5kZXY7Cj4gwqAKPiDCoAlw bV9ydW50aW1lX3NldF9hdXRvc3VzcGVuZF9kZWxheShkZXZpY2UsIDEwMDAwKTsgLyogMTBzICov Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nkdm8uYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nkdm8uYwo+IGluZGV4IGI4M2FkNjJjMTI3My4uM2FlZTAz ZTBiMTc4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nkdm8uYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nkdm8uYwo+IEBAIC0xNDcxLDcgKzE0 NzEsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX3Nkdm8oc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIpCj4gwqAJCXRlbXAgJj0gflNEVk9fRU5BQkxFOwo+IMKgCQlpbnRlbF9zZHZv X3dyaXRlX3Nkdm94KGludGVsX3Nkdm8sIHRlbXApOwo+IMKgCj4gLQkJaW50ZWxfd2FpdF9mb3Jf dmJsYW5rX2lmX2FjdGl2ZShkZXZfcHJpdi0+ZGV2LCBQSVBFX0EpOwo+ICsJCWludGVsX3dhaXRf Zm9yX3ZibGFua19pZl9hY3RpdmUoJmRldl9wcml2LT5kcm0sIFBJUEVfQSk7Cj4gwqAJCWludGVs X3NldF9jcHVfZmlmb191bmRlcnJ1bl9yZXBvcnRpbmcoZGV2X3ByaXYsIFBJUEVfQSwgdHJ1ZSk7 Cj4gwqAJCWludGVsX3NldF9wY2hfZmlmb191bmRlcnJ1bl9yZXBvcnRpbmcoZGV2X3ByaXYsIFBJ UEVfQSwgdHJ1ZSk7Cj4gwqAJfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF91bmNvcmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jCj4gaW5k ZXggYzFjYTQ1OGQ2ODhlLi41OGFjM2Y5NzUxODAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF91bmNvcmUuYwo+IEBAIC0xNDY5LDcgKzE0NjksNyBAQCBzdGF0aWMgaW50IGk5MTVfcmVzZXRf Y29tcGxldGUoc3RydWN0IHBjaV9kZXYgKnBkZXYpCj4gwqAKPiDCoHN0YXRpYyBpbnQgaTkxNV9k b19yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHVuc2lnbmVkIGVuZ2lu ZV9tYXNrKQo+IMKgewo+IC0Jc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBkZXZfcHJpdi0+ZGV2LT5w ZGV2Owo+ICsJc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBkZXZfcHJpdi0+ZHJtLnBkZXY7Cj4gwqAK PiDCoAkvKiBhc3NlcnQgcmVzZXQgZm9yIGF0IGxlYXN0IDIwIHVzZWMgKi8KPiDCoAlwY2lfd3Jp dGVfY29uZmlnX2J5dGUocGRldiwgSTkxNV9HRFJTVCwgR1JET01fUkVTRVRfRU5BQkxFKTsKPiBA QCAtMTQ4OCwxNCArMTQ4OCwxNCBAQCBzdGF0aWMgaW50IGc0eF9yZXNldF9jb21wbGV0ZShzdHJ1 Y3QgcGNpX2RldiAqcGRldikKPiDCoAo+IMKgc3RhdGljIGludCBnMzNfZG9fcmVzZXQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1bnNpZ25lZCBlbmdpbmVfbWFzaykKPiDCoHsK PiAtCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gZGV2X3ByaXYtPmRldi0+cGRldjsKPiArCXN0cnVj dCBwY2lfZGV2ICpwZGV2ID0gZGV2X3ByaXYtPmRybS5wZGV2Owo+IMKgCXBjaV93cml0ZV9jb25m aWdfYnl0ZShwZGV2LCBJOTE1X0dEUlNULCBHUkRPTV9SRVNFVF9FTkFCTEUpOwo+IMKgCXJldHVy biB3YWl0X2ZvcihnNHhfcmVzZXRfY29tcGxldGUocGRldiksIDUwMCk7Cj4gwqB9Cj4gwqAKPiDC oHN0YXRpYyBpbnQgZzR4X2RvX3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwgdW5zaWduZWQgZW5naW5lX21hc2spCj4gwqB7Cj4gLQlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9 IGRldl9wcml2LT5kZXYtPnBkZXY7Cj4gKwlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IGRldl9wcml2 LT5kcm0ucGRldjsKPiDCoAlpbnQgcmV0Owo+IMKgCj4gwqAJcGNpX3dyaXRlX2NvbmZpZ19ieXRl KHBkZXYsIEk5MTVfR0RSU1QsCi0tIApKb29uYXMgTGFodGluZW4KT3BlbiBTb3VyY2UgVGVjaG5v bG9neSBDZW50ZXIKSW50ZWwgQ29ycG9yYXRpb24KX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4Cg==