From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Vivi, Rodrigo" Subject: Re: [PATCH 6/7] drm/i915: add frontbuffer tracking to FBC Date: Wed, 4 Mar 2015 20:54:21 +0000 Message-ID: <1425502393.3366.42.camel@intel.com> References: <1423855427-2098-1-git-send-email-przanoni@gmail.com> <1423855427-2098-7-git-send-email-przanoni@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 450FA6E2D3 for ; Wed, 4 Mar 2015 12:54:24 -0800 (PST) In-Reply-To: Content-Language: en-US Content-ID: <09FC756779A7A04AAC683790184D98A8@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "przanoni@gmail.com" Cc: "intel-gfx@lists.freedesktop.org" , "Zanoni, Paulo R" List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAyMDE1LTAzLTA0IGF0IDE1OjAzIC0wMzAwLCBQYXVsbyBaYW5vbmkgd3JvdGU6DQo+ IDIwMTUtMDMtMDMgMjE6NTcgR01ULTAzOjAwIFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGdt YWlsLmNvbT46DQo+ID4gT24gRnJpLCBGZWIgMTMsIDIwMTUgYXQgMTE6MjMgQU0sIFBhdWxvIFph bm9uaSA8cHJ6YW5vbmlAZ21haWwuY29tPiB3cm90ZToNCj4gPj4gRnJvbTogUGF1bG8gWmFub25p IDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+DQo+ID4+DQo+ID4+IEtpbGwgdGhlIGJsdC9yZW5k ZXIgdHJhY2tpbmcgd2UgY3VycmVudGx5IGhhdmUgYW5kIHVzZSB0aGUgZnJvbnRidWZmZXINCj4g Pj4gdHJhY2tpbmcgaW5mcmFzdHJ1Y3R1cmUuDQo+ID4+DQo+ID4+IERvbid0IGVuYWJsZSB0aGlu Z3MgYnkgZGVmYXVsdCB5ZXQuDQo+ID4+DQo+ID4+IHYyOiAoUm9kcmlnbykgRml4IHNtYWxsIGNv bmZsaWN0IG9uIHJlYmFzZSBhbmQgdHlwbyBhdCBzdWJqZWN0Lg0KPiA+PiB2MzogKFBhdWxvKSBS ZWJhc2Ugb24gUkVOREVSX0NTIGNoYW5nZS4NCj4gPj4gdjQ6IChQYXVsbykgUmViYXNlLg0KPiA+ PiB2NTogKFBhdWxvKSBTaW1wbGlmeTogZmx1c2hlcyBkb24ndCBoYXZlIG9yaWdpbiAoRGFuaWVs KS4NCj4gPj4gICAgICAgICAgICAgQWxzbyByZWJhc2UgZHVlIHRvIHBhdGNoIG9yZGVyIGNoYW5n ZXMuDQo+ID4+DQo+ID4+IFNpZ25lZC1vZmYtYnk6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZp QGludGVsLmNvbT4NCj4gPj4gU2lnbmVkLW9mZi1ieTogUGF1bG8gWmFub25pIDxwYXVsby5yLnph bm9uaUBpbnRlbC5jb20+DQo+ID4+IC0tLQ0KPiA+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaCAgICAgICAgICB8IDEwICstLS0NCj4gPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oICAgICAgICAgfCAgNiArKy0NCj4gPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2ZiYy5jICAgICAgICAgfCA5MSArKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQ0K PiA+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZnJvbnRidWZmZXIuYyB8IDE0ICstLS0t DQo+ID4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgIHwgNDEgKy0t LS0tLS0tLS0tLS0NCj4gPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIu aCAgfCAgMSAtDQo+ID4+ICA2IGZpbGVzIGNoYW5nZWQsIDY1IGluc2VydGlvbnMoKyksIDk4IGRl bGV0aW9ucygtKQ0KPiA+Pg0KPiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgNCj4gPj4gaW5kZXgg MzBhYWE4ZS4uNzY4MGNhMCAxMDA2NDQNCj4gPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaA0KPiA+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oDQo+ ID4+IEBAIC03ODMsNiArNzgzLDggQEAgc3RydWN0IGk5MTVfZmJjIHsNCj4gPj4gICAgICAgICB1 bnNpZ25lZCBsb25nIHVuY29tcHJlc3NlZF9zaXplOw0KPiA+PiAgICAgICAgIHVuc2lnbmVkIHRo cmVzaG9sZDsNCj4gPj4gICAgICAgICB1bnNpZ25lZCBpbnQgZmJfaWQ7DQo+ID4+ICsgICAgICAg dW5zaWduZWQgaW50IHBvc3NpYmxlX2ZyYW1lYnVmZmVyX2JpdHM7DQo+ID4+ICsgICAgICAgdW5z aWduZWQgaW50IGJ1c3lfYml0czsNCj4gPg0KPiA+IEknbSBub3Qgc3VyZSBpZiBJIHVuZGVyc3Rv b2Qgd2h5IHlvdSBrZWVwIDIgdmFyaWFibGVzIGhlcmU/DQo+IA0KPiBBZnRlciBEYW5pZWwncyBs YXN0IHN1Z2dlc3Rpb24sIHRoZSBwb3NzaWJsZV9mcmFtZWJ1ZmZlcl9iaXRzIGNvdWxkDQo+IHBy b2JhYmx5IGJlIHJlbW92ZWQgYW5kIGxlZnQgYXMgYSBsb2NhbCB2YXJpYWJsZSBhdCBpbnRlbF9m YmNfdmFsaWRhdGUNCj4gbm93OiBpdCdzIGp1c3QgYSBtYXR0ZXIgb2YgY29kaW5nIHN0eWxlLiBT b21lIHBsYXRmb3JtcyBzdXBwb3J0IEZCQyBvbg0KPiBtb3JlIHRoYW4ganVzdCBwaXBlIEEsIHNv IHRoaXMgdmFyaWFibGUgaXMgdXNlZCB0byBzaW1wbGlmeSBjaGVja3MNCj4gcmVsYXRlZCB0byB0 aGlzLg0KPiANCj4gVGhlIGJ1c3lfYml0cyB3YXMgYWxzbyBwYXJ0IG9mIERhbmllbCdzIGxhc3Qg cmVxdWVzdDogd2UgbmVlZCB0byBzdG9yZQ0KPiB3aGljaCBiaXRzIHRyaWdnZXJlZCBpbnRlbF9m YmNfaW52YWxpZGF0ZSBjYWxscywgYW5kIHRoZW4gY2hlY2sgdGhlbQ0KPiB3aGVuIGludGVsX2Zi Y19mbHVzaCBpcyBjYWxsZWQuDQoNCkdvdCBpdC4NClRoYW5rcyBmb3IgZXhwbGFpbmluZyBpdC4N Cg0KPiANCj4gPiBJcyBpdCBiZWNhdXNlIHdlIGtlZXAgZW5hYmxpbmcvZGlzYWJsaW5nIGZiYyB3 aXRoIHVwZGF0ZXMgYWxsIG92ZXIgdGhlIGNvZGU/DQo+ID4gSW4gdGhpcyBjYXNlIGl0IGlzIG9r IHdlIGp1c3QgbmVlZCB0byBraWxsIGl0IHdoZW4gd2Uga2lsbCB1cGRhdGVfZmJjLi4uDQo+IA0K PiBJIGRvbid0IHVuZGVyc3RhbmQgd2hhdCB5b3UgbWVhbiBoZXJlLiBQbGVhc2UgY2xhcmlmeS4N Cg0KSSBoYWQgbWlzc3VuZGVyc3Rvb2QgdGhlIHJlYXNvbiBvZiBwb3NzaWJsZV9mcm9udGJ1ZmZl ciBiaXRzLCBzb3JyeS4NCkJ1dCBhYm91dCBraWxsaW5nIHVwZGF0ZV9mYmMgSSBiZWxpZXZlIHRo YXQgYWZ0ZXIgZnJvbnRidWZmZXIgcmV3b3JrIGlzDQppbiBwbGFjZSB3ZSBkb24ndCBuZWVkIHRv IHVzZSB0aGF0IHVwZGF0ZV9mYmMgZnVuY3Rpb24gdGhhdCBkaXNhYmxlIGFuZA0KZW5hYmxlIGZi YyBvbiB0aGUgY2FzZXMgd2Uga25ldyBpdCBjb3VsZCBmYWlsLiBXaXRoIGZyb250YnVmZmVyIGJp dHMgd2UNCmNvdWxkIGxldCBpdCBhbHdheXMgZW5hYmxlZCBhbmQga2lja2luZyB3aXRoIGZyb250 YnVmZmVyIGJpdHMuDQoNCj4gDQo+ID4NCj4gPj4gICAgICAgICBzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YzsNCj4gPj4gICAgICAgICBpbnQgeTsNCj4gPj4NCj4gPj4gQEAgLTc5NSwxNCArNzk3LDYg QEAgc3RydWN0IGk5MTVfZmJjIHsNCj4gPj4gICAgICAgICAgKiBwb3NzaWJsZS4gKi8NCj4gPj4g ICAgICAgICBib29sIGVuYWJsZWQ7DQo+ID4+DQo+ID4+IC0gICAgICAgLyogT24gZ2VuOCBzb21l IHJpbmdzIGNhbm5vbnQgcGVyZm9ybSBmYmMgY2xlYW4gb3BlcmF0aW9uIHNvIGZvciBub3cNCj4g Pj4gLSAgICAgICAgKiB3ZSBhcmUgZG9pbmcgdGhpcyBvbiBTVyB3aXRoIG1taW8uDQo+ID4+IC0g ICAgICAgICogVGhpcyB2YXJpYWJsZSB3b3JrcyBpbiB0aGUgb3Bwb3NpdGUgaW5mb3JtYXRpb24g ZGlyZWN0aW9uDQo+ID4+IC0gICAgICAgICogb2YgcmluZy0+ZmJjX2RpcnR5IHRlbGxpbmcgc29m dHdhcmUgb24gZnJvbnRidWZmZXIgdHJhY2tpbmcNCj4gPj4gLSAgICAgICAgKiB0byBwZXJmb3Jt IHRoZSBjYWNoZSBjbGVhbiBvbiBzdyBzaWRlLg0KPiA+PiAtICAgICAgICAqLw0KPiA+PiAtICAg ICAgIGJvb2wgbmVlZF9zd19jYWNoZV9jbGVhbjsNCj4gPj4gLQ0KPiA+PiAgICAgICAgIHN0cnVj dCBpbnRlbF9mYmNfd29yayB7DQo+ID4+ICAgICAgICAgICAgICAgICBzdHJ1Y3QgZGVsYXllZF93 b3JrIHdvcms7DQo+ID4+ICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX2NydGMgKmNydGM7DQo+ ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oDQo+ID4+IGluZGV4IDA1ZDBhNDNmLi41NzExNzRm IDEwMDY0NA0KPiA+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaA0KPiA+ PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaA0KPiA+PiBAQCAtMTA5MSw3 ICsxMDkxLDExIEBAIGJvb2wgaW50ZWxfZmJjX2VuYWJsZWQoc3RydWN0IGRybV9kZXZpY2UgKmRl dik7DQo+ID4+ICB2b2lkIGludGVsX2ZiY191cGRhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldik7 DQo+ID4+ICB2b2lkIGludGVsX2ZiY19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdik7DQo+ID4+ICB2b2lkIGludGVsX2ZiY19kaXNhYmxlKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpOw0KPiA+PiAtdm9pZCBiZHdfZmJjX3N3X2ZsdXNoKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHUzMiB2YWx1ZSk7DQo+ID4+ICt2b2lkIGludGVsX2ZiY19pbnZhbGlkYXRlKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwNCj4gPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICB1 bnNpZ25lZCBpbnQgZnJvbnRidWZmZXJfYml0cywNCj4gPj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICBlbnVtIGZiX29wX29yaWdpbiBvcmlnaW4pOw0KPiA+PiArdm9pZCBpbnRlbF9mYmNfZmx1 c2goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LA0KPiA+PiArICAgICAgICAgICAg ICAgICAgICB1bnNpZ25lZCBpbnQgZnJvbnRidWZmZXJfYml0cyk7DQo+ID4+DQo+ID4+ICAvKiBp bnRlbF9oZG1pLmMgKi8NCj4gPj4gIHZvaWQgaW50ZWxfaGRtaV9pbml0KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIGludCBoZG1pX3JlZywgZW51bSBwb3J0IHBvcnQpOw0KPiA+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9mYmMuYw0KPiA+PiBpbmRleCA2MThmN2JkLi45ZmNmNDQ2IDEwMDY0NA0KPiA+PiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYw0KPiA+PiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYw0KPiA+PiBAQCAtMTc0LDI5ICsxNzQsMTAgQEAgc3Rh dGljIGJvb2wgZzR4X2ZiY19lbmFibGVkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpDQo+ID4+ICAg ICAgICAgcmV0dXJuIEk5MTVfUkVBRChEUEZDX0NPTlRST0wpICYgRFBGQ19DVExfRU47DQo+ID4+ ICB9DQo+ID4+DQo+ID4+IC1zdGF0aWMgdm9pZCBzbmJfZmJjX2JsaXRfdXBkYXRlKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpDQo+ID4+ICtzdGF0aWMgdm9pZCBpbnRlbF9mYmNfbnVrZShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpDQo+ID4+ICB7DQo+ID4+IC0gICAgICAgc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsNCj4gPj4gLSAg ICAgICB1MzIgYmx0X2Vjb3NrcGQ7DQo+ID4+IC0NCj4gPj4gLSAgICAgICAvKiBNYWtlIHN1cmUg YmxpdHRlciBub3RpZmllcyBGQkMgb2Ygd3JpdGVzICovDQo+ID4+IC0NCj4gPj4gLSAgICAgICAv KiBCbGl0dGVyIGlzIHBhcnQgb2YgTWVkaWEgcG93ZXJ3ZWxsIG9uIFZMVi4gTm8gaW1wYWN0IG9m DQo+ID4+IC0gICAgICAgICogaGlzIHBhcmFtIGluIG90aGVyIHBsYXRmb3JtcyBmb3Igbm93ICov DQo+ID4+IC0gICAgICAgaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9nZXQoZGV2X3ByaXYsIEZPUkNF V0FLRV9NRURJQSk7DQo+ID4+IC0NCj4gPj4gLSAgICAgICBibHRfZWNvc2twZCA9IEk5MTVfUkVB RChHRU42X0JMSVRURVJfRUNPU0tQRCk7DQo+ID4+IC0gICAgICAgYmx0X2Vjb3NrcGQgfD0gR0VO Nl9CTElUVEVSX0ZCQ19OT1RJRlkgPDwNCj4gPj4gLSAgICAgICAgICAgICAgIEdFTjZfQkxJVFRF Ul9MT0NLX1NISUZUOw0KPiA+PiAtICAgICAgIEk5MTVfV1JJVEUoR0VONl9CTElUVEVSX0VDT1NL UEQsIGJsdF9lY29za3BkKTsNCj4gPj4gLSAgICAgICBibHRfZWNvc2twZCB8PSBHRU42X0JMSVRU RVJfRkJDX05PVElGWTsNCj4gPj4gLSAgICAgICBJOTE1X1dSSVRFKEdFTjZfQkxJVFRFUl9FQ09T S1BELCBibHRfZWNvc2twZCk7DQo+ID4+IC0gICAgICAgYmx0X2Vjb3NrcGQgJj0gfihHRU42X0JM SVRURVJfRkJDX05PVElGWSA8PA0KPiA+PiAtICAgICAgICAgICAgICAgICAgICAgICAgR0VONl9C TElUVEVSX0xPQ0tfU0hJRlQpOw0KPiA+PiAtICAgICAgIEk5MTVfV1JJVEUoR0VONl9CTElUVEVS X0VDT1NLUEQsIGJsdF9lY29za3BkKTsNCj4gPj4gLSAgICAgICBQT1NUSU5HX1JFQUQoR0VONl9C TElUVEVSX0VDT1NLUEQpOw0KPiA+PiAtDQo+ID4+IC0gICAgICAgaW50ZWxfdW5jb3JlX2ZvcmNl d2FrZV9wdXQoZGV2X3ByaXYsIEZPUkNFV0FLRV9NRURJQSk7DQo+ID4NCj4gPiBBcmUgeW91IHN1 cmUgdGhpcyBjb250aW51ZSB3b3JraW5nIG9uIHNuYj8gb3Igc2hvdWxkIHdlIGZ1bGx5IHJlbW92 ZQ0KPiA+IGZiYyBzdXBwb3J0IGZvciBzbmIgYW5kIG9sZGVyPw0KPiA+DQo+ID4gQW55d2F5IEkg YmVsaWV2ZSB0aGlzIGNvdWxkIGJlIGluIGEgZGlmZmVyZW50IHBhdGNoLg0KPiANCj4gV2VsbCwg dGhlIHdob2xlIGlkZWEgb2YgdXNpbmcgdGhlIHNvZndhcmUtYmFzZWQgZnJvbnRidWZmZXIgdHJh Y2tpbmcNCj4gbWVjaGFuaXNtIGlzIHRvIGdldCByaWQgb2YgYWxsIHRoZSBoYXJkd2FyZS1iYXNl ZCBzdHVmZi4NCg0KSG0sIEkgc3RpbGwgaGF2ZSBhIGNvbmNlcm4gaGVyZS4gV2Ugd291bGQgbmVl ZCB0byB0ZXN0IG9uIHRob3NlDQpwbGF0Zm9ybXMgdG8gYmUgY2VydGFpbi4gVGhlIHJlYXNvbiBm b3IgdGhhdCBpcyB0aGF0IEhXIHRyYWNraW5nIHN0aWxsDQp3b3JrcyBzbyBpdCBjYW4gbGV0IHRo ZSBidWZmZXIgaW4gYSBzdGFnZSB0aGF0IGNvbXByZXNzaW9uIGlzIHVuYWJsZSB0bw0Kc3RhcnQu Li4gc2FtZSByZWFzb24gdGhhdCB3ZSBzdGlsbCBuZWVkIGJvdGggbGluZXMgYmVsb3cgb24gQkRX Lg0KDQpBbnl3YXkgdGhpcyB3b3VsZG4ndCBicmVhayBhbnl0aGluZyBhbmQgaXQgdGhpcyByZXdv cmsgd2FzIGEgZ3JlYXQNCmltcHJvdmVtZW50IHNvIGZlZWwgZnJlZSB0byB1c2UNCg0KUmV2aWV3 ZWQtYnk6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4NCg0KYW5kIHdlIGNv bnRpbnVlIGFueSBvdGhlciBuZWNlc3NhcnkgaW1wcm92ZW1lbnQgb3IgZml4IG9uIHRvcC4NCj4g DQo+ID4NCj4gPj4gKyAgICAgICBJOTE1X1dSSVRFKE1TR19GQkNfUkVORF9TVEFURSwgRkJDX1JF TkRfTlVLRSk7DQo+ID4+ICsgICAgICAgUE9TVElOR19SRUFEKE1TR19GQkNfUkVORF9TVEFURSk7 DQo+ID4+ICB9DQo+ID4+DQo+ID4+ICBzdGF0aWMgdm9pZCBpbGtfZmJjX2VuYWJsZShzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMpDQo+ID4+IEBAIC0yMzksOSArMjIwLDEwIEBAIHN0YXRpYyB2b2lkIGls a19mYmNfZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykNCj4gPj4gICAgICAgICAgICAgICAg IEk5MTVfV1JJVEUoU05CX0RQRkNfQ1RMX1NBLA0KPiA+PiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTTkJfQ1BVX0ZFTkNFX0VOQUJMRSB8IG9iai0+ZmVuY2VfcmVnKTsNCj4gPj4gICAgICAg ICAgICAgICAgIEk5MTVfV1JJVEUoRFBGQ19DUFVfRkVOQ0VfT0ZGU0VULCBjcnRjLT55KTsNCj4g Pj4gLSAgICAgICAgICAgICAgIHNuYl9mYmNfYmxpdF91cGRhdGUoZGV2KTsNCj4gPj4gICAgICAg ICB9DQo+ID4+DQo+ID4+ICsgICAgICAgaW50ZWxfZmJjX251a2UoZGV2X3ByaXYpOw0KPiA+PiAr DQo+ID4+ICAgICAgICAgRFJNX0RFQlVHX0tNUygiZW5hYmxlZCBmYmMgb24gcGxhbmUgJWNcbiIs IHBsYW5lX25hbWUoaW50ZWxfY3J0Yy0+cGxhbmUpKTsNCj4gPj4gIH0NCj4gPj4NCj4gPj4gQEAg LTMyMCw3ICszMDIsNyBAQCBzdGF0aWMgdm9pZCBnZW43X2ZiY19lbmFibGUoc3RydWN0IGRybV9j cnRjICpjcnRjKQ0KPiA+PiAgICAgICAgICAgICAgICAgICAgU05CX0NQVV9GRU5DRV9FTkFCTEUg fCBvYmotPmZlbmNlX3JlZyk7DQo+ID4+ICAgICAgICAgSTkxNV9XUklURShEUEZDX0NQVV9GRU5D RV9PRkZTRVQsIGNydGMtPnkpOw0KPiA+Pg0KPiA+PiAtICAgICAgIHNuYl9mYmNfYmxpdF91cGRh dGUoZGV2KTsNCj4gPj4gKyAgICAgICBpbnRlbF9mYmNfbnVrZShkZXZfcHJpdik7DQo+ID4+DQo+ ID4+ICAgICAgICAgRFJNX0RFQlVHX0tNUygiZW5hYmxlZCBmYmMgb24gcGxhbmUgJWNcbiIsIHBs YW5lX25hbWUoaW50ZWxfY3J0Yy0+cGxhbmUpKTsNCj4gPj4gIH0NCj4gPj4gQEAgLTM0MCwxOSAr MzIyLDYgQEAgYm9vbCBpbnRlbF9mYmNfZW5hYmxlZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQ0K PiA+PiAgICAgICAgIHJldHVybiBkZXZfcHJpdi0+ZmJjLmVuYWJsZWQ7DQo+ID4+ICB9DQo+ID4+ DQo+ID4+IC12b2lkIGJkd19mYmNfc3dfZmx1c2goc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTMy IHZhbHVlKQ0KPiA+PiAtew0KPiA+PiAtICAgICAgIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7DQo+ID4+IC0NCj4gPj4gLSAgICAgICBpZiAoIUlT X0dFTjgoZGV2KSkNCj4gPj4gLSAgICAgICAgICAgICAgIHJldHVybjsNCj4gPj4gLQ0KPiA+PiAt ICAgICAgIGlmICghaW50ZWxfZmJjX2VuYWJsZWQoZGV2KSkNCj4gPj4gLSAgICAgICAgICAgICAg IHJldHVybjsNCj4gPj4gLQ0KPiA+PiAtICAgICAgIEk5MTVfV1JJVEUoTVNHX0ZCQ19SRU5EX1NU QVRFLCB2YWx1ZSk7DQo+ID4+IC19DQo+ID4+IC0NCj4gPj4gIHN0YXRpYyB2b2lkIGludGVsX2Zi Y193b3JrX2ZuKHN0cnVjdCB3b3JrX3N0cnVjdCAqX193b3JrKQ0KPiA+PiAgew0KPiA+PiAgICAg ICAgIHN0cnVjdCBpbnRlbF9mYmNfd29yayAqd29yayA9DQo+ID4+IEBAIC02ODUsNiArNjU0LDQ0 IEBAIG91dF9kaXNhYmxlOg0KPiA+PiAgICAgICAgIGk5MTVfZ2VtX3N0b2xlbl9jbGVhbnVwX2Nv bXByZXNzaW9uKGRldik7DQo+ID4+ICB9DQo+ID4+DQo+ID4+ICt2b2lkIGludGVsX2ZiY19pbnZh bGlkYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwNCj4gPj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZnJvbnRidWZmZXJfYml0cywNCj4gPj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICBlbnVtIGZiX29wX29yaWdpbiBvcmlnaW4pDQo+ID4+ICt7 DQo+ID4+ICsgICAgICAgc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGRldl9wcml2LT5kZXY7DQo+ ID4+ICsgICAgICAgdW5zaWduZWQgaW50IGZiY19iaXRzOw0KPiA+PiArDQo+ID4+ICsgICAgICAg aWYgKG9yaWdpbiA9PSBPUklHSU5fR1RUKQ0KPiA+PiArICAgICAgICAgICAgICAgcmV0dXJuOw0K PiA+PiArDQo+ID4+ICsgICAgICAgaWYgKGRldl9wcml2LT5mYmMuZW5hYmxlZCkNCj4gPj4gKyAg ICAgICAgICAgICAgIGZiY19iaXRzID0gSU5URUxfRlJPTlRCVUZGRVJfUFJJTUFSWShkZXZfcHJp di0+ZmJjLmNydGMtPnBpcGUpOw0KPiA+PiArICAgICAgIGVsc2UgaWYgKGRldl9wcml2LT5mYmMu ZmJjX3dvcmspDQo+ID4+ICsgICAgICAgICAgICAgICBmYmNfYml0cyA9IElOVEVMX0ZST05UQlVG RkVSX1BSSU1BUlkoDQo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAgIHRvX2ludGVsX2NydGMo ZGV2X3ByaXYtPmZiYy5mYmNfd29yay0+Y3J0YyktPnBpcGUpOw0KPiA+PiArICAgICAgIGVsc2UN Cj4gPj4gKyAgICAgICAgICAgICAgIGZiY19iaXRzID0gZGV2X3ByaXYtPmZiYy5wb3NzaWJsZV9m cmFtZWJ1ZmZlcl9iaXRzOw0KPiA+PiArDQo+ID4+ICsgICAgICAgZGV2X3ByaXYtPmZiYy5idXN5 X2JpdHMgfD0gKGZiY19iaXRzICYgZnJvbnRidWZmZXJfYml0cyk7DQo+ID4+ICsNCj4gPj4gKyAg ICAgICBpZiAoZGV2X3ByaXYtPmZiYy5idXN5X2JpdHMpDQo+ID4+ICsgICAgICAgICAgICAgICBp bnRlbF9mYmNfZGlzYWJsZShkZXYpOw0KPiA+PiArfQ0KPiA+PiArDQo+ID4+ICt2b2lkIGludGVs X2ZiY19mbHVzaChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsDQo+ID4+ICsgICAg ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBmcm9udGJ1ZmZlcl9iaXRzKQ0KPiA+PiArew0K PiA+PiArICAgICAgIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkZXZfcHJpdi0+ZGV2Ow0KPiA+ PiArDQo+ID4+ICsgICAgICAgaWYgKCFkZXZfcHJpdi0+ZmJjLmJ1c3lfYml0cykNCj4gPj4gKyAg ICAgICAgICAgICAgIHJldHVybjsNCj4gPj4gKw0KPiA+PiArICAgICAgIGRldl9wcml2LT5mYmMu YnVzeV9iaXRzICY9IH5mcm9udGJ1ZmZlcl9iaXRzOw0KPiA+PiArDQo+ID4+ICsgICAgICAgaWYg KCFkZXZfcHJpdi0+ZmJjLmJ1c3lfYml0cykNCj4gPj4gKyAgICAgICAgICAgICAgIGludGVsX2Zi Y191cGRhdGUoZGV2KTsNCj4gPj4gK30NCj4gPj4gKw0KPiA+PiAgLyoqDQo+ID4+ICAgKiBpbnRl bF9mYmNfaW5pdCAtIEluaXRpYWxpemUgRkJDDQo+ID4+ICAgKiBAZGV2X3ByaXY6IHRoZSBpOTE1 IGRldmljZQ0KPiA+PiBAQCAtNjkzLDEyICs3MDAsMjIgQEAgb3V0X2Rpc2FibGU6DQo+ID4+ICAg Ki8NCj4gPj4gIHZvaWQgaW50ZWxfZmJjX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQ0KPiA+PiAgew0KPiA+PiArICAgICAgIGVudW0gcGlwZSBwaXBlOw0KPiA+PiArDQo+ ID4+ICAgICAgICAgaWYgKCFIQVNfRkJDKGRldl9wcml2KSkgew0KPiA+PiAgICAgICAgICAgICAg ICAgZGV2X3ByaXYtPmZiYy5lbmFibGVkID0gZmFsc2U7DQo+ID4+ICAgICAgICAgICAgICAgICBk ZXZfcHJpdi0+ZmJjLm5vX2ZiY19yZWFzb24gPSBGQkNfVU5TVVBQT1JURUQ7DQo+ID4+ICAgICAg ICAgICAgICAgICByZXR1cm47DQo+ID4+ICAgICAgICAgfQ0KPiA+Pg0KPiA+PiArICAgICAgIGZv cl9lYWNoX3BpcGUoZGV2X3ByaXYsIHBpcGUpIHsNCj4gPj4gKyAgICAgICAgICAgICAgIGRldl9w cml2LT5mYmMucG9zc2libGVfZnJhbWVidWZmZXJfYml0cyB8PQ0KPiA+PiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElOVEVMX0ZST05UQlVGRkVSX1BSSU1BUlkocGlwZSk7DQo+ID4+ ICsNCj4gPj4gKyAgICAgICAgICAgICAgIGlmIChJU19IQVNXRUxMKGRldl9wcml2KSB8fCBJTlRF TF9JTkZPKGRldl9wcml2KS0+Z2VuID49IDgpDQo+ID4+ICsgICAgICAgICAgICAgICAgICAgICAg IGJyZWFrOw0KPiA+PiArICAgICAgIH0NCj4gPj4gKw0KPiA+PiAgICAgICAgIGlmIChJTlRFTF9J TkZPKGRldl9wcml2KS0+Z2VuID49IDcpIHsNCj4gPj4gICAgICAgICAgICAgICAgIGRldl9wcml2 LT5kaXNwbGF5LmZiY19lbmFibGVkID0gaWxrX2ZiY19lbmFibGVkOw0KPiA+PiAgICAgICAgICAg ICAgICAgZGV2X3ByaXYtPmRpc3BsYXkuZW5hYmxlX2ZiYyA9IGdlbjdfZmJjX2VuYWJsZTsNCj4g Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Zyb250YnVmZmVyLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mcm9udGJ1ZmZlci5jDQo+ID4+IGluZGV4IDVk YTczZjAuLjBhMWJhYzggMTAwNjQ0DQo+ID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Zyb250YnVmZmVyLmMNCj4gPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZnJvbnRidWZmZXIuYw0KPiA+PiBAQCAtMTE4LDggKzExOCw2IEBAIHN0YXRpYyB2b2lkIGludGVs X21hcmtfZmJfYnVzeShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LA0KPiA+PiAgICAgICAgICAgICAg ICAgICAgICAgICBjb250aW51ZTsNCj4gPj4NCj4gPj4gICAgICAgICAgICAgICAgIGludGVsX2lu Y3JlYXNlX3BsbGNsb2NrKGRldiwgcGlwZSk7DQo+ID4+IC0gICAgICAgICAgICAgICBpZiAocmlu ZyAmJiBpbnRlbF9mYmNfZW5hYmxlZChkZXYpKQ0KPiA+PiAtICAgICAgICAgICAgICAgICAgICAg ICByaW5nLT5mYmNfZGlydHkgPSB0cnVlOw0KPiA+PiAgICAgICAgIH0NCj4gPj4gIH0NCj4gPj4N Cj4gPj4gQEAgLTE2MCw2ICsxNTgsNyBAQCB2b2lkIGludGVsX2ZiX29ial9pbnZhbGlkYXRlKHN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosDQo+ID4+DQo+ID4+ICAgICAgICAgaW50ZWxf cHNyX2ludmFsaWRhdGUoZGV2LCBvYmotPmZyb250YnVmZmVyX2JpdHMpOw0KPiA+PiAgICAgICAg IGludGVsX2VkcF9kcnJzX2ludmFsaWRhdGUoZGV2LCBvYmotPmZyb250YnVmZmVyX2JpdHMpOw0K PiA+PiArICAgICAgIGludGVsX2ZiY19pbnZhbGlkYXRlKGRldl9wcml2LCBvYmotPmZyb250YnVm ZmVyX2JpdHMsIG9yaWdpbik7DQo+ID4+ICB9DQo+ID4+DQo+ID4+ICAvKioNCj4gPj4gQEAgLTE4 NywxNiArMTg2LDcgQEAgdm9pZCBpbnRlbF9mcm9udGJ1ZmZlcl9mbHVzaChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LA0KPiA+Pg0KPiA+PiAgICAgICAgIGludGVsX2VkcF9kcnJzX2ZsdXNoKGRldiwg ZnJvbnRidWZmZXJfYml0cyk7DQo+ID4+ICAgICAgICAgaW50ZWxfcHNyX2ZsdXNoKGRldiwgZnJv bnRidWZmZXJfYml0cyk7DQo+ID4+IC0NCj4gPj4gLSAgICAgICAvKg0KPiA+PiAtICAgICAgICAq IEZJWE1FOiBVbmNvbmRpdGlvbmFsIGZiYyBmbHVzaGluZyBoZXJlIGlzIGEgcmF0aGVyIGdyb3Nz IGhhY2sgYW5kDQo+ID4+IC0gICAgICAgICogbmVlZHMgdG8gYmUgcmV3b3JrZWQgaW50byBhIHBy b3BlciBmcm9udGJ1ZmZlciB0cmFja2luZyBzY2hlbWUgbGlrZQ0KPiA+PiAtICAgICAgICAqIHBz ciBlbXBsb3lzLg0KPiA+PiAtICAgICAgICAqLw0KPiA+PiAtICAgICAgIGlmIChkZXZfcHJpdi0+ ZmJjLm5lZWRfc3dfY2FjaGVfY2xlYW4pIHsNCj4gPj4gLSAgICAgICAgICAgICAgIGRldl9wcml2 LT5mYmMubmVlZF9zd19jYWNoZV9jbGVhbiA9IGZhbHNlOw0KPiA+PiAtICAgICAgICAgICAgICAg YmR3X2ZiY19zd19mbHVzaChkZXYsIEZCQ19SRU5EX0NBQ0hFX0NMRUFOKTsNCj4gPj4gLSAgICAg ICB9DQo+ID4+ICsgICAgICAgaW50ZWxfZmJjX2ZsdXNoKGRldl9wcml2LCBmcm9udGJ1ZmZlcl9i aXRzKTsNCj4gPj4gIH0NCj4gPj4NCj4gPj4gIC8qKg0KPiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcmluZ2J1ZmZlci5jDQo+ID4+IGluZGV4IGQxN2U3NmQuLmZlZDYyODQgMTAwNjQ0DQo+ ID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYw0KPiA+PiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMNCj4gPj4gQEAgLTMx NywyOSArMzE3LDYgQEAgZ2VuN19yZW5kZXJfcmluZ19jc19zdGFsbF93YShzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICpyaW5nKQ0KPiA+PiAgICAgICAgIHJldHVybiAwOw0KPiA+PiAgfQ0KPiA+Pg0K PiA+PiAtc3RhdGljIGludCBnZW43X3JpbmdfZmJjX2ZsdXNoKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKnJpbmcsIHUzMiB2YWx1ZSkNCj4gPj4gLXsNCj4gPj4gLSAgICAgICBpbnQgcmV0Ow0KPiA+ PiAtDQo+ID4+IC0gICAgICAgaWYgKCFyaW5nLT5mYmNfZGlydHkpDQo+ID4+IC0gICAgICAgICAg ICAgICByZXR1cm4gMDsNCj4gPj4gLQ0KPiA+PiAtICAgICAgIHJldCA9IGludGVsX3JpbmdfYmVn aW4ocmluZywgNik7DQo+ID4+IC0gICAgICAgaWYgKHJldCkNCj4gPj4gLSAgICAgICAgICAgICAg IHJldHVybiByZXQ7DQo+ID4+IC0gICAgICAgLyogV2FGYmNOdWtlT24zREJsdDppdmIvaHN3ICov DQo+ID4+IC0gICAgICAgaW50ZWxfcmluZ19lbWl0KHJpbmcsIE1JX0xPQURfUkVHSVNURVJfSU1N KDEpKTsNCj4gPj4gLSAgICAgICBpbnRlbF9yaW5nX2VtaXQocmluZywgTVNHX0ZCQ19SRU5EX1NU QVRFKTsNCj4gPj4gLSAgICAgICBpbnRlbF9yaW5nX2VtaXQocmluZywgdmFsdWUpOw0KPiA+PiAt ICAgICAgIGludGVsX3JpbmdfZW1pdChyaW5nLCBNSV9TVE9SRV9SRUdJU1RFUl9NRU0oMSkgfCBN SV9TUk1fTFJNX0dMT0JBTF9HVFQpOw0KPiA+PiAtICAgICAgIGludGVsX3JpbmdfZW1pdChyaW5n LCBNU0dfRkJDX1JFTkRfU1RBVEUpOw0KPiA+PiAtICAgICAgIGludGVsX3JpbmdfZW1pdChyaW5n LCByaW5nLT5zY3JhdGNoLmd0dF9vZmZzZXQgKyAyNTYpOw0KPiA+PiAtICAgICAgIGludGVsX3Jp bmdfYWR2YW5jZShyaW5nKTsNCj4gPj4gLQ0KPiA+PiAtICAgICAgIHJpbmctPmZiY19kaXJ0eSA9 IGZhbHNlOw0KPiA+PiAtICAgICAgIHJldHVybiAwOw0KPiA+PiAtfQ0KPiA+PiAtDQo+ID4+ICBz dGF0aWMgaW50DQo+ID4+ICBnZW43X3JlbmRlcl9yaW5nX2ZsdXNoKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKnJpbmcsDQo+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgdTMyIGludmFsaWRhdGVf ZG9tYWlucywgdTMyIGZsdXNoX2RvbWFpbnMpDQo+ID4+IEBAIC0zOTgsOSArMzc1LDYgQEAgZ2Vu N19yZW5kZXJfcmluZ19mbHVzaChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLA0KPiA+PiAg ICAgICAgIGludGVsX3JpbmdfZW1pdChyaW5nLCAwKTsNCj4gPj4gICAgICAgICBpbnRlbF9yaW5n X2FkdmFuY2UocmluZyk7DQo+ID4+DQo+ID4+IC0gICAgICAgaWYgKCFpbnZhbGlkYXRlX2RvbWFp bnMgJiYgZmx1c2hfZG9tYWlucykNCj4gPj4gLSAgICAgICAgICAgICAgIHJldHVybiBnZW43X3Jp bmdfZmJjX2ZsdXNoKHJpbmcsIEZCQ19SRU5EX05VS0UpOw0KPiA+PiAtDQo+ID4+ICAgICAgICAg cmV0dXJuIDA7DQo+ID4+ICB9DQo+ID4+DQo+ID4+IEBAIC00NjIsOSArNDM2LDYgQEAgZ2VuOF9y ZW5kZXJfcmluZ19mbHVzaChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLA0KPiA+PiAgICAg ICAgIGlmIChyZXQpDQo+ID4+ICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPiA+Pg0KPiA+ PiAtICAgICAgIGlmICghaW52YWxpZGF0ZV9kb21haW5zICYmIGZsdXNoX2RvbWFpbnMpDQo+ID4+ IC0gICAgICAgICAgICAgICByZXR1cm4gZ2VuN19yaW5nX2ZiY19mbHVzaChyaW5nLCBGQkNfUkVO RF9OVUtFKTsNCj4gPj4gLQ0KPiA+PiAgICAgICAgIHJldHVybiAwOw0KPiA+PiAgfQ0KPiA+Pg0K PiA+PiBAQCAtMjQyMCw3ICsyMzkxLDYgQEAgc3RhdGljIGludCBnZW42X3JpbmdfZmx1c2goc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywNCj4gPj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgdTMyIGludmFsaWRhdGUsIHUzMiBmbHVzaCkNCj4gPj4gIHsNCj4gPj4gICAgICAgICBzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2ID0gcmluZy0+ZGV2Ow0KPiA+PiAtICAgICAgIHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7DQo+ID4+ICAgICAgICAg dWludDMyX3QgY21kOw0KPiA+PiAgICAgICAgIGludCByZXQ7DQo+ID4+DQo+ID4+IEBAIC0yNDI5 LDcgKzIzOTksNyBAQCBzdGF0aWMgaW50IGdlbjZfcmluZ19mbHVzaChzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICpyaW5nLA0KPiA+PiAgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4gPj4NCj4g Pj4gICAgICAgICBjbWQgPSBNSV9GTFVTSF9EVzsNCj4gPj4gLSAgICAgICBpZiAoSU5URUxfSU5G TyhyaW5nLT5kZXYpLT5nZW4gPj0gOCkNCj4gPj4gKyAgICAgICBpZiAoSU5URUxfSU5GTyhkZXYp LT5nZW4gPj0gOCkNCj4gPj4gICAgICAgICAgICAgICAgIGNtZCArPSAxOw0KPiA+Pg0KPiA+PiAg ICAgICAgIC8qIFdlIGFsd2F5cyByZXF1aXJlIGEgY29tbWFuZCBiYXJyaWVyIHNvIHRoYXQgc3Vi c2VxdWVudA0KPiA+PiBAQCAtMjQ0OSw3ICsyNDE5LDcgQEAgc3RhdGljIGludCBnZW42X3Jpbmdf Zmx1c2goc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywNCj4gPj4gICAgICAgICAgICAgICAg IGNtZCB8PSBNSV9JTlZBTElEQVRFX1RMQjsNCj4gPj4gICAgICAgICBpbnRlbF9yaW5nX2VtaXQo cmluZywgY21kKTsNCj4gPj4gICAgICAgICBpbnRlbF9yaW5nX2VtaXQocmluZywgSTkxNV9HRU1f SFdTX1NDUkFUQ0hfQUREUiB8IE1JX0ZMVVNIX0RXX1VTRV9HVFQpOw0KPiA+PiAtICAgICAgIGlm IChJTlRFTF9JTkZPKHJpbmctPmRldiktPmdlbiA+PSA4KSB7DQo+ID4+ICsgICAgICAgaWYgKElO VEVMX0lORk8oZGV2KS0+Z2VuID49IDgpIHsNCj4gPj4gICAgICAgICAgICAgICAgIGludGVsX3Jp bmdfZW1pdChyaW5nLCAwKTsgLyogdXBwZXIgYWRkciAqLw0KPiA+PiAgICAgICAgICAgICAgICAg aW50ZWxfcmluZ19lbWl0KHJpbmcsIDApOyAvKiB2YWx1ZSAqLw0KPiA+PiAgICAgICAgIH0gZWxz ZSAgew0KPiA+PiBAQCAtMjQ1OCwxMyArMjQyOCw2IEBAIHN0YXRpYyBpbnQgZ2VuNl9yaW5nX2Zs dXNoKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsDQo+ID4+ICAgICAgICAgfQ0KPiA+PiAg ICAgICAgIGludGVsX3JpbmdfYWR2YW5jZShyaW5nKTsNCj4gPj4NCj4gPj4gLSAgICAgICBpZiAo IWludmFsaWRhdGUgJiYgZmx1c2gpIHsNCj4gPj4gLSAgICAgICAgICAgICAgIGlmIChJU19HRU43 KGRldikpDQo+ID4+IC0gICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBnZW43X3JpbmdfZmJj X2ZsdXNoKHJpbmcsIEZCQ19SRU5EX0NBQ0hFX0NMRUFOKTsNCj4gPj4gLSAgICAgICAgICAgICAg IGVsc2UgaWYgKElTX0JST0FEV0VMTChkZXYpKQ0KPiA+PiAtICAgICAgICAgICAgICAgICAgICAg ICBkZXZfcHJpdi0+ZmJjLm5lZWRfc3dfY2FjaGVfY2xlYW4gPSB0cnVlOw0KPiA+PiAtICAgICAg IH0NCj4gPj4gLQ0KPiA+PiAgICAgICAgIHJldHVybiAwOw0KPiA+PiAgfQ0KPiA+Pg0KPiA+PiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oDQo+ID4+IGluZGV4IGI2YzQ4NGYu LjJhYzJkZTIgMTAwNjQ0DQo+ID4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jp bmdidWZmZXIuaA0KPiA+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVm ZmVyLmgNCj4gPj4gQEAgLTI2Nyw3ICsyNjcsNiBAQCBzdHJ1Y3QgIGludGVsX2VuZ2luZV9jcyB7 DQo+ID4+ICAgICAgICAgICovDQo+ID4+ICAgICAgICAgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpvdXRzdGFuZGluZ19sYXp5X3JlcXVlc3Q7DQo+ID4+ICAgICAgICAgYm9vbCBncHVfY2Fj aGVzX2RpcnR5Ow0KPiA+PiAtICAgICAgIGJvb2wgZmJjX2RpcnR5Ow0KPiA+Pg0KPiA+PiAgICAg ICAgIHdhaXRfcXVldWVfaGVhZF90IGlycV9xdWV1ZTsNCj4gPj4NCj4gPj4gLS0NCj4gPj4gMi4x LjQNCj4gPj4NCj4gPj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18NCj4gPj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdA0KPiA+PiBJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnDQo+ID4+IGh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngNCj4gPg0KPiA+IFRoYW5rcywNCj4gPg0KPiA+IC0tDQo+ID4g Um9kcmlnbyBWaXZpDQo+ID4gQmxvZzogaHR0cDovL2Jsb2cudml2aS5lbmcuYnINCj4gDQo+IA0K PiANCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK