From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Kuehling, Felix" Subject: Re: [PATCH RFC v4 14/16] drm, cgroup: Introduce lgpu as DRM cgroup resource Date: Wed, 9 Oct 2019 15:53:42 +0000 Message-ID: References: <20190829060533.32315-1-Kenny.Ho@amd.com> <20190829060533.32315-15-Kenny.Ho@amd.com> <20191009103153.GU16989@phenom.ffwll.local> <20191009153429.GI16989@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20191009153429.GI16989-dv86pmgwkMBes7Z6vYuT8azUEOm+Xw19@public.gmane.org> Content-Language: en-US Content-ID: <1194F9EC636FD342ADA64F4FF5D8961B-asWib9pRmPqcE4WynfumptQqCkab/8FMAL8bYrjMMd8@public.gmane.org> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Daniel Vetter Cc: "Ho, Kenny" , "jsparks-WVYJKLFxKCc@public.gmane.org" , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" , "lkaplan-WVYJKLFxKCc@public.gmane.org" , "Deucher, Alexander" , "y2kenny-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org" , "dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" , "Greathouse, Joseph" , "tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org" , "cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" , "Koenig, Christian" T24gMjAxOS0xMC0wOSAxMTozNCwgRGFuaWVsIFZldHRlciB3cm90ZToNCj4gT24gV2VkLCBPY3Qg MDksIDIwMTkgYXQgMDM6MjU6MjJQTSArMDAwMCwgS3VlaGxpbmcsIEZlbGl4IHdyb3RlOg0KPj4g T24gMjAxOS0xMC0wOSA2OjMxLCBEYW5pZWwgVmV0dGVyIHdyb3RlOg0KPj4+IE9uIFR1ZSwgT2N0 IDA4LCAyMDE5IGF0IDA2OjUzOjE4UE0gKzAwMDAsIEt1ZWhsaW5nLCBGZWxpeCB3cm90ZToNCj4+ Pj4gVGhlIGRlc2NyaXB0aW9uIHNvdW5kcyByZWFzb25hYmxlIHRvIG1lIGFuZCBtYXBzIHdlbGwg dG8gdGhlIENVIG1hc2tpbmcNCj4+Pj4gZmVhdHVyZSBpbiBvdXIgR1BVcy4NCj4+Pj4NCj4+Pj4g SXQgd291bGQgYWxzbyBhbGxvdyB1cyB0byBkbyBtb3JlIGNvYXJzZS1ncmFpbmVkIG1hc2tpbmcg Zm9yIGV4YW1wbGUgdG8NCj4+Pj4gZ3VhcmFudGVlIGJhbGFuY2VkIGFsbG9jYXRpb24gb2YgQ1Vz IGFjcm9zcyBzaGFkZXIgZW5naW5lcyBvcg0KPj4+PiBwYXJ0aXRpb25pbmcgb2YgbWVtb3J5IGJh bmR3aWR0aCBvciBDUCBwaXBlcyAoaWYgdGhhdCBpcyBzdXBwb3J0ZWQgYnkNCj4+Pj4gdGhlIGhh cmR3YXJlL2Zpcm13YXJlKS4NCj4+PiBIbSwgc28gdGhpcyBzb3VuZHMgbGlrZSB0aGUgZGVmaW5p dGlvbiBmb3IgaG93IHRoaXMgY2dyb3VwIGlzIHN1cHBvc2VkIHRvDQo+Pj4gd29yayBpcyAiYW1k IENVIG1hc2tpbmciICh3aGF0ZXZlciB0aGF0IGV4YWN0bHkgaXMpLiBBbmQgdGhlIGFic3RyYWN0 DQo+Pj4gZGVzY3JpcHRpb24gaXMganVzdCBwcmV0dGlmaWNhdGlvbiBvbiB0b3AsIGJ1dCBub3Qg YWN0dWFsbHkgdGhlIHJlYWwNCj4+PiBkZWZpbml0aW9uIHlvdSBndXlzIHdhbnQuDQo+PiBJIHRo aW5rIHlvdSdyZSByZWFkaW5nIHRoaXMgYXMgdGhlIG9wcG9zaXRlIG9mIHdoYXQgSSB3YXMgdHJ5 aW5nIHRvIHNheS4NCj4+IFVzaW5nIENVIG1hc2tpbmcgaXMgb25lIHBvc3NpYmxlIGltcGxlbWVu dGF0aW9uIG9mIExHUFVzIG9uIEFNRA0KPj4gaGFyZHdhcmUuIEl0J3MgdGhlIG9uZSB0aGF0IEtl bm55IGltcGxlbWVudGVkIGF0IHRoZSBlbmQgb2YgdGhpcyBwYXRjaA0KPj4gc2VyaWVzLCBhbmQg SSBwb2ludGVkIG91dCBzb21lIHByb2JsZW1zIHdpdGggdGhhdCBhcHByb2FjaC4gT3RoZXIgd2F5 cw0KPj4gdG8gcGFydGl0aW9uIHRoZSBoYXJkd2FyZSBpbnRvIExHUFVzIGFyZSBjb25jZWl2YWJs ZS4gRm9yIGV4YW1wbGUgd2UncmUNCj4+IGNvbnNpZGVyaW5nIHNwbGl0dGluZyBpdCBhbG9uZyB0 aGUgbGluZXMgb2Ygc2hhZGVyIGVuZ2luZXMsIHdoaWNoIGlzDQo+PiBtb3JlIGNvYXJzZS1ncmFp biBhbmQgd291bGQgYWxzbyBhZmZlY3QgbWVtb3J5IGJhbmR3aWR0aCBhdmFpbGFibGUgdG8NCj4+ IGVhY2ggcGFydGl0aW9uLg0KPiBJZiB0aGlzIGlzIHN1cHBvc2VkIHRvIGJlIHVzZWZ1bCBmb3Ig YWRtaW5zIHRoZW4gIm90aGVyIHdheXMgdG8gcGFydGl0aW9uDQo+IHRoZSBodyBhcmUgY29uY2Vp dmFibGUiIGlzIHRoZSBwcm9ibGVtLiBUaGlzIHNob3VsZCBiZSB1bmlxdWUmY2xlYXIgZm9yDQo+ IGFkbWlucy9lbmQtdXNlcnMuIFJlYWRpbmcgdGhlIGltcGxlbWVudGF0aW9uIGRldGFpbHMgYW5k IHJlYWxpemluZyB0aGF0DQo+IHRoZSBhY3R1YWwgbWVhbmluZyBpcyAiYW1kIENVIG1hc2tpbmci IGlzbid0IGdvb2QgZW5vdWdoIGJ5IGZhciwgc2luY2UNCj4gdGhhdCdzIG1lYW5pbmdsZXNzIG9u IGFueSBvdGhlciBody4NCj4NCj4gQW5kIGlmIHRoZXJlJ3Mgb3RoZXIgd2F5cyB0byBpbXBsZW1l bnQgdGhpcyBjZ3JvdXAgZm9yIGFtZCwgaXQncyBhbHNvDQo+IG1lYW5pbmdsZXNzICh0byBzeXNh ZG1pbnMvdXNlcnMpIGZvciBhbWQgaHcuDQo+DQo+PiBXZSBjb3VsZCBhbHNvIGNvbnNpZGVyIHBh cnRpdGlvbmluZyBwaXBlcyBpbiBvdXIgY29tbWFuZCBwcm9jZXNzb3IsDQo+PiBhbHRob3VnaCB0 aGF0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgb3VyIGN1cnJlbnQgQ1Agc2NoZWR1bGVyIGZpcm13YXJl Lg0KPj4NCj4+IFRoZSBib3R0b20gbGluZSBpcywgdGhlIExHUFUgbW9kZWwgcHJvcG9zZWQgYnkg S2VubnkgaXMgcXVpdGUgYWJzdHJhY3QNCj4+IGFuZCBhbGxvd3MgZHJpdmVycyBpbXBsZW1lbnRp bmcgaXQgYSBsb3Qgb2YgZmxleGliaWxpdHkgZGVwZW5kaW5nIG9uIHRoZQ0KPj4gY2FwYWJpbGl0 eSBvZiB0aGVpciBoYXJkd2FyZSBhbmQgZmlybXdhcmUuIFdlIGhhdmVuJ3Qgc2V0dGxlZCBvbiBh IGZpbmFsDQo+PiBpbXBsZW1lbnRhdGlvbiBjaG9pY2UgZXZlbiBmb3IgQU1ELg0KPiBUaGF0IGFi c3RyYWN0IG1vZGVsIG9mIGVzc2VudGlhbGx5ICJhbnl0aGluZyBnb2VzIiBpcyB0aGUgcHJvYmxl bSBoZXJlDQo+IGltby4gRS5nLiBmb3IgY3B1IGNncm91cHMgdGhpcyB3b3VsZCBiZSBzaW1pbGFy IHRvIGFsbG93aW5nIHRoZSBiaXRtYWtzIHRvDQo+IG1lYW4gImNwdSBjb3JlIiBvbiBvbmUgbWFj aGluZSAicGh5c2ljYWwgZGllIiBvbiB0aGUgbmV4dCBhbmQgbWF5YmUNCj4gImh5cGVydGhyZWFk IHVuaXQiIG9uIHRoZSAzcmQuIFVzZWxlc3MgZm9yIGFkbWlucy4NCj4NCj4gU28gaWYgd2UgaGF2 ZSBhIGdwdSBiaXRtYWtzIHRoaW5nIHRoYXQgbWlnaHQgbWVhbiBhIGNvbW1hbmQgc3VibWlzc2lv IHBpcGUNCj4gb24gb25lIGh3IChtYXliZSBtYXRjaGluZyB3aGF0IHZrIGV4cG9zZWQsIG1heWJl IG5vdCksIHNvbWUgY29tcHV0ZSB1bml0DQo+IG1hc2sgb24gdGhlIG5leHQgYW5kIHNvbWV0aGlu ZyBlbnRpcmVseSBkaWZmZXJlbnQgKGUuZy4gaW50ZWwgaGFzIHNvDQo+IGNhbGxlZCBHVCBzbGlj ZXMgd2l0aCBjb21wdXRlIGNvcmVzICsgbW9yZSBzdHVmZiBhcm91bmQpIG9uIHRoZSAzcmQgdmVu ZG9yDQo+IHRoZW4gdGhhdCdzIG5vdCB1c2VmdWwgZm9yIGFkbWlucy4NCg0KVGhlIGdvYWwgaXMg dG8gcGFydGl0aW9uIEdQVSBjb21wdXRlIHJlc291cmNlcyB0byBlbGltaW5hdGUgYXMgbXVjaCAN CnJlc291cmNlIGNvbnRlbnRpb24gYXMgcG9zc2libGUgYmV0d2VlbiBkaWZmZXJlbnQgcGFydGl0 aW9ucy4gRGlmZmVyZW50IA0KaGFyZHdhcmUgd2lsbCBoYXZlIGRpZmZlcmVudCBjYXBhYmlsaXRp ZXMgdG8gaW1wbGVtZW50IHRoaXMuIE5vIA0KaW1wbGVtZW50YXRpb24gd2lsbCBiZSBwZXJmZWN0 LiBGb3IgZXhhbXBsZSwgZXZlbiB3aXRoIENQVSBjb3JlcyB0aGF0IA0KYXJlIHN1cHBvc2VkbHkg d2VsbCBkZWZpbmVkLCB5b3UgY2FuIHN0aWxsIGhhdmUgZGlmZmVyZW50IGJlaGF2aW91cnMgDQpk ZXBlbmRpbmcgb24gQ1BVIGNhY2hlIGFyY2hpdGVjdHVyZXMsIE5VTUEgYW5kIHRoZXJtYWwgbWFu YWdlbWVudCBhY3Jvc3MgDQpDUFUgY29yZXMuIFRoZSBhZG1pbiB3aWxsIG5lZWQgc29tZSBrbm93 bGVkZ2Ugb2YgdGhlaXIgaGFyZHdhcmUgDQphcmNoaXRlY3R1cmUgdG8gdW5kZXJzdGFuZCB0aG9z ZSBlZmZlY3RzIHRoYXQgYXJlIG5vdCBkZXNjcmliZWQgYnkgdGhlIA0KYWJzdHJhY3QgbW9kZWwg b2YgY2dyb3Vwcy4NCg0KVGhlIExHUFUgbW9kZWwgaXMgZGVsaWJlcmF0ZWx5IGZsZXhpYmxlLCBi ZWNhdXNlIEdQVSBhcmNoaXRlY3R1cmVzIGFyZSANCm11Y2ggbGVzcyBzdGFuZGFyZGl6ZWQgdGhh biBDUFUgYXJjaGl0ZWN0dXJlcy4gRXhwZWN0aW5nIGEgY29tbW9uIG1vZGVsIA0KdGhhdCBpcyBi b3RoIHZlcnkgc3BlY2lmaWMgYW5kIGFwcGxpY2FibGUgdG8gdG8gYWxsIEdQVXMgaXMgdW5yZWFs aXN0aWMsIA0KaW4gbXkgb3Bpbmlvbi4NCg0KUmVnYXJkcywNCiDCoCBGZWxpeA0KDQoNCj4gLURh bmllbA0KPg0KPj4gUmVnYXJkcywNCj4+ICAgwqAgRmVsaXgNCj4+DQo+Pg0KPj4+IEkgdGhpbmsg YWRkaW5nIGEgY2dyb3VwIHdoaWNoIGlzIHRoYXQgbXVjaCBkZXBlbmRpbmcgdXBvbiB0aGUgaHcN Cj4+PiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgZmlyc3QgZHJpdmVyIHN1cHBvcnRpbmcgaXQgaXMg bm90IGEgZ29vZCBpZGVhLg0KPj4+IC1EYW5pZWwNCj4+Pg0KPj4+PiBJIGNhbid0IGNvbW1lbnQg b24gdGhlIGNvZGUgYXMgSSdtIHVuZmFtaWxpYXIgd2l0aCB0aGUgZGV0YWlscyBvZiB0aGUNCj4+ Pj4gY2dyb3VwIGNvZGUuDQo+Pj4+DQo+Pj4+IEFja2VkLWJ5OiBGZWxpeCBLdWVobGluZyA8RmVs aXguS3VlaGxpbmdAYW1kLmNvbT4NCj4+Pj4NCj4+Pj4NCj4+Pj4+IC0tLQ0KPj4+Pj4gICAgIERv Y3VtZW50YXRpb24vYWRtaW4tZ3VpZGUvY2dyb3VwLXYyLnJzdCB8ICA0NiArKysrKysrKw0KPj4+ Pj4gICAgIGluY2x1ZGUvZHJtL2RybV9jZ3JvdXAuaCAgICAgICAgICAgICAgICB8ICAgNCArDQo+ Pj4+PiAgICAgaW5jbHVkZS9saW51eC9jZ3JvdXBfZHJtLmggICAgICAgICAgICAgIHwgICA2ICsr DQo+Pj4+PiAgICAga2VybmVsL2Nncm91cC9kcm0uYyAgICAgICAgICAgICAgICAgICAgIHwgMTM1 ICsrKysrKysrKysrKysrKysrKysrKysrKw0KPj4+Pj4gICAgIDQgZmlsZXMgY2hhbmdlZCwgMTkx IGluc2VydGlvbnMoKykNCj4+Pj4+DQo+Pj4+PiBkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9h ZG1pbi1ndWlkZS9jZ3JvdXAtdjIucnN0IGIvRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9jZ3Jv dXAtdjIucnN0DQo+Pj4+PiBpbmRleCA4N2ExOTUxMzNlYWEuLjU3ZjE4NDY5YmQ3NiAxMDA2NDQN Cj4+Pj4+IC0tLSBhL0RvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUvY2dyb3VwLXYyLnJzdA0KPj4+ Pj4gKysrIGIvRG9jdW1lbnRhdGlvbi9hZG1pbi1ndWlkZS9jZ3JvdXAtdjIucnN0DQo+Pj4+PiBA QCAtMTk1OCw2ICsxOTU4LDUyIEBAIERSTSBJbnRlcmZhY2UgRmlsZXMNCj4+Pj4+ICAgICAJU2V0 IGxhcmdlc3QgYWxsb2NhdGlvbiBmb3IgL2Rldi9kcmkvY2FyZDEgdG8gNE1CDQo+Pj4+PiAgICAg CWVjaG8gIjIyNjoxIDRtIiA+IGRybS5idWZmZXIucGVhay5tYXgNCj4+Pj4+ICAgICANCj4+Pj4+ ICsgIGRybS5sZ3B1DQo+Pj4+PiArCUEgcmVhZC13cml0ZSBuZXN0ZWQta2V5ZWQgZmlsZSB3aGlj aCBleGlzdHMgb24gYWxsIGNncm91cHMuDQo+Pj4+PiArCUVhY2ggZW50cnkgaXMga2V5ZWQgYnkg dGhlIERSTSBkZXZpY2UncyBtYWpvcjptaW5vci4NCj4+Pj4+ICsNCj4+Pj4+ICsJbGdwdSBzdGFu ZHMgZm9yIGxvZ2ljYWwgR1BVLCBpdCBpcyBhbiBhYnN0cmFjdGlvbiB1c2VkIHRvDQo+Pj4+PiAr CXN1YmRpdmlkZSBhIHBoeXNpY2FsIERSTSBkZXZpY2UgZm9yIHRoZSBwdXJwb3NlIG9mIHJlc291 cmNlDQo+Pj4+PiArCW1hbmFnZW1lbnQuDQo+Pj4+PiArDQo+Pj4+PiArCVRoZSBsZ3B1IGlzIGEg ZGlzY3JldGUgcXVhbnRpdHkgdGhhdCBpcyBkZXZpY2Ugc3BlY2lmaWMgKGkuZS4NCj4+Pj4+ICsJ c29tZSBEUk0gZGV2aWNlcyBtYXkgaGF2ZSA2NCBsZ3B1cyB3aGlsZSBvdGhlcnMgbWF5IGhhdmUg MTAwDQo+Pj4+PiArCWxncHVzLikgIFRoZSBsZ3B1IGlzIGEgc2luZ2xlIHF1YW50aXR5IHdpdGgg dHdvIHJlcHJlc2VudGF0aW9ucw0KPj4+Pj4gKwlkZW5vdGVkIGJ5IHRoZSBmb2xsb3dpbmcgbmVz dGVkIGtleXMuDQo+Pj4+PiArDQo+Pj4+PiArCSAgPT09PT0gICAgID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0NCj4+Pj4+ICsJICBjb3VudCAgICAgUmVwcmVzZW50aW5n IGxncHUgYXMgYW5vbnltb3VzIHJlc291cmNlDQo+Pj4+PiArCSAgbGlzdCAgICAgIFJlcHJlc2Vu dGluZyBsZ3B1IGFzIG5hbWVkIHJlc291cmNlDQo+Pj4+PiArCSAgPT09PT0gICAgID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4+Pj4+ICsNCj4+Pj4+ICsJRm9yIGV4 YW1wbGU6DQo+Pj4+PiArCTIyNjowIGNvdW50PTI1NiBsaXN0PTAtMjU1DQo+Pj4+PiArCTIyNjox IGNvdW50PTQgbGlzdD0wLDIsNCw2DQo+Pj4+PiArCTIyNjoyIGNvdW50PTMyIGxpc3Q9MzItNjMN Cj4+Pj4+ICsNCj4+Pj4+ICsJbGdwdSBpcyByZXByZXNlbnRlZCBieSBhIGJpdG1hcCBhbmQgdXNl cyB0aGUgYml0bWFwX3BhcnNlbGlzdA0KPj4+Pj4gKwlrZXJuZWwgZnVuY3Rpb24gc28gdGhlIGxp c3Qga2V5IGlucHV0IGZvcm1hdCBpcyBhDQo+Pj4+PiArCWNvbW1hLXNlcGFyYXRlZCBsaXN0IG9m IGRlY2ltYWwgbnVtYmVycyBhbmQgcmFuZ2VzLg0KPj4+Pj4gKw0KPj4+Pj4gKwlDb25zZWN1dGl2 ZWx5IHNldCBiaXRzIGFyZSBzaG93biBhcyB0d28gaHlwaGVuLXNlcGFyYXRlZCBkZWNpbWFsDQo+ Pj4+PiArCW51bWJlcnMsIHRoZSBzbWFsbGVzdCBhbmQgbGFyZ2VzdCBiaXQgbnVtYmVycyBzZXQg aW4gdGhlIHJhbmdlLg0KPj4+Pj4gKwlPcHRpb25hbGx5IGVhY2ggcmFuZ2UgY2FuIGJlIHBvc3Rm aXhlZCB0byBkZW5vdGUgdGhhdCBvbmx5IHBhcnRzDQo+Pj4+PiArCW9mIGl0IHNob3VsZCBiZSBz ZXQuICBUaGUgcmFuZ2Ugd2lsbCBkaXZpZGVkIHRvIGdyb3VwcyBvZg0KPj4+Pj4gKwlzcGVjaWZp YyBzaXplLg0KPj4+Pj4gKwlTeW50YXg6IHJhbmdlOnVzZWRfc2l6ZS9ncm91cF9zaXplDQo+Pj4+ PiArCUV4YW1wbGU6IDAtMTAyMzoyLzI1NiA9PT4gMCwxLDI1NiwyNTcsNTEyLDUxMyw3NjgsNzY5 DQo+Pj4+PiArDQo+Pj4+PiArCVRoZSBjb3VudCBrZXkgaXMgdGhlIGhhbW1pbmcgd2VpZ2h0IC8g aHdlaWdodCBvZiB0aGUgYml0bWFwLg0KPj4+Pj4gKw0KPj4+Pj4gKwlCb3RoIGNvdW50IGFuZCBs aXN0IGFjY2VwdCB0aGUgbWF4IGFuZCBkZWZhdWx0IGtleXdvcmRzLg0KPj4+Pj4gKw0KPj4+Pj4g KwlTb21lIERSTSBkZXZpY2VzIG1heSBvbmx5IHN1cHBvcnQgbGdwdSBhcyBhbm9ueW1vdXMgcmVz b3VyY2VzLg0KPj4+Pj4gKwlJbiBzdWNoIGNhc2UsIHRoZSBzaWduaWZpY2FuY2Ugb2YgdGhlIHBv c2l0aW9uIG9mIHRoZSBzZXQgYml0cw0KPj4+Pj4gKwlpbiBsaXN0IHdpbGwgYmUgaWdub3JlZC4N Cj4+Pj4+ICsNCj4+Pj4+ICsJVGhpcyBsZ3B1IHJlc291cmNlIHN1cHBvcnRzIHRoZSAnYWxsb2Nh dGlvbicgcmVzb3VyY2UNCj4+Pj4+ICsJZGlzdHJpYnV0aW9uIG1vZGVsLg0KPj4+Pj4gKw0KPj4+ Pj4gICAgIEdFTSBCdWZmZXIgT3duZXJzaGlwDQo+Pj4+PiAgICAgfn5+fn5+fn5+fn5+fn5+fn5+ fn4NCj4+Pj4+ICAgICANCj4+Pj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fY2dyb3Vw LmggYi9pbmNsdWRlL2RybS9kcm1fY2dyb3VwLmgNCj4+Pj4+IGluZGV4IDZkOTcwN2UxZWI3Mi4u YThkNmJlMGIwNzViIDEwMDY0NA0KPj4+Pj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2Nncm91cC5o DQo+Pj4+PiArKysgYi9pbmNsdWRlL2RybS9kcm1fY2dyb3VwLmgNCj4+Pj4+IEBAIC02LDYgKzYs NyBAQA0KPj4+Pj4gICAgIA0KPj4+Pj4gICAgICNpbmNsdWRlIDxsaW51eC9jZ3JvdXBfZHJtLmg+ DQo+Pj4+PiAgICAgI2luY2x1ZGUgPGxpbnV4L3dvcmtxdWV1ZS5oPg0KPj4+Pj4gKyNpbmNsdWRl IDxsaW51eC90eXBlcy5oPg0KPj4+Pj4gICAgICNpbmNsdWRlIDxkcm0vdHRtL3R0bV9ib19hcGku aD4NCj4+Pj4+ICAgICAjaW5jbHVkZSA8ZHJtL3R0bS90dG1fYm9fZHJpdmVyLmg+DQo+Pj4+PiAg ICAgDQo+Pj4+PiBAQCAtMjgsNiArMjksOSBAQCBzdHJ1Y3QgZHJtY2dfcHJvcHMgew0KPj4+Pj4g ICAgIAlzNjQJCQltZW1faGlnaHNfZGVmYXVsdFtUVE1fUExfUFJJVisxXTsNCj4+Pj4+ICAgICAN Cj4+Pj4+ICAgICAJc3RydWN0IHdvcmtfc3RydWN0CSptZW1fcmVjbGFpbV93cVtUVE1fUExfUFJJ Vl07DQo+Pj4+PiArDQo+Pj4+PiArCWludAkJCWxncHVfY2FwYWNpdHk7DQo+Pj4+PiArICAgICAg ICBERUNMQVJFX0JJVE1BUChsZ3B1X3Nsb3RzLCBNQVhfRFJNQ0dfTEdQVV9DQVBBQ0lUWSk7DQo+ Pj4+PiAgICAgfTsNCj4+Pj4+ICAgICANCj4+Pj4+ICAgICAjaWZkZWYgQ09ORklHX0NHUk9VUF9E Uk0NCj4+Pj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2Nncm91cF9kcm0uaCBiL2luY2x1 ZGUvbGludXgvY2dyb3VwX2RybS5oDQo+Pj4+PiBpbmRleCBjNTZjZmU3NGQxYTYuLjdiMWNmYzRj ZTRjMyAxMDA2NDQNCj4+Pj4+IC0tLSBhL2luY2x1ZGUvbGludXgvY2dyb3VwX2RybS5oDQo+Pj4+ PiArKysgYi9pbmNsdWRlL2xpbnV4L2Nncm91cF9kcm0uaA0KPj4+Pj4gQEAgLTE0LDYgKzE0LDgg QEANCj4+Pj4+ICAgICAvKiBsaW1pdCBkZWZpbmVkIHBlciB0aGUgd2F5IGRybV9taW5vcl9hbGxv YyBvcGVyYXRlcyAqLw0KPj4+Pj4gICAgICNkZWZpbmUgTUFYX0RSTV9ERVYgKDY0ICogRFJNX01J Tk9SX1JFTkRFUikNCj4+Pj4+ICAgICANCj4+Pj4+ICsjZGVmaW5lIE1BWF9EUk1DR19MR1BVX0NB UEFDSVRZIDI1Ng0KPj4+Pj4gKw0KPj4+Pj4gICAgIGVudW0gZHJtY2dfbWVtX2J3X2F0dHIgew0K Pj4+Pj4gICAgIAlEUk1DR19NRU1fQldfQVRUUl9CWVRFX01PVkVELCAvKiBmb3IgY2FsdWxhdGlu ZyAnaW5zdGFudGFuZW91cycgYncgKi8NCj4+Pj4+ICAgICAJRFJNQ0dfTUVNX0JXX0FUVFJfQUND VU1fVVMsICAvKiBmb3IgY2FsdWxhdGluZyAnaW5zdGFudGFuZW91cycgYncgKi8NCj4+Pj4+IEBA IC0zMiw2ICszNCw3IEBAIGVudW0gZHJtY2dfcmVzX3R5cGUgew0KPj4+Pj4gICAgIAlEUk1DR19U WVBFX01FTV9QRUFLLA0KPj4+Pj4gICAgIAlEUk1DR19UWVBFX0JBTkRXSURUSCwNCj4+Pj4+ICAg ICAJRFJNQ0dfVFlQRV9CQU5EV0lEVEhfUEVSSU9EX0JVUlNULA0KPj4+Pj4gKwlEUk1DR19UWVBF X0xHUFUsDQo+Pj4+PiAgICAgCV9fRFJNQ0dfVFlQRV9MQVNULA0KPj4+Pj4gICAgIH07DQo+Pj4+ PiAgICAgDQo+Pj4+PiBAQCAtNTgsNiArNjEsOSBAQCBzdHJ1Y3QgZHJtY2dfZGV2aWNlX3Jlc291 cmNlIHsNCj4+Pj4+ICAgICAJczY0CQkJbWVtX2J3X3N0YXRzW19fRFJNQ0dfTUVNX0JXX0FUVFJf TEFTVF07DQo+Pj4+PiAgICAgCXM2NAkJCW1lbV9id19saW1pdHNfYnl0ZXNfaW5fcGVyaW9kOw0K Pj4+Pj4gICAgIAlzNjQJCQltZW1fYndfbGltaXRzX2F2Z19ieXRlc19wZXJfdXM7DQo+Pj4+PiAr DQo+Pj4+PiArCXM2NAkJCWxncHVfdXNlZDsNCj4+Pj4+ICsJREVDTEFSRV9CSVRNQVAobGdwdV9h bGxvY2F0ZWQsIE1BWF9EUk1DR19MR1BVX0NBUEFDSVRZKTsNCj4+Pj4+ICAgICB9Ow0KPj4+Pj4g ICAgIA0KPj4+Pj4gICAgIC8qKg0KPj4+Pj4gZGlmZiAtLWdpdCBhL2tlcm5lbC9jZ3JvdXAvZHJt LmMgYi9rZXJuZWwvY2dyb3VwL2RybS5jDQo+Pj4+PiBpbmRleCAwZWE3ZjA2MTllMjUuLjE4YzQz NjhlMmMyOSAxMDA2NDQNCj4+Pj4+IC0tLSBhL2tlcm5lbC9jZ3JvdXAvZHJtLmMNCj4+Pj4+ICsr KyBiL2tlcm5lbC9jZ3JvdXAvZHJtLmMNCj4+Pj4+IEBAIC05LDYgKzksNyBAQA0KPj4+Pj4gICAg ICNpbmNsdWRlIDxsaW51eC9jZ3JvdXBfZHJtLmg+DQo+Pj4+PiAgICAgI2luY2x1ZGUgPGxpbnV4 L2t0aW1lLmg+DQo+Pj4+PiAgICAgI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPg0KPj4+Pj4gKyNp bmNsdWRlIDxsaW51eC9iaXRtYXAuaD4NCj4+Pj4+ICAgICAjaW5jbHVkZSA8ZHJtL2RybV9maWxl Lmg+DQo+Pj4+PiAgICAgI2luY2x1ZGUgPGRybS9kcm1fZHJ2Lmg+DQo+Pj4+PiAgICAgI2luY2x1 ZGUgPGRybS90dG0vdHRtX2JvX2FwaS5oPg0KPj4+Pj4gQEAgLTUyLDYgKzUzLDkgQEAgc3RhdGlj IGNoYXIgY29uc3QgKm1lbV9id19hdHRyX25hbWVzW10gPSB7DQo+Pj4+PiAgICAgI2RlZmluZSBN RU1fQldfTElNSVRTX05BTUVfQVZHICJhdmdfYnl0ZXNfcGVyX3VzIg0KPj4+Pj4gICAgICNkZWZp bmUgTUVNX0JXX0xJTUlUU19OQU1FX0JVUlNUICJieXRlc19pbl9wZXJpb2QiDQo+Pj4+PiAgICAg DQo+Pj4+PiArI2RlZmluZSBMR1BVX0xJTUlUU19OQU1FX0xJU1QgImxpc3QiDQo+Pj4+PiArI2Rl ZmluZSBMR1BVX0xJTUlUU19OQU1FX0NPVU5UICJjb3VudCINCj4+Pj4+ICsNCj4+Pj4+ICAgICBz dGF0aWMgc3RydWN0IGRybWNnICpyb290X2RybWNnIF9fcmVhZF9tb3N0bHk7DQo+Pj4+PiAgICAg DQo+Pj4+PiAgICAgc3RhdGljIGludCBkcm1jZ19jc3NfZnJlZV9mbihpbnQgaWQsIHZvaWQgKnB0 ciwgdm9pZCAqZGF0YSkNCj4+Pj4+IEBAIC0xMTUsNiArMTE5LDEwIEBAIHN0YXRpYyBpbmxpbmUg aW50IGluaXRfZHJtY2dfc2luZ2xlKHN0cnVjdCBkcm1jZyAqZHJtY2csIHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpDQo+Pj4+PiAgICAgCWZvciAoaSA9IDA7IGkgPD0gVFRNX1BMX1BSSVY7IGkrKykN Cj4+Pj4+ICAgICAJCWRkci0+bWVtX2hpZ2hzW2ldID0gZGV2LT5kcm1jZ19wcm9wcy5tZW1faGln aHNfZGVmYXVsdFtpXTsNCj4+Pj4+ICAgICANCj4+Pj4+ICsJYml0bWFwX2NvcHkoZGRyLT5sZ3B1 X2FsbG9jYXRlZCwgZGV2LT5kcm1jZ19wcm9wcy5sZ3B1X3Nsb3RzLA0KPj4+Pj4gKwkJCU1BWF9E Uk1DR19MR1BVX0NBUEFDSVRZKTsNCj4+Pj4+ICsJZGRyLT5sZ3B1X3VzZWQgPSBiaXRtYXBfd2Vp Z2h0KGRkci0+bGdwdV9hbGxvY2F0ZWQsIE1BWF9EUk1DR19MR1BVX0NBUEFDSVRZKTsNCj4+Pj4+ ICsNCj4+Pj4+ICAgICAJbXV0ZXhfdW5sb2NrKCZkZXYtPmRybWNnX211dGV4KTsNCj4+Pj4+ICAg ICAJcmV0dXJuIDA7DQo+Pj4+PiAgICAgfQ0KPj4+Pj4gQEAgLTI4MCw2ICsyODgsMTQgQEAgc3Rh dGljIHZvaWQgZHJtY2dfcHJpbnRfbGltaXRzKHN0cnVjdCBkcm1jZ19kZXZpY2VfcmVzb3VyY2Ug KmRkciwNCj4+Pj4+ICAgICAJCQkJTUVNX0JXX0xJTUlUU19OQU1FX0FWRywNCj4+Pj4+ICAgICAJ CQkJZGRyLT5tZW1fYndfbGltaXRzX2F2Z19ieXRlc19wZXJfdXMpOw0KPj4+Pj4gICAgIAkJYnJl YWs7DQo+Pj4+PiArCWNhc2UgRFJNQ0dfVFlQRV9MR1BVOg0KPj4+Pj4gKwkJc2VxX3ByaW50Zihz ZiwgIiVzPSVsbGQgJXM9JSpwYmxcbiIsDQo+Pj4+PiArCQkJCUxHUFVfTElNSVRTX05BTUVfQ09V TlQsDQo+Pj4+PiArCQkJCWRkci0+bGdwdV91c2VkLA0KPj4+Pj4gKwkJCQlMR1BVX0xJTUlUU19O QU1FX0xJU1QsDQo+Pj4+PiArCQkJCWRldi0+ZHJtY2dfcHJvcHMubGdwdV9jYXBhY2l0eSwNCj4+ Pj4+ICsJCQkJZGRyLT5sZ3B1X2FsbG9jYXRlZCk7DQo+Pj4+PiArCQlicmVhazsNCj4+Pj4+ICAg ICAJZGVmYXVsdDoNCj4+Pj4+ICAgICAJCXNlcV9wdXRzKHNmLCAiXG4iKTsNCj4+Pj4+ICAgICAJ CWJyZWFrOw0KPj4+Pj4gQEAgLTMxNCw2ICszMzAsMTUgQEAgc3RhdGljIHZvaWQgZHJtY2dfcHJp bnRfZGVmYXVsdChzdHJ1Y3QgZHJtY2dfcHJvcHMgKnByb3BzLA0KPj4+Pj4gICAgIAkJCQlNRU1f QldfTElNSVRTX05BTUVfQVZHLA0KPj4+Pj4gICAgIAkJCQlwcm9wcy0+bWVtX2J3X2F2Z19ieXRl c19wZXJfdXNfZGVmYXVsdCk7DQo+Pj4+PiAgICAgCQlicmVhazsNCj4+Pj4+ICsJY2FzZSBEUk1D R19UWVBFX0xHUFU6DQo+Pj4+PiArCQlzZXFfcHJpbnRmKHNmLCAiJXM9JWQgJXM9JSpwYmxcbiIs DQo+Pj4+PiArCQkJCUxHUFVfTElNSVRTX05BTUVfQ09VTlQsDQo+Pj4+PiArCQkJCWJpdG1hcF93 ZWlnaHQocHJvcHMtPmxncHVfc2xvdHMsDQo+Pj4+PiArCQkJCQlwcm9wcy0+bGdwdV9jYXBhY2l0 eSksDQo+Pj4+PiArCQkJCUxHUFVfTElNSVRTX05BTUVfTElTVCwNCj4+Pj4+ICsJCQkJcHJvcHMt PmxncHVfY2FwYWNpdHksDQo+Pj4+PiArCQkJCXByb3BzLT5sZ3B1X3Nsb3RzKTsNCj4+Pj4+ICsJ CWJyZWFrOw0KPj4+Pj4gICAgIAlkZWZhdWx0Og0KPj4+Pj4gICAgIAkJc2VxX3B1dHMoc2YsICJc biIpOw0KPj4+Pj4gICAgIAkJYnJlYWs7DQo+Pj4+PiBAQCAtNDA3LDkgKzQzMiwyMSBAQCBzdGF0 aWMgdm9pZCBkcm1jZ192YWx1ZV9hcHBseShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzNjQgKmRz dCwgczY0IHZhbCkNCj4+Pj4+ICAgICAJbXV0ZXhfdW5sb2NrKCZkZXYtPmRybWNnX211dGV4KTsN Cj4+Pj4+ICAgICB9DQo+Pj4+PiAgICAgDQo+Pj4+PiArc3RhdGljIHZvaWQgZHJtY2dfbGdwdV92 YWx1ZXNfYXBwbHkoc3RydWN0IGRybV9kZXZpY2UgKmRldiwNCj4+Pj4+ICsJCXN0cnVjdCBkcm1j Z19kZXZpY2VfcmVzb3VyY2UgKmRkciwgdW5zaWduZWQgbG9uZyAqdmFsKQ0KPj4+Pj4gK3sNCj4+ Pj4+ICsNCj4+Pj4+ICsJbXV0ZXhfbG9jaygmZGV2LT5kcm1jZ19tdXRleCk7DQo+Pj4+PiArCWJp dG1hcF9jb3B5KGRkci0+bGdwdV9hbGxvY2F0ZWQsIHZhbCwgTUFYX0RSTUNHX0xHUFVfQ0FQQUNJ VFkpOw0KPj4+Pj4gKwlkZHItPmxncHVfdXNlZCA9IGJpdG1hcF93ZWlnaHQoZGRyLT5sZ3B1X2Fs bG9jYXRlZCwgTUFYX0RSTUNHX0xHUFVfQ0FQQUNJVFkpOw0KPj4+Pj4gKwltdXRleF91bmxvY2so JmRldi0+ZHJtY2dfbXV0ZXgpOw0KPj4+Pj4gK30NCj4+Pj4+ICsNCj4+Pj4+ICAgICBzdGF0aWMg dm9pZCBkcm1jZ19uZXN0ZWRfbGltaXRfcGFyc2Uoc3RydWN0IGtlcm5mc19vcGVuX2ZpbGUgKm9m LA0KPj4+Pj4gICAgIAkJc3RydWN0IGRybV9kZXZpY2UgKmRldiwgY2hhciAqYXR0cnMpDQo+Pj4+ PiAgICAgew0KPj4+Pj4gKwlERUNMQVJFX0JJVE1BUCh0bXBfYml0bWFwLCBNQVhfRFJNQ0dfTEdQ VV9DQVBBQ0lUWSk7DQo+Pj4+PiArCURFQ0xBUkVfQklUTUFQKGNoa19iaXRtYXAsIE1BWF9EUk1D R19MR1BVX0NBUEFDSVRZKTsNCj4+Pj4+ICAgICAJZW51bSBkcm1jZ19yZXNfdHlwZSB0eXBlID0N Cj4+Pj4+ICAgICAJCURSTUNHX0NURl9QUklWMlJFU1RZUEUob2ZfY2Z0KG9mKS0+cHJpdmF0ZSk7 DQo+Pj4+PiAgICAgCXN0cnVjdCBkcm1jZyAqZHJtY2cgPSBjc3NfdG9fZHJtY2cob2ZfY3NzKG9m KSk7DQo+Pj4+PiBAQCAtNTAxLDYgKzUzOCw4MyBAQCBzdGF0aWMgdm9pZCBkcm1jZ19uZXN0ZWRf bGltaXRfcGFyc2Uoc3RydWN0IGtlcm5mc19vcGVuX2ZpbGUgKm9mLA0KPj4+Pj4gICAgIAkJCQlj b250aW51ZTsNCj4+Pj4+ICAgICAJCQl9DQo+Pj4+PiAgICAgCQkJYnJlYWs7IC8qIERSTUNHX1RZ UEVfTUVNICovDQo+Pj4+PiArCQljYXNlIERSTUNHX1RZUEVfTEdQVToNCj4+Pj4+ICsJCQlpZiAo c3RybmNtcChzbmFtZSwgTEdQVV9MSU1JVFNfTkFNRV9MSVNULCAyNTYpICYmDQo+Pj4+PiArCQkJ CXN0cm5jbXAoc25hbWUsIExHUFVfTElNSVRTX05BTUVfQ09VTlQsIDI1NikgKQ0KPj4+Pj4gKwkJ CQljb250aW51ZTsNCj4+Pj4+ICsNCj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICBpZiAo IXN0cmNtcCgibWF4Iiwgc3ZhbCkgfHwNCj4+Pj4+ICsJCQkJCSFzdHJjbXAoImRlZmF1bHQiLCBz dmFsKSkgew0KPj4+Pj4gKwkJCQlpZiAocGFyZW50ICE9IE5VTEwpDQo+Pj4+PiArCQkJCQlkcm1j Z19sZ3B1X3ZhbHVlc19hcHBseShkZXYsIGRkciwNCj4+Pj4+ICsJCQkJCQlwYXJlbnQtPmRldl9y ZXNvdXJjZXNbbWlub3JdLT4NCj4+Pj4+ICsJCQkJCQlsZ3B1X2FsbG9jYXRlZCk7DQo+Pj4+PiAr CQkJCWVsc2UNCj4+Pj4+ICsJCQkJCWRybWNnX2xncHVfdmFsdWVzX2FwcGx5KGRldiwgZGRyLA0K Pj4+Pj4gKwkJCQkJCXByb3BzLT5sZ3B1X3Nsb3RzKTsNCj4+Pj4+ICsNCj4+Pj4+ICsJCQkJY29u dGludWU7DQo+Pj4+PiArCQkJfQ0KPj4+Pj4gKw0KPj4+Pj4gKwkJCWlmIChzdHJuY21wKHNuYW1l LCBMR1BVX0xJTUlUU19OQU1FX0NPVU5ULCAyNTYpID09IDApIHsNCj4+Pj4+ICsJCQkJcF9tYXgg PSBwYXJlbnQgPT0gTlVMTCA/IHByb3BzLT5sZ3B1X2NhcGFjaXR5Og0KPj4+Pj4gKwkJCQkJYml0 bWFwX3dlaWdodCgNCj4+Pj4+ICsJCQkJCXBhcmVudC0+ZGV2X3Jlc291cmNlc1ttaW5vcl0tPg0K Pj4+Pj4gKwkJCQkJbGdwdV9hbGxvY2F0ZWQsIHByb3BzLT5sZ3B1X2NhcGFjaXR5KTsNCj4+Pj4+ ICsNCj4+Pj4+ICsJCQkJcmMgPSBkcm1jZ19wcm9jZXNzX2xpbWl0X3M2NF92YWwoc3ZhbCwNCj4+ Pj4+ICsJCQkJCWZhbHNlLCBwX21heCwgcF9tYXgsICZ2YWwpOw0KPj4+Pj4gKw0KPj4+Pj4gKwkJ CQlpZiAocmMgfHwgdmFsIDwgMCkgew0KPj4+Pj4gKwkJCQkJZHJtY2dfcHJfY2Z0X2Vycihkcm1j ZywgcmMsIGNmdF9uYW1lLA0KPj4+Pj4gKwkJCQkJCQltaW5vcik7DQo+Pj4+PiArCQkJCQljb250 aW51ZTsNCj4+Pj4+ICsJCQkJfQ0KPj4+Pj4gKw0KPj4+Pj4gKwkJCQliaXRtYXBfemVybyh0bXBf Yml0bWFwLA0KPj4+Pj4gKwkJCQkJCU1BWF9EUk1DR19MR1BVX0NBUEFDSVRZKTsNCj4+Pj4+ICsJ CQkJYml0bWFwX3NldCh0bXBfYml0bWFwLCAwLCB2YWwpOw0KPj4+Pj4gKwkJCX0NCj4+Pj4+ICsN Cj4+Pj4+ICsJCQlpZiAoc3RybmNtcChzbmFtZSwgTEdQVV9MSU1JVFNfTkFNRV9MSVNULCAyNTYp ID09IDApIHsNCj4+Pj4+ICsJCQkJcmMgPSBiaXRtYXBfcGFyc2VsaXN0KHN2YWwsIHRtcF9iaXRt YXAsDQo+Pj4+PiArCQkJCQkJTUFYX0RSTUNHX0xHUFVfQ0FQQUNJVFkpOw0KPj4+Pj4gKw0KPj4+ Pj4gKwkJCQlpZiAocmMpIHsNCj4+Pj4+ICsJCQkJCWRybWNnX3ByX2NmdF9lcnIoZHJtY2csIHJj LCBjZnRfbmFtZSwNCj4+Pj4+ICsJCQkJCQkJbWlub3IpOw0KPj4+Pj4gKwkJCQkJY29udGludWU7 DQo+Pj4+PiArCQkJCX0NCj4+Pj4+ICsNCj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAJ Yml0bWFwX2FuZG5vdChjaGtfYml0bWFwLCB0bXBfYml0bWFwLA0KPj4+Pj4gKwkJCQkJcHJvcHMt PmxncHVfc2xvdHMsDQo+Pj4+PiArCQkJCQlNQVhfRFJNQ0dfTEdQVV9DQVBBQ0lUWSk7DQo+Pj4+ PiArDQo+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgCWlmICghYml0bWFwX2VtcHR5KGNo a19iaXRtYXAsDQo+Pj4+PiArCQkJCQkJTUFYX0RSTUNHX0xHUFVfQ0FQQUNJVFkpKSB7DQo+Pj4+ PiArCQkJCQlkcm1jZ19wcl9jZnRfZXJyKGRybWNnLCAwLCBjZnRfbmFtZSwNCj4+Pj4+ICsJCQkJ CQkJbWlub3IpOw0KPj4+Pj4gKwkJCQkJY29udGludWU7DQo+Pj4+PiArCQkJCX0NCj4+Pj4+ICsJ CQl9DQo+Pj4+PiArDQo+Pj4+PiArDQo+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgaWYg KHBhcmVudCAhPSBOVUxMKSB7DQo+Pj4+PiArCQkJCWJpdG1hcF9hbmQoY2hrX2JpdG1hcCwgdG1w X2JpdG1hcCwNCj4+Pj4+ICsJCQkJcGFyZW50LT5kZXZfcmVzb3VyY2VzW21pbm9yXS0+bGdwdV9h bGxvY2F0ZWQsDQo+Pj4+PiArCQkJCXByb3BzLT5sZ3B1X2NhcGFjaXR5KTsNCj4+Pj4+ICsNCj4+ Pj4+ICsJCQkJaWYgKGJpdG1hcF9lbXB0eShjaGtfYml0bWFwLA0KPj4+Pj4gKwkJCQkJCXByb3Bz LT5sZ3B1X2NhcGFjaXR5KSkgew0KPj4+Pj4gKwkJCQkJZHJtY2dfcHJfY2Z0X2Vycihkcm1jZywg MCwNCj4+Pj4+ICsJCQkJCQkJY2Z0X25hbWUsIG1pbm9yKTsNCj4+Pj4+ICsJCQkJCWNvbnRpbnVl Ow0KPj4+Pj4gKwkJCQl9DQo+Pj4+PiArCQkJfQ0KPj4+Pj4gKw0KPj4+Pj4gKwkJCWRybWNnX2xn cHVfdmFsdWVzX2FwcGx5KGRldiwgZGRyLCB0bXBfYml0bWFwKTsNCj4+Pj4+ICsNCj4+Pj4+ICsJ CQlicmVhazsgLyogRFJNQ0dfVFlQRV9MR1BVICovDQo+Pj4+PiAgICAgCQlkZWZhdWx0Og0KPj4+ Pj4gICAgIAkJCWJyZWFrOw0KPj4+Pj4gICAgIAkJfSAvKiBzd2l0Y2ggKHR5cGUpICovDQo+Pj4+ PiBAQCAtNjA2LDYgKzcyMCw3IEBAIHN0YXRpYyBzc2l6ZV90IGRybWNnX2xpbWl0X3dyaXRlKHN0 cnVjdCBrZXJuZnNfb3Blbl9maWxlICpvZiwgY2hhciAqYnVmLA0KPj4+Pj4gICAgIAkJCWJyZWFr Ow0KPj4+Pj4gICAgIAkJY2FzZSBEUk1DR19UWVBFX0JBTkRXSURUSDoNCj4+Pj4+ICAgICAJCWNh c2UgRFJNQ0dfVFlQRV9NRU06DQo+Pj4+PiArCQljYXNlIERSTUNHX1RZUEVfTEdQVToNCj4+Pj4+ ICAgICAJCQlkcm1jZ19uZXN0ZWRfbGltaXRfcGFyc2Uob2YsIGRtLT5kZXYsIHNhdHRyKTsNCj4+ Pj4+ICAgICAJCQlicmVhazsNCj4+Pj4+ICAgICAJCWRlZmF1bHQ6DQo+Pj4+PiBAQCAtNzMxLDYg Kzg0NiwyMCBAQCBzdHJ1Y3QgY2Z0eXBlIGZpbGVzW10gPSB7DQo+Pj4+PiAgICAgCQkucHJpdmF0 ZSA9IERSTUNHX0NURl9QUklWKERSTUNHX1RZUEVfQkFORFdJRFRILA0KPj4+Pj4gICAgIAkJCQkJ CURSTUNHX0ZUWVBFX0RFRkFVTFQpLA0KPj4+Pj4gICAgIAl9LA0KPj4+Pj4gKwl7DQo+Pj4+PiAr CQkubmFtZSA9ICJsZ3B1IiwNCj4+Pj4+ICsJCS5zZXFfc2hvdyA9IGRybWNnX3NlcV9zaG93LA0K Pj4+Pj4gKwkJLndyaXRlID0gZHJtY2dfbGltaXRfd3JpdGUsDQo+Pj4+PiArCQkucHJpdmF0ZSA9 IERSTUNHX0NURl9QUklWKERSTUNHX1RZUEVfTEdQVSwNCj4+Pj4+ICsJCQkJCQlEUk1DR19GVFlQ RV9MSU1JVCksDQo+Pj4+PiArCX0sDQo+Pj4+PiArCXsNCj4+Pj4+ICsJCS5uYW1lID0gImxncHUu ZGVmYXVsdCIsDQo+Pj4+PiArCQkuc2VxX3Nob3cgPSBkcm1jZ19zZXFfc2hvdywNCj4+Pj4+ICsJ CS5mbGFncyA9IENGVFlQRV9PTkxZX09OX1JPT1QsDQo+Pj4+PiArCQkucHJpdmF0ZSA9IERSTUNH X0NURl9QUklWKERSTUNHX1RZUEVfTEdQVSwNCj4+Pj4+ICsJCQkJCQlEUk1DR19GVFlQRV9ERUZB VUxUKSwNCj4+Pj4+ICsJfSwNCj4+Pj4+ICAgICAJeyB9CS8qIHRlcm1pbmF0ZSAqLw0KPj4+Pj4g ICAgIH07DQo+Pj4+PiAgICAgDQo+Pj4+PiBAQCAtNzQ0LDYgKzg3MywxMCBAQCBzdHJ1Y3QgY2dy b3VwX3N1YnN5cyBkcm1fY2dycF9zdWJzeXMgPSB7DQo+Pj4+PiAgICAgDQo+Pj4+PiAgICAgc3Rh dGljIGlubGluZSB2b2lkIGRybWNnX3VwZGF0ZV9jZ190cmVlKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpDQo+Pj4+PiAgICAgew0KPj4+Pj4gKyAgICAgICAgYml0bWFwX3plcm8oZGV2LT5kcm1jZ19w cm9wcy5sZ3B1X3Nsb3RzLCBNQVhfRFJNQ0dfTEdQVV9DQVBBQ0lUWSk7DQo+Pj4+PiArICAgICAg ICBiaXRtYXBfZmlsbChkZXYtPmRybWNnX3Byb3BzLmxncHVfc2xvdHMsDQo+Pj4+PiArCQkJZGV2 LT5kcm1jZ19wcm9wcy5sZ3B1X2NhcGFjaXR5KTsNCj4+Pj4+ICsNCj4+Pj4+ICAgICAJLyogaW5p dCBjZ3JvdXBzIGNyZWF0ZWQgYmVmb3JlIHJlZ2lzdHJhdGlvbiAoaS5lLiByb290IGNncm91cCkg Ki8NCj4+Pj4+ICAgICAJaWYgKHJvb3RfZHJtY2cgIT0gTlVMTCkgew0KPj4+Pj4gICAgIAkJc3Ry dWN0IGNncm91cF9zdWJzeXNfc3RhdGUgKnBvczsNCj4+Pj4+IEBAIC04MDAsNiArOTMzLDggQEAg dm9pZCBkcm1jZ19kZXZpY2VfZWFybHlfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQ0KPj4+ Pj4gICAgIAlmb3IgKGkgPSAwOyBpIDw9IFRUTV9QTF9QUklWOyBpKyspDQo+Pj4+PiAgICAgCQlk ZXYtPmRybWNnX3Byb3BzLm1lbV9oaWdoc19kZWZhdWx0W2ldID0gUzY0X01BWDsNCj4+Pj4+ICAg ICANCj4+Pj4+ICsJZGV2LT5kcm1jZ19wcm9wcy5sZ3B1X2NhcGFjaXR5ID0gTUFYX0RSTUNHX0xH UFVfQ0FQQUNJVFk7DQo+Pj4+PiArDQo+Pj4+PiAgICAgCWRybWNnX3VwZGF0ZV9jZ190cmVlKGRl dik7DQo+Pj4+PiAgICAgfQ0KPj4+Pj4gICAgIEVYUE9SVF9TWU1CT0woZHJtY2dfZGV2aWNlX2Vh cmx5X2luaXQpOw0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4