Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp8553374imu; Tue, 4 Dec 2018 10:07:43 -0800 (PST) X-Google-Smtp-Source: AFSGD/XEOepEnb3MRGr1xARqZdGdfd3dn+XfEe7uvPII76xfwoELMKggURbXI8wBgMqUN0RU8f7T X-Received: by 2002:a17:902:4124:: with SMTP id e33mr20938397pld.236.1543946863904; Tue, 04 Dec 2018 10:07:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543946863; cv=none; d=google.com; s=arc-20160816; b=r9ZnhIzF4VPtvrmsouMOqZT+UpaWnWaZdpgxDZGUuMZSgNccemiudz+hHWlqMw8vKY fcTBRe9bZ1pAVBUsJxxizdB3IkO31UCnq+Q/8Sjr2pTXu2sKukbnD/0x8zn5rT2cOdbI Mu8JDs/xGXeYdheLxTBtWqMgEQxVwg6ntLLtMExHCrAeZgarwhXX3sKlKt1WtoVaoXPu pRGlBiOOSvycb/Z08unFi9R2NVrS/rpOdOnw43Kgy+7Powy07LXAmf7y4KoRlx6wTdr3 BVNDXEUQCNnB/h19/oCcHkuDhUhn5wRLA0n2g2Z6fhe4KnO/1koIf7foH/sgcA35WHT/ rWoQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from; bh=VJDEWXKugHNKbOypEAYJBxMtrqzvRpfJ2N2zgQxcESw=; b=AFuq5czRcArlpqtHeB2F69GmwN2F8dkLXrcxbYCnSbX3P/D0P+CS8B17trawJL2IsE YGXDA8G0V/Lp4KTPZ9LCUB3s9T2IcnuRPDdLD5lzifo/P/+ciRY6nOVRvh84FktNKTdL 1oB8LNjDBxB3e+15tTMA1ccgrKmy8knfrV/o9bP7XE9DYYx9YaHH8TPZaZoRd7pw17sX EXUp+Su+2OvHp/zsawP6mwcmRLpwr8TILb7ptdgCV672oHkkSBiSWRP1zYChQWyJDc+D 53rtKPtYvn77O74boYzFycffzSgvcd61czRj3L+vrNwicqYqUeiVDm4GlkBWyYdO2uRt RY4A== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m61si17662073plb.154.2018.12.04.10.07.28; Tue, 04 Dec 2018 10:07:43 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725994AbeLDSE1 (ORCPT + 99 others); Tue, 4 Dec 2018 13:04:27 -0500 Received: from mx07-00178001.pphosted.com ([62.209.51.94]:11655 "EHLO mx07-00178001.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725963AbeLDSE0 (ORCPT ); Tue, 4 Dec 2018 13:04:26 -0500 Received: from pps.filterd (m0046668.ppops.net [127.0.0.1]) by mx07-00178001.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id wB4I1NEs011325; Tue, 4 Dec 2018 19:04:17 +0100 Received: from beta.dmz-eu.st.com (beta.dmz-eu.st.com [164.129.1.35]) by mx07-00178001.pphosted.com with ESMTP id 2p3uhmsej2-1 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT); Tue, 04 Dec 2018 19:04:17 +0100 Received: from zeta.dmz-eu.st.com (zeta.dmz-eu.st.com [164.129.230.9]) by beta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 9CAF931; Tue, 4 Dec 2018 18:04:16 +0000 (GMT) Received: from Webmail-eu.st.com (sfhdag3node1.st.com [10.75.127.7]) by zeta.dmz-eu.st.com (STMicroelectronics) with ESMTP id 6490B5686; Tue, 4 Dec 2018 18:04:16 +0000 (GMT) Received: from SFHDAG7NODE2.st.com (10.75.127.20) by SFHDAG3NODE1.st.com (10.75.127.7) with Microsoft SMTP Server (TLS) id 15.0.1347.2; Tue, 4 Dec 2018 19:04:16 +0100 Received: from SFHDAG7NODE2.st.com ([fe80::d548:6a8f:2ca4:2090]) by SFHDAG7NODE2.st.com ([fe80::d548:6a8f:2ca4:2090%20]) with mapi id 15.00.1347.000; Tue, 4 Dec 2018 19:04:16 +0100 From: Loic PALLARDY To: Wendy Liang , Suman Anna CC: Bjorn Andersson , Ohad Ben-Cohen , "linux-remoteproc@vger.kernel.org" , Linux Kernel Mailing List , Arnaud POULIQUEN , Benjamin Gaignard Subject: RE: [PATCH v4 12/17] remoteproc: modify vring allocation to rely on centralized carveout allocator Thread-Topic: [PATCH v4 12/17] remoteproc: modify vring allocation to rely on centralized carveout allocator Thread-Index: AQHUJavkKiQgZmDpyUyOATXoSlfNXqUt8CgAgAEaCECACCKtgIA4bHcAgAAREmA= Date: Tue, 4 Dec 2018 18:04:16 +0000 Message-ID: References: <1532697292-14272-1-git-send-email-loic.pallardy@st.com> <1532697292-14272-13-git-send-email-loic.pallardy@st.com> <59fad1e3-11a2-939e-c47e-4351fb636e2d@ti.com> In-Reply-To: Accept-Language: fr-FR, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.75.127.48] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2018-12-04_08:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogV2VuZHkgTGlhbmcgPHN1 bm55bGlhbmdqeUBnbWFpbC5jb20+DQo+IFNlbnQ6IG1hcmRpIDQgZMOpY2VtYnJlIDIwMTggMTg6 NTcNCj4gVG86IFN1bWFuIEFubmEgPHMtYW5uYUB0aS5jb20+DQo+IENjOiBMb2ljIFBBTExBUkRZ IDxsb2ljLnBhbGxhcmR5QHN0LmNvbT47IEJqb3JuIEFuZGVyc3Nvbg0KPiA8Ympvcm4uYW5kZXJz c29uQGxpbmFyby5vcmc+OyBPaGFkIEJlbi1Db2hlbiA8b2hhZEB3aXplcnkuY29tPjsNCj4gbGlu dXgtcmVtb3RlcHJvY0B2Z2VyLmtlcm5lbC5vcmc7IExpbnV4IEtlcm5lbCBNYWlsaW5nIExpc3Qg PGxpbnV4LQ0KPiBrZXJuZWxAdmdlci5rZXJuZWwub3JnPjsgQXJuYXVkIFBPVUxJUVVFTiA8YXJu YXVkLnBvdWxpcXVlbkBzdC5jb20+Ow0KPiBCZW5qYW1pbiBHYWlnbmFyZCA8YmVuamFtaW4uZ2Fp Z25hcmRAbGluYXJvLm9yZz4NCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2NCAxMi8xN10gcmVtb3Rl cHJvYzogbW9kaWZ5IHZyaW5nIGFsbG9jYXRpb24gdG8gcmVseSBvbg0KPiBjZW50cmFsaXplZCBj YXJ2ZW91dCBhbGxvY2F0b3INCj4gDQo+IE9uIE1vbiwgT2N0IDI5LCAyMDE4IGF0IDE6MTkgUE0g U3VtYW4gQW5uYSA8cy1hbm5hQHRpLmNvbT4gd3JvdGU6DQo+ID4NCj4gPiBIaSBMb2ljLA0KPiA+ DQo+ID4gT24gMTAvMjQvMTggMTA6MTQgQU0sIExvaWMgUEFMTEFSRFkgd3JvdGU6DQo+ID4gPiBI aSBTdW1hbiwNCj4gPiA+DQo+ID4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ PiBGcm9tOiBTdW1hbiBBbm5hIDxzLWFubmFAdGkuY29tPg0KPiA+ID4+IFNlbnQ6IG1lcmNyZWRp IDI0IG9jdG9icmUgMjAxOCAwMjoxNA0KPiA+ID4+IFRvOiBMb2ljIFBBTExBUkRZIDxsb2ljLnBh bGxhcmR5QHN0LmNvbT47IGJqb3JuLmFuZGVyc3NvbkBsaW5hcm8ub3JnOw0KPiA+ID4+IG9oYWRA d2l6ZXJ5LmNvbQ0KPiA+ID4+IENjOiBsaW51eC1yZW1vdGVwcm9jQHZnZXIua2VybmVsLm9yZzsg bGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZzsNCj4gPiA+PiBBcm5hdWQgUE9VTElRVUVOIDxh cm5hdWQucG91bGlxdWVuQHN0LmNvbT47DQo+ID4gPj4gYmVuamFtaW4uZ2FpZ25hcmRAbGluYXJv Lm9yZw0KPiA+ID4+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjQgMTIvMTddIHJlbW90ZXByb2M6IG1v ZGlmeSB2cmluZyBhbGxvY2F0aW9uIHRvDQo+IHJlbHkgb24NCj4gPiA+PiBjZW50cmFsaXplZCBj YXJ2ZW91dCBhbGxvY2F0b3INCj4gPiA+Pg0KPiA+ID4+IE9uIDcvMjcvMTggODoxNCBBTSwgTG9p YyBQYWxsYXJkeSB3cm90ZToNCj4gPiA+Pj4gQ3VycmVudCB2ZXJzaW9uIG9mIHJwcm9jX2FsbG9j X3ZyaW5nIGZ1bmN0aW9uIHN1cHBvcnRzIG9ubHkgZHluYW1pYw0KPiB2cmluZw0KPiA+ID4+PiBh bGxvY2F0aW9uLg0KPiA+ID4+Pg0KPiA+ID4+PiBUaGlzIHBhdGNoIGFsbG93cyB0byBhbGxvY2F0 ZSB2cmluZ3MgYmFzZWQgb24gbWVtb3J5IHJlZ2lvbg0KPiBkZWNsYXRhdGlvbi4NCj4gPiA+Pj4g VnJpbmdzIGFyZSBub3cgbWFuYWdlIGxpa2UgbWVtb3J5IGNhcnZlb3V0cywgdG8gY29tbXVuaXpl DQo+IG1lbW9yeQ0KPiA+ID4+IG1hbmFnZW1lbnQNCj4gPiA+Pj4gY29kZSBpbiBycHJvY19hbGxv Y19yZWdpc3RlcmVkX2NhcnZlb3V0cygpLg0KPiA+ID4+Pg0KPiA+ID4+PiBBbGxvY2F0ZWQgYnVm ZmVyIGlzIHJldHJpZXZlZCBpbiBycF9maW5kX3ZxKCkgdGhhbmtzIHRvDQo+ID4gPj4+IHJwcm9j X2ZpbmRfY2FydmVvdXRfYnlfbmFtZSgpIGZ1bmN0aW9ucyBmb3IuDQo+ID4gPj4+DQo+ID4gPj4+ IFRoaXMgcGF0Y2ggc2V0cyB2cmluZ3MgbmFtZXMgdG8gdmRldiJ4InZyaW5nInkiIHdpdGggeCB2 ZGV2IGluZGV4IGluDQo+ID4gPj4+IHJlc291cmNlIHRhYmxlIGFuZCB5IHZyaW5nIGluZGV4IGlu IHZkZXYuIFRoaXMgd2lsbCBiZSB1cGRhdGVkIHdoZW4NCj4gPiA+Pj4gbmFtZSB3aWxsIGJlIGFz c29jaWF0ZWQgdG8gdmRldiBpbiBmaXJtd2FyZSByZXNvdXJjZSB0YWJsZS4NCj4gPiA+Pj4NCj4g PiA+Pj4gU2lnbmVkLW9mZi1ieTogTG9pYyBQYWxsYXJkeSA8bG9pYy5wYWxsYXJkeUBzdC5jb20+ DQo+ID4gPj4+IC0tLQ0KPiA+ID4+PiAgZHJpdmVycy9yZW1vdGVwcm9jL3JlbW90ZXByb2NfY29y ZS5jICAgICB8IDYxICsrKysrKysrKysrKysrKysrLQ0KPiAtLS0tLQ0KPiA+ID4+IC0tLS0tLS0t LQ0KPiA+ID4+PiAgZHJpdmVycy9yZW1vdGVwcm9jL3JlbW90ZXByb2NfaW50ZXJuYWwuaCB8ICAy ICsrDQo+ID4gPj4+ICBkcml2ZXJzL3JlbW90ZXByb2MvcmVtb3RlcHJvY192aXJ0aW8uYyAgIHwg MTQgKysrKysrKy0NCj4gPiA+Pj4gIGluY2x1ZGUvbGludXgvcmVtb3RlcHJvYy5oICAgICAgICAg ICAgICAgfCAgNiArKy0tDQo+ID4gPj4+ICA0IGZpbGVzIGNoYW5nZWQsIDUxIGluc2VydGlvbnMo KyksIDMyIGRlbGV0aW9ucygtKQ0KPiA+ID4+Pg0KPiA+ID4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9yZW1vdGVwcm9jL3JlbW90ZXByb2NfY29yZS5jDQo+ID4gPj4gYi9kcml2ZXJzL3JlbW90ZXBy b2MvcmVtb3RlcHJvY19jb3JlLmMNCj4gPiA+Pj4gaW5kZXggYzU0M2QwNC4uNGVkYzZmMCAxMDA2 NDQNCj4gPiA+Pj4gLS0tIGEvZHJpdmVycy9yZW1vdGVwcm9jL3JlbW90ZXByb2NfY29yZS5jDQo+ ID4gPj4+ICsrKyBiL2RyaXZlcnMvcmVtb3RlcHJvYy9yZW1vdGVwcm9jX2NvcmUuYw0KPiA+ID4+ PiBAQCAtNTMsNiArNTMsMTEgQEAgdHlwZWRlZiBpbnQgKCpycHJvY19oYW5kbGVfcmVzb3VyY2Vz X3QpKHN0cnVjdA0KPiA+ID4+IHJwcm9jICpycHJvYywNCj4gPiA+Pj4gIHR5cGVkZWYgaW50ICgq cnByb2NfaGFuZGxlX3Jlc291cmNlX3QpKHN0cnVjdCBycHJvYyAqcnByb2MsDQo+ID4gPj4+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqLCBpbnQgb2Zmc2V0LCBpbnQgYXZhaWwp Ow0KPiA+ID4+Pg0KPiA+ID4+PiArc3RhdGljIGludCBycHJvY19hbGxvY19jYXJ2ZW91dChzdHJ1 Y3QgcnByb2MgKnJwcm9jLA0KPiA+ID4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry dWN0IHJwcm9jX21lbV9lbnRyeSAqbWVtKTsNCj4gPiA+Pj4gK3N0YXRpYyBpbnQgcnByb2NfcmVs ZWFzZV9jYXJ2ZW91dChzdHJ1Y3QgcnByb2MgKnJwcm9jLA0KPiA+ID4+PiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgcnByb2NfbWVtX2VudHJ5ICptZW0pOw0KPiA+ID4+PiAr DQo+ID4gPj4+ICAvKiBVbmlxdWUgaW5kaWNlcyBmb3IgcmVtb3RlcHJvYyBkZXZpY2VzICovDQo+ ID4gPj4+ICBzdGF0aWMgREVGSU5FX0lEQShycHJvY19kZXZfaW5kZXgpOw0KPiA+ID4+Pg0KPiA+ ID4+PiBAQCAtMzEyLDIxICszMTcsMzMgQEAgaW50IHJwcm9jX2FsbG9jX3ZyaW5nKHN0cnVjdCBy cHJvY192ZGV2DQo+ICpydmRldiwNCj4gPiA+PiBpbnQgaSkNCj4gPiA+Pj4gICAgIHN0cnVjdCBk ZXZpY2UgKmRldiA9ICZycHJvYy0+ZGV2Ow0KPiA+ID4+PiAgICAgc3RydWN0IHJwcm9jX3ZyaW5n ICpydnJpbmcgPSAmcnZkZXYtPnZyaW5nW2ldOw0KPiA+ID4+PiAgICAgc3RydWN0IGZ3X3JzY192 ZGV2ICpyc2M7DQo+ID4gPj4+IC0gICBkbWFfYWRkcl90IGRtYTsNCj4gPiA+Pj4gLSAgIHZvaWQg KnZhOw0KPiA+ID4+PiAgICAgaW50IHJldCwgc2l6ZSwgbm90aWZ5aWQ7DQo+ID4gPj4+ICsgICBz dHJ1Y3QgcnByb2NfbWVtX2VudHJ5ICptZW07DQo+ID4gPj4+DQo+ID4gPj4+ICAgICAvKiBhY3R1 YWwgc2l6ZSBvZiB2cmluZyAoaW4gYnl0ZXMpICovDQo+ID4gPj4+ICAgICBzaXplID0gUEFHRV9B TElHTih2cmluZ19zaXplKHJ2cmluZy0+bGVuLCBydnJpbmctPmFsaWduKSk7DQo+ID4gPj4+DQo+ ID4gPj4+IC0gICAvKg0KPiA+ID4+PiAtICAgICogQWxsb2NhdGUgbm9uLWNhY2hlYWJsZSBtZW1v cnkgZm9yIHRoZSB2cmluZy4gSW4gdGhlIGZ1dHVyZQ0KPiA+ID4+PiAtICAgICogdGhpcyBjYWxs IHdpbGwgYWxzbyBjb25maWd1cmUgdGhlIElPTU1VIGZvciB1cw0KPiA+ID4+PiAtICAgICovDQo+ ID4gPj4+IC0gICB2YSA9IGRtYV9hbGxvY19jb2hlcmVudChkZXYtPnBhcmVudCwgc2l6ZSwgJmRt YSwgR0ZQX0tFUk5FTCk7DQo+ID4gPj4+IC0gICBpZiAoIXZhKSB7DQo+ID4gPj4+IC0gICAgICAg ICAgIGRldl9lcnIoZGV2LT5wYXJlbnQsICJkbWFfYWxsb2NfY29oZXJlbnQgZmFpbGVkXG4iKTsN Cj4gPiA+Pj4gLSAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+ID4gPj4+ICsgICByc2MgPSAo dm9pZCAqKXJwcm9jLT50YWJsZV9wdHIgKyBydmRldi0+cnNjX29mZnNldDsNCj4gPiA+Pj4gKw0K PiA+ID4+PiArICAgLyogU2VhcmNoIGZvciBwcmUtcmVnaXN0ZXJlZCBjYXJ2ZW91dCAqLw0KPiA+ ID4+PiArICAgbWVtID0gcnByb2NfZmluZF9jYXJ2ZW91dF9ieV9uYW1lKHJwcm9jLCAidmRldiVk dnJpbmclZCIsDQo+ID4gPj4gcnZkZXYtPmluZGV4LA0KPiA+ID4+PiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGkpOw0KPiA+ID4+PiArICAgaWYgKG1lbSkgew0KPiA+ID4+ PiArICAgICAgICAgICBpZiAocnByb2NfY2hlY2tfY2FydmVvdXRfZGEocnByb2MsIG1lbSwgcnNj LT52cmluZ1tpXS5kYSwNCj4gPiA+PiBzaXplKSkNCj4gPiA+Pj4gKyAgICAgICAgICAgICAgICAg ICByZXR1cm4gLUVOT01FTTsNCj4gPiA+Pj4gKyAgIH0gZWxzZSB7DQo+ID4gPj4+ICsgICAgICAg ICAgIC8qIFJlZ2lzdGVyIGNhcnZlb3V0IGluIGluIGxpc3QgKi8NCj4gPiA+Pj4gKyAgICAgICAg ICAgbWVtID0gcnByb2NfbWVtX2VudHJ5X2luaXQoZGV2LCAwLCAwLCBzaXplLCByc2MtDQo+ID4g Pj4+IHZyaW5nW2ldLmRhLA0KPiA+ID4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBycHJvY19hbGxvY19jYXJ2ZW91dCwNCj4gPiA+Pj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcnByb2NfcmVsZWFzZV9jYXJ2ZW91dCwNCj4gPiA+Pj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZkZXYlZHZyaW5nJWQiLA0KPiA+ ID4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydmRldi0+aW5kZXgs IGkpOw0KPiA+ID4+PiArICAgICAgICAgICBpZiAoIW1lbSkgew0KPiA+ID4+PiArICAgICAgICAg ICAgICAgICAgIGRldl9lcnIoZGV2LCAiQ2FuJ3QgYWxsb2NhdGUgbWVtb3J5IGVudHJ5DQo+ID4g Pj4gc3RydWN0dXJlXG4iKTsNCj4gPiA+Pj4gKyAgICAgICAgICAgICAgICAgICByZXR1cm4gLUVO T01FTTsNCj4gPiA+Pj4gKyAgICAgICAgICAgfQ0KPiA+ID4+PiArDQo+ID4gPj4+ICsgICAgICAg ICAgIHJwcm9jX2FkZF9jYXJ2ZW91dChycHJvYywgbWVtKTsNCj4gPiA+Pj4gICAgIH0NCj4gPiA+ Pj4NCj4gPiA+Pj4gICAgIC8qDQo+ID4gPj4+IEBAIC0zMzcsNyArMzU0LDYgQEAgaW50IHJwcm9j X2FsbG9jX3ZyaW5nKHN0cnVjdCBycHJvY192ZGV2ICpydmRldiwNCj4gaW50IGkpDQo+ID4gPj4+ ICAgICByZXQgPSBpZHJfYWxsb2MoJnJwcm9jLT5ub3RpZnlpZHMsIHJ2cmluZywgMCwgMCwgR0ZQ X0tFUk5FTCk7DQo+ID4gPj4+ICAgICBpZiAocmV0IDwgMCkgew0KPiA+ID4+PiAgICAgICAgICAg ICBkZXZfZXJyKGRldiwgImlkcl9hbGxvYyBmYWlsZWQ6ICVkXG4iLCByZXQpOw0KPiA+ID4+PiAt ICAgICAgICAgICBkbWFfZnJlZV9jb2hlcmVudChkZXYtPnBhcmVudCwgc2l6ZSwgdmEsIGRtYSk7 DQo+ID4gPj4+ICAgICAgICAgICAgIHJldHVybiByZXQ7DQo+ID4gPj4+ICAgICB9DQo+ID4gPj4+ ICAgICBub3RpZnlpZCA9IHJldDsNCj4gPiA+Pj4gQEAgLTM0NiwyMSArMzYyLDkgQEAgaW50IHJw cm9jX2FsbG9jX3ZyaW5nKHN0cnVjdCBycHJvY192ZGV2DQo+ICpydmRldiwgaW50DQo+ID4gPj4g aSkNCj4gPiA+Pj4gICAgIGlmIChub3RpZnlpZCA+IHJwcm9jLT5tYXhfbm90aWZ5aWQpDQo+ID4g Pj4+ICAgICAgICAgICAgIHJwcm9jLT5tYXhfbm90aWZ5aWQgPSBub3RpZnlpZDsNCj4gPiA+Pj4N Cj4gPiA+Pj4gLSAgIGRldl9kYmcoZGV2LCAidnJpbmclZDogdmEgJXBLIGRtYSAlcGFkIHNpemUg MHgleCBpZHIgJWRcbiIsDQo+ID4gPj4+IC0gICAgICAgICAgIGksIHZhLCAmZG1hLCBzaXplLCBu b3RpZnlpZCk7DQo+ID4gPj4+IC0NCj4gPiA+Pj4gLSAgIHJ2cmluZy0+dmEgPSB2YTsNCj4gPiA+ Pj4gLSAgIHJ2cmluZy0+ZG1hID0gZG1hOw0KPiA+ID4+PiAgICAgcnZyaW5nLT5ub3RpZnlpZCA9 IG5vdGlmeWlkOw0KPiA+ID4+Pg0KPiA+ID4+PiAtICAgLyoNCj4gPiA+Pj4gLSAgICAqIExldCB0 aGUgcnByb2Mga25vdyB0aGUgbm90aWZ5aWQgYW5kIGRhIG9mIHRoaXMgdnJpbmcuDQo+ID4gPj4+ IC0gICAgKiBOb3QgYWxsIHBsYXRmb3JtcyB1c2UgZG1hX2FsbG9jX2NvaGVyZW50IHRvIGF1dG9t YXRpY2FsbHkNCj4gPiA+Pj4gLSAgICAqIHNldCB1cCB0aGUgaW9tbXUuIEluIHRoaXMgY2FzZSB0 aGUgZGV2aWNlIGFkZHJlc3MgKGRhKSB3aWxsDQo+ID4gPj4+IC0gICAgKiBob2xkIHRoZSBwaHlz aWNhbCBhZGRyZXNzIGFuZCBub3QgdGhlIGRldmljZSBhZGRyZXNzLg0KPiA+ID4+PiAtICAgICov DQo+ID4gPj4+IC0gICByc2MgPSAodm9pZCAqKXJwcm9jLT50YWJsZV9wdHIgKyBydmRldi0+cnNj X29mZnNldDsNCj4gPiA+Pj4gLSAgIHJzYy0+dnJpbmdbaV0uZGEgPSBkbWE7DQo+ID4gPj4+ICsg ICAvKiBMZXQgdGhlIHJwcm9jIGtub3cgdGhlIG5vdGlmeWlkIG9mIHRoaXMgdnJpbmcuKi8NCj4g PiA+Pj4gICAgIHJzYy0+dnJpbmdbaV0ubm90aWZ5aWQgPSBub3RpZnlpZDsNCj4gPiA+Pj4gICAg IHJldHVybiAwOw0KPiA+ID4+PiAgfQ0KPiA+ID4+PiBAQCAtMzkyLDEyICszOTYsMTAgQEAgaW50 IHJwcm9jX2FsbG9jX3ZyaW5nKHN0cnVjdCBycHJvY192ZGV2DQo+ICpydmRldiwNCj4gPiA+PiBp bnQgaSkNCj4gPiA+Pj4NCj4gPiA+Pj4gIHZvaWQgcnByb2NfZnJlZV92cmluZyhzdHJ1Y3QgcnBy b2NfdnJpbmcgKnJ2cmluZykNCj4gPiA+Pj4gIHsNCj4gPiA+Pj4gLSAgIGludCBzaXplID0gUEFH RV9BTElHTih2cmluZ19zaXplKHJ2cmluZy0+bGVuLCBydnJpbmctPmFsaWduKSk7DQo+ID4gPj4+ ICAgICBzdHJ1Y3QgcnByb2MgKnJwcm9jID0gcnZyaW5nLT5ydmRldi0+cnByb2M7DQo+ID4gPj4+ ICAgICBpbnQgaWR4ID0gcnZyaW5nLT5ydmRldi0+dnJpbmcgLSBydnJpbmc7DQo+ID4gPj4+ICAg ICBzdHJ1Y3QgZndfcnNjX3ZkZXYgKnJzYzsNCj4gPiA+Pj4NCj4gPiA+Pj4gLSAgIGRtYV9mcmVl X2NvaGVyZW50KHJwcm9jLT5kZXYucGFyZW50LCBzaXplLCBydnJpbmctPnZhLCBydnJpbmctDQo+ ID4gPj4+IGRtYSk7DQo+ID4gPj4+ICAgICBpZHJfcmVtb3ZlKCZycHJvYy0+bm90aWZ5aWRzLCBy dnJpbmctPm5vdGlmeWlkKTsNCj4gPiA+Pg0KPiA+ID4+IEFsc28sIEkgYW0gbm90IHN1cmUgaWYg RldfUlNDX0FERFJfQU5ZIHNlbWFudGljcyB3ZXJlIGVuZm9yY2VkDQo+ID4gPj4gcHJldmlvdXNs eSBvbiB0aGUgdnJpbmcgZGEuIEl0IHdhcyBzaW1wbHkgb3ZlcndyaXR0ZW4gaXJyZXNwZWN0aXZl IG9mDQo+ID4gPj4gdGhlIHZhbHVlLiBOb3csIEkgYW0gcnVubmluZyBhZ2FpbiBpbnRvIHRoZSAi YmFkIGNhcnZlb3V0IHJzYw0KPiA+ID4+IGNvbmZpZ3VyYXRpb24gdmFsdWUiIGR1ZSB0byB0aGUg aW9tbXVfZG9tYWluX2NoZWNrIGlmDQo+ID4gPj4gIUZXX1JTQ19BRERSX0FOWS4NCj4gPiA+DQo+ ID4NCj4gPiBKdXN0IHJlYWxpemVkIHRoYXQgSSBtaXNzZWQgcmVzcG9uZGluZyBvbiB0aGlzIHRo cmVhZCBsYXN0IHdlZWsuDQo+ID4NCj4gPiA+IFdoZW4gYXJlIHlvdSBydW5uaW5nIGludG8gdGhl ICJiYWQgY2FydmVvdXQgcnNjIGNvbmZpZ3VyYXRpb24gdmFsdWUiID8NCj4gPiA+IFRoaXMgcGF0 Y2ggaXMgY3JlYXRpbmcgb25lIGNhcnZlb3V0IHBlciB2cmluZyB0byByZWx5IG9uIGdlbmVyaWMg Y2FydmVvdXQNCj4gYWxsb2NhdG9yLg0KPiA+ID4gVGhlbiBjYXJ2ZW91dCBpcyByZXRyaWV2ZWQg ZnJvbSBjYXJ2ZW91dCAgbGlzdCBhbmQgdnJpbmcgcmVzb3VyY2UgdGFibGUNCj4gaW5mb3JtYXRp b24gdXBkYXRlZC4NCj4gPiA+DQo+ID4gPiBJZiB0aGUgZGEgb2YgdGhlIGNhcnZlb3V0IHdhcyBm aXhlZCBpbiB0aGUgcmVzb3VyY2UgdGFibGUsIGl0IGlzIG5vcm1hbCB5b3UNCj4gaGF2ZSB0aGlz IGVycm9yLg0KPiA+DQo+ID4gWWVzLCBhbmQgaWYgdGhlIHZyaW5nIGRhIHZhbHVlIGlzIEZXX1JT Q19BRERSX0FOWSwgdGhlbiBJIGRvbid0IHJ1biBpbnRvDQo+ID4gdGhpcyBwYXJ0aWN1bGFyIGVy cm9yLiBJdCdzIGp1c3QgdGhhdCB0aGUgc2VtYW50aWNzIG9mIHZyaW5nIGRhIGlzIG9wZW4NCj4g PiBwcmV2aW91c2x5LCBhbmQgbXkgYWJvdmUgY29tbWVudCBiZWluZyAwIHdhcyBiZWluZyB1c2Vk IGFzIGEgcmVzZXQgdmFsdWUNCj4gPiBhcyB3ZWxsLg0KPiA+DQo+ID4gPiBUbyBzb2x2ZSB0aGF0 IFNUIGRyaXZlciBpcyByZWdpc3RlcmluZyBvbmUgZml4ZWQgY2FydmVvdXQgcGVyIHZyaW5nICh3 aXRoIHRoZQ0KPiByaWdodCBuYW1lIHRvZGF5KQ0KPiA+DQo+ID4gWWVhaCwgd2Ugc3RpbGwgZXhw ZWN0IHRvIGFsbG9jYXRlIHRoZXNlIGR5bmFtaWNhbGx5LCBzbyB0aGVyZSB3b24ndCBiZQ0KPiA+ IGFueSByZWdpc3RyYXRpb24gbmVlZGVkLg0KPiA+DQo+ID4gPiBJdCBpcyB0aGUgc2FtZSBkaXNj dXNzaW9uIGFzIHdpdGggUGF0Y2ggMS4NCj4gPg0KPiA+IFJpZ2h0LCBleGNlcHQgdGhhdCB3ZSBo YXZlIGEgZGEgZnJvbSBSU0NfQ0FSVkVPVVQgYW5kIGEgZGEgZnJvbSB2cmluZywNCj4gPiBhbmQg dGhlIHByZXZpb3VzIGNvZGUgaGFkIHNvbWUgc2xpZ2h0IGRpZmZlcmVuY2VzIGJldHdlZW4gdGhl IHR3by4gVGhlDQo+ID4gdnJpbmcgZGEgc2VtYW50aWNzIHdlcmUgbmV2ZXIgc2V0IGJlZm9yZSAo dmFsdWUgd2FzIGFsd2F5cyBiZWluZw0KPiA+IG92ZXJ3cml0dGVuLCBhbHNvIGl0IGRpZG4ndCBo YXZlIGEgcGEgZmllbGQpLCB3aGVyZWFzIHRoZSByZW1vdGVwcm9jLmgNCj4gPiBkb2N1bWVudGF0 aW9uIGRpZCBtZW50aW9uIGFib3V0IEZXX1JTQ19BRERSX0FOWSAod2l0aG91dCBhbnkNCj4gYmFj a2luZw0KPiA+IGltcGxlbWVudGF0aW9uIHByZXZpb3VzbHkpIGZvciB0aGUgUlNDX0NBUlZFT1VU IGRhLCB3aXRoIHRoZSBlbnRyeSBhbHNvDQo+ID4gaGF2aW5nIGEgZmllbGQgZm9yIHBhLg0KPiA+ DQo+ID4gSWYgd2UgY29uc2lkZXIgd2UgY2FuJ3QgY2hhbmdlIGZpeGVkIGNvcHJvY2Vzc29yIGFk ZHJlc3MgcmVxdWVzdHMsIHJwcm9jDQo+ID4gY29yZSBzaG91bGQgc3RvcCBpdHMgZXhlY3V0aW9u Lg0KPiA+ID4gSXQgaXMgdGhlIHJlc3BvbnNpYmlsaXR5IG9mIHBsYXRmb3JtIGRyaXZlciB0byBy ZWdpc3RlciB0aGUgcmlnaHQgbWVtb3J5DQo+IHJlZ2lvbnMuDQo+ID4gPiBUaGF0J3Mgd2hhdCB3 ZSBkaXNjdXNzZWQgd2l0aCB5b3UgYW5kIEJpbGwgaW4gT3BlbkFNUCBmb3J1bS4NCj4gPiA+IFRJ IHVzZWNhc2Ugd2FzIHRvIGhhdmUgdGhlIHNhbWUgRFNQIGZpcm13YXJlIHdpdGggdGhlIHNhbWUg cmVzb3VyY2UNCj4gdGFibGUgYmVpbmcgYWJsZSB0byBydW4gb24gYW55IERTUC4NCj4gPg0KPiA+ IFllYWgsIGl0IG9ubHkgY292ZXJzIG9uZSBvZiB0aGUgdXNlY2FzZXMvcGxhdGZvcm1zIChLZXlz dG9uZSAyIERTUA0KPiA+IHBsYXRmb3JtcykuIEFuZCB0aGlzIG9ubHkgd29ya2VkIG9uIHRoZXNl IHBsYXRmb3JtcyBzbyBmYXIgYmVjYXVzZSB3ZQ0KPiA+IG9ubHkgd2VyZSB1c2luZyBpbnRlcm5h bCBtZW1vcmllcyAtIHNvIHRoZXJlIHdlcmUgbm8gUlNDX0NBUlZFT1VUDQo+ID4gZW50cmllcyB3 aXRoIHZhbGlkIGRhLiBPdXIgRGF2aW5jaSBEU1AgaXMgYSBzaW5nbGUgaW5zdGFuY2UgYW5kIHdl IGRvDQo+ID4gaGF2ZSBhIFJTQ19DQVJWRU9VVCB0aGVyZSwgd2hpY2ggZmFpbHMgZHVlIHRvIHRo ZSBzYW1lIFBhdGNoIDEgbG9naWMNCj4gPiBoZXJlIGFzIHdlbGwuDQo+ID4NCj4gPiA+IEluIHRo YXQgY2FzZSBlYWNoIERTUCBwbGF0Zm9ybSBkcml2ZXIgaGFzIHRvIHByb3ZpZGUgdGhlIHJpZ2h0 IG1lbW9yeQ0KPiByZWdpb24gY29uZmlndXJhdGlvbiB3aXRoIHRoZSBjb3JyZWN0IHBhIHRvIGRh Lg0KPiA+ID4NCj4gPiA+Pg0KPiA+ID4+IEZXSVcsIHRoZSBycHJvY19mcmVlX3ZyaW5nIHdhcyBh Y3R1YWxseSB1c2luZyB0aGUgdmFsdWUgMCB3aGVuDQo+IHJlc2V0dGluZy4NCj4gPiA+DQo+ID4g PiBJdCBpcyBubyBtb3JlIG5lZWRlZCBhcyB0aGUgY2FydmVvdXQgbGlzdCBpcyBjbGVhcmVkIGF0 IGVhY2ggc3RvcCBhbmQNCj4gcmVjcmVhdGVkIGF0IGVhY2ggc3RhcnQuDQo+ID4gPiBNb3Jlb3Zl ciByZXNvdXJjZSB0YWJsZSAoYW5kIGZpcm13YXJlKSBpcyByZWxvYWRlZCBhdCBlYWNoIGNvcHJv Y2Vzc29yDQo+IHN0YXJ0Lg0KPiA+DQo+ID4gWWVzLCBhZ3JlZWQuIFRoaXMgaXMgYWJvdXQgdGhl IHNlbWFudGljcyBvZiB2cmluZyBkYSBmcm9tIGJlZm9yZSAobm8NCj4gPiBlbmZvcmNlbWVudCB0 byBzdHJpY3QgZW5mb3JjZW1lbnQgb2YgRldfUlNDX0FERFJfQU5ZKS4gVGhlDQo+IG92ZXJ3cml0 aW5nDQo+ID4gb24gZGEgZmllbGQgb24gdnJpbmdzIHdpdGggdGhlIGRtYSBhZGRyZXNzIGlzIGFj dHVhbGx5IGEgbWlzdGFrZSwgd2hpY2gNCj4gPiB3ZSBhcmUgdHJ5aW5nIHRvIHByb2xpZmVyYXRl IG1vcmUgbm93LiBJdCBhbGwgY29tZXMgZG93biB0byB0aGUgZmFjdCBvZg0KPiA+IHRyZWF0aW5n IGRhIGFzIGRtYSBhZGRyZXNzIHdoZW4gaXQgaXMgbm90IGdvaW5nIHRvIGJlIHRoZSBjYXNlIG9u IGFsbA0KPiA+IHJlbW90ZXByb2NzLg0KPiBbV2VuZHldIEFyZSB3ZSBhc3N1bWluZyB0aGF0IHRo ZSB2cmluZyBkYSBpcyBhbHdheXMgcHJlZGVmaW5lZC4NCj4gQnV0IGluIHRoZSBMaW51eCBrZXJu ZWwgc2lkZSwgd2l0aG91dCBJT01NVSBjYXNlLCB3ZSB1c2UNCj4gZG1hX2FsbG9jX2NvaGVyZW50 KCkgdG8NCj4gYWxsb2NhdGUgZm9yIHZyaW5nIGFkZHJlc3MuIEluIHRoaXMgY2FzZSwgdGhlcmUg aXMgbm8gZ3VyYW50ZWUgdGhlDQo+IGFsbG9jYXRlZCB2cmluZ3MNCj4gYWRkcmVzcyBtYXRjaGVz IHRoZSBwcmVkZWZpbmVkIHZhbHVlLg0KPiBPciB3ZSBhc3N1bWUgdGhhdCBvbmx5IHZkZXYgZGV2 aWNlcyBvZiB0aGUgcmVtb3RlcHJvYyBjYW4gdXNlDQo+IGRtYV9hbGxvY19jb2hlcmVudCgpDQo+ IGJ1dCBub3Qgc3ViZGV2aWNlcz8NCj4gT3Igd2UgY2FuIHN0aWxsIHN0b3JlIHRoZSByc2MgdGFi bGUgZGEgcG9pbnRlci4gQW5kIGluc3RlYWQgb2YgYWx3YXlzDQo+IHNldCBkYSB3aXRoIGRtYSBh ZGRyZXNzDQo+IHdlIGNhbiBwYXNzIHRoZSBkbWEgYWRkcmVzcyB0byByZW1vdGVwcm9jIGFuZCBs ZXQgcmVtb3RlcHJvYyB0byBkbyB0aGUNCj4gcGEgdG8gZGEgY29udmVyc2lvbiBpZg0KPiByZXF1 aXJlZC4NCg0KSGkgV2VuZHksDQpJIHB1c2hlZCBhIGNvcnJlY3Rpb24gcGF0Y2ggd2hpY2ggY2hl Y2sgZG1hIGFkZHJlc3Mgd2l0aCByZXF1ZXN0ZWQgZGEgZnJvbSByZXNvdXJjZSB0YWJsZS4NCklm IG5vIG1hdGNoLCBhIHdhcm5pbmcgaXMgZGlzcGxheSwgYnV0IHRoZSBzZXF1ZW5jZSBpcyBub3Qg c3RvcHBlZCBhcyByZXF1ZXN0ZWQgYnkgU3VtYW4uDQpJIGhhdmUgYSBuZXh0IHBhdGNoIHdoaWNo IGlzIGFkZGluZyBhIHJwcm9jX3BhX3RvX2RhKCkgcGxhdGZvcm0gZGVwZW5kZW50IGZ1bmN0aW9u IHRvIGNvbmNlcnQgYSBwYSBpbiBkYSB1bmRlcnN0YW5kYWJsZSBieSBycHJvYyBmaXJtd2FyZS4N ClRoZSBnb2FsIGlzIHRvIGFuc3dlciBTdW1hbiByZXF1ZXN0LCB0aGF0IHNvbWUgcnByb2MgY2Fu IGNvbmZpZ3VyZSBhbiBvZmZzZXQgaW4gSFcgdG8gYWNjZXNzIHBhcnQgb2YgdGhlIERSUiBvciBh biBtZW1vcnkuDQpPbiBhbm90aGVyIHNpZGUsIEknbSBsb29raW5nIGhvdyB0byBkbyB0aGUgc2Ft ZSB3aXRoIHRoZSBjYXJ2ZW91dCByZWdpc3RyYXRpb24gZnVuY3Rpb25zLi4uDQoNClJlZ2FyZHMs DQpMb2ljDQoNCg0KPiANCj4gVGhhbmtzLA0KPiBXZW5keQ0KPiA+DQo+ID4gcmVnYXJkcw0KPiA+ IFN1bWFuDQo+ID4NCj4gPiA+DQo+ID4gPiBSZWdhcmRzLA0KPiA+ID4gTG9pYw0KPiA+ID4+DQo+ ID4gPj4gcmVnYXJkcw0KPiA+ID4+IFN1bWFuDQo+ID4gPj4NCj4gPiA+Pj4NCj4gPiA+Pj4gICAg IC8qIHJlc2V0IHJlc291cmNlIGVudHJ5IGluZm8gKi8NCj4gPiA+Pj4gQEAgLTQ4NCw2ICs0ODYs NyBAQCBzdGF0aWMgaW50IHJwcm9jX2hhbmRsZV92ZGV2KHN0cnVjdCBycHJvYw0KPiAqcnByb2Ms DQo+ID4gPj4gc3RydWN0IGZ3X3JzY192ZGV2ICpyc2MsDQo+ID4gPj4+DQo+ID4gPj4+ICAgICBy dmRldi0+aWQgPSByc2MtPmlkOw0KPiA+ID4+PiAgICAgcnZkZXYtPnJwcm9jID0gcnByb2M7DQo+ ID4gPj4+ICsgICBydmRldi0+aW5kZXggPSBycHJvYy0+bmJfdmRldisrOw0KPiA+ID4+Pg0KPiA+ ID4+PiAgICAgLyogcGFyc2UgdGhlIHZyaW5ncyAqLw0KPiA+ID4+PiAgICAgZm9yIChpID0gMDsg aSA8IHJzYy0+bnVtX29mX3ZyaW5nczsgaSsrKSB7DQo+ID4gPj4+IEBAIC01MjgsOSArNTMxLDYg QEAgdm9pZCBycHJvY192ZGV2X3JlbGVhc2Uoc3RydWN0IGtyZWYgKnJlZikNCj4gPiA+Pj4NCj4g PiA+Pj4gICAgIGZvciAoaWQgPSAwOyBpZCA8IEFSUkFZX1NJWkUocnZkZXYtPnZyaW5nKTsgaWQr Kykgew0KPiA+ID4+PiAgICAgICAgICAgICBydnJpbmcgPSAmcnZkZXYtPnZyaW5nW2lkXTsNCj4g PiA+Pj4gLSAgICAgICAgICAgaWYgKCFydnJpbmctPnZhKQ0KPiA+ID4+PiAtICAgICAgICAgICAg ICAgICAgIGNvbnRpbnVlOw0KPiA+ID4+PiAtDQo+ID4gPj4+ICAgICAgICAgICAgIHJwcm9jX2Zy ZWVfdnJpbmcocnZyaW5nKTsNCj4gPiA+Pj4gICAgIH0NCj4gPiA+Pj4NCj4gPiA+Pj4gQEAgLTEz MjIsNiArMTMyMiw5IEBAIHN0YXRpYyBpbnQgcnByb2NfZndfYm9vdChzdHJ1Y3QgcnByb2MgKnJw cm9jLA0KPiA+ID4+IGNvbnN0IHN0cnVjdCBmaXJtd2FyZSAqZncpDQo+ID4gPj4+ICAgICAvKiBy ZXNldCBtYXhfbm90aWZ5aWQgKi8NCj4gPiA+Pj4gICAgIHJwcm9jLT5tYXhfbm90aWZ5aWQgPSAt MTsNCj4gPiA+Pj4NCj4gPiA+Pj4gKyAgIC8qIHJlc2V0IGhhbmRsZWQgdmRldiAqLw0KPiA+ID4+ PiArICAgcnByb2MtPm5iX3ZkZXYgPSAwOw0KPiA+ID4+PiArDQo+ID4gPj4+ICAgICAvKiBoYW5k bGUgZncgcmVzb3VyY2VzIHdoaWNoIGFyZSByZXF1aXJlZCB0byBib290IHJwcm9jICovDQo+ID4g Pj4+ICAgICByZXQgPSBycHJvY19oYW5kbGVfcmVzb3VyY2VzKHJwcm9jLCBycHJvY19sb2FkaW5n X2hhbmRsZXJzKTsNCj4gPiA+Pj4gICAgIGlmIChyZXQpIHsNCj4gPiA+Pj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvcmVtb3RlcHJvYy9yZW1vdGVwcm9jX2ludGVybmFsLmgNCj4gPiA+PiBiL2RyaXZl cnMvcmVtb3RlcHJvYy9yZW1vdGVwcm9jX2ludGVybmFsLmgNCj4gPiA+Pj4gaW5kZXggNzU3MGJl Yi4uZjZjYWQyNCAxMDA2NDQNCj4gPiA+Pj4gLS0tIGEvZHJpdmVycy9yZW1vdGVwcm9jL3JlbW90 ZXByb2NfaW50ZXJuYWwuaA0KPiA+ID4+PiArKysgYi9kcml2ZXJzL3JlbW90ZXByb2MvcmVtb3Rl cHJvY19pbnRlcm5hbC5oDQo+ID4gPj4+IEBAIC02MCw2ICs2MCw4IEBAIHN0cnVjdCBkZW50cnkg KnJwcm9jX2NyZWF0ZV90cmFjZV9maWxlKGNvbnN0IGNoYXINCj4gPiA+PiAqbmFtZSwgc3RydWN0 IHJwcm9jICpycHJvYywNCj4gPiA+Pj4gIGludCBycHJvY19lbGZfbG9hZF9yc2NfdGFibGUoc3Ry dWN0IHJwcm9jICpycHJvYywgY29uc3Qgc3RydWN0IGZpcm13YXJlDQo+ID4gPj4gKmZ3KTsNCj4g PiA+Pj4gIHN0cnVjdCByZXNvdXJjZV90YWJsZSAqcnByb2NfZWxmX2ZpbmRfbG9hZGVkX3JzY190 YWJsZShzdHJ1Y3QgcnByb2MNCj4gPiA+PiAqcnByb2MsDQo+ID4gPj4+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBmaXJtd2Fy ZQ0KPiA+ID4+ICpmdyk7DQo+ID4gPj4+ICtzdHJ1Y3QgcnByb2NfbWVtX2VudHJ5ICoNCj4gPiA+ Pj4gK3Jwcm9jX2ZpbmRfY2FydmVvdXRfYnlfbmFtZShzdHJ1Y3QgcnByb2MgKnJwcm9jLCBjb25z dCBjaGFyDQo+ICpuYW1lLA0KPiA+ID4+IC4uLik7DQo+ID4gPj4+DQo+ID4gPj4+ICBzdGF0aWMg aW5saW5lDQo+ID4gPj4+ICBpbnQgcnByb2NfZndfc2FuaXR5X2NoZWNrKHN0cnVjdCBycHJvYyAq cnByb2MsIGNvbnN0IHN0cnVjdCBmaXJtd2FyZQ0KPiAqZncpDQo+ID4gPj4+IGRpZmYgLS1naXQg YS9kcml2ZXJzL3JlbW90ZXByb2MvcmVtb3RlcHJvY192aXJ0aW8uYw0KPiA+ID4+IGIvZHJpdmVy cy9yZW1vdGVwcm9jL3JlbW90ZXByb2NfdmlydGlvLmMNCj4gPiA+Pj4gaW5kZXggYmJlY2Q0NC4u ZGUyMWY2MiAxMDA2NDQNCj4gPiA+Pj4gLS0tIGEvZHJpdmVycy9yZW1vdGVwcm9jL3JlbW90ZXBy b2NfdmlydGlvLmMNCj4gPiA+Pj4gKysrIGIvZHJpdmVycy9yZW1vdGVwcm9jL3JlbW90ZXByb2Nf dmlydGlvLmMNCj4gPiA+Pj4gQEAgLTc2LDcgKzc2LDkgQEAgc3RhdGljIHN0cnVjdCB2aXJ0cXVl dWUgKnJwX2ZpbmRfdnEoc3RydWN0DQo+ID4gPj4gdmlydGlvX2RldmljZSAqdmRldiwNCj4gPiA+ Pj4gICAgIHN0cnVjdCBycHJvY192ZGV2ICpydmRldiA9IHZkZXZfdG9fcnZkZXYodmRldik7DQo+ ID4gPj4+ICAgICBzdHJ1Y3QgcnByb2MgKnJwcm9jID0gdmRldl90b19ycHJvYyh2ZGV2KTsNCj4g PiA+Pj4gICAgIHN0cnVjdCBkZXZpY2UgKmRldiA9ICZycHJvYy0+ZGV2Ow0KPiA+ID4+PiArICAg c3RydWN0IHJwcm9jX21lbV9lbnRyeSAqbWVtOw0KPiA+ID4+PiAgICAgc3RydWN0IHJwcm9jX3Zy aW5nICpydnJpbmc7DQo+ID4gPj4+ICsgICBzdHJ1Y3QgZndfcnNjX3ZkZXYgKnJzYzsNCj4gPiA+ Pj4gICAgIHN0cnVjdCB2aXJ0cXVldWUgKnZxOw0KPiA+ID4+PiAgICAgdm9pZCAqYWRkcjsNCj4g PiA+Pj4gICAgIGludCBsZW4sIHNpemU7DQo+ID4gPj4+IEBAIC04OCw4ICs5MCwxNCBAQCBzdGF0 aWMgc3RydWN0IHZpcnRxdWV1ZSAqcnBfZmluZF92cShzdHJ1Y3QNCj4gPiA+PiB2aXJ0aW9fZGV2 aWNlICp2ZGV2LA0KPiA+ID4+PiAgICAgaWYgKCFuYW1lKQ0KPiA+ID4+PiAgICAgICAgICAgICBy ZXR1cm4gTlVMTDsNCj4gPiA+Pj4NCj4gPiA+Pj4gKyAgIC8qIFNlYXJjaCBhbGxvY2F0ZWQgbWVt b3J5IHJlZ2lvbiBieSBuYW1lICovDQo+ID4gPj4+ICsgICBtZW0gPSBycHJvY19maW5kX2NhcnZl b3V0X2J5X25hbWUocnByb2MsICJ2ZGV2JWR2cmluZyVkIiwNCj4gPiA+PiBydmRldi0+aW5kZXgs DQo+ID4gPj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQpOw0KPiA+ ID4+PiArICAgaWYgKCFtZW0gfHwgIW1lbS0+dmEpDQo+ID4gPj4+ICsgICAgICAgICAgIHJldHVy biBFUlJfUFRSKC1FTk9NRU0pOw0KPiA+ID4+PiArDQo+ID4gPj4+ICAgICBydnJpbmcgPSAmcnZk ZXYtPnZyaW5nW2lkXTsNCj4gPiA+Pj4gLSAgIGFkZHIgPSBydnJpbmctPnZhOw0KPiA+ID4+PiAr ICAgYWRkciA9IG1lbS0+dmE7DQo+ID4gPj4+ICAgICBsZW4gPSBydnJpbmctPmxlbjsNCj4gPiA+ Pj4NCj4gPiA+Pj4gICAgIC8qIHplcm8gdnJpbmcgKi8NCj4gPiA+Pj4gQEAgLTExNCw2ICsxMjIs MTAgQEAgc3RhdGljIHN0cnVjdCB2aXJ0cXVldWUgKnJwX2ZpbmRfdnEoc3RydWN0DQo+ID4gPj4g dmlydGlvX2RldmljZSAqdmRldiwNCj4gPiA+Pj4gICAgIHJ2cmluZy0+dnEgPSB2cTsNCj4gPiA+ Pj4gICAgIHZxLT5wcml2ID0gcnZyaW5nOw0KPiA+ID4+Pg0KPiA+ID4+PiArICAgLyogVXBkYXRl IHZyaW5nIGluIHJlc291cmNlIHRhYmxlICovDQo+ID4gPj4+ICsgICByc2MgPSAodm9pZCAqKXJw cm9jLT50YWJsZV9wdHIgKyBydmRldi0+cnNjX29mZnNldDsNCj4gPiA+Pj4gKyAgIHJzYy0+dnJp bmdbaWRdLmRhID0gbWVtLT5kYTsNCj4gPiA+Pj4gKw0KPiA+ID4+PiAgICAgcmV0dXJuIHZxOw0K PiA+ID4+PiAgfQ0KPiA+ID4+Pg0KPiA+ID4+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9y ZW1vdGVwcm9jLmggYi9pbmNsdWRlL2xpbnV4L3JlbW90ZXByb2MuaA0KPiA+ID4+PiBpbmRleCA0 Y2RkMGM2Li42YjNhMjM0IDEwMDY0NA0KPiA+ID4+PiAtLS0gYS9pbmNsdWRlL2xpbnV4L3JlbW90 ZXByb2MuaA0KPiA+ID4+PiArKysgYi9pbmNsdWRlL2xpbnV4L3JlbW90ZXByb2MuaA0KPiA+ID4+ PiBAQCAtNDUzLDYgKzQ1Myw3IEBAIHN0cnVjdCBycHJvY19kdW1wX3NlZ21lbnQgew0KPiA+ID4+ PiAgICogQHRhYmxlX3N6OiBzaXplIG9mIEBjYWNoZWRfdGFibGUNCj4gPiA+Pj4gICAqIEBoYXNf aW9tbXU6IGZsYWcgdG8gaW5kaWNhdGUgaWYgcmVtb3RlIHByb2Nlc3NvciBpcyBiZWhpbmQgYW4N Cj4gTU1VDQo+ID4gPj4+ICAgKiBAZHVtcF9zZWdtZW50czogbGlzdCBvZiBzZWdtZW50cyBpbiB0 aGUgZmlybXdhcmUNCj4gPiA+Pj4gKyAqIEBuYl92ZGV2OiBudW1iZXIgb2YgdmRldiBjdXJyZW50 bHkgaGFuZGxlZCBieSBycHJvYw0KPiA+ID4+PiAgICovDQo+ID4gPj4+ICBzdHJ1Y3QgcnByb2Mg ew0KPiA+ID4+PiAgICAgc3RydWN0IGxpc3RfaGVhZCBub2RlOw0KPiA+ID4+PiBAQCAtNDg1LDYg KzQ4Niw3IEBAIHN0cnVjdCBycHJvYyB7DQo+ID4gPj4+ICAgICBib29sIGhhc19pb21tdTsNCj4g PiA+Pj4gICAgIGJvb2wgYXV0b19ib290Ow0KPiA+ID4+PiAgICAgc3RydWN0IGxpc3RfaGVhZCBk dW1wX3NlZ21lbnRzOw0KPiA+ID4+PiArICAgaW50IG5iX3ZkZXY7DQo+ID4gPj4+ICB9Ow0KPiA+ ID4+Pg0KPiA+ID4+PiAgLyoqDQo+ID4gPj4+IEBAIC01MTIsNyArNTE0LDYgQEAgc3RydWN0IHJw cm9jX3N1YmRldiB7DQo+ID4gPj4+ICAvKioNCj4gPiA+Pj4gICAqIHN0cnVjdCBycHJvY192cmlu ZyAtIHJlbW90ZXByb2MgdnJpbmcgc3RhdGUNCj4gPiA+Pj4gICAqIEB2YTogICAgdmlydHVhbCBh ZGRyZXNzDQo+ID4gPj4+IC0gKiBAZG1hOiBkbWEgYWRkcmVzcw0KPiA+ID4+PiAgICogQGxlbjog bGVuZ3RoLCBpbiBieXRlcw0KPiA+ID4+PiAgICogQGRhOiBkZXZpY2UgYWRkcmVzcw0KPiA+ID4+ PiAgICogQGFsaWduOiB2cmluZyBhbGlnbm1lbnQNCj4gPiA+Pj4gQEAgLTUyMiw3ICs1MjMsNiBA QCBzdHJ1Y3QgcnByb2Nfc3ViZGV2IHsNCj4gPiA+Pj4gICAqLw0KPiA+ID4+PiAgc3RydWN0IHJw cm9jX3ZyaW5nIHsNCj4gPiA+Pj4gICAgIHZvaWQgKnZhOw0KPiA+ID4+PiAtICAgZG1hX2FkZHJf dCBkbWE7DQo+ID4gPj4+ICAgICBpbnQgbGVuOw0KPiA+ID4+PiAgICAgdTMyIGRhOw0KPiA+ID4+ PiAgICAgdTMyIGFsaWduOw0KPiA+ID4+PiBAQCAtNTQxLDYgKzU0MSw3IEBAIHN0cnVjdCBycHJv Y192cmluZyB7DQo+ID4gPj4+ICAgKiBAdmRldjogdGhlIHZpcmlvIGRldmljZQ0KPiA+ID4+PiAg ICogQHZyaW5nOiB0aGUgdnJpbmdzIGZvciB0aGlzIHZkZXYNCj4gPiA+Pj4gICAqIEByc2Nfb2Zm c2V0OiBvZmZzZXQgb2YgdGhlIHZkZXYncyByZXNvdXJjZSBlbnRyeQ0KPiA+ID4+PiArICogQGlu ZGV4OiB2ZGV2IHBvc2l0aW9uIHZlcnN1cyBvdGhlciB2ZGV2IGRlY2xhcmVkIGluIHJlc291cmNl IHRhYmxlDQo+ID4gPj4+ICAgKi8NCj4gPiA+Pj4gIHN0cnVjdCBycHJvY192ZGV2IHsNCj4gPiA+ Pj4gICAgIHN0cnVjdCBrcmVmIHJlZmNvdW50Ow0KPiA+ID4+PiBAQCAtNTUzLDYgKzU1NCw3IEBA IHN0cnVjdCBycHJvY192ZGV2IHsNCj4gPiA+Pj4gICAgIHN0cnVjdCB2aXJ0aW9fZGV2aWNlIHZk ZXY7DQo+ID4gPj4+ICAgICBzdHJ1Y3QgcnByb2NfdnJpbmcgdnJpbmdbUlZERVZfTlVNX1ZSSU5H U107DQo+ID4gPj4+ICAgICB1MzIgcnNjX29mZnNldDsNCj4gPiA+Pj4gKyAgIHUzMiBpbmRleDsN Cj4gPiA+Pj4gIH07DQo+ID4gPj4+DQo+ID4gPj4+ICBzdHJ1Y3QgcnByb2MgKnJwcm9jX2dldF9i eV9waGFuZGxlKHBoYW5kbGUgcGhhbmRsZSk7DQo+ID4gPj4+DQo+ID4gPg0KPiA+DQo=