From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH RFC v4 14/16] drm, cgroup: Introduce lgpu as DRM cgroup resource Date: Wed, 9 Oct 2019 17:23:31 +0200 Message-ID: <20191009152331.GG16989@phenom.ffwll.local> References: <20190829060533.32315-1-Kenny.Ho@amd.com> <20190829060533.32315-15-Kenny.Ho@amd.com> <20191009103153.GU16989@phenom.ffwll.local> Mime-Version: 1.0 Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" Content-Type: text/plain; charset="us-ascii" To: Kenny Ho Cc: "Greathouse, Joseph" , "Ho, Kenny" , "Kuehling, Felix" , "jsparks-WVYJKLFxKCc@public.gmane.org" , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" , "lkaplan-WVYJKLFxKCc@public.gmane.org" , "Deucher, Alexander" , "dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" , Daniel Vetter , "tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org" , "cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" , "Koenig, Christian" T24gV2VkLCBPY3QgMDksIDIwMTkgYXQgMTE6MDg6NDVBTSAtMDQwMCwgS2VubnkgSG8gd3JvdGU6 Cj4gSGkgRGFuaWVsLAo+IAo+IENhbiB5b3UgZWxhYm9yYXRlIHdoYXQgeW91IG1lYW4gaW4gbW9y ZSBkZXRhaWxzPyAgVGhlIGdvYWwgb2YgbGdwdSBpcwo+IHRvIHByb3ZpZGUgdGhlIGFiaWxpdHkg dG8gc3ViZGl2aWRlIGEgR1BVIGRldmljZSBhbmQgZ2l2ZSB0aG9zZSBzbGljZXMKPiB0byBkaWZm ZXJlbnQgdXNlcnMgYXMgbmVlZGVkLiAgSSBkb24ndCB0aGluayB0aGVyZSBpcyBhbnl0aGluZwo+ IGNvbnRyb3ZlcnNpYWwgb3IgdmVuZG9yIHNwZWNpZmljIGhlcmUgYXMgcmVxdWVzdHMgZm9yIHRo aXMgYXJlIHdlbGwKPiBkb2N1bWVudGVkLiAgVGhlIHVuZGVybHlpbmcgcmVwcmVzZW50YXRpb24g aXMganVzdCBhIGJpdG1hcCwgd2hpY2ggaXMKPiBuZWl0aGVyIHVucHJlY2VkZW50ZWQgbm9yIHZl bmRvciBzcGVjaWZpYyAoYml0bWFwIGlzIHVzZWQgaW4gY3B1c2V0Cj4gZm9yIGluc3RhbmNlLikK PiAKPiBBbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGFic3RyYWN0aW9uIGlzIG5vdCBoYXJkd2Fy ZSBzcGVjaWZpYyBlaXRoZXIuCj4gRm9yIGV4YW1wbGUsIG9uZSBjYW4gYXNzb2NpYXRlIGEgdmly dHVhbCBmdW5jdGlvbiBpbiBTUklPViBhcyBhIGxncHUuCj4gQWx0ZXJuYXRpdmVseSwgYSBkZXZp Y2UgY2FuIGFsc28gZGVjbGFyZSB0byBoYXZlIDEwMCBsZ3B1cyBhbmQgdHJlYXQKPiB0aGUgbGdw dSBxdWFudGl0eSBhcyBhIHBlcmNlbnRhZ2UgcmVwcmVzZW50YXRpb24gb2YgR1BVIHN1YmRpdmlz aW9uLgo+IFRoZSBmYWN0IHRoYXQgYW4gYWJzdHJhY3Rpb24gd29ya3Mgd2VsbCB3aXRoIGEgdmVu ZG9yIGltcGxlbWVudGF0aW9uCj4gZG9lcyBub3QgbWFrZSBpdCBhICJwcmV0dGlmaWNhdGlvbiIg b2YgYSB2ZW5kb3IgZmVhdHVyZSAoYnkgdGhpcwo+IGxvZ2ljLCBJIGhvcGUgeW91IGFyZSBub3Qg aW1wbHlpbmcgYW4gYWJzdHJhY3Rpb24gaXMgb25seSB2YWxpZCBpZiBpdAo+IGRvZXMgbm90IHdv cmsgd2l0aCBhbWQgQ1UgbWFza2luZyBiZWNhdXNlIHRoYXQgc2VlbXMgZmFpcmx5IHBhcnRpc2Fu LikKPiAKPiBEaWQgSSBtaXNyZWFkIHlvdXIgY2hhcmFjdGVyaXphdGlvbiBvZiB0aGlzIHBhdGNo PwoKU2NlbmFyaW86IEknbSBhIGdwZ3B1IGN1c3RvbWVyLCBhbmQgSSB0eXBlIHNvbWUgZ3BncHUg cHJvZ3JhbSAocHJvYmFibHkgaW4KY3VkZSwgdHJhbnNwaWxlZCBmb3IgYW1kIHVzaW5nIHJvY20p LgoKSG93IGRvZXMgdGhlIHN0dWZmIEknbSBzZWVpbmcgaW4gY3VkYSAob3IgdmsgY29tcHV0ZSwg b3Igd2hhdGV2ZXIpIG1hcCB0bwp0aGUgYml0bWFza3MgSSBjYW4gc2V0IGluIHRoaXMgY2dyb3Vw IGNvbnRyb2xsZXI/CgpUaGF0J3MgdGhlIHN0dWZmIHdoaWNoIHRoaXMgc3BlYyBuZWVkcyB0byBl eHBsYWluLiBDdXJyZW50bHkgdGhlIGFuc3dlciBpcwoiYW1kIENVIG1hc2tpbmciLCBhbmQgdGhh dCdzIG5vdCBnb2luZyB0byB3b3JrIG9uIGUuZy4gbnZpZGlhIGh3LiBXZSBuZWVkCnRvIGNvbWUg dXAgd2l0aCBlbmQtdXNlciByZWxldmFudCByZXNvdXJjZXMvbWVhbmluZ3MgZm9yIHRoZXNlIGJp dHMgd2hpY2gKd29ya3MgYWNyb3NzIHZlbmRvcnMuCgpPbiBjcHUgYSAiY3B1IGNvcmUiIGlzIHJh dGhlciB3ZWxsLWRlZmluZWQsIGFuZCBjdXN0b21lcnMgYWN0dWFsbHkga25vdwp3aGF0IGl0IG1l YW5zIG9uIGludGVsLCBhbWQsIGlibSBwb3dlcnBjIG9yIGFybS4gQm90aCBvbiB0aGUgcHJvZ3Jh bSBzaWRlCihlLmcuIHdoYXQgZG8gSSBuZWVkIHRvIHN0dWZmIGludG8gcmVsZXZhbnQgc3lzdGVt IGNhbGxzIHRvIHJ1biBvbiBhCnNwZWNpZmljICJjcHUgY29yZSIpIGFuZCBvbiB0aGUgYWRtaW4g c2lkZS4KCldlIG5lZWQgdG8gYWNoaWV2ZSB0aGUgc2FtZSBmb3IgZ3B1cy4gIml0J3MgYSBiaXRt YXNrIiBpcyBub3QgZXZlbiBjbG9zZQplbm91Z2ggaW1vLgotRGFuaWVsCgo+IAo+IFJlZ2FyZHMs Cj4gS2VubnkKPiAKPiAKPiBPbiBXZWQsIE9jdCA5LCAyMDE5IGF0IDY6MzEgQU0gRGFuaWVsIFZl dHRlciA8ZGFuaWVsQGZmd2xsLmNoPiB3cm90ZToKPiA+Cj4gPiBPbiBUdWUsIE9jdCAwOCwgMjAx OSBhdCAwNjo1MzoxOFBNICswMDAwLCBLdWVobGluZywgRmVsaXggd3JvdGU6Cj4gPiA+IE9uIDIw MTktMDgtMjkgMjowNSBhLm0uLCBLZW5ueSBIbyB3cm90ZToKPiA+ID4gPiBkcm0ubGdwdQo+ID4g PiA+ICAgICAgICAgIEEgcmVhZC13cml0ZSBuZXN0ZWQta2V5ZWQgZmlsZSB3aGljaCBleGlzdHMg b24gYWxsIGNncm91cHMuCj4gPiA+ID4gICAgICAgICAgRWFjaCBlbnRyeSBpcyBrZXllZCBieSB0 aGUgRFJNIGRldmljZSdzIG1ham9yOm1pbm9yLgo+ID4gPiA+Cj4gPiA+ID4gICAgICAgICAgbGdw dSBzdGFuZHMgZm9yIGxvZ2ljYWwgR1BVLCBpdCBpcyBhbiBhYnN0cmFjdGlvbiB1c2VkIHRvCj4g PiA+ID4gICAgICAgICAgc3ViZGl2aWRlIGEgcGh5c2ljYWwgRFJNIGRldmljZSBmb3IgdGhlIHB1 cnBvc2Ugb2YgcmVzb3VyY2UKPiA+ID4gPiAgICAgICAgICBtYW5hZ2VtZW50Lgo+ID4gPiA+Cj4g PiA+ID4gICAgICAgICAgVGhlIGxncHUgaXMgYSBkaXNjcmV0ZSBxdWFudGl0eSB0aGF0IGlzIGRl dmljZSBzcGVjaWZpYyAoaS5lLgo+ID4gPiA+ICAgICAgICAgIHNvbWUgRFJNIGRldmljZXMgbWF5 IGhhdmUgNjQgbGdwdXMgd2hpbGUgb3RoZXJzIG1heSBoYXZlIDEwMAo+ID4gPiA+ICAgICAgICAg IGxncHVzLikgIFRoZSBsZ3B1IGlzIGEgc2luZ2xlIHF1YW50aXR5IHdpdGggdHdvIHJlcHJlc2Vu dGF0aW9ucwo+ID4gPiA+ICAgICAgICAgIGRlbm90ZWQgYnkgdGhlIGZvbGxvd2luZyBuZXN0ZWQg a2V5cy4KPiA+ID4gPgo+ID4gPiA+ICAgICAgICAgICAgPT09PT0gICAgID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KPiA+ID4gPiAgICAgICAgICAgIGNvdW50ICAgICBS ZXByZXNlbnRpbmcgbGdwdSBhcyBhbm9ueW1vdXMgcmVzb3VyY2UKPiA+ID4gPiAgICAgICAgICAg IGxpc3QgICAgICBSZXByZXNlbnRpbmcgbGdwdSBhcyBuYW1lZCByZXNvdXJjZQo+ID4gPiA+ICAg ICAgICAgICAgPT09PT0gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KPiA+ID4gPgo+ID4gPiA+ICAgICAgICAgIEZvciBleGFtcGxlOgo+ID4gPiA+ICAgICAgICAg IDIyNjowIGNvdW50PTI1NiBsaXN0PTAtMjU1Cj4gPiA+ID4gICAgICAgICAgMjI2OjEgY291bnQ9 NCBsaXN0PTAsMiw0LDYKPiA+ID4gPiAgICAgICAgICAyMjY6MiBjb3VudD0zMiBsaXN0PTMyLTYz Cj4gPiA+ID4KPiA+ID4gPiAgICAgICAgICBsZ3B1IGlzIHJlcHJlc2VudGVkIGJ5IGEgYml0bWFw IGFuZCB1c2VzIHRoZSBiaXRtYXBfcGFyc2VsaXN0Cj4gPiA+ID4gICAgICAgICAga2VybmVsIGZ1 bmN0aW9uIHNvIHRoZSBsaXN0IGtleSBpbnB1dCBmb3JtYXQgaXMgYQo+ID4gPiA+ICAgICAgICAg IGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIGRlY2ltYWwgbnVtYmVycyBhbmQgcmFuZ2VzLgo+ID4g PiA+Cj4gPiA+ID4gICAgICAgICAgQ29uc2VjdXRpdmVseSBzZXQgYml0cyBhcmUgc2hvd24gYXMg dHdvIGh5cGhlbi1zZXBhcmF0ZWQgZGVjaW1hbAo+ID4gPiA+ICAgICAgICAgIG51bWJlcnMsIHRo ZSBzbWFsbGVzdCBhbmQgbGFyZ2VzdCBiaXQgbnVtYmVycyBzZXQgaW4gdGhlIHJhbmdlLgo+ID4g PiA+ICAgICAgICAgIE9wdGlvbmFsbHkgZWFjaCByYW5nZSBjYW4gYmUgcG9zdGZpeGVkIHRvIGRl bm90ZSB0aGF0IG9ubHkgcGFydHMKPiA+ID4gPiAgICAgICAgICBvZiBpdCBzaG91bGQgYmUgc2V0 LiAgVGhlIHJhbmdlIHdpbGwgZGl2aWRlZCB0byBncm91cHMgb2YKPiA+ID4gPiAgICAgICAgICBz cGVjaWZpYyBzaXplLgo+ID4gPiA+ICAgICAgICAgIFN5bnRheDogcmFuZ2U6dXNlZF9zaXplL2dy b3VwX3NpemUKPiA+ID4gPiAgICAgICAgICBFeGFtcGxlOiAwLTEwMjM6Mi8yNTYgPT0+IDAsMSwy NTYsMjU3LDUxMiw1MTMsNzY4LDc2OQo+ID4gPiA+Cj4gPiA+ID4gICAgICAgICAgVGhlIGNvdW50 IGtleSBpcyB0aGUgaGFtbWluZyB3ZWlnaHQgLyBod2VpZ2h0IG9mIHRoZSBiaXRtYXAuCj4gPiA+ ID4KPiA+ID4gPiAgICAgICAgICBCb3RoIGNvdW50IGFuZCBsaXN0IGFjY2VwdCB0aGUgbWF4IGFu ZCBkZWZhdWx0IGtleXdvcmRzLgo+ID4gPiA+Cj4gPiA+ID4gICAgICAgICAgU29tZSBEUk0gZGV2 aWNlcyBtYXkgb25seSBzdXBwb3J0IGxncHUgYXMgYW5vbnltb3VzIHJlc291cmNlcy4KPiA+ID4g PiAgICAgICAgICBJbiBzdWNoIGNhc2UsIHRoZSBzaWduaWZpY2FuY2Ugb2YgdGhlIHBvc2l0aW9u IG9mIHRoZSBzZXQgYml0cwo+ID4gPiA+ICAgICAgICAgIGluIGxpc3Qgd2lsbCBiZSBpZ25vcmVk Lgo+ID4gPiA+Cj4gPiA+ID4gICAgICAgICAgVGhpcyBsZ3B1IHJlc291cmNlIHN1cHBvcnRzIHRo ZSAnYWxsb2NhdGlvbicgcmVzb3VyY2UKPiA+ID4gPiAgICAgICAgICBkaXN0cmlidXRpb24gbW9k ZWwuCj4gPiA+ID4KPiA+ID4gPiBDaGFuZ2UtSWQ6IEkxYWZjYWNmMzU2NzcwOTMwYzdmOTI1ZGYw NDNlNTFhZDA2Y2ViOThlCj4gPiA+ID4gU2lnbmVkLW9mZi1ieTogS2VubnkgSG8gPEtlbm55Lkhv QGFtZC5jb20+Cj4gPiA+Cj4gPiA+IFRoZSBkZXNjcmlwdGlvbiBzb3VuZHMgcmVhc29uYWJsZSB0 byBtZSBhbmQgbWFwcyB3ZWxsIHRvIHRoZSBDVSBtYXNraW5nCj4gPiA+IGZlYXR1cmUgaW4gb3Vy IEdQVXMuCj4gPiA+Cj4gPiA+IEl0IHdvdWxkIGFsc28gYWxsb3cgdXMgdG8gZG8gbW9yZSBjb2Fy c2UtZ3JhaW5lZCBtYXNraW5nIGZvciBleGFtcGxlIHRvCj4gPiA+IGd1YXJhbnRlZSBiYWxhbmNl ZCBhbGxvY2F0aW9uIG9mIENVcyBhY3Jvc3Mgc2hhZGVyIGVuZ2luZXMgb3IKPiA+ID4gcGFydGl0 aW9uaW5nIG9mIG1lbW9yeSBiYW5kd2lkdGggb3IgQ1AgcGlwZXMgKGlmIHRoYXQgaXMgc3VwcG9y dGVkIGJ5Cj4gPiA+IHRoZSBoYXJkd2FyZS9maXJtd2FyZSkuCj4gPgo+ID4gSG0sIHNvIHRoaXMg c291bmRzIGxpa2UgdGhlIGRlZmluaXRpb24gZm9yIGhvdyB0aGlzIGNncm91cCBpcyBzdXBwb3Nl ZCB0bwo+ID4gd29yayBpcyAiYW1kIENVIG1hc2tpbmciICh3aGF0ZXZlciB0aGF0IGV4YWN0bHkg aXMpLiBBbmQgdGhlIGFic3RyYWN0Cj4gPiBkZXNjcmlwdGlvbiBpcyBqdXN0IHByZXR0aWZpY2F0 aW9uIG9uIHRvcCwgYnV0IG5vdCBhY3R1YWxseSB0aGUgcmVhbAo+ID4gZGVmaW5pdGlvbiB5b3Ug Z3V5cyB3YW50Lgo+ID4KPiA+IEkgdGhpbmsgYWRkaW5nIGEgY2dyb3VwIHdoaWNoIGlzIHRoYXQg bXVjaCBkZXBlbmRpbmcgdXBvbiB0aGUgaHcKPiA+IGltcGxlbWVudGF0aW9uIG9mIHRoZSBmaXJz dCBkcml2ZXIgc3VwcG9ydGluZyBpdCBpcyBub3QgYSBnb29kIGlkZWEuCj4gPiAtRGFuaWVsCj4g Pgo+ID4gPgo+ID4gPiBJIGNhbid0IGNvbW1lbnQgb24gdGhlIGNvZGUgYXMgSSdtIHVuZmFtaWxp YXIgd2l0aCB0aGUgZGV0YWlscyBvZiB0aGUKPiA+ID4gY2dyb3VwIGNvZGUuCj4gPiA+Cj4gPiA+ IEFja2VkLWJ5OiBGZWxpeCBLdWVobGluZyA8RmVsaXguS3VlaGxpbmdAYW1kLmNvbT4KPiA+ID4K PiA+ID4KPiA+ID4gPiAtLS0KPiA+ID4gPiAgIERvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUvY2dy b3VwLXYyLnJzdCB8ICA0NiArKysrKysrKwo+ID4gPiA+ICAgaW5jbHVkZS9kcm0vZHJtX2Nncm91 cC5oICAgICAgICAgICAgICAgIHwgICA0ICsKPiA+ID4gPiAgIGluY2x1ZGUvbGludXgvY2dyb3Vw X2RybS5oICAgICAgICAgICAgICB8ICAgNiArKwo+ID4gPiA+ICAga2VybmVsL2Nncm91cC9kcm0u YyAgICAgICAgICAgICAgICAgICAgIHwgMTM1ICsrKysrKysrKysrKysrKysrKysrKysrKwo+ID4g PiA+ICAgNCBmaWxlcyBjaGFuZ2VkLCAxOTEgaW5zZXJ0aW9ucygrKQo+ID4gPiA+Cj4gPiA+ID4g ZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vYWRtaW4tZ3VpZGUvY2dyb3VwLXYyLnJzdCBiL0Rv Y3VtZW50YXRpb24vYWRtaW4tZ3VpZGUvY2dyb3VwLXYyLnJzdAo+ID4gPiA+IGluZGV4IDg3YTE5 NTEzM2VhYS4uNTdmMTg0NjliZDc2IDEwMDY0NAo+ID4gPiA+IC0tLSBhL0RvY3VtZW50YXRpb24v YWRtaW4tZ3VpZGUvY2dyb3VwLXYyLnJzdAo+ID4gPiA+ICsrKyBiL0RvY3VtZW50YXRpb24vYWRt aW4tZ3VpZGUvY2dyb3VwLXYyLnJzdAo+ID4gPiA+IEBAIC0xOTU4LDYgKzE5NTgsNTIgQEAgRFJN IEludGVyZmFjZSBGaWxlcwo+ID4gPiA+ICAgICBTZXQgbGFyZ2VzdCBhbGxvY2F0aW9uIGZvciAv ZGV2L2RyaS9jYXJkMSB0byA0TUIKPiA+ID4gPiAgICAgZWNobyAiMjI2OjEgNG0iID4gZHJtLmJ1 ZmZlci5wZWFrLm1heAo+ID4gPiA+Cj4gPiA+ID4gKyAgZHJtLmxncHUKPiA+ID4gPiArICAgQSBy ZWFkLXdyaXRlIG5lc3RlZC1rZXllZCBmaWxlIHdoaWNoIGV4aXN0cyBvbiBhbGwgY2dyb3Vwcy4K PiA+ID4gPiArICAgRWFjaCBlbnRyeSBpcyBrZXllZCBieSB0aGUgRFJNIGRldmljZSdzIG1ham9y Om1pbm9yLgo+ID4gPiA+ICsKPiA+ID4gPiArICAgbGdwdSBzdGFuZHMgZm9yIGxvZ2ljYWwgR1BV LCBpdCBpcyBhbiBhYnN0cmFjdGlvbiB1c2VkIHRvCj4gPiA+ID4gKyAgIHN1YmRpdmlkZSBhIHBo eXNpY2FsIERSTSBkZXZpY2UgZm9yIHRoZSBwdXJwb3NlIG9mIHJlc291cmNlCj4gPiA+ID4gKyAg IG1hbmFnZW1lbnQuCj4gPiA+ID4gKwo+ID4gPiA+ICsgICBUaGUgbGdwdSBpcyBhIGRpc2NyZXRl IHF1YW50aXR5IHRoYXQgaXMgZGV2aWNlIHNwZWNpZmljIChpLmUuCj4gPiA+ID4gKyAgIHNvbWUg RFJNIGRldmljZXMgbWF5IGhhdmUgNjQgbGdwdXMgd2hpbGUgb3RoZXJzIG1heSBoYXZlIDEwMAo+ ID4gPiA+ICsgICBsZ3B1cy4pICBUaGUgbGdwdSBpcyBhIHNpbmdsZSBxdWFudGl0eSB3aXRoIHR3 byByZXByZXNlbnRhdGlvbnMKPiA+ID4gPiArICAgZGVub3RlZCBieSB0aGUgZm9sbG93aW5nIG5l c3RlZCBrZXlzLgo+ID4gPiA+ICsKPiA+ID4gPiArICAgICA9PT09PSAgICAgPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+ID4gPiA+ICsgICAgIGNvdW50ICAgICBSZXBy ZXNlbnRpbmcgbGdwdSBhcyBhbm9ueW1vdXMgcmVzb3VyY2UKPiA+ID4gPiArICAgICBsaXN0ICAg ICAgUmVwcmVzZW50aW5nIGxncHUgYXMgbmFtZWQgcmVzb3VyY2UKPiA+ID4gPiArICAgICA9PT09 PSAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+ID4gPiA+ICsK PiA+ID4gPiArICAgRm9yIGV4YW1wbGU6Cj4gPiA+ID4gKyAgIDIyNjowIGNvdW50PTI1NiBsaXN0 PTAtMjU1Cj4gPiA+ID4gKyAgIDIyNjoxIGNvdW50PTQgbGlzdD0wLDIsNCw2Cj4gPiA+ID4gKyAg IDIyNjoyIGNvdW50PTMyIGxpc3Q9MzItNjMKPiA+ID4gPiArCj4gPiA+ID4gKyAgIGxncHUgaXMg cmVwcmVzZW50ZWQgYnkgYSBiaXRtYXAgYW5kIHVzZXMgdGhlIGJpdG1hcF9wYXJzZWxpc3QKPiA+ ID4gPiArICAga2VybmVsIGZ1bmN0aW9uIHNvIHRoZSBsaXN0IGtleSBpbnB1dCBmb3JtYXQgaXMg YQo+ID4gPiA+ICsgICBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBkZWNpbWFsIG51bWJlcnMgYW5k IHJhbmdlcy4KPiA+ID4gPiArCj4gPiA+ID4gKyAgIENvbnNlY3V0aXZlbHkgc2V0IGJpdHMgYXJl IHNob3duIGFzIHR3byBoeXBoZW4tc2VwYXJhdGVkIGRlY2ltYWwKPiA+ID4gPiArICAgbnVtYmVy cywgdGhlIHNtYWxsZXN0IGFuZCBsYXJnZXN0IGJpdCBudW1iZXJzIHNldCBpbiB0aGUgcmFuZ2Uu Cj4gPiA+ID4gKyAgIE9wdGlvbmFsbHkgZWFjaCByYW5nZSBjYW4gYmUgcG9zdGZpeGVkIHRvIGRl bm90ZSB0aGF0IG9ubHkgcGFydHMKPiA+ID4gPiArICAgb2YgaXQgc2hvdWxkIGJlIHNldC4gIFRo ZSByYW5nZSB3aWxsIGRpdmlkZWQgdG8gZ3JvdXBzIG9mCj4gPiA+ID4gKyAgIHNwZWNpZmljIHNp emUuCj4gPiA+ID4gKyAgIFN5bnRheDogcmFuZ2U6dXNlZF9zaXplL2dyb3VwX3NpemUKPiA+ID4g PiArICAgRXhhbXBsZTogMC0xMDIzOjIvMjU2ID09PiAwLDEsMjU2LDI1Nyw1MTIsNTEzLDc2OCw3 NjkKPiA+ID4gPiArCj4gPiA+ID4gKyAgIFRoZSBjb3VudCBrZXkgaXMgdGhlIGhhbW1pbmcgd2Vp Z2h0IC8gaHdlaWdodCBvZiB0aGUgYml0bWFwLgo+ID4gPiA+ICsKPiA+ID4gPiArICAgQm90aCBj b3VudCBhbmQgbGlzdCBhY2NlcHQgdGhlIG1heCBhbmQgZGVmYXVsdCBrZXl3b3Jkcy4KPiA+ID4g PiArCj4gPiA+ID4gKyAgIFNvbWUgRFJNIGRldmljZXMgbWF5IG9ubHkgc3VwcG9ydCBsZ3B1IGFz IGFub255bW91cyByZXNvdXJjZXMuCj4gPiA+ID4gKyAgIEluIHN1Y2ggY2FzZSwgdGhlIHNpZ25p ZmljYW5jZSBvZiB0aGUgcG9zaXRpb24gb2YgdGhlIHNldCBiaXRzCj4gPiA+ID4gKyAgIGluIGxp c3Qgd2lsbCBiZSBpZ25vcmVkLgo+ID4gPiA+ICsKPiA+ID4gPiArICAgVGhpcyBsZ3B1IHJlc291 cmNlIHN1cHBvcnRzIHRoZSAnYWxsb2NhdGlvbicgcmVzb3VyY2UKPiA+ID4gPiArICAgZGlzdHJp YnV0aW9uIG1vZGVsLgo+ID4gPiA+ICsKPiA+ID4gPiAgIEdFTSBCdWZmZXIgT3duZXJzaGlwCj4g PiA+ID4gICB+fn5+fn5+fn5+fn5+fn5+fn5+fgo+ID4gPiA+Cj4gPiA+ID4gZGlmZiAtLWdpdCBh L2luY2x1ZGUvZHJtL2RybV9jZ3JvdXAuaCBiL2luY2x1ZGUvZHJtL2RybV9jZ3JvdXAuaAo+ID4g PiA+IGluZGV4IDZkOTcwN2UxZWI3Mi4uYThkNmJlMGIwNzViIDEwMDY0NAo+ID4gPiA+IC0tLSBh L2luY2x1ZGUvZHJtL2RybV9jZ3JvdXAuaAo+ID4gPiA+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9j Z3JvdXAuaAo+ID4gPiA+IEBAIC02LDYgKzYsNyBAQAo+ID4gPiA+Cj4gPiA+ID4gICAjaW5jbHVk ZSA8bGludXgvY2dyb3VwX2RybS5oPgo+ID4gPiA+ICAgI2luY2x1ZGUgPGxpbnV4L3dvcmtxdWV1 ZS5oPgo+ID4gPiA+ICsjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KPiA+ID4gPiAgICNpbmNsdWRl IDxkcm0vdHRtL3R0bV9ib19hcGkuaD4KPiA+ID4gPiAgICNpbmNsdWRlIDxkcm0vdHRtL3R0bV9i b19kcml2ZXIuaD4KPiA+ID4gPgo+ID4gPiA+IEBAIC0yOCw2ICsyOSw5IEBAIHN0cnVjdCBkcm1j Z19wcm9wcyB7Cj4gPiA+ID4gICAgIHM2NCAgICAgICAgICAgICAgICAgICAgIG1lbV9oaWdoc19k ZWZhdWx0W1RUTV9QTF9QUklWKzFdOwo+ID4gPiA+Cj4gPiA+ID4gICAgIHN0cnVjdCB3b3JrX3N0 cnVjdCAgICAgICptZW1fcmVjbGFpbV93cVtUVE1fUExfUFJJVl07Cj4gPiA+ID4gKwo+ID4gPiA+ ICsgICBpbnQgICAgICAgICAgICAgICAgICAgICBsZ3B1X2NhcGFjaXR5Owo+ID4gPiA+ICsgICAg ICAgIERFQ0xBUkVfQklUTUFQKGxncHVfc2xvdHMsIE1BWF9EUk1DR19MR1BVX0NBUEFDSVRZKTsK PiA+ID4gPiAgIH07Cj4gPiA+ID4KPiA+ID4gPiAgICNpZmRlZiBDT05GSUdfQ0dST1VQX0RSTQo+ ID4gPiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2Nncm91cF9kcm0uaCBiL2luY2x1ZGUv bGludXgvY2dyb3VwX2RybS5oCj4gPiA+ID4gaW5kZXggYzU2Y2ZlNzRkMWE2Li43YjFjZmM0Y2U0 YzMgMTAwNjQ0Cj4gPiA+ID4gLS0tIGEvaW5jbHVkZS9saW51eC9jZ3JvdXBfZHJtLmgKPiA+ID4g PiArKysgYi9pbmNsdWRlL2xpbnV4L2Nncm91cF9kcm0uaAo+ID4gPiA+IEBAIC0xNCw2ICsxNCw4 IEBACj4gPiA+ID4gICAvKiBsaW1pdCBkZWZpbmVkIHBlciB0aGUgd2F5IGRybV9taW5vcl9hbGxv YyBvcGVyYXRlcyAqLwo+ID4gPiA+ICAgI2RlZmluZSBNQVhfRFJNX0RFViAoNjQgKiBEUk1fTUlO T1JfUkVOREVSKQo+ID4gPiA+Cj4gPiA+ID4gKyNkZWZpbmUgTUFYX0RSTUNHX0xHUFVfQ0FQQUNJ VFkgMjU2Cj4gPiA+ID4gKwo+ID4gPiA+ICAgZW51bSBkcm1jZ19tZW1fYndfYXR0ciB7Cj4gPiA+ ID4gICAgIERSTUNHX01FTV9CV19BVFRSX0JZVEVfTU9WRUQsIC8qIGZvciBjYWx1bGF0aW5nICdp bnN0YW50YW5lb3VzJyBidyAqLwo+ID4gPiA+ICAgICBEUk1DR19NRU1fQldfQVRUUl9BQ0NVTV9V UywgIC8qIGZvciBjYWx1bGF0aW5nICdpbnN0YW50YW5lb3VzJyBidyAqLwo+ID4gPiA+IEBAIC0z Miw2ICszNCw3IEBAIGVudW0gZHJtY2dfcmVzX3R5cGUgewo+ID4gPiA+ICAgICBEUk1DR19UWVBF X01FTV9QRUFLLAo+ID4gPiA+ICAgICBEUk1DR19UWVBFX0JBTkRXSURUSCwKPiA+ID4gPiAgICAg RFJNQ0dfVFlQRV9CQU5EV0lEVEhfUEVSSU9EX0JVUlNULAo+ID4gPiA+ICsgICBEUk1DR19UWVBF X0xHUFUsCj4gPiA+ID4gICAgIF9fRFJNQ0dfVFlQRV9MQVNULAo+ID4gPiA+ICAgfTsKPiA+ID4g Pgo+ID4gPiA+IEBAIC01OCw2ICs2MSw5IEBAIHN0cnVjdCBkcm1jZ19kZXZpY2VfcmVzb3VyY2Ug ewo+ID4gPiA+ICAgICBzNjQgICAgICAgICAgICAgICAgICAgICBtZW1fYndfc3RhdHNbX19EUk1D R19NRU1fQldfQVRUUl9MQVNUXTsKPiA+ID4gPiAgICAgczY0ICAgICAgICAgICAgICAgICAgICAg bWVtX2J3X2xpbWl0c19ieXRlc19pbl9wZXJpb2Q7Cj4gPiA+ID4gICAgIHM2NCAgICAgICAgICAg ICAgICAgICAgIG1lbV9id19saW1pdHNfYXZnX2J5dGVzX3Blcl91czsKPiA+ID4gPiArCj4gPiA+ ID4gKyAgIHM2NCAgICAgICAgICAgICAgICAgICAgIGxncHVfdXNlZDsKPiA+ID4gPiArICAgREVD TEFSRV9CSVRNQVAobGdwdV9hbGxvY2F0ZWQsIE1BWF9EUk1DR19MR1BVX0NBUEFDSVRZKTsKPiA+ ID4gPiAgIH07Cj4gPiA+ID4KPiA+ID4gPiAgIC8qKgo+ID4gPiA+IGRpZmYgLS1naXQgYS9rZXJu ZWwvY2dyb3VwL2RybS5jIGIva2VybmVsL2Nncm91cC9kcm0uYwo+ID4gPiA+IGluZGV4IDBlYTdm MDYxOWUyNS4uMThjNDM2OGUyYzI5IDEwMDY0NAo+ID4gPiA+IC0tLSBhL2tlcm5lbC9jZ3JvdXAv ZHJtLmMKPiA+ID4gPiArKysgYi9rZXJuZWwvY2dyb3VwL2RybS5jCj4gPiA+ID4gQEAgLTksNiAr OSw3IEBACj4gPiA+ID4gICAjaW5jbHVkZSA8bGludXgvY2dyb3VwX2RybS5oPgo+ID4gPiA+ICAg I2luY2x1ZGUgPGxpbnV4L2t0aW1lLmg+Cj4gPiA+ID4gICAjaW5jbHVkZSA8bGludXgva2VybmVs Lmg+Cj4gPiA+ID4gKyNpbmNsdWRlIDxsaW51eC9iaXRtYXAuaD4KPiA+ID4gPiAgICNpbmNsdWRl IDxkcm0vZHJtX2ZpbGUuaD4KPiA+ID4gPiAgICNpbmNsdWRlIDxkcm0vZHJtX2Rydi5oPgo+ID4g PiA+ICAgI2luY2x1ZGUgPGRybS90dG0vdHRtX2JvX2FwaS5oPgo+ID4gPiA+IEBAIC01Miw2ICs1 Myw5IEBAIHN0YXRpYyBjaGFyIGNvbnN0ICptZW1fYndfYXR0cl9uYW1lc1tdID0gewo+ID4gPiA+ ICAgI2RlZmluZSBNRU1fQldfTElNSVRTX05BTUVfQVZHICJhdmdfYnl0ZXNfcGVyX3VzIgo+ID4g PiA+ICAgI2RlZmluZSBNRU1fQldfTElNSVRTX05BTUVfQlVSU1QgImJ5dGVzX2luX3BlcmlvZCIK PiA+ID4gPgo+ID4gPiA+ICsjZGVmaW5lIExHUFVfTElNSVRTX05BTUVfTElTVCAibGlzdCIKPiA+ ID4gPiArI2RlZmluZSBMR1BVX0xJTUlUU19OQU1FX0NPVU5UICJjb3VudCIKPiA+ID4gPiArCj4g PiA+ID4gICBzdGF0aWMgc3RydWN0IGRybWNnICpyb290X2RybWNnIF9fcmVhZF9tb3N0bHk7Cj4g PiA+ID4KPiA+ID4gPiAgIHN0YXRpYyBpbnQgZHJtY2dfY3NzX2ZyZWVfZm4oaW50IGlkLCB2b2lk ICpwdHIsIHZvaWQgKmRhdGEpCj4gPiA+ID4gQEAgLTExNSw2ICsxMTksMTAgQEAgc3RhdGljIGlu bGluZSBpbnQgaW5pdF9kcm1jZ19zaW5nbGUoc3RydWN0IGRybWNnICpkcm1jZywgc3RydWN0IGRy bV9kZXZpY2UgKmRldikKPiA+ID4gPiAgICAgZm9yIChpID0gMDsgaSA8PSBUVE1fUExfUFJJVjsg aSsrKQo+ID4gPiA+ICAgICAgICAgICAgIGRkci0+bWVtX2hpZ2hzW2ldID0gZGV2LT5kcm1jZ19w cm9wcy5tZW1faGlnaHNfZGVmYXVsdFtpXTsKPiA+ID4gPgo+ID4gPiA+ICsgICBiaXRtYXBfY29w eShkZHItPmxncHVfYWxsb2NhdGVkLCBkZXYtPmRybWNnX3Byb3BzLmxncHVfc2xvdHMsCj4gPiA+ ID4gKyAgICAgICAgICAgICAgICAgICBNQVhfRFJNQ0dfTEdQVV9DQVBBQ0lUWSk7Cj4gPiA+ID4g KyAgIGRkci0+bGdwdV91c2VkID0gYml0bWFwX3dlaWdodChkZHItPmxncHVfYWxsb2NhdGVkLCBN QVhfRFJNQ0dfTEdQVV9DQVBBQ0lUWSk7Cj4gPiA+ID4gKwo+ID4gPiA+ICAgICBtdXRleF91bmxv Y2soJmRldi0+ZHJtY2dfbXV0ZXgpOwo+ID4gPiA+ICAgICByZXR1cm4gMDsKPiA+ID4gPiAgIH0K PiA+ID4gPiBAQCAtMjgwLDYgKzI4OCwxNCBAQCBzdGF0aWMgdm9pZCBkcm1jZ19wcmludF9saW1p dHMoc3RydWN0IGRybWNnX2RldmljZV9yZXNvdXJjZSAqZGRyLAo+ID4gPiA+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBNRU1fQldfTElNSVRTX05BTUVfQVZHLAo+ID4gPiA+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkZHItPm1lbV9id19saW1pdHNfYXZnX2J5dGVzX3Blcl91cyk7 Cj4gPiA+ID4gICAgICAgICAgICAgYnJlYWs7Cj4gPiA+ID4gKyAgIGNhc2UgRFJNQ0dfVFlQRV9M R1BVOgo+ID4gPiA+ICsgICAgICAgICAgIHNlcV9wcmludGYoc2YsICIlcz0lbGxkICVzPSUqcGJs XG4iLAo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICBMR1BVX0xJTUlUU19OQU1F X0NPVU5ULAo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICBkZHItPmxncHVfdXNl ZCwKPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgTEdQVV9MSU1JVFNfTkFNRV9M SVNULAo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXYtPmRybWNnX3Byb3Bz LmxncHVfY2FwYWNpdHksCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGRkci0+ bGdwdV9hbGxvY2F0ZWQpOwo+ID4gPiA+ICsgICAgICAgICAgIGJyZWFrOwo+ID4gPiA+ICAgICBk ZWZhdWx0Ogo+ID4gPiA+ICAgICAgICAgICAgIHNlcV9wdXRzKHNmLCAiXG4iKTsKPiA+ID4gPiAg ICAgICAgICAgICBicmVhazsKPiA+ID4gPiBAQCAtMzE0LDYgKzMzMCwxNSBAQCBzdGF0aWMgdm9p ZCBkcm1jZ19wcmludF9kZWZhdWx0KHN0cnVjdCBkcm1jZ19wcm9wcyAqcHJvcHMsCj4gPiA+ID4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1FTV9CV19MSU1JVFNfTkFNRV9BVkcsCj4gPiA+ ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLT5tZW1fYndfYXZnX2J5dGVzX3Bl cl91c19kZWZhdWx0KTsKPiA+ID4gPiAgICAgICAgICAgICBicmVhazsKPiA+ID4gPiArICAgY2Fz ZSBEUk1DR19UWVBFX0xHUFU6Cj4gPiA+ID4gKyAgICAgICAgICAgc2VxX3ByaW50ZihzZiwgIiVz PSVkICVzPSUqcGJsXG4iLAo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICBMR1BV X0xJTUlUU19OQU1FX0NPVU5ULAo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICBi aXRtYXBfd2VpZ2h0KHByb3BzLT5sZ3B1X3Nsb3RzLAo+ID4gPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHByb3BzLT5sZ3B1X2NhcGFjaXR5KSwKPiA+ID4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgTEdQVV9MSU1JVFNfTkFNRV9MSVNULAo+ID4gPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy0+bGdwdV9jYXBhY2l0eSwKPiA+ID4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMtPmxncHVfc2xvdHMpOwo+ID4gPiA+ICsgICAg ICAgICAgIGJyZWFrOwo+ID4gPiA+ICAgICBkZWZhdWx0Ogo+ID4gPiA+ICAgICAgICAgICAgIHNl cV9wdXRzKHNmLCAiXG4iKTsKPiA+ID4gPiAgICAgICAgICAgICBicmVhazsKPiA+ID4gPiBAQCAt NDA3LDkgKzQzMiwyMSBAQCBzdGF0aWMgdm9pZCBkcm1jZ192YWx1ZV9hcHBseShzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCBzNjQgKmRzdCwgczY0IHZhbCkKPiA+ID4gPiAgICAgbXV0ZXhfdW5sb2Nr KCZkZXYtPmRybWNnX211dGV4KTsKPiA+ID4gPiAgIH0KPiA+ID4gPgo+ID4gPiA+ICtzdGF0aWMg dm9pZCBkcm1jZ19sZ3B1X3ZhbHVlc19hcHBseShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4g PiA+ICsgICAgICAgICAgIHN0cnVjdCBkcm1jZ19kZXZpY2VfcmVzb3VyY2UgKmRkciwgdW5zaWdu ZWQgbG9uZyAqdmFsKQo+ID4gPiA+ICt7Cj4gPiA+ID4gKwo+ID4gPiA+ICsgICBtdXRleF9sb2Nr KCZkZXYtPmRybWNnX211dGV4KTsKPiA+ID4gPiArICAgYml0bWFwX2NvcHkoZGRyLT5sZ3B1X2Fs bG9jYXRlZCwgdmFsLCBNQVhfRFJNQ0dfTEdQVV9DQVBBQ0lUWSk7Cj4gPiA+ID4gKyAgIGRkci0+ bGdwdV91c2VkID0gYml0bWFwX3dlaWdodChkZHItPmxncHVfYWxsb2NhdGVkLCBNQVhfRFJNQ0df TEdQVV9DQVBBQ0lUWSk7Cj4gPiA+ID4gKyAgIG11dGV4X3VubG9jaygmZGV2LT5kcm1jZ19tdXRl eCk7Cj4gPiA+ID4gK30KPiA+ID4gPiArCj4gPiA+ID4gICBzdGF0aWMgdm9pZCBkcm1jZ19uZXN0 ZWRfbGltaXRfcGFyc2Uoc3RydWN0IGtlcm5mc19vcGVuX2ZpbGUgKm9mLAo+ID4gPiA+ICAgICAg ICAgICAgIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGNoYXIgKmF0dHJzKQo+ID4gPiA+ICAgewo+ ID4gPiA+ICsgICBERUNMQVJFX0JJVE1BUCh0bXBfYml0bWFwLCBNQVhfRFJNQ0dfTEdQVV9DQVBB Q0lUWSk7Cj4gPiA+ID4gKyAgIERFQ0xBUkVfQklUTUFQKGNoa19iaXRtYXAsIE1BWF9EUk1DR19M R1BVX0NBUEFDSVRZKTsKPiA+ID4gPiAgICAgZW51bSBkcm1jZ19yZXNfdHlwZSB0eXBlID0KPiA+ ID4gPiAgICAgICAgICAgICBEUk1DR19DVEZfUFJJVjJSRVNUWVBFKG9mX2NmdChvZiktPnByaXZh dGUpOwo+ID4gPiA+ICAgICBzdHJ1Y3QgZHJtY2cgKmRybWNnID0gY3NzX3RvX2RybWNnKG9mX2Nz cyhvZikpOwo+ID4gPiA+IEBAIC01MDEsNiArNTM4LDgzIEBAIHN0YXRpYyB2b2lkIGRybWNnX25l c3RlZF9saW1pdF9wYXJzZShzdHJ1Y3Qga2VybmZzX29wZW5fZmlsZSAqb2YsCj4gPiA+ID4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+ID4gPiA+ICAgICAgICAgICAgICAg ICAgICAgfQo+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7IC8qIERSTUNHX1RZUEVf TUVNICovCj4gPiA+ID4gKyAgICAgICAgICAgY2FzZSBEUk1DR19UWVBFX0xHUFU6Cj4gPiA+ID4g KyAgICAgICAgICAgICAgICAgICBpZiAoc3RybmNtcChzbmFtZSwgTEdQVV9MSU1JVFNfTkFNRV9M SVNULCAyNTYpICYmCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm5jbXAo c25hbWUsIExHUFVfTElNSVRTX05BTUVfQ09VTlQsIDI1NikgKQo+ID4gPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb250aW51ZTsKPiA+ID4gPiArCj4gPiA+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgIGlmICghc3RyY21wKCJtYXgiLCBzdmFsKSB8fAo+ID4gPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICFzdHJjbXAoImRlZmF1bHQiLCBzdmFsKSkgewo+ ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50ICE9IE5VTEwpCj4g PiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJtY2dfbGdwdV92YWx1 ZXNfYXBwbHkoZGV2LCBkZHIsCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwYXJlbnQtPmRldl9yZXNvdXJjZXNbbWlub3JdLT4KPiA+ID4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxncHVfYWxsb2NhdGVkKTsK PiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQo+ID4gPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRybWNnX2xncHVfdmFsdWVzX2FwcGx5KGRldiwg ZGRyLAo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cHJvcHMtPmxncHVfc2xvdHMpOwo+ID4gPiA+ICsKPiA+ID4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29udGludWU7Cj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICB9Cj4gPiA+ID4g Kwo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgaWYgKHN0cm5jbXAoc25hbWUsIExHUFVfTElN SVRTX05BTUVfQ09VTlQsIDI1NikgPT0gMCkgewo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICBwX21heCA9IHBhcmVudCA9PSBOVUxMID8gcHJvcHMtPmxncHVfY2FwYWNpdHk6Cj4g PiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYml0bWFwX3dlaWdodCgK PiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnQtPmRldl9y ZXNvdXJjZXNbbWlub3JdLT4KPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsZ3B1X2FsbG9jYXRlZCwgcHJvcHMtPmxncHVfY2FwYWNpdHkpOwo+ID4gPiA+ICsKPiA+ ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgcmMgPSBkcm1jZ19wcm9jZXNzX2xpbWl0 X3M2NF92YWwoc3ZhbCwKPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBmYWxzZSwgcF9tYXgsIHBfbWF4LCAmdmFsKTsKPiA+ID4gPiArCj4gPiA+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmIChyYyB8fCB2YWwgPCAwKSB7Cj4gPiA+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJtY2dfcHJfY2Z0X2Vycihkcm1jZywgcmMsIGNm dF9uYW1lLAo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBtaW5vcik7Cj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29udGludWU7Cj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KPiA+ ID4gPiArCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpdG1hcF96ZXJvKHRt cF9iaXRtYXAsCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBNQVhfRFJNQ0dfTEdQVV9DQVBBQ0lUWSk7Cj4gPiA+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgIGJpdG1hcF9zZXQodG1wX2JpdG1hcCwgMCwgdmFsKTsKPiA+ID4gPiArICAgICAg ICAgICAgICAgICAgIH0KPiA+ID4gPiArCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICBpZiAo c3RybmNtcChzbmFtZSwgTEdQVV9MSU1JVFNfTkFNRV9MSVNULCAyNTYpID09IDApIHsKPiA+ID4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgcmMgPSBiaXRtYXBfcGFyc2VsaXN0KHN2YWws IHRtcF9iaXRtYXAsCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBNQVhfRFJNQ0dfTEdQVV9DQVBBQ0lUWSk7Cj4gPiA+ID4gKwo+ID4gPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiAocmMpIHsKPiA+ID4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkcm1jZ19wcl9jZnRfZXJyKGRybWNnLCByYywgY2Z0X25hbWUs Cj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG1pbm9yKTsKPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b250aW51ZTsKPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgfQo+ID4gPiA+ICsK PiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgYml0bWFwX2FuZG5vdChjaGtfYml0 bWFwLCB0bXBfYml0bWFwLAo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHByb3BzLT5sZ3B1X3Nsb3RzLAo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE1BWF9EUk1DR19MR1BVX0NBUEFDSVRZKTsKPiA+ID4gPiArCj4gPiA+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghYml0bWFwX2VtcHR5KGNoa19iaXRtYXAsCj4g PiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQVhfRFJN Q0dfTEdQVV9DQVBBQ0lUWSkpIHsKPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBkcm1jZ19wcl9jZnRfZXJyKGRybWNnLCAwLCBjZnRfbmFtZSwKPiA+ID4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlub3IpOwo+ ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+ID4g PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICB9Cj4gPiA+ID4gKyAgICAgICAgICAgICAg ICAgICB9Cj4gPiA+ID4gKwo+ID4gPiA+ICsKPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgaWYgKHBhcmVudCAhPSBOVUxMKSB7Cj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgIGJpdG1hcF9hbmQoY2hrX2JpdG1hcCwgdG1wX2JpdG1hcCwKPiA+ID4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgcGFyZW50LT5kZXZfcmVzb3VyY2VzW21pbm9yXS0+bGdwdV9hbGxv Y2F0ZWQsCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLT5sZ3B1X2Nh cGFjaXR5KTsKPiA+ID4gPiArCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm IChiaXRtYXBfZW1wdHkoY2hrX2JpdG1hcCwKPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHByb3BzLT5sZ3B1X2NhcGFjaXR5KSkgewo+ID4gPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRybWNnX3ByX2NmdF9lcnIoZHJtY2cs IDAsCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNmdF9uYW1lLCBtaW5vcik7Cj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29udGludWU7Cj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KPiA+ID4gPiArICAgICAgICAgICAgICAgICAgIH0KPiA+ID4gPiArCj4gPiA+ID4gKyAgICAg ICAgICAgICAgICAgICBkcm1jZ19sZ3B1X3ZhbHVlc19hcHBseShkZXYsIGRkciwgdG1wX2JpdG1h cCk7Cj4gPiA+ID4gKwo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgYnJlYWs7IC8qIERSTUNH X1RZUEVfTEdQVSAqLwo+ID4gPiA+ICAgICAgICAgICAgIGRlZmF1bHQ6Cj4gPiA+ID4gICAgICAg ICAgICAgICAgICAgICBicmVhazsKPiA+ID4gPiAgICAgICAgICAgICB9IC8qIHN3aXRjaCAodHlw ZSkgKi8KPiA+ID4gPiBAQCAtNjA2LDYgKzcyMCw3IEBAIHN0YXRpYyBzc2l6ZV90IGRybWNnX2xp bWl0X3dyaXRlKHN0cnVjdCBrZXJuZnNfb3Blbl9maWxlICpvZiwgY2hhciAqYnVmLAo+ID4gPiA+ ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cj4gPiA+ID4gICAgICAgICAgICAgY2FzZSBEUk1D R19UWVBFX0JBTkRXSURUSDoKPiA+ID4gPiAgICAgICAgICAgICBjYXNlIERSTUNHX1RZUEVfTUVN Ogo+ID4gPiA+ICsgICAgICAgICAgIGNhc2UgRFJNQ0dfVFlQRV9MR1BVOgo+ID4gPiA+ICAgICAg ICAgICAgICAgICAgICAgZHJtY2dfbmVzdGVkX2xpbWl0X3BhcnNlKG9mLCBkbS0+ZGV2LCBzYXR0 cik7Cj4gPiA+ID4gICAgICAgICAgICAgICAgICAgICBicmVhazsKPiA+ID4gPiAgICAgICAgICAg ICBkZWZhdWx0Ogo+ID4gPiA+IEBAIC03MzEsNiArODQ2LDIwIEBAIHN0cnVjdCBjZnR5cGUgZmls ZXNbXSA9IHsKPiA+ID4gPiAgICAgICAgICAgICAucHJpdmF0ZSA9IERSTUNHX0NURl9QUklWKERS TUNHX1RZUEVfQkFORFdJRFRILAo+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgRFJNQ0dfRlRZUEVfREVGQVVMVCksCj4gPiA+ID4gICAgIH0sCj4gPiA+ ID4gKyAgIHsKPiA+ID4gPiArICAgICAgICAgICAubmFtZSA9ICJsZ3B1IiwKPiA+ID4gPiArICAg ICAgICAgICAuc2VxX3Nob3cgPSBkcm1jZ19zZXFfc2hvdywKPiA+ID4gPiArICAgICAgICAgICAu d3JpdGUgPSBkcm1jZ19saW1pdF93cml0ZSwKPiA+ID4gPiArICAgICAgICAgICAucHJpdmF0ZSA9 IERSTUNHX0NURl9QUklWKERSTUNHX1RZUEVfTEdQVSwKPiA+ID4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIERSTUNHX0ZUWVBFX0xJTUlUKSwKPiA+ID4gPiAr ICAgfSwKPiA+ID4gPiArICAgewo+ID4gPiA+ICsgICAgICAgICAgIC5uYW1lID0gImxncHUuZGVm YXVsdCIsCj4gPiA+ID4gKyAgICAgICAgICAgLnNlcV9zaG93ID0gZHJtY2dfc2VxX3Nob3csCj4g PiA+ID4gKyAgICAgICAgICAgLmZsYWdzID0gQ0ZUWVBFX09OTFlfT05fUk9PVCwKPiA+ID4gPiAr ICAgICAgICAgICAucHJpdmF0ZSA9IERSTUNHX0NURl9QUklWKERSTUNHX1RZUEVfTEdQVSwKPiA+ ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERSTUNHX0ZU WVBFX0RFRkFVTFQpLAo+ID4gPiA+ICsgICB9LAo+ID4gPiA+ICAgICB7IH0gICAgIC8qIHRlcm1p bmF0ZSAqLwo+ID4gPiA+ICAgfTsKPiA+ID4gPgo+ID4gPiA+IEBAIC03NDQsNiArODczLDEwIEBA IHN0cnVjdCBjZ3JvdXBfc3Vic3lzIGRybV9jZ3JwX3N1YnN5cyA9IHsKPiA+ID4gPgo+ID4gPiA+ ICAgc3RhdGljIGlubGluZSB2b2lkIGRybWNnX3VwZGF0ZV9jZ190cmVlKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCj4gPiA+ID4gICB7Cj4gPiA+ID4gKyAgICAgICAgYml0bWFwX3plcm8oZGV2LT5k cm1jZ19wcm9wcy5sZ3B1X3Nsb3RzLCBNQVhfRFJNQ0dfTEdQVV9DQVBBQ0lUWSk7Cj4gPiA+ID4g KyAgICAgICAgYml0bWFwX2ZpbGwoZGV2LT5kcm1jZ19wcm9wcy5sZ3B1X3Nsb3RzLAo+ID4gPiA+ ICsgICAgICAgICAgICAgICAgICAgZGV2LT5kcm1jZ19wcm9wcy5sZ3B1X2NhcGFjaXR5KTsKPiA+ ID4gPiArCj4gPiA+ID4gICAgIC8qIGluaXQgY2dyb3VwcyBjcmVhdGVkIGJlZm9yZSByZWdpc3Ry YXRpb24gKGkuZS4gcm9vdCBjZ3JvdXApICovCj4gPiA+ID4gICAgIGlmIChyb290X2RybWNnICE9 IE5VTEwpIHsKPiA+ID4gPiAgICAgICAgICAgICBzdHJ1Y3QgY2dyb3VwX3N1YnN5c19zdGF0ZSAq cG9zOwo+ID4gPiA+IEBAIC04MDAsNiArOTMzLDggQEAgdm9pZCBkcm1jZ19kZXZpY2VfZWFybHlf aW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gPiA+ICAgICBmb3IgKGkgPSAwOyBpIDw9 IFRUTV9QTF9QUklWOyBpKyspCj4gPiA+ID4gICAgICAgICAgICAgZGV2LT5kcm1jZ19wcm9wcy5t ZW1faGlnaHNfZGVmYXVsdFtpXSA9IFM2NF9NQVg7Cj4gPiA+ID4KPiA+ID4gPiArICAgZGV2LT5k cm1jZ19wcm9wcy5sZ3B1X2NhcGFjaXR5ID0gTUFYX0RSTUNHX0xHUFVfQ0FQQUNJVFk7Cj4gPiA+ ID4gKwo+ID4gPiA+ICAgICBkcm1jZ191cGRhdGVfY2dfdHJlZShkZXYpOwo+ID4gPiA+ICAgfQo+ ID4gPiA+ICAgRVhQT1JUX1NZTUJPTChkcm1jZ19kZXZpY2VfZWFybHlfaW5pdCk7Cj4gPgo+ID4g LS0KPiA+IERhbmllbCBWZXR0ZXIKPiA+IFNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3Jh dGlvbgo+ID4gaHR0cDovL2Jsb2cuZmZ3bGwuY2gKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJl IEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcg bGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZng=