From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 7/7] drm/i915: Add entrypoints for mapping dplls to encoders and crtcs Date: Thu, 13 Oct 2016 15:53:12 +0200 Message-ID: <20161013135312.GV20761@phenom.ffwll.local> References: <1475584337-8900-1-git-send-email-ander.conselvan.de.oliveira@intel.com> <1475584337-8900-8-git-send-email-ander.conselvan.de.oliveira@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qt0-x244.google.com (mail-qt0-x244.google.com [IPv6:2607:f8b0:400d:c0d::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 563696E1B0 for ; Thu, 13 Oct 2016 13:53:16 +0000 (UTC) Received: by mail-qt0-x244.google.com with SMTP id m5so2681594qtb.0 for ; Thu, 13 Oct 2016 06:53:16 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1475584337-8900-8-git-send-email-ander.conselvan.de.oliveira@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ander Conselvan de Oliveira Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBPY3QgMDQsIDIwMTYgYXQgMDM6MzI6MTdQTSArMDMwMCwgQW5kZXIgQ29uc2VsdmFu IGRlIE9saXZlaXJhIHdyb3RlOgo+IEFic3RyYWN0IHRoZSBwbGF0Zm9ybSBzcGVjaWZpYyBiaXRz IG9mIG1hcHBpbmcgdGhlIGRwbGxzIHVuZGVyIGEKPiBwbGF0Zm9ybSBpbmRlcGVuZCBlbnRyeXBv aW50cyBzbyB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbiBwbGF0Zm9ybXMgYXJlCj4gY29udGFpbmVk IGluIHRoZSBkcGxsIGNvZGUuIEkuZS4sIGl0IHJlbW92ZXMgSVNfUExBVEZPUk0oKSBtYWNyb3Mg ZnJvbQo+IG90aGVyIHBhcnRzIG9mIHRoZSBjb2RlLgo+IAo+IFNpZ25lZC1vZmYtYnk6IEFuZGVy IENvbnNlbHZhbiBkZSBPbGl2ZWlyYSA8YW5kZXIuY29uc2VsdmFuLmRlLm9saXZlaXJhQGludGVs LmNvbT4KCk5vdCByZWFsbHkgc3VyZSB0aGlzIGlzIHdvcnRoIGl0LiBUaGlzIGlzIGFsbCBoaWdo bHkgcGxhdGZvcm0gc3BlY2lmaWMsCmFkZGluZyBhYnN0cmFjdGlvbiBqdXN0IG1lYW5zIGV2ZW4g bW9yZSBob29wcyB0byBqdW1wIHRocm91Z2guIEJ1dCBJCnNwb3R0ZWQgb25lIHRoaW5nIHdoaWxl IHJlYWRpbmcgdGhpcy4gSSBrbm93IHlvdSdyZSB0cnlpbmcgdG8gY29uc29saWRhdGUKdGhlIGNv ZGUgaGVyZSwgYnV0IGl0IGZlZWxzIGEgYml0IHRvbyBtdWNoLiBBdCBsZWFzdCBJIGZlZWwgbGlr ZSB0aGUKaW50ZXJhY3Rpb25zIGJldHdlZW4gZHBsbCBhbmQgb3RoZXIgY29kZSAoaS5lLiBob3cg dGhleSBsaW5rIHRvCmVuY29kZXJzL2NydGMpIGlzIGJlc3QgbGVmdCB0byB0aGF0IGNvZGUuIEFm dGVyIGFsbCBpdCdzIGFsc28gdGhhdCBjb2RlCnRoYXQgZGVjaWRlcyB3aGF0IGtpbmQgb2YgZHBs bCBzZXR0aW5nIGl0IHdhbnRzLCB0aGUgZHBsbCBtZ3IganVzdCBmaWd1cmVzCm91dCB3aGV0aGVy IG9uZSBpcyBzdGlsbCBhdmFpbGFibGUuCi1EYW5pZWwKCgoKPiAtLS0KPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGRpLmMgICAgICB8ICA1MSArKy0tLS0KPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jICB8IDEyNCArLS0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYyAgIHwgICA0ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RwbGxfbWdyLmMgfCAyOTkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5oIHwgICA3ICsKPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgICB8ICAgNCArLQo+ICA2IGZpbGVz IGNoYW5nZWQsIDMzNCBpbnNlcnRpb25zKCspLCAxNTUgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGRpLmMKPiBpbmRleCA0MDc3MjA1Li4xNDRmZTVjIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGRpLmMKPiBAQCAtMzE5LDYgKzMxOSwxOSBAQCBlbnVtIHBvcnQgaW50ZWxf ZGRpX2dldF9lbmNvZGVyX3BvcnQoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gIAl9 Cj4gIH0KPiAgCj4gK3N0cnVjdCBpbnRlbF9lbmNvZGVyICoKPiAraW50ZWxfZGRpX2dldF9wb3J0 X2VuY29kZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBvcnQgcG9y dCkKPiArewo+ICsJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXI7Cj4gKwo+ICsJZm9yX2Vh Y2hfaW50ZWxfZW5jb2RlcigmZGV2X3ByaXYtPmRybSwgZW5jb2Rlcikgewo+ICsJCWlmIChwb3J0 ID09IGludGVsX2RkaV9nZXRfZW5jb2Rlcl9wb3J0KGVuY29kZXIpKQo+ICsJCQlyZXR1cm4gZW5j b2RlcjsKPiArCX0KPiArCj4gKwlyZXR1cm4gTlVMTDsKPiArfQo+ICsKPiAgc3RhdGljIGNvbnN0 IHN0cnVjdCBkZGlfYnVmX3RyYW5zICoKPiAgYmR3X2dldF9idWZfdHJhbnNfZWRwKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50ICpuX2VudHJpZXMpCj4gIHsKPiBAQCAtNTgy LDExICs1OTUsMTIgQEAgdm9pZCBoc3dfZmRpX2xpbmtfdHJhaW4oc3RydWN0IGRybV9jcnRjICpj cnRjKQo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYp Owo+ICAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMp Owo+ICAJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXI7Cj4gLQl1MzIgdGVtcCwgaSwgcnhf Y3RsX3ZhbCwgZGRpX3BsbF9zZWw7Cj4gKwl1MzIgdGVtcCwgaSwgcnhfY3RsX3ZhbDsKPiAgCj4g IAlmb3JfZWFjaF9lbmNvZGVyX29uX2NydGMoZGV2LCBjcnRjLCBlbmNvZGVyKSB7Cj4gIAkJV0FS Tl9PTihlbmNvZGVyLT50eXBlICE9IElOVEVMX09VVFBVVF9BTkFMT0cpOwo+ICAJCWludGVsX3By ZXBhcmVfZHBfZGRpX2J1ZmZlcnMoZW5jb2Rlcik7Cj4gKwkJYnJlYWs7Cj4gIAl9Cj4gIAo+ICAJ LyogU2V0IHRoZSBGRElfUlhfTUlTQyBwd3JkbiBsYW5lcyBhbmQgdGhlIDIgd29ya2Fyb3VuZHMg bGlzdGVkIGF0IHRoZQo+IEBAIC02MTMsOSArNjI3LDcgQEAgdm9pZCBoc3dfZmRpX2xpbmtfdHJh aW4oc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICAJSTkxNV9XUklURShGRElfUlhfQ1RMKFBJUEVf QSksIHJ4X2N0bF92YWwpOwo+ICAKPiAgCS8qIENvbmZpZ3VyZSBQb3J0IENsb2NrIFNlbGVjdCAq Lwo+IC0JZGRpX3BsbF9zZWwgPSBoc3dfcGxsX3RvX2RkaV9wbGxfc2VsKGludGVsX2NydGMtPmNv bmZpZy0+c2hhcmVkX2RwbGwpOwo+IC0JSTkxNV9XUklURShQT1JUX0NMS19TRUwoUE9SVF9FKSwg ZGRpX3BsbF9zZWwpOwo+IC0JV0FSTl9PTihkZGlfcGxsX3NlbCAhPSBQT1JUX0NMS19TRUxfU1BM TCk7Cj4gKwlpbnRlbF9kcGxsX21hcF90b19lbmNvZGVyKGludGVsX2NydGMtPmNvbmZpZy0+c2hh cmVkX2RwbGwsIGVuY29kZXIpOwo+ICAKPiAgCS8qIFN0YXJ0IHRoZSB0cmFpbmluZyBpdGVyYXRp bmcgdGhyb3VnaCBhdmFpbGFibGUgdm9sdGFnZXMgYW5kIGVtcGhhc2lzLAo+ICAJICogdGVzdGlu ZyBlYWNoIHZhbHVlIHR3aWNlLiAqLwo+IEBAIC0xNjA3LDMzICsxNjE5LDYgQEAgdWludDMyX3Qg ZGRpX3NpZ25hbF9sZXZlbHMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAgCXJldHVybiBE RElfQlVGX1RSQU5TX1NFTEVDVChsZXZlbCk7Cj4gIH0KPiAgCj4gLXZvaWQgaW50ZWxfZGRpX2Ns a19zZWxlY3Qoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gLQkJCSAgc3RydWN0IGlu dGVsX3NoYXJlZF9kcGxsICpwbGwpCj4gLXsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+IC0JZW51bSBwb3J0IHBvcnQg PSBpbnRlbF9kZGlfZ2V0X2VuY29kZXJfcG9ydChlbmNvZGVyKTsKPiAtCj4gLQlpZiAoV0FSTl9P TighcGxsKSkKPiAtCQlyZXR1cm47Cj4gLQo+IC0JaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8 IElTX0tBQllMQUtFKGRldl9wcml2KSkgewo+IC0JCXVpbnQzMl90IHZhbDsKPiAtCj4gLQkJLyog RERJIC0+IFBMTCBtYXBwaW5nICAqLwo+IC0JCXZhbCA9IEk5MTVfUkVBRChEUExMX0NUUkwyKTsK PiAtCj4gLQkJdmFsICY9IH4oRFBMTF9DVFJMMl9ERElfQ0xLX09GRihwb3J0KSB8Cj4gLQkJCURQ TExfQ1RSTDJfRERJX0NMS19TRUxfTUFTSyhwb3J0KSk7Cj4gLQkJdmFsIHw9IChEUExMX0NUUkwy X0RESV9DTEtfU0VMKHBsbC0+aWQsIHBvcnQpIHwKPiAtCQkJRFBMTF9DVFJMMl9ERElfU0VMX09W RVJSSURFKHBvcnQpKTsKPiAtCj4gLQkJSTkxNV9XUklURShEUExMX0NUUkwyLCB2YWwpOwo+IC0K PiAtCX0gZWxzZSBpZiAoSU5URUxfSU5GTyhkZXZfcHJpdiktPmdlbiA8IDkpIHsKPiAtCQlJOTE1 X1dSSVRFKFBPUlRfQ0xLX1NFTChwb3J0KSwgaHN3X3BsbF90b19kZGlfcGxsX3NlbChwbGwpKTsK PiAtCX0KPiAtfQo+IC0KPiAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3ByZV9lbmFibGVfZHAoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJCQkgICAgaW50IGxpbmtfcmF0ZSwgdWlu dDMyX3QgbGFuZV9jb3VudCwKPiAgCQkJCSAgICBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBs bCwKPiBAQCAtMTY0OCw3ICsxNjMzLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3ByZV9lbmFi bGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAlpZiAoZW5jb2Rlci0+dHlw ZSA9PSBJTlRFTF9PVVRQVVRfRURQKQo+ICAJCWludGVsX2VkcF9wYW5lbF9vbihpbnRlbF9kcCk7 Cj4gIAo+IC0JaW50ZWxfZGRpX2Nsa19zZWxlY3QoZW5jb2RlciwgcGxsKTsKPiArCWludGVsX2Rw bGxfbWFwX3RvX2VuY29kZXIocGxsLCBlbmNvZGVyKTsKPiAgCWludGVsX3ByZXBhcmVfZHBfZGRp X2J1ZmZlcnMoZW5jb2Rlcik7Cj4gIAlpbnRlbF9kZGlfaW5pdF9kcF9idWZfcmVnKGVuY29kZXIp Owo+ICAJaW50ZWxfZHBfc2lua19kcG1zKGludGVsX2RwLCBEUk1fTU9ERV9EUE1TX09OKTsKPiBA QCAtMTY2OSw3ICsxNjU0LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3ByZV9lbmFibGVfaGRt aShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCWludCBsZXZlbCA9IGludGVsX2Rk aV9oZG1pX2xldmVsKGRldl9wcml2LCBwb3J0KTsKPiAgCj4gIAlpbnRlbF9kcF9kdWFsX21vZGVf c2V0X3RtZHNfb3V0cHV0KGludGVsX2hkbWksIHRydWUpOwo+IC0JaW50ZWxfZGRpX2Nsa19zZWxl Y3QoZW5jb2RlciwgcGxsKTsKPiArCWludGVsX2RwbGxfbWFwX3RvX2VuY29kZXIocGxsLCBlbmNv ZGVyKTsKPiAgCWludGVsX3ByZXBhcmVfaGRtaV9kZGlfYnVmZmVycyhlbmNvZGVyKTsKPiAgCWlm IChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJpdikpCj4gIAkJc2ts X2RkaV9zZXRfaWJvb3N0KGVuY29kZXIsIGxldmVsKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jCj4gaW5kZXggOGVjYWYxOC4uMjJlM2M0NiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAtNDU1NSwxOSArNDU1NSw3IEBAIHN0YXRpYyB2b2lkIGly b25sYWtlX3BjaF9lbmFibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICAKPiAgCS8qIFdlIG5l ZWQgdG8gcHJvZ3JhbSB0aGUgcmlnaHQgY2xvY2sgc2VsZWN0aW9uIGJlZm9yZSB3cml0aW5nIHRo ZSBwaXhlbAo+ICAJICogbXV0bGlwbGllciBpbnRvIHRoZSBEUExMLiAqLwo+IC0JaWYgKEhBU19Q Q0hfQ1BUKGRldikpIHsKPiAtCQl1MzIgc2VsOwo+IC0KPiAtCQl0ZW1wID0gSTkxNV9SRUFEKFBD SF9EUExMX1NFTCk7Cj4gLQkJdGVtcCB8PSBUUkFOU19EUExMX0VOQUJMRShwaXBlKTsKPiAtCQlz ZWwgPSBUUkFOU19EUExMQl9TRUwocGlwZSk7Cj4gLQkJaWYgKGludGVsX2NydGMtPmNvbmZpZy0+ c2hhcmVkX2RwbGwgPT0KPiAtCQkgICAgaW50ZWxfZ2V0X3NoYXJlZF9kcGxsX2J5X2lkKGRldl9w cml2LCBEUExMX0lEX1BDSF9QTExfQikpCj4gLQkJCXRlbXAgfD0gc2VsOwo+IC0JCWVsc2UKPiAt CQkJdGVtcCAmPSB+c2VsOwo+IC0JCUk5MTVfV1JJVEUoUENIX0RQTExfU0VMLCB0ZW1wKTsKPiAt CX0KPiArCWludGVsX2RwbGxfbWFwX3RvX2NydGMoaW50ZWxfY3J0Yy0+Y29uZmlnLT5zaGFyZWRf ZHBsbCwgaW50ZWxfY3J0Yyk7Cj4gIAo+ICAJLyogWFhYOiBwY2ggcGxsJ3MgY2FuIGJlIGVuYWJs ZWQgYW55IHRpbWUgYmVmb3JlIHdlIGVuYWJsZSB0aGUgUENICj4gIAkgKiB0cmFuc2NvZGVyLCBh bmQgd2UgYWN0dWFsbHkgc2hvdWxkIGRvIHRoaXMgdG8gbm90IHVwc2V0IGFueSBQQ0gKPiBAQCAt NTU3NCw5ICs1NTYyLDcgQEAgc3RhdGljIHZvaWQgaXJvbmxha2VfY3J0Y19kaXNhYmxlKHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKPiAgCQkJSTkxNV9XUklURShyZWcs IHRlbXApOwo+ICAKPiAgCQkJLyogZGlzYWJsZSBEUExMX1NFTCAqLwo+IC0JCQl0ZW1wID0gSTkx NV9SRUFEKFBDSF9EUExMX1NFTCk7Cj4gLQkJCXRlbXAgJj0gfihUUkFOU19EUExMX0VOQUJMRShw aXBlKSB8IFRSQU5TX0RQTExCX1NFTChwaXBlKSk7Cj4gLQkJCUk5MTVfV1JJVEUoUENIX0RQTExf U0VMLCB0ZW1wKTsKPiArCQkJaW50ZWxfZHBsbF9tYXBfdG9fY3J0YyhOVUxMLCBpbnRlbF9jcnRj KTsKPiAgCQl9Cj4gIAo+ICAJCWlyb25sYWtlX2ZkaV9wbGxfZGlzYWJsZShpbnRlbF9jcnRjKTsK PiBAQCAtOTk1Miw3ICs5OTM4LDYgQEAgc3RhdGljIGJvb2wgaXJvbmxha2VfZ2V0X3BpcGVfY29u ZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICAKPiAgCWlmIChJOTE1X1JFQUQoUENIX1RS QU5TQ09ORihjcnRjLT5waXBlKSkgJiBUUkFOU19FTkFCTEUpIHsKPiAgCQlzdHJ1Y3QgaW50ZWxf c2hhcmVkX2RwbGwgKnBsbDsKPiAtCQllbnVtIGludGVsX2RwbGxfaWQgcGxsX2lkOwo+ICAKPiAg CQlwaXBlX2NvbmZpZy0+aGFzX3BjaF9lbmNvZGVyID0gdHJ1ZTsKPiAgCj4gQEAgLTk5NjIsMjMg Kzk5NDcsNyBAQCBzdGF0aWMgYm9vbCBpcm9ubGFrZV9nZXRfcGlwZV9jb25maWcoc3RydWN0IGlu dGVsX2NydGMgKmNydGMsCj4gIAo+ICAJCWlyb25sYWtlX2dldF9mZGlfbV9uX2NvbmZpZyhjcnRj LCBwaXBlX2NvbmZpZyk7Cj4gIAo+IC0JCWlmIChIQVNfUENIX0lCWChkZXZfcHJpdikpIHsKPiAt CQkJLyoKPiAtCQkJICogVGhlIHBpcGUtPnBjaCB0cmFuc2NvZGVyIGFuZCBwY2ggdHJhbnNjb2Rl ci0+cGxsCj4gLQkJCSAqIG1hcHBpbmcgaXMgZml4ZWQuCj4gLQkJCSAqLwo+IC0JCQlwbGxfaWQg PSAoZW51bSBpbnRlbF9kcGxsX2lkKSBjcnRjLT5waXBlOwo+IC0JCX0gZWxzZSB7Cj4gLQkJCXRt cCA9IEk5MTVfUkVBRChQQ0hfRFBMTF9TRUwpOwo+IC0JCQlpZiAodG1wICYgVFJBTlNfRFBMTEJf U0VMKGNydGMtPnBpcGUpKQo+IC0JCQkJcGxsX2lkID0gRFBMTF9JRF9QQ0hfUExMX0I7Cj4gLQkJ CWVsc2UKPiAtCQkJCXBsbF9pZD0gRFBMTF9JRF9QQ0hfUExMX0E7Cj4gLQkJfQo+IC0KPiAtCQlw aXBlX2NvbmZpZy0+c2hhcmVkX2RwbGwgPQo+IC0JCQlpbnRlbF9nZXRfc2hhcmVkX2RwbGxfYnlf aWQoZGV2X3ByaXYsIHBsbF9pZCk7Cj4gLQkJcGxsID0gcGlwZV9jb25maWctPnNoYXJlZF9kcGxs Owo+ICsJCXBpcGVfY29uZmlnLT5zaGFyZWRfZHBsbCA9IHBsbCA9IGludGVsX2dldF9jcnRjX2Rw bGwoY3J0Yyk7Cj4gIAo+ICAJCVdBUk5fT04oIXBsbC0+ZnVuY3MuZ2V0X2h3X3N0YXRlKGRldl9w cml2LCBwbGwsCj4gIAkJCQkJCSAmcGlwZV9jb25maWctPmRwbGxfaHdfc3RhdGUpKTsKPiBAQCAt MTA0NTgsODIgKzEwNDI3LDYgQEAgc3RhdGljIGludCBoYXN3ZWxsX2NydGNfY29tcHV0ZV9jbG9j ayhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+IC1zdGF0 aWMgdm9pZCBieHRfZ2V0X2RkaV9wbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+IC0JCQkJZW51bSBwb3J0IHBvcnQsCj4gLQkJCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq cGlwZV9jb25maWcpCj4gLXsKPiAtCWVudW0gaW50ZWxfZHBsbF9pZCBpZDsKPiAtCj4gLQlzd2l0 Y2ggKHBvcnQpIHsKPiAtCWNhc2UgUE9SVF9BOgo+IC0JCWlkID0gRFBMTF9JRF9TS0xfRFBMTDA7 Cj4gLQkJYnJlYWs7Cj4gLQljYXNlIFBPUlRfQjoKPiAtCQlpZCA9IERQTExfSURfU0tMX0RQTEwx Owo+IC0JCWJyZWFrOwo+IC0JY2FzZSBQT1JUX0M6Cj4gLQkJaWQgPSBEUExMX0lEX1NLTF9EUExM MjsKPiAtCQlicmVhazsKPiAtCWRlZmF1bHQ6Cj4gLQkJRFJNX0VSUk9SKCJJbmNvcnJlY3QgcG9y dCB0eXBlXG4iKTsKPiAtCQlyZXR1cm47Cj4gLQl9Cj4gLQo+IC0JcGlwZV9jb25maWctPnNoYXJl ZF9kcGxsID0gaW50ZWxfZ2V0X3NoYXJlZF9kcGxsX2J5X2lkKGRldl9wcml2LCBpZCk7Cj4gLX0K PiAtCj4gLXN0YXRpYyB2b2lkIHNreWxha2VfZ2V0X2RkaV9wbGwoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAo+IC0JCQkJZW51bSBwb3J0IHBvcnQsCj4gLQkJCQlzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCj4gLXsKPiAtCWVudW0gaW50ZWxfZHBsbF9pZCBp ZDsKPiAtCXUzMiB0ZW1wOwo+IC0KPiAtCXRlbXAgPSBJOTE1X1JFQUQoRFBMTF9DVFJMMikgJiBE UExMX0NUUkwyX0RESV9DTEtfU0VMX01BU0socG9ydCk7Cj4gLQlpZCA9IHRlbXAgPj4gKHBvcnQg KiAzICsgMSk7Cj4gLQo+IC0JaWYgKFdBUk5fT04oaWQgPCBTS0xfRFBMTDAgfHwgaWQgPiBTS0xf RFBMTDMpKQo+IC0JCXJldHVybjsKPiAtCj4gLQlwaXBlX2NvbmZpZy0+c2hhcmVkX2RwbGwgPSBp bnRlbF9nZXRfc2hhcmVkX2RwbGxfYnlfaWQoZGV2X3ByaXYsIGlkKTsKPiAtfQo+IC0KPiAtc3Rh dGljIHZvaWQgaGFzd2VsbF9nZXRfZGRpX3BsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCj4gLQkJCQllbnVtIHBvcnQgcG9ydCwKPiAtCQkJCXN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpwaXBlX2NvbmZpZykKPiAtewo+IC0JZW51bSBpbnRlbF9kcGxsX2lkIGlkOwo+IC0JdWlu dDMyX3QgZGRpX3BsbF9zZWwgPSBJOTE1X1JFQUQoUE9SVF9DTEtfU0VMKHBvcnQpKTsKPiAtCj4g LQlzd2l0Y2ggKGRkaV9wbGxfc2VsKSB7Cj4gLQljYXNlIFBPUlRfQ0xLX1NFTF9XUlBMTDE6Cj4g LQkJaWQgPSBEUExMX0lEX1dSUExMMTsKPiAtCQlicmVhazsKPiAtCWNhc2UgUE9SVF9DTEtfU0VM X1dSUExMMjoKPiAtCQlpZCA9IERQTExfSURfV1JQTEwyOwo+IC0JCWJyZWFrOwo+IC0JY2FzZSBQ T1JUX0NMS19TRUxfU1BMTDoKPiAtCQlpZCA9IERQTExfSURfU1BMTDsKPiAtCQlicmVhazsKPiAt CWNhc2UgUE9SVF9DTEtfU0VMX0xDUExMXzgxMDoKPiAtCQlpZCA9IERQTExfSURfTENQTExfODEw Owo+IC0JCWJyZWFrOwo+IC0JY2FzZSBQT1JUX0NMS19TRUxfTENQTExfMTM1MDoKPiAtCQlpZCA9 IERQTExfSURfTENQTExfMTM1MDsKPiAtCQlicmVhazsKPiAtCWNhc2UgUE9SVF9DTEtfU0VMX0xD UExMXzI3MDA6Cj4gLQkJaWQgPSBEUExMX0lEX0xDUExMXzI3MDA7Cj4gLQkJYnJlYWs7Cj4gLQlk ZWZhdWx0Ogo+IC0JCU1JU1NJTkdfQ0FTRShkZGlfcGxsX3NlbCk7Cj4gLQkJLyogZmFsbCB0aHJv dWdoICovCj4gLQljYXNlIFBPUlRfQ0xLX1NFTF9OT05FOgo+IC0JCXJldHVybjsKPiAtCX0KPiAt Cj4gLQlwaXBlX2NvbmZpZy0+c2hhcmVkX2RwbGwgPSBpbnRlbF9nZXRfc2hhcmVkX2RwbGxfYnlf aWQoZGV2X3ByaXYsIGlkKTsKPiAtfQo+IC0KPiAgc3RhdGljIGJvb2wgaHN3X2dldF90cmFuc2Nv ZGVyX3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICAJCQkJICAgICBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCj4gIAkJCQkgICAgIHVuc2lnbmVkIGxvbmcgKnBv d2VyX2RvbWFpbl9tYXNrKQo+IEBAIC0xMDYzOCw2ICsxMDUzMSw3IEBAIHN0YXRpYyB2b2lkIGhh c3dlbGxfZ2V0X2RkaV9wb3J0X3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICB7Cj4g IAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7Cj4gIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gKwlzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlcjsKPiAgCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsOwo+ICAJ ZW51bSBwb3J0IHBvcnQ7Cj4gIAl1aW50MzJfdCB0bXA7Cj4gQEAgLTEwNjQ2LDE0ICsxMDU0MCw4 IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfZ2V0X2RkaV9wb3J0X3N0YXRlKHN0cnVjdCBpbnRlbF9j cnRjICpjcnRjLAo+ICAKPiAgCXBvcnQgPSAodG1wICYgVFJBTlNfRERJX1BPUlRfTUFTSykgPj4g VFJBTlNfRERJX1BPUlRfU0hJRlQ7Cj4gIAo+IC0JaWYgKElTX1NLWUxBS0UoZGV2KSB8fCBJU19L QUJZTEFLRShkZXYpKQo+IC0JCXNreWxha2VfZ2V0X2RkaV9wbGwoZGV2X3ByaXYsIHBvcnQsIHBp cGVfY29uZmlnKTsKPiAtCWVsc2UgaWYgKElTX0JST1hUT04oZGV2KSkKPiAtCQlieHRfZ2V0X2Rk aV9wbGwoZGV2X3ByaXYsIHBvcnQsIHBpcGVfY29uZmlnKTsKPiAtCWVsc2UKPiAtCQloYXN3ZWxs X2dldF9kZGlfcGxsKGRldl9wcml2LCBwb3J0LCBwaXBlX2NvbmZpZyk7Cj4gLQo+IC0JcGxsID0g cGlwZV9jb25maWctPnNoYXJlZF9kcGxsOwo+ICsJZW5jb2RlciA9ICBpbnRlbF9kZGlfZ2V0X3Bv cnRfZW5jb2RlcihkZXZfcHJpdiwgcG9ydCk7Cj4gKwlwaXBlX2NvbmZpZy0+c2hhcmVkX2RwbGwg PSBwbGwgPSBpbnRlbF9nZXRfZW5jb2Rlcl9kcGxsKGVuY29kZXIpOwo+ICAJaWYgKHBsbCkgewo+ ICAJCVdBUk5fT04oIXBsbC0+ZnVuY3MuZ2V0X2h3X3N0YXRlKGRldl9wcml2LCBwbGwsCj4gIAkJ CQkJCSAmcGlwZV9jb25maWctPmRwbGxfaHdfc3RhdGUpKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcF9tc3QuYwo+IGluZGV4IDNmZmJkNjkuLmNiMDk3ZmIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcF9tc3QuYwo+IEBAIC0xNTAsOCArMTUwLDggQEAgc3RhdGljIHZvaWQgaW50ZWxf bXN0X3ByZV9lbmFibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAlEUk1f REVCVUdfS01TKCIlZFxuIiwgaW50ZWxfZHAtPmFjdGl2ZV9tc3RfbGlua3MpOwo+ICAKPiAgCWlm IChpbnRlbF9kcC0+YWN0aXZlX21zdF9saW5rcyA9PSAwKSB7Cj4gLQkJaW50ZWxfZGRpX2Nsa19z ZWxlY3QoJmludGVsX2RpZ19wb3J0LT5iYXNlLAo+IC0JCQkJICAgICBwaXBlX2NvbmZpZy0+c2hh cmVkX2RwbGwpOwo+ICsJCWludGVsX2RwbGxfbWFwX3RvX2VuY29kZXIocGlwZV9jb25maWctPnNo YXJlZF9kcGxsLAo+ICsJCQkJCSAgJmludGVsX2RpZ19wb3J0LT5iYXNlKTsKPiAgCj4gIAkJaW50 ZWxfcHJlcGFyZV9kcF9kZGlfYnVmZmVycygmaW50ZWxfZGlnX3BvcnQtPmJhc2UpOwo+ICAJCWlu dGVsX2RwX3NldF9saW5rX3BhcmFtcyhpbnRlbF9kcCwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RwbGxfbWdyLmMKPiBpbmRleCA5YjAyZDljLi41MzIyMzZkIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcGxsX21nci5jCj4gQEAgLTQwLDYgKzQwLDEyIEBACj4gICAqIENoYW5nZXMg dG8gdGhlIHVzZXJzIGFyZSBmaXJzdCBzdGFnZWQgaW4gdGhlIGF0b21pYyBzdGF0ZSwgYW5kIHRo ZW4gbWFkZQo+ICAgKiBlZmZlY3RpdmUgYnkgY2FsbGluZyBpbnRlbF9zaGFyZWRfZHBsbF9zd2Fw X3N0YXRlKCkgZHVyaW5nIHRoZSBhdG9taWMKPiAgICogY29tbWl0IHBoYXNlLgo+ICsgKgo+ICsg KiBUaGUgZnVuY3Rpb25zIGludGVsX2RwbGxfbWFwX3RvX2NydGMoKSwgaW50ZWxfZHBsbF9tYXBf dG9fZW5jb2RlcigpLAo+ICsgKiBpbnRlbF9nZXRfY3J0Y19kcGxsKCkgYW5kIGludGVsX2dldF9l bmNvZGVyX2RwbGwoKSBhbGxvd3MgdGhlIG1hcHBpbmcgb2YKPiArICogZHBsbHMgdG8gY3J0Y3Mg YW5kIGVuY29kZXJzIHRvIGJlIHF1ZXJpZWQgYW5kIGNoYW5nZWQuIFdoZXRoZXIgcGxscyBtYXAK PiArICogdG8gZW5jb2RlcnMgb3IgY3J0Y3MgZGVwZW5kcyBvbiB0aGUgcGxhdGZvcm0uIFRoZSBj YWxsZXIgbmVlZHMgdG8ga25vdwo+ICsgKiB3aGljaCBvZiB0aGUgZnVuY3Rpb25zIHRvIHVzZS4K PiAgICovCj4gIAo+ICBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKgo+IEBAIC00NDcsNiArNDUz LDU0IEBAIGlieF9nZXRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yywgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAlyZXR1cm4gcGxsOwo+ICB9Cj4gIAo+ICtzdGF0 aWMgc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICoKPiAraWJ4X2dldF9jcnRjX2RwbGwoc3RydWN0 IGludGVsX2NydGMgKmNydGMpCj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+ICsJZW51bSBpbnRlbF9kcGxsX2lkIHBs bF9pZDsKPiArCXUzMiB0bXA7Cj4gKwo+ICsJaWYgKEhBU19QQ0hfSUJYKGRldl9wcml2KSkgewo+ ICsJCS8qCj4gKwkJICogVGhlIHBpcGUtPnBjaCB0cmFuc2NvZGVyIGFuZCBwY2ggdHJhbnNjb2Rl ci0+cGxsCj4gKwkJICogbWFwcGluZyBpcyBmaXhlZC4KPiArCQkgKi8KPiArCQlwbGxfaWQgPSAo ZW51bSBpbnRlbF9kcGxsX2lkKSBjcnRjLT5waXBlOwo+ICsJfSBlbHNlIHsKPiArCQl0bXAgPSBJ OTE1X1JFQUQoUENIX0RQTExfU0VMKTsKPiArCQlpZiAodG1wICYgVFJBTlNfRFBMTEJfU0VMKGNy dGMtPnBpcGUpKQo+ICsJCQlwbGxfaWQgPSBEUExMX0lEX1BDSF9QTExfQjsKPiArCQllbHNlCj4g KwkJCXBsbF9pZD0gRFBMTF9JRF9QQ0hfUExMX0E7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIGludGVs X2dldF9zaGFyZWRfZHBsbF9ieV9pZChkZXZfcHJpdiwgcGxsX2lkKTsKPiArfQo+ICsKPiArc3Rh dGljIHZvaWQKPiAraWJ4X2RwbGxfbWFwX3RvX2NydGMoc3RydWN0IGludGVsX3NoYXJlZF9kcGxs ICpkcGxsLCBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiArewo+ICsJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7Cj4gKwllbnVtIHBp cGUgcGlwZSA9IGNydGMtPnBpcGU7Cj4gKwl1MzIgdGVtcCwgc2VsOwo+ICsKPiArCWlmICghSEFT X1BDSF9DUFQoZGV2X3ByaXYpKQo+ICsJCXJldHVybjsKPiArCj4gKwl0ZW1wID0gSTkxNV9SRUFE KFBDSF9EUExMX1NFTCk7Cj4gKwlpZiAoZHBsbCkgewo+ICsJCXRlbXAgfD0gVFJBTlNfRFBMTF9F TkFCTEUocGlwZSk7Cj4gKwkJc2VsID0gVFJBTlNfRFBMTEJfU0VMKHBpcGUpOwo+ICsJCWlmIChk cGxsLT5pZCA9PSAgRFBMTF9JRF9QQ0hfUExMX0IpCj4gKwkJCXRlbXAgfD0gc2VsOwo+ICsJCWVs c2UKPiArCQkJdGVtcCAmPSB+c2VsOwo+ICsJfSBlbHNlIHsKPiArCQl0ZW1wICY9IH4oVFJBTlNf RFBMTF9FTkFCTEUocGlwZSkgfCBUUkFOU19EUExMQl9TRUwocGlwZSkpOwo+ICsJfQo+ICsJSTkx NV9XUklURShQQ0hfRFBMTF9TRUwsIHRlbXApOwo+ICt9Cj4gKwo+ICBzdGF0aWMgdm9pZCBpYnhf ZHVtcF9od19zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJCSAg ICAgIHN0cnVjdCBpbnRlbF9kcGxsX2h3X3N0YXRlICpod19zdGF0ZSkKPiAgewo+IEBAIC04NDQs NiArODk4LDczIEBAIGhzd19nZXRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yywgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAlyZXR1cm4gcGxsOwo+ICB9Cj4gIAo+ ICtzdGF0aWMgZW51bSBpbnRlbF9kcGxsX2lkIGhzd19yZWdfdG9fcGxsX2lkKHVpbnQzMl90IGRk aV9wbGxfc2VsKQo+ICt7Cj4gKwlzd2l0Y2ggKGRkaV9wbGxfc2VsKSB7Cj4gKwljYXNlIFBPUlRf Q0xLX1NFTF9XUlBMTDE6Cj4gKwkJcmV0dXJuIERQTExfSURfV1JQTEwxOwo+ICsJY2FzZSBQT1JU X0NMS19TRUxfV1JQTEwyOgo+ICsJCXJldHVybiBEUExMX0lEX1dSUExMMjsKPiArCWNhc2UgUE9S VF9DTEtfU0VMX1NQTEw6Cj4gKwkJcmV0dXJuIERQTExfSURfU1BMTDsKPiArCWNhc2UgUE9SVF9D TEtfU0VMX0xDUExMXzgxMDoKPiArCQlyZXR1cm4gRFBMTF9JRF9MQ1BMTF84MTA7Cj4gKwljYXNl IFBPUlRfQ0xLX1NFTF9MQ1BMTF8xMzUwOgo+ICsJCXJldHVybiBEUExMX0lEX0xDUExMXzEzNTA7 Cj4gKwljYXNlIFBPUlRfQ0xLX1NFTF9MQ1BMTF8yNzAwOgo+ICsJCXJldHVybiBEUExMX0lEX0xD UExMXzI3MDA7Cj4gKwlkZWZhdWx0Ogo+ICsJCU1JU1NJTkdfQ0FTRShkZGlfcGxsX3NlbCk7Cj4g KwkJLyogZmFsbCB0aHJvdWdoICovCj4gKwljYXNlIFBPUlRfQ0xLX1NFTF9OT05FOgo+ICsJCXJl dHVybiBEUExMX0lEX1BSSVZBVEU7Cj4gKwl9Cj4gK30KPiArCj4gK3N0YXRpYyB1aW50MzJfdCBo c3dfcGxsX2lkX3RvX3JlZyhlbnVtIGludGVsX2RwbGxfaWQgaWQpCj4gK3sKPiArCXN3aXRjaCAo aWQpIHsKPiArCWNhc2UgRFBMTF9JRF9XUlBMTDE6Cj4gKwkJcmV0dXJuIFBPUlRfQ0xLX1NFTF9X UlBMTDE7Cj4gKwljYXNlIERQTExfSURfV1JQTEwyOgo+ICsJCXJldHVybiBQT1JUX0NMS19TRUxf V1JQTEwyOwo+ICsJY2FzZSBEUExMX0lEX1NQTEw6Cj4gKwkJcmV0dXJuIFBPUlRfQ0xLX1NFTF9T UExMOwo+ICsJY2FzZSBEUExMX0lEX0xDUExMXzgxMDoKPiArCQlyZXR1cm4gUE9SVF9DTEtfU0VM X0xDUExMXzgxMDsKPiArCWNhc2UgRFBMTF9JRF9MQ1BMTF8xMzUwOgo+ICsJCXJldHVybiBQT1JU X0NMS19TRUxfTENQTExfMTM1MDsKPiArCWNhc2UgRFBMTF9JRF9MQ1BMTF8yNzAwOgo+ICsJCXJl dHVybiBQT1JUX0NMS19TRUxfTENQTExfMjcwMDsKPiArCWRlZmF1bHQ6Cj4gKwkJTUlTU0lOR19D QVNFKGlkKTsKPiArCQkvKiBmYWxsIHRocm91Z2ggKi8KPiArCWNhc2UgRFBMTF9JRF9QUklWQVRF Ogo+ICsJCXJldHVybiBQT1JUX0NMS19TRUxfTk9ORTsKPiArCX0KPiArfQo+ICsKPiArc3RhdGlj IHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqCj4gK2hzd19nZXRfZW5jb2Rlcl9kcGxsKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiArCWVudW0gcG9ydCBw b3J0ID0gaW50ZWxfZGRpX2dldF9lbmNvZGVyX3BvcnQoZW5jb2Rlcik7Cj4gKwl1aW50MzJfdCBk ZGlfcGxsX3NlbCA9IEk5MTVfUkVBRChQT1JUX0NMS19TRUwocG9ydCkpOwo+ICsKPiArCXJldHVy biBpbnRlbF9nZXRfc2hhcmVkX2RwbGxfYnlfaWQoZGV2X3ByaXYsCj4gKwkJCQkJICAgaHN3X3Jl Z190b19wbGxfaWQoZGRpX3BsbF9zZWwpKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQKPiAraHN3 X2RwbGxfbWFwX3RvX2VuY29kZXIoc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpkcGxsLAo+ICsJ CQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiArewo+ICsJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gKwllbnVt IHBvcnQgcG9ydCA9IGludGVsX2RkaV9nZXRfZW5jb2Rlcl9wb3J0KGVuY29kZXIpOwo+ICsKPiAr CUk5MTVfV1JJVEUoUE9SVF9DTEtfU0VMKHBvcnQpLCBoc3dfcGxsX2lkX3RvX3JlZyhkcGxsLT5p ZCkpOwo+ICt9Cj4gKwo+ICBzdGF0aWMgdm9pZCBoc3dfZHVtcF9od19zdGF0ZShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJCSAgICAgIHN0cnVjdCBpbnRlbF9kcGxsX2h3 X3N0YXRlICpod19zdGF0ZSkKPiAgewo+IEBAIC0xNDA2LDYgKzE1MjcsNDEgQEAgc2tsX2dldF9k cGxsKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSwKPiAgCXJldHVybiBwbGw7Cj4gIH0KPiAgCj4gK3N0YXRpYyBzdHJ1Y3QgaW50ZWxf c2hhcmVkX2RwbGwgKgo+ICtza2xfZ2V0X2VuY29kZXJfZHBsbChzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlcikKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gKwllbnVtIHBvcnQgcG9ydCA9IGludGVsX2Rk aV9nZXRfZW5jb2Rlcl9wb3J0KGVuY29kZXIpOwo+ICsJZW51bSBpbnRlbF9kcGxsX2lkIGlkOwo+ ICsJdTMyIHRlbXA7Cj4gKwo+ICsJdGVtcCA9IEk5MTVfUkVBRChEUExMX0NUUkwyKSAmIERQTExf Q1RSTDJfRERJX0NMS19TRUxfTUFTSyhwb3J0KTsKPiArCWlkID0gdGVtcCA+PiAocG9ydCAqIDMg KyAxKTsKPiArCj4gKwlpZiAoV0FSTl9PTihpZCA8IFNLTF9EUExMMCB8fCBpZCA+IFNLTF9EUExM MykpCj4gKwkJcmV0dXJuIE5VTEw7Cj4gKwo+ICsJcmV0dXJuIGludGVsX2dldF9zaGFyZWRfZHBs bF9ieV9pZChkZXZfcHJpdiwgaWQpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZAo+ICtza2xfZHBs bF9tYXBfdG9fZW5jb2RlcihzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKmRwbGwsCj4gKwkJCXN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiArCWVudW0gcG9y dCBwb3J0ID0gaW50ZWxfZGRpX2dldF9lbmNvZGVyX3BvcnQoZW5jb2Rlcik7Cj4gKwl1aW50MzJf dCB2YWw7Cj4gKwo+ICsJdmFsID0gSTkxNV9SRUFEKERQTExfQ1RSTDIpOwo+ICsKPiArCXZhbCAm PSB+KERQTExfQ1RSTDJfRERJX0NMS19PRkYocG9ydCkgfAo+ICsJCURQTExfQ1RSTDJfRERJX0NM S19TRUxfTUFTSyhwb3J0KSk7Cj4gKwl2YWwgfD0gKERQTExfQ1RSTDJfRERJX0NMS19TRUwoZHBs bC0+aWQsIHBvcnQpIHwKPiArCQlEUExMX0NUUkwyX0RESV9TRUxfT1ZFUlJJREUocG9ydCkpOwo+ ICsKPiArCUk5MTVfV1JJVEUoRFBMTF9DVFJMMiwgdmFsKTsKPiArfQo+ICsKPiAgc3RhdGljIHZv aWQgc2tsX2R1bXBfaHdfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ ICAJCQkgICAgICBzdHJ1Y3QgaW50ZWxfZHBsbF9od19zdGF0ZSAqaHdfc3RhdGUpCj4gIHsKPiBA QCAtMTgxMiw2ICsxOTY4LDM4IEBAIGJ4dF9nZXRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YywKPiAgCj4gIAlyZXR1cm4gcGxsOwo+ICB9Cj4gK3N0YXRpYyBzdHJ1Y3QgaW50ZWxfc2hhcmVk X2RwbGwgKgo+ICtieHRfZ2V0X2VuY29kZXJfZHBsbChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlcikKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShlbmNvZGVyLT5iYXNlLmRldik7Cj4gKwllbnVtIHBvcnQgcG9ydCA9IGludGVsX2RkaV9nZXRf ZW5jb2Rlcl9wb3J0KGVuY29kZXIpOwo+ICsJZW51bSBpbnRlbF9kcGxsX2lkIGlkOwo+ICsKPiAr CXN3aXRjaCAocG9ydCkgewo+ICsJY2FzZSBQT1JUX0E6Cj4gKwkJaWQgPSBEUExMX0lEX1NLTF9E UExMMDsKPiArCQlicmVhazsKPiArCWNhc2UgUE9SVF9COgo+ICsJCWlkID0gRFBMTF9JRF9TS0xf RFBMTDE7Cj4gKwkJYnJlYWs7Cj4gKwljYXNlIFBPUlRfQzoKPiArCQlpZCA9IERQTExfSURfU0tM X0RQTEwyOwo+ICsJCWJyZWFrOwo+ICsJZGVmYXVsdDoKPiArCQlEUk1fRVJST1IoIkluY29ycmVj dCBwb3J0IHR5cGVcbiIpOwo+ICsJCXJldHVybiBOVUxMOwo+ICsJfQo+ICsKPiArCXJldHVybiBp bnRlbF9nZXRfc2hhcmVkX2RwbGxfYnlfaWQoZGV2X3ByaXYsIGlkKTsKPiArfQo+ICsKPiArc3Rh dGljIHZvaWQKPiArYnh0X2RwbGxfbWFwX3RvX2VuY29kZXIoc3RydWN0IGludGVsX3NoYXJlZF9k cGxsICpkcGxsLAo+ICsJCQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiArewo+ICsJ LyogRml4ZWQgbWFwcGluZywgbm90aGluZyB0byBkbyAqLwo+ICt9Cj4gKwo+ICAKPiAgc3RhdGlj IHZvaWQgYnh0X2R1bXBfaHdfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+ICAJCQkgICAgICBzdHJ1Y3QgaW50ZWxfZHBsbF9od19zdGF0ZSAqaHdfc3RhdGUpCj4gQEAg LTE4NTksNiArMjA0NywzMyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfcGxsX2luaXQoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKPiAgCX0KPiAgfQo+ICAKPiArc3RhdGljIHZvaWQKPiArbm9vcF9k cGxsX21hcF90b19jcnRjKHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqZHBsbCwgc3RydWN0IGlu dGVsX2NydGMgKmNydGMpCj4gK3sKPiArCVdBUk4oMSwgIlBsYXRmb3JtIGRvZXMgbm90IHN1cHBv cnQgbWFwcGluZyBEUExMcyB0byBDUlRDcy4iKTsKPiArfQo+ICsKPiArc3RhdGljIHN0cnVjdCBp bnRlbF9zaGFyZWRfZHBsbCAqCj4gK25vb3BfZ2V0X2NydGNfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YykKPiArewo+ICsJV0FSTigxLCAiUGxhdGZvcm0gZG9lcyBub3Qgc3VwcG9ydCBtYXBw aW5nIERQTExzIHRvIENSVENzLiIpOwo+ICsJcmV0dXJuIE5VTEw7Cj4gK30KPiArCj4gK3N0YXRp YyB2b2lkCj4gK25vb3BfZHBsbF9tYXBfdG9fZW5jb2RlcihzdHJ1Y3QgaW50ZWxfc2hhcmVkX2Rw bGwgKmRwbGwsIHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICt7Cj4gKwlXQVJOKDEs ICJQbGF0Zm9ybSBkb2VzIG5vdCBzdXBwb3J0IG1hcHBpbmcgRFBMTHMgdG8gZW5jb2RlcnMuIik7 Cj4gK30KPiArCj4gK3N0YXRpYyBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKgo+ICtub29wX2dl dF9lbmNvZGVyX2RwbGwoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gK3sKPiArCVdB Uk4oMSwgIlBsYXRmb3JtIGRvZXMgbm90IHN1cHBvcnQgbWFwcGluZyBEUExMcyB0byBlbmNvZGVy cy4iKTsKPiArCXJldHVybiBOVUxMOwo+ICt9Cj4gKwo+ICsKPiAgc3RydWN0IGRwbGxfaW5mbyB7 Cj4gIAljb25zdCBjaGFyICpuYW1lOwo+ICAJY29uc3QgaW50IGlkOwo+IEBAIC0xODczLDYgKzIw ODgsMTQgQEAgc3RydWN0IGludGVsX2RwbGxfbWdyIHsKPiAgCQkJCQkgICAgICBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCQkJCQkgICAgICBzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2Rlcik7Cj4gIAo+ICsJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICooKmdldF9j cnRjX2RwbGwpKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKTsKPiArCXN0cnVjdCBpbnRlbF9zaGFy ZWRfZHBsbCAqKCpnZXRfZW5jb2Rlcl9kcGxsKShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl cik7Cj4gKwo+ICsJdm9pZCAoKm1hcF90b19jcnRjKShzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwg KmRwbGwsCj4gKwkJCSAgICBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yyk7Cj4gKwl2b2lkICgqbWFw X3RvX2VuY29kZXIpKHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqZHBsbCwKPiArCQkJICAgICAg IHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKTsKPiArCj4gIAl2b2lkICgqZHVtcF9od19z dGF0ZSkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCQkgICAgICBzdHJ1 Y3QgaW50ZWxfZHBsbF9od19zdGF0ZSAqaHdfc3RhdGUpOwo+ICB9Owo+IEBAIC0xODg2LDYgKzIx MDksMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcGxsX2luZm8gcGNoX3BsbHNbXSA9IHsKPiAg c3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kcGxsX21nciBwY2hfcGxsX21nciA9IHsKPiAgCS5k cGxsX2luZm8gPSBwY2hfcGxscywKPiAgCS5nZXRfZHBsbCA9IGlieF9nZXRfZHBsbCwKPiArCS5n ZXRfY3J0Y19kcGxsID0gaWJ4X2dldF9jcnRjX2RwbGwsCj4gKwkubWFwX3RvX2NydGMgPSBpYnhf ZHBsbF9tYXBfdG9fY3J0YywKPiArCS5nZXRfZW5jb2Rlcl9kcGxsID0gbm9vcF9nZXRfZW5jb2Rl cl9kcGxsLAo+ICsJLm1hcF90b19lbmNvZGVyID0gbm9vcF9kcGxsX21hcF90b19lbmNvZGVyLAo+ ICAJLmR1bXBfaHdfc3RhdGUgPSBpYnhfZHVtcF9od19zdGF0ZSwKPiAgfTsKPiAgCj4gQEAgLTE5 MDIsNiArMjEyOSwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRwbGxfaW5mbyBoc3dfcGxsc1td ID0gewo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RwbGxfbWdyIGhzd19wbGxfbWdyID0g ewo+ICAJLmRwbGxfaW5mbyA9IGhzd19wbGxzLAo+ICAJLmdldF9kcGxsID0gaHN3X2dldF9kcGxs LAo+ICsJLmdldF9jcnRjX2RwbGwgPSBub29wX2dldF9jcnRjX2RwbGwsCj4gKwkubWFwX3RvX2Ny dGMgPSBub29wX2RwbGxfbWFwX3RvX2NydGMsCj4gKwkuZ2V0X2VuY29kZXJfZHBsbCA9IGhzd19n ZXRfZW5jb2Rlcl9kcGxsLAo+ICsJLm1hcF90b19lbmNvZGVyID0gaHN3X2RwbGxfbWFwX3RvX2Vu Y29kZXIsCj4gIAkuZHVtcF9od19zdGF0ZSA9IGhzd19kdW1wX2h3X3N0YXRlLAo+ICB9Owo+ICAK PiBAQCAtMTkxNiw2ICsyMTQ3LDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHBsbF9pbmZvIHNr bF9wbGxzW10gPSB7Cj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZHBsbF9tZ3Igc2tsX3Bs bF9tZ3IgPSB7Cj4gIAkuZHBsbF9pbmZvID0gc2tsX3BsbHMsCj4gIAkuZ2V0X2RwbGwgPSBza2xf Z2V0X2RwbGwsCj4gKwkuZ2V0X2NydGNfZHBsbCA9IG5vb3BfZ2V0X2NydGNfZHBsbCwKPiArCS5t YXBfdG9fY3J0YyA9IG5vb3BfZHBsbF9tYXBfdG9fY3J0YywKPiArCS5nZXRfZW5jb2Rlcl9kcGxs ID0gc2tsX2dldF9lbmNvZGVyX2RwbGwsCj4gKwkubWFwX3RvX2VuY29kZXIgPSBza2xfZHBsbF9t YXBfdG9fZW5jb2RlciwKPiAgCS5kdW1wX2h3X3N0YXRlID0gc2tsX2R1bXBfaHdfc3RhdGUsCj4g IH07Cj4gIAo+IEBAIC0xOTI5LDYgKzIxNjQsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcGxs X2luZm8gYnh0X3BsbHNbXSA9IHsKPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kcGxsX21n ciBieHRfcGxsX21nciA9IHsKPiAgCS5kcGxsX2luZm8gPSBieHRfcGxscywKPiAgCS5nZXRfZHBs bCA9IGJ4dF9nZXRfZHBsbCwKPiArCS5nZXRfY3J0Y19kcGxsID0gbm9vcF9nZXRfY3J0Y19kcGxs LAo+ICsJLm1hcF90b19jcnRjID0gbm9vcF9kcGxsX21hcF90b19jcnRjLAo+ICsJLmdldF9lbmNv ZGVyX2RwbGwgPSBieHRfZ2V0X2VuY29kZXJfZHBsbCwKPiArCS5tYXBfdG9fZW5jb2RlciA9IGJ4 dF9kcGxsX21hcF90b19lbmNvZGVyLAo+ICAJLmR1bXBfaHdfc3RhdGUgPSBieHRfZHVtcF9od19z dGF0ZSwKPiAgfTsKPiAgCj4gQEAgLTIwMzEsNiArMjI3MCw2NiBAQCB2b2lkIGludGVsX3JlbGVh c2Vfc2hhcmVkX2RwbGwoc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpkcGxsLAo+ICB9Cj4gIAo+ ICAvKioKPiArICogaW50ZWxfZ2V0X2NydGNfZHBsbCAtIEdldCB3aGljaCBwbGwgaXMgbWFwcGVk IHRvIGEgcGlwZQo+ICsgKiBAY3J0YzogcGlwZQo+ICsgKgo+ICsgKiBSZXR1cm5zIHRoZSBEUExM IGlzIG1hcHBlZCB0byBAY3J0Yy4gTlVMTCBpbmRpY2F0ZXMgbm8gRFBMTCBpcyBtYXBwZWQgdG8K PiArICogQGNydGMuCj4gKyAqLwo+ICtzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKmludGVsX2dl dF9jcnRjX2RwbGwoc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4gK3sKPiArCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+ICsKPiAr CXJldHVybiBkZXZfcHJpdi0+ZHBsbF9tZ3ItPmdldF9jcnRjX2RwbGwoY3J0Yyk7Cj4gK30KPiAr Cj4gKy8qKgo+ICsgKiBpbnRlbF9nZXRfZW5jb2Rlcl9kcGxsIC0gR2V0IHdoaWNoIHBsbCBpcyBt YXBwZWQgdG8gYW4gZW5jb2Rlcgo+ICsgKiBAZW5jb2RlcjogZW5jb2Rlcgo+ICsgKgo+ICsgKiBS ZXR1cm5zIHRoZSBEUExMIGlzIG1hcHBlZCB0byBAZW5jb2Rlci4gTlVMTCBpbmRpY2F0ZXMgbm8g RFBMTCBpcyBtYXBwZWQgdG8KPiArICogQGVuY29kZXIuCj4gKyAqLwo+ICtzdHJ1Y3QgaW50ZWxf c2hhcmVkX2RwbGwgKmludGVsX2dldF9lbmNvZGVyX2RwbGwoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIpCj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ICsKPiArCXJldHVybiBkZXZfcHJpdi0+ZHBsbF9t Z3ItPmdldF9lbmNvZGVyX2RwbGwoZW5jb2Rlcik7Cj4gK30KPiArCj4gKy8qKgo+ICsgKiBpbnRl bF9kcGxsX21hcF90b19jcnRjIC0gTWFwIERQTEwgdG8gcGlwZQo+ICsgKiBAZHBsbDogZHBsbCB0 byBtYXAKPiArICogQGNydGM6IHBpcGUgdG8gbWFwIHRoZSBAZHBsbCB0bwo+ICsgKgo+ICsgKiBG b3IgcGxhdGZvcm1zIHdoZXJlIERQTExzIGFyZSBtYXBwZWQgdG8gY3J0Y3MsIHByb2dyYW0gdGhl IGFwcHJvcHJpYXRlCj4gKyAqIGJpdHMgc28gdGhhdCBAZHBsbCBpcyBtYXBwZWQgdG8gQGNydGMu Cj4gKyAqLwo+ICt2b2lkIGludGVsX2RwbGxfbWFwX3RvX2NydGMoc3RydWN0IGludGVsX3NoYXJl ZF9kcGxsICpkcGxsLAo+ICsJCQkgICAgc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4gK3sKPiAr CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5k ZXYpOwo+ICsKPiArCWRldl9wcml2LT5kcGxsX21nci0+bWFwX3RvX2NydGMoZHBsbCwgY3J0Yyk7 Cj4gK30KPiArCj4gKy8qKgo+ICsgKiBpbnRlbF9kcGxsX21hcF90b19lbmNvZGVyIC0gTWFwIERQ TEwgdG8gZW5jb2Rlcgo+ICsgKiBAZHBsbDogZHBsbCB0byBtYXAKPiArICogQGVuY29kZXI6IGVu Y29kZXIgdG8gbWFwIHRoZSBAZHBsbCB0bwo+ICsgKgo+ICsgKiBGb3IgcGxhdGZvcm1zIHdoZXJl IERQTExzIGFyZSBtYXBwZWQgdG8gZW5jb2RlcnMsIHByb2dyYW0gdGhlIGFwcHJvcHJpYXRlCj4g KyAqIGJpdHMgc28gdGhhdCBAZHBsbCBpcyBtYXBwZWQgdG8gQGVuY29kZXIuCj4gKyAqLwo+ICt2 b2lkIGludGVsX2RwbGxfbWFwX3RvX2VuY29kZXIoc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpk cGxsLAo+ICsJCQkgICAgICAgc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gK3sKPiAr CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFz ZS5kZXYpOwo+ICsKPiArCWRldl9wcml2LT5kcGxsX21nci0+bWFwX3RvX2VuY29kZXIoZHBsbCwg ZW5jb2Rlcik7Cj4gK30KPiArCj4gKy8qKgo+ICAgKiBpbnRlbF9zaGFyZWRfZHBsbF9kdW1wX2h3 X3N0YXRlIC0gd3JpdGUgaHdfc3RhdGUgdG8gZG1lc2cKPiAgICogQGRldl9wcml2OiBpOTE1IGRy bSBkZXZpY2UKPiAgICogQGh3X3N0YXRlOiBodyBzdGF0ZSB0byBiZSB3cml0dGVuIHRvIHRoZSBs b2cKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmgKPiBpbmRleCA3NjExMWE0Li43 YjQ2Yzg4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdy LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5oCj4gQEAgLTI4 MCw2ICsyODAsMTMgQEAgdm9pZCBpbnRlbF9kaXNhYmxlX3NoYXJlZF9kcGxsKHN0cnVjdCBpbnRl bF9jcnRjICpjcnRjKTsKPiAgdm9pZCBpbnRlbF9zaGFyZWRfZHBsbF9zd2FwX3N0YXRlKHN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7Cj4gIHZvaWQgaW50ZWxfc2hhcmVkX2RwbGxfaW5p dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPiAgCj4gK3N0cnVjdCBpbnRlbF9zaGFyZWRfZHBs bCAqaW50ZWxfZ2V0X2NydGNfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yyk7Cj4gK3N0cnVj dCBpbnRlbF9zaGFyZWRfZHBsbCAqaW50ZWxfZ2V0X2VuY29kZXJfZHBsbChzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2Rlcik7Cj4gK3ZvaWQgaW50ZWxfZHBsbF9tYXBfdG9fY3J0YyhzdHJ1Y3Qg aW50ZWxfc2hhcmVkX2RwbGwgKmRwbGwsCj4gKwkJCSAgICBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 Yyk7Cj4gK3ZvaWQgaW50ZWxfZHBsbF9tYXBfdG9fZW5jb2RlcihzdHJ1Y3QgaW50ZWxfc2hhcmVk X2RwbGwgKmRwbGwsCj4gKwkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rlcik7 Cj4gKwo+ICB2b2lkIGludGVsX2RwbGxfZHVtcF9od19zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCj4gIAkJCSAgICAgIHN0cnVjdCBpbnRlbF9kcGxsX2h3X3N0YXRlICpo d19zdGF0ZSk7Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggNzg3NGY2Ni4u YTA0ZDkxNyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTExMzYsOCArMTEz Niw2IEBAIHZvaWQgaW50ZWxfY3J0X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gIHZv aWQgaW50ZWxfY3J0X3Jlc2V0KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlcik7Cj4gIAo+ICAv KiBpbnRlbF9kZGkuYyAqLwo+IC12b2lkIGludGVsX2RkaV9jbGtfc2VsZWN0KHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyLAo+IC0JCQkgIHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxs KTsKPiAgdm9pZCBpbnRlbF9kZGlfZmRpX3Bvc3RfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqaW50ZWxfZW5jb2RlciwKPiAgCQkJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0 Y19zdGF0ZSwKPiAgCQkJCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpvbGRfY29ubl9zdGF0 ZSk7Cj4gQEAgLTExNDUsNiArMTE0Myw4IEBAIHZvaWQgaW50ZWxfcHJlcGFyZV9kcF9kZGlfYnVm ZmVycyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rlcik7Cj4gIHZvaWQgaHN3X2ZkaV9saW5r X3RyYWluKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7Cj4gIHZvaWQgaW50ZWxfZGRpX2luaXQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgZW51bSBwb3J0IHBvcnQpOwo+ICBlbnVtIHBvcnQgaW50ZWxf ZGRpX2dldF9lbmNvZGVyX3BvcnQoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIp Owo+ICtzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqCj4gK2ludGVsX2RkaV9nZXRfcG9ydF9lbmNvZGVy KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwb3J0IHBvcnQpOwo+ICBi b29sIGludGVsX2RkaV9nZXRfaHdfc3RhdGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs IGVudW0gcGlwZSAqcGlwZSk7Cj4gIHZvaWQgaW50ZWxfZGRpX2VuYWJsZV90cmFuc2NvZGVyX2Z1 bmMoc3RydWN0IGRybV9jcnRjICpjcnRjKTsKPiAgdm9pZCBpbnRlbF9kZGlfZGlzYWJsZV90cmFu c2NvZGVyX2Z1bmMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+IC0tIAo+IDIu NS41Cj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K PiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y Zwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4CgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRp b24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4Cg==