From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH 2/2] drm/amdgpu: bind GTT on demand Date: Wed, 7 Sep 2016 18:26:14 +0200 Message-ID: <3c8d6d32-79eb-33bf-0f0c-b8f61d35b203@vodafone.de> References: <1473154866-2448-1-git-send-email-deathsimple@vodafone.de> <1473154866-2448-2-git-send-email-deathsimple@vodafone.de> <57CE9220.8060403@amd.com> <57CFBF51.3000506@amd.com> <24352e53-0c1c-8b55-0b39-35b3e5d350ff@vodafone.de> <2a4f24fa-6873-7c7f-486f-ef4f29efa63a@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <2a4f24fa-6873-7c7f-486f-ef4f29efa63a-5C7GfCeVMHo@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Felix Kuehling , amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org PiBUaGUgcGF0Y2ggbG9va3MgZ29vZCB0byBtZS4gVGhhbmtzIGZvciB0YWNrbGluZyB0aGlzLiBJ IGRpZG4ndCByZXZpZXcgaXQKPiB0b28gdGhvcm91Z2hseSwgYW5kIGlmIHlvdSBmb3Jnb3QgdG8g bWFwIHRvIEdBUlQgc29tZXdoZXJlIGltcG9ydGFudCwgSQo+IHdvdWxkIHByb2JhYmx5IGhhdmUg bWlzc2VkIGl0LgoKWWVhaCB0aGF0J3MgYWxzbyBteSBiaWdnZXN0IGNvbmNlcm4sIGJ1dCB0aGF0 IHNob3VsZCBhdCBsZWFzdCByYWlzZSBhIApXQVJOX09OKCkuCgo+IEFja2VkLWJ5OiBGZWxpeCBL dWVobGluZyA8RmVsaXguS3VlaGxpbmdAYW1kLmNvbT4KVGhhbmtzLgoKPiBPbmNlIHdlIHB1bGwg dGhpcyBjaGFuZ2UgaW50byB0aGUgS0ZEIGJyYW5jaCwgd2UgY2FuIHByb2JhYmx5IHJldmVydCBv dXIKPiByaWRpY3Vsb3VzIEdBUlQgc2l6ZSB3aXRob3V0IGxvc2luZyB0aGUgYWJpbGl0eSB0byBt YXAgbG90cyBvZiBzeXN0ZW0KPiBtZW1vcnkgdG8gR1BVVk0uIDopCldhaXQgYSBzZWNvbmQgd2l0 aCB0aGF0LiBZb3UgYWxzbyBuZWVkIG15IHNlY29uZCBwYXJ0IG9mIHRoYXQgd29yayB3aGVyZSAK SSBhbHNvIHN0b3AgYXNzaWduaW5nIGFkZHJlc3Mgc3BhY2UgdG8gYWxsIHRob3NlIGJ1ZmZlcnMg d2hpY2ggYXJlbid0IAptYXBwZWQuCgpCdXQgSSdtIHN0aWxsIHdvcmtpbmcgb24gdGhhdC4KClJl Z2FyZHMsCkNocmlzdGlhbi4KCkFtIDA3LjA5LjIwMTYgdW0gMTg6MDcgc2NocmllYiBGZWxpeCBL dWVobGluZzoKPiBZZWFoLCB5b3Ugc2F2ZSB5b3Vyc2VsZiB0aGUgR1RUIHVwZGF0ZSwgd2hpY2gg YWx3YXlzIHVzZXMgdGhlIENQVS4KPiBJbnN0ZWFkIHlvdSB3cml0ZSB0aGUgcGFnZSB0YWJsZSBl bnRyaWVzIHRvIElCcyB1c2luZyB0aGUgQ1BVLiBXaWxsIGJlCj4gaW50ZXJlc3RpbmcgdG8gc2Vl IGlmIHRoYXQncyBhIG5ldCBzcGVlZC11cCBvciBzbG93LWRvd24sIGlmIHRoZQo+IGRpZmZlcmVu Y2UgaXMgc2lnbmlmaWNhbnQgYXQgYWxsLgo+Cj4gVGhlIHBhdGNoIGxvb2tzIGdvb2QgdG8gbWUu IFRoYW5rcyBmb3IgdGFja2xpbmcgdGhpcy4gSSBkaWRuJ3QgcmV2aWV3IGl0Cj4gdG9vIHRob3Jv dWdobHksIGFuZCBpZiB5b3UgZm9yZ290IHRvIG1hcCB0byBHQVJUIHNvbWV3aGVyZSBpbXBvcnRh bnQsIEkKPiB3b3VsZCBwcm9iYWJseSBoYXZlIG1pc3NlZCBpdC4KPgo+IEFja2VkLWJ5OiBGZWxp eCBLdWVobGluZyA8RmVsaXguS3VlaGxpbmdAYW1kLmNvbT4KPgo+IE9uY2Ugd2UgcHVsbCB0aGlz IGNoYW5nZSBpbnRvIHRoZSBLRkQgYnJhbmNoLCB3ZSBjYW4gcHJvYmFibHkgcmV2ZXJ0IG91cgo+ IHJpZGljdWxvdXMgR0FSVCBzaXplIHdpdGhvdXQgbG9zaW5nIHRoZSBhYmlsaXR5IHRvIG1hcCBs b3RzIG9mIHN5c3RlbQo+IG1lbW9yeSB0byBHUFVWTS4gOikKPgo+IFJlZ2FyZHMsCj4gICAgRmVs aXgKPgo+IE9uIDE2LTA5LTA3IDA0OjE4IEFNLCBDaHJpc3RpYW4gS8O2bmlnIHdyb3RlOgo+PiBB bSAwNy4wOS4yMDE2IHVtIDA5OjE4IHNjaHJpZWIgemhvdWNtMToKPj4+Cj4+PiBPbiAyMDE25bm0 MDnmnIgwNuaXpSAxODo0OCwgQ2hyaXN0aWFuIEvDtm5pZyB3cm90ZToKPj4+PiBBbSAwNi4wOS4y MDE2IHVtIDExOjUzIHNjaHJpZWIgemhvdWNtMToKPj4+Pj4KPj4+Pj4gT24gMjAxNuW5tDA55pyI MDbml6UgMTc6NDEsIENocmlzdGlhbiBLw7ZuaWcgd3JvdGU6Cj4+Pj4+PiBGcm9tOiBDaHJpc3Rp YW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+Cj4+Pj4+Pgo+Pj4+Pj4gV2UgZG9u J3QgcmVhbGx5IG5lZWQgdGhlIEdUVCB0YWJsZSBhbnkgbW9yZSBtb3N0IG9mIHRoZSB0aW1lLgo+ Pj4+PiBXaHk/IEkgdGhvdWdodCBHVFQgYm8gaXMgYWx3YXlzIG5lZWRlZCB0byBiZSBib3VuZCB3 aGVuIEdQVSBpcwo+Pj4+PiB0cnlpbmcgdG8gYWNjZXNzIGl0LCBkb2Vzbid0IGl0Pwo+Pj4+IFdl IG9ubHkgbmVlZCBpdCB0byBiZSBib3VuZCB3aGVuIHdlIHRyeSB0byBhY2Nlc3MgaXQgZnJvbSB0 aGUgc3lzdGVtCj4+Pj4gVk0gKFVWRC9WQ0UsIHJpbmcgYnVmZmVycywgZmVuY2VzIGV0Yy4uLiku Cj4+Pj4KPj4+PiBUaGUgVk1zIGZvciBlYWNoIHByb2Nlc3MgY2FuIHdvcmsgd2l0aG91dCBpdCBh bmQgaXQgaXMganVzdCBvdmVyaGVhZAo+Pj4+IHRvIGJpbmQgaXQgYWxsIHRoZSB0aW1lLgo+Pj4g WWVzLCBJIGdvdCB5b3VyIG1lYW4sIGNvcHlpbmcgcHRlIGZyb20gR0FSVCB0byBWTSBjb25mdXNl ZCBtZSwgSQo+Pj4gdGhvdWdodCBiaW5kaW5nIEdUVCB0YWJsZSBpcyBhIG11c3QsIHRoYXQncyB3 cm9uZy4KPj4+IEdvIHRob3VnaCB2bSBjb2RlIGFnYWluLCBwdGUgY2FuIGJlIGNyZWF0ZWQgYnkg YW1kZ3B1X3ZtX21hcF9nYXJ0IGlmCj4+PiBubyBHVFQgcHRlIHNvdXJjZSB3aGVuIHdlIGRvbid0 IGJpbmQgaXQgYXQgYWxsIHVuZGVyIFZNIHByb2Nlc3MsIGFtIEkKPj4+IHJpZ2h0IG5vdz8KPj4g WWVzIGV4YWN0bHkuIEkgc3RpbGwgbmVlZCB0byBtZWFzdXJlIHRoZSBwZXJmb3JtYW5jZSBpbXBh Y3Qgb2YgdGhhdCwKPj4gYWRkaW5nIHRoZSBjb3B5IGZyb20gdGhlIEdUVCBtYWRlIHF1aXRlIGEg ZGlmZmVyZW5jZSB3aGVuIEkgaW50cm9kdWNlZAo+PiB0aGF0Lgo+Pgo+PiBJIGhvcGUgdGhhdCBk b2luZyB0aGUgd3JpdGUgd2hlbiB0aGUgdXBkYXRlIHRoZSBWTSBpcyBzdGlsbCBmYXN0ZXIKPj4g dGhhbiBkb2luZyB0aGUgR1RUIHdyaXRlLgo+Pgo+PiBSZWdhcmRzLAo+PiBDaHJpc3RpYW4uCj4+ Cj4+PiBSZWdhcmRzLAo+Pj4gRGF2aWQgWmhvdQo+Pj4KPj4+PiBSZWdhcmRzLAo+Pj4+IENocmlz dGlhbi4KPj4+Pgo+Pj4+Cj4+Pj4+IFJlZ2FyZHMsCj4+Pj4+IERhdmlkIFpob3UKPj4+Pj4+ICAg IFNvIGJpbmQgaXQKPj4+Pj4+IG9ubHkgb24gZGVtYW5kLgo+Pj4+Pj4KPj4+Pj4+IFNpZ25lZC1v ZmYtYnk6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KPj4+Pj4+ IC0tLQo+Pj4+Pj4gICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmggICAgICAg IHwgIDEgKwo+Pj4+Pj4gICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMg ICAgIHwgMzQKPj4+Pj4+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLQo+Pj4+Pj4gICAg ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5jIHwgIDcgKysrKysrCj4+ Pj4+PiAgICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmMgICAgfCAzMwo+ Pj4+Pj4gKysrKysrKysrKysrKysrKysrKysrKysrKystLS0KPj4+Pj4+ICAgIGRyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uaCAgICB8ICAzICsrKwo+Pj4+Pj4gICAgZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3V2ZC5jICAgIHwgIDQgKysrKwo+Pj4+Pj4gICAg ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZjZS5jICAgIHwgIDYgKysrKystCj4+ Pj4+PiAgICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYyAgICAgfCAgMyAr Ky0KPj4+Pj4+ICAgIDggZmlsZXMgY2hhbmdlZCwgODQgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlv bnMoLSkKPj4+Pj4+Cj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1LmgKPj4+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmgK Pj4+Pj4+IGluZGV4IDlkMzlmYTguLjI4ZDRhNjcgMTAwNjQ0Cj4+Pj4+PiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaAo+Pj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1LmgKPj4+Pj4+IEBAIC0yNTIxLDYgKzI1MjEsNyBAQCBzdGF0aWMg aW5saW5lIHZvaWQgYW1kZ3B1X2FjcGlfZmluaShzdHJ1Y3QKPj4+Pj4+IGFtZGdwdV9kZXZpY2Ug KmFkZXYpIHsgfQo+Pj4+Pj4gICAgc3RydWN0IGFtZGdwdV9ib192YV9tYXBwaW5nICoKPj4+Pj4+ ICAgIGFtZGdwdV9jc19maW5kX21hcHBpbmcoc3RydWN0IGFtZGdwdV9jc19wYXJzZXIgKnBhcnNl ciwKPj4+Pj4+ICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGFkZHIsIHN0cnVjdCBhbWRncHVf Ym8gKipibyk7Cj4+Pj4+PiAraW50IGFtZGdwdV9jc19zeXN2bV9hY2Nlc3NfcmVxdWlyZWQoc3Ry dWN0IGFtZGdwdV9jc19wYXJzZXIKPj4+Pj4+ICpwYXJzZXIpOwo+Pj4+Pj4gICAgICAjaWYgZGVm aW5lZChDT05GSUdfRFJNX0FNRF9EQUwpCj4+Pj4+PiAgICBpbnQgYW1kZ3B1X2RtX2Rpc3BsYXlf cmVzdW1lKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ICk7Cj4+Pj4+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMKPj4+Pj4+IGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMKPj4+Pj4+IGluZGV4IDIwYTE5NjIuLmUwNjk5 NzggMTAwNjQ0Cj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf Y3MuYwo+Pj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMK Pj4+Pj4+IEBAIC02NDAsOCArNjQwLDEyIEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2NzX3BhcnNlcl9i b3Moc3RydWN0Cj4+Pj4+PiBhbWRncHVfY3NfcGFyc2VyICpwLAo+Pj4+Pj4gICAgICAgICAgICB9 Cj4+Pj4+PiAgICAgICAgfQo+Pj4+Pj4gICAgLSAgICBpZiAocC0+dWZfZW50cnkucm9iaikKPj4+ Pj4+IC0gICAgICAgIHAtPmpvYi0+dWZfYWRkciArPSBhbWRncHVfYm9fZ3B1X29mZnNldChwLT51 Zl9lbnRyeS5yb2JqKTsKPj4+Pj4+ICsgICAgaWYgKCFyICYmIHAtPnVmX2VudHJ5LnJvYmopIHsK Pj4+Pj4+ICsgICAgICAgIHN0cnVjdCBhbWRncHVfYm8gKnVmID0gcC0+dWZfZW50cnkucm9iajsK Pj4+Pj4+ICsKPj4+Pj4+ICsgICAgICAgIHIgPSBhbWRncHVfdHRtX2JpbmQodWYtPnRiby50dG0s ICZ1Zi0+dGJvLm1lbSk7Cj4+Pj4+PiArICAgICAgICBwLT5qb2ItPnVmX2FkZHIgKz0gYW1kZ3B1 X2JvX2dwdV9vZmZzZXQodWYpOwo+Pj4+Pj4gKyAgICB9Cj4+Pj4+PiAgICAgIGVycm9yX3ZhbGlk YXRlOgo+Pj4+Pj4gICAgICAgIGlmIChyKSB7Cj4+Pj4+PiBAQCAtMTE1NiwzICsxMTYwLDI5IEBA IGFtZGdwdV9jc19maW5kX21hcHBpbmcoc3RydWN0Cj4+Pj4+PiBhbWRncHVfY3NfcGFyc2VyICpw YXJzZXIsCj4+Pj4+PiAgICAgICAgICByZXR1cm4gTlVMTDsKPj4+Pj4+ICAgIH0KPj4+Pj4+ICsK Pj4+Pj4+ICsvKioKPj4+Pj4+ICsgKiBhbWRncHVfY3Nfc3lzdm1fYWNjZXNzX3JlcXVpcmVkIC0g bWFrZSBCT3MgYWNjZXNzaWJsZSBieSB0aGUKPj4+Pj4+IHN5c3RlbSBWTQo+Pj4+Pj4gKyAqCj4+ Pj4+PiArICogQHBhcnNlcjogY29tbWFuZCBzdWJtaXNzaW9uIHBhcnNlciBjb250ZXh0Cj4+Pj4+ PiArICoKPj4+Pj4+ICsgKiBIZWxwZXIgZm9yIFVWRC9WQ0UgVk0gZW11bGF0aW9uLCBtYWtlIHN1 cmUgQk9zIGFyZSBhY2Nlc3NpYmxlCj4+Pj4+PiBieSB0aGUgc3lzdGVtIFZNLgo+Pj4+Pj4gKyAq Lwo+Pj4+Pj4gK2ludCBhbWRncHVfY3Nfc3lzdm1fYWNjZXNzX3JlcXVpcmVkKHN0cnVjdCBhbWRn cHVfY3NfcGFyc2VyICpwYXJzZXIpCj4+Pj4+PiArewo+Pj4+Pj4gKyAgICB1bnNpZ25lZCBpOwo+ Pj4+Pj4gKyAgICBpbnQgcjsKPj4+Pj4+ICsKPj4+Pj4+ICsgICAgaWYgKCFwYXJzZXItPmJvX2xp c3QpCj4+Pj4+PiArICAgICAgICByZXR1cm4gMDsKPj4+Pj4+ICsKPj4+Pj4+ICsgICAgZm9yIChp ID0gMDsgaSA8IHBhcnNlci0+Ym9fbGlzdC0+bnVtX2VudHJpZXM7IGkrKykgewo+Pj4+Pj4gKyAg ICAgICAgc3RydWN0IGFtZGdwdV9ibyAqYm8gPSBwYXJzZXItPmJvX2xpc3QtPmFycmF5W2ldLnJv Ymo7Cj4+Pj4+PiArCj4+Pj4+PiArICAgICAgICByID0gYW1kZ3B1X3R0bV9iaW5kKGJvLT50Ym8u dHRtLCAmYm8tPnRiby5tZW0pOwo+Pj4+Pj4gKyAgICAgICAgaWYgKHVubGlrZWx5KHIpKQo+Pj4+ Pj4gKyAgICAgICAgICAgIHJldHVybiByOwo+Pj4+Pj4gKyAgICB9Cj4+Pj4+PiArCj4+Pj4+PiAr ICAgIHJldHVybiAwOwo+Pj4+Pj4gK30KPj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmMKPj4+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X29iamVjdC5jCj4+Pj4+PiBpbmRleCBiMTc3MzRlLi5kYzczZjExIDEw MDY0NAo+Pj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVj dC5jCj4+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0 LmMKPj4+Pj4+IEBAIC02NDYsNiArNjQ2LDExIEBAIGludCBhbWRncHVfYm9fcGluX3Jlc3RyaWN0 ZWQoc3RydWN0IGFtZGdwdV9ibwo+Pj4+Pj4gKmJvLCB1MzIgZG9tYWluLAo+Pj4+Pj4gICAgICAg ICAgICBkZXZfZXJyKGJvLT5hZGV2LT5kZXYsICIlcCBwaW4gZmFpbGVkXG4iLCBibyk7Cj4+Pj4+ PiAgICAgICAgICAgIGdvdG8gZXJyb3I7Cj4+Pj4+PiAgICAgICAgfQo+Pj4+Pj4gKyAgICByID0g YW1kZ3B1X3R0bV9iaW5kKGJvLT50Ym8udHRtLCAmYm8tPnRiby5tZW0pOwo+Pj4+Pj4gKyAgICBp ZiAodW5saWtlbHkocikpIHsKPj4+Pj4+ICsgICAgICAgIGRldl9lcnIoYm8tPmFkZXYtPmRldiwg IiVwIGJpbmQgZmFpbGVkXG4iLCBibyk7Cj4+Pj4+PiArICAgICAgICBnb3RvIGVycm9yOwo+Pj4+ Pj4gKyAgICB9Cj4+Pj4+PiAgICAgICAgICBiby0+cGluX2NvdW50ID0gMTsKPj4+Pj4+ICAgICAg ICBpZiAoZ3B1X2FkZHIgIT0gTlVMTCkKPj4+Pj4+IEBAIC05MTgsNiArOTIzLDggQEAgdm9pZCBh bWRncHVfYm9fZmVuY2Uoc3RydWN0IGFtZGdwdV9ibyAqYm8sCj4+Pj4+PiBzdHJ1Y3QgZmVuY2Ug KmZlbmNlLAo+Pj4+Pj4gICAgdTY0IGFtZGdwdV9ib19ncHVfb2Zmc2V0KHN0cnVjdCBhbWRncHVf Ym8gKmJvKQo+Pj4+Pj4gICAgewo+Pj4+Pj4gICAgICAgIFdBUk5fT05fT05DRShiby0+dGJvLm1l bS5tZW1fdHlwZSA9PSBUVE1fUExfU1lTVEVNKTsKPj4+Pj4+ICsgICAgV0FSTl9PTl9PTkNFKGJv LT50Ym8ubWVtLm1lbV90eXBlID09IFRUTV9QTF9UVCAmJgo+Pj4+Pj4gKyAgICAgICAgICAgICAh YW1kZ3B1X3R0bV9pc19ib3VuZChiby0+dGJvLnR0bSkpOwo+Pj4+Pj4gV0FSTl9PTl9PTkNFKCF3 d19tdXRleF9pc19sb2NrZWQoJmJvLT50Ym8ucmVzdi0+bG9jaykgJiYKPj4+Pj4+ICAgICAgICAg ICAgICAgICAhYm8tPnBpbl9jb3VudCk7Cj4+Pj4+PiAgICBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5jCj4+Pj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV90dG0uYwo+Pj4+Pj4gaW5kZXggNDMzN2IzYS4uYzI5NGFhOSAxMDA2 NDQKPj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYwo+ Pj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5jCj4+Pj4+ PiBAQCAtMjU2LDggKzI1NiwxMiBAQCBzdGF0aWMgaW50IGFtZGdwdV9tb3ZlX2JsaXQoc3RydWN0 Cj4+Pj4+PiB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+Pj4+PiAgICAgICAgbmV3X3N0YXJ0ID0g KHU2NCluZXdfbWVtLT5zdGFydCA8PCBQQUdFX1NISUZUOwo+Pj4+Pj4gICAgICAgICAgc3dpdGNo IChvbGRfbWVtLT5tZW1fdHlwZSkgewo+Pj4+Pj4gLSAgICBjYXNlIFRUTV9QTF9WUkFNOgo+Pj4+ Pj4gICAgICAgIGNhc2UgVFRNX1BMX1RUOgo+Pj4+Pj4gKyAgICAgICAgciA9IGFtZGdwdV90dG1f YmluZChiby0+dHRtLCBvbGRfbWVtKTsKPj4+Pj4+ICsgICAgICAgIGlmIChyKQo+Pj4+Pj4gKyAg ICAgICAgICAgIHJldHVybiByOwo+Pj4+Pj4gKwo+Pj4+Pj4gKyAgICBjYXNlIFRUTV9QTF9WUkFN Ogo+Pj4+Pj4gICAgICAgICAgICBvbGRfc3RhcnQgKz0gYm8tPmJkZXYtPm1hbltvbGRfbWVtLT5t ZW1fdHlwZV0uZ3B1X29mZnNldDsKPj4+Pj4+ICAgICAgICAgICAgYnJlYWs7Cj4+Pj4+PiAgICAg ICAgZGVmYXVsdDoKPj4+Pj4+IEBAIC0yNjUsOCArMjY5LDEyIEBAIHN0YXRpYyBpbnQgYW1kZ3B1 X21vdmVfYmxpdChzdHJ1Y3QKPj4+Pj4+IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4+Pj4+ICAg ICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4+Pj4+PiAgICAgICAgfQo+Pj4+Pj4gICAgICAgIHN3 aXRjaCAobmV3X21lbS0+bWVtX3R5cGUpIHsKPj4+Pj4+IC0gICAgY2FzZSBUVE1fUExfVlJBTToK Pj4+Pj4+ICAgICAgICBjYXNlIFRUTV9QTF9UVDoKPj4+Pj4+ICsgICAgICAgIHIgPSBhbWRncHVf dHRtX2JpbmQoYm8tPnR0bSwgbmV3X21lbSk7Cj4+Pj4+PiArICAgICAgICBpZiAocikKPj4+Pj4+ ICsgICAgICAgICAgICByZXR1cm4gcjsKPj4+Pj4+ICsKPj4+Pj4+ICsgICAgY2FzZSBUVE1fUExf VlJBTToKPj4+Pj4+ICAgICAgICAgICAgbmV3X3N0YXJ0ICs9IGJvLT5iZGV2LT5tYW5bbmV3X21l bS0+bWVtX3R5cGVdLmdwdV9vZmZzZXQ7Cj4+Pj4+PiAgICAgICAgICAgIGJyZWFrOwo+Pj4+Pj4g ICAgICAgIGRlZmF1bHQ6Cj4+Pj4+PiBAQCAtNjM5LDcgKzY0Nyw2IEBAIHN0YXRpYyBpbnQgYW1k Z3B1X3R0bV9iYWNrZW5kX2JpbmQoc3RydWN0Cj4+Pj4+PiB0dG1fdHQgKnR0bSwKPj4+Pj4+ICAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHRtX21lbV9yZWcgKmJvX21lbSkKPj4+Pj4+ICAg IHsKPj4+Pj4+ICAgICAgICBzdHJ1Y3QgYW1kZ3B1X3R0bV90dCAqZ3R0ID0gKHZvaWQqKXR0bTsK Pj4+Pj4+IC0gICAgdWludDMyX3QgZmxhZ3MgPSBhbWRncHVfdHRtX3R0X3B0ZV9mbGFncyhndHQt PmFkZXYsIHR0bSwKPj4+Pj4+IGJvX21lbSk7Cj4+Pj4+PiAgICAgICAgaW50IHI7Cj4+Pj4+PiAg ICAgICAgICBpZiAoZ3R0LT51c2VycHRyKSB7Cj4+Pj4+PiBAQCAtNjYwLDYgKzY2NywyNiBAQCBz dGF0aWMgaW50IGFtZGdwdV90dG1fYmFja2VuZF9iaW5kKHN0cnVjdAo+Pj4+Pj4gdHRtX3R0ICp0 dG0sCj4+Pj4+PiAgICAgICAgICAgIGJvX21lbS0+bWVtX3R5cGUgPT0gQU1ER1BVX1BMX09BKQo+ Pj4+Pj4gICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPj4+Pj4+ICAgICsgICAgcmV0dXJuIDA7 Cj4+Pj4+PiArfQo+Pj4+Pj4gKwo+Pj4+Pj4gK2Jvb2wgYW1kZ3B1X3R0bV9pc19ib3VuZChzdHJ1 Y3QgdHRtX3R0ICp0dG0pCj4+Pj4+PiArewo+Pj4+Pj4gKyAgICBzdHJ1Y3QgYW1kZ3B1X3R0bV90 dCAqZ3R0ID0gKHZvaWQgKil0dG07Cj4+Pj4+PiArCj4+Pj4+PiArICAgIHJldHVybiBndHQgJiYg IWxpc3RfZW1wdHkoJmd0dC0+bGlzdCk7Cj4+Pj4+PiArfQo+Pj4+Pj4gKwo+Pj4+Pj4gK2ludCBh bWRncHVfdHRtX2JpbmQoc3RydWN0IHR0bV90dCAqdHRtLCBzdHJ1Y3QgdHRtX21lbV9yZWcgKmJv X21lbSkKPj4+Pj4+ICt7Cj4+Pj4+PiArICAgIHN0cnVjdCBhbWRncHVfdHRtX3R0ICpndHQgPSAo dm9pZCAqKXR0bTsKPj4+Pj4+ICsgICAgdWludDMyX3QgZmxhZ3M7Cj4+Pj4+PiArICAgIGludCBy Owo+Pj4+Pj4gKwo+Pj4+Pj4gKyAgICBpZiAoIXR0bSB8fCBhbWRncHVfdHRtX2lzX2JvdW5kKHR0 bSkpCj4+Pj4+PiArICAgICAgICByZXR1cm4gMDsKPj4+Pj4+ICsKPj4+Pj4+ICsgICAgZmxhZ3Mg PSBhbWRncHVfdHRtX3R0X3B0ZV9mbGFncyhndHQtPmFkZXYsIHR0bSwgYm9fbWVtKTsKPj4+Pj4+ ICAgICAgICByID0gYW1kZ3B1X2dhcnRfYmluZChndHQtPmFkZXYsIGd0dC0+b2Zmc2V0LCB0dG0t Pm51bV9wYWdlcywKPj4+Pj4+ICAgICAgICAgICAgdHRtLT5wYWdlcywgZ3R0LT50dG0uZG1hX2Fk ZHJlc3MsIGZsYWdzKTsKPj4+Pj4+ICAgIGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfdHRtLmgKPj4+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X3R0bS5oCj4+Pj4+PiBpbmRleCA3MmY2YmZjLi4yMTRiYWU5IDEwMDY0NAo+Pj4+Pj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5oCj4+Pj4+PiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmgKPj4+Pj4+IEBAIC03Nyw0 ICs3Nyw3IEBAIGludCBhbWRncHVfZmlsbF9idWZmZXIoc3RydWN0IGFtZGdwdV9ibyAqYm8sCj4+ Pj4+PiAgICAgICAgICAgICAgICBzdHJ1Y3QgZmVuY2UgKipmZW5jZSk7Cj4+Pj4+PiAgICAgIGlu dCBhbWRncHVfbW1hcChzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2 bWEpOwo+Pj4+Pj4gK2Jvb2wgYW1kZ3B1X3R0bV9pc19ib3VuZChzdHJ1Y3QgdHRtX3R0ICp0dG0p Owo+Pj4+Pj4gK2ludCBhbWRncHVfdHRtX2JpbmQoc3RydWN0IHR0bV90dCAqdHRtLCBzdHJ1Y3Qg dHRtX21lbV9yZWcgKmJvX21lbSk7Cj4+Pj4+PiArCj4+Pj4+PiAgICAjZW5kaWYKPj4+Pj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdXZkLmMKPj4+Pj4+ IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3V2ZC5jCj4+Pj4+PiBpbmRleCA1 ODg4ZThhLi5mYWI3YmIxIDEwMDY0NAo+Pj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X3V2ZC5jCj4+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfdXZkLmMKPj4+Pj4+IEBAIC04OTEsNiArODkxLDEwIEBAIGludCBhbWRncHVfdXZk X3JpbmdfcGFyc2VfY3Moc3RydWN0Cj4+Pj4+PiBhbWRncHVfY3NfcGFyc2VyICpwYXJzZXIsIHVp bnQzMl90IGliX2lkeCkKPj4+Pj4+ICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4+Pj4+PiAg ICAgICAgfQo+Pj4+Pj4gICAgKyAgICByID0gYW1kZ3B1X2NzX3N5c3ZtX2FjY2Vzc19yZXF1aXJl ZChwYXJzZXIpOwo+Pj4+Pj4gKyAgICBpZiAocikKPj4+Pj4+ICsgICAgICAgIHJldHVybiByOwo+ Pj4+Pj4gKwo+Pj4+Pj4gICAgICAgIGN0eC5wYXJzZXIgPSBwYXJzZXI7Cj4+Pj4+PiAgICAgICAg Y3R4LmJ1Zl9zaXplcyA9IGJ1Zl9zaXplczsKPj4+Pj4+ICAgICAgICBjdHguaWJfaWR4ID0gaWJf aWR4Owo+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV92Y2UuYwo+Pj4+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmNlLmMK Pj4+Pj4+IGluZGV4IDliNzFkNmMuLmIwYzY3MDIgMTAwNjQ0Cj4+Pj4+PiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmNlLmMKPj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92Y2UuYwo+Pj4+Pj4gQEAgLTYzNCw3ICs2MzQsMTEgQEAg aW50IGFtZGdwdV92Y2VfcmluZ19wYXJzZV9jcyhzdHJ1Y3QKPj4+Pj4+IGFtZGdwdV9jc19wYXJz ZXIgKnAsIHVpbnQzMl90IGliX2lkeCkKPj4+Pj4+ICAgICAgICB1aW50MzJfdCBhbGxvY2F0ZWQg PSAwOwo+Pj4+Pj4gICAgICAgIHVpbnQzMl90IHRtcCwgaGFuZGxlID0gMDsKPj4+Pj4+ICAgICAg ICB1aW50MzJfdCAqc2l6ZSA9ICZ0bXA7Cj4+Pj4+PiAtICAgIGludCBpLCByID0gMCwgaWR4ID0g MDsKPj4+Pj4+ICsgICAgaW50IGksIHIsIGlkeCA9IDA7Cj4+Pj4+PiArCj4+Pj4+PiArICAgIHIg PSBhbWRncHVfY3Nfc3lzdm1fYWNjZXNzX3JlcXVpcmVkKHApOwo+Pj4+Pj4gKyAgICBpZiAocikK Pj4+Pj4+ICsgICAgICAgIHJldHVybiByOwo+Pj4+Pj4gICAgICAgICAgd2hpbGUgKGlkeCA8IGli LT5sZW5ndGhfZHcpIHsKPj4+Pj4+ICAgICAgICAgICAgdWludDMyX3QgbGVuID0gYW1kZ3B1X2dl dF9pYl92YWx1ZShwLCBpYl9pZHgsIGlkeCk7Cj4+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMKPj4+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X3ZtLmMKPj4+Pj4+IGluZGV4IDc2NjBmODIuLmE1NDlhYmQgMTAwNjQ0 Cj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYwo+Pj4+ Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMKPj4+Pj4+IEBA IC0xMTYyLDcgKzExNjIsOCBAQCBpbnQgYW1kZ3B1X3ZtX2JvX3VwZGF0ZShzdHJ1Y3QgYW1kZ3B1 X2RldmljZQo+Pj4+Pj4gKmFkZXYsCj4+Pj4+PiAgICAgICAgfQo+Pj4+Pj4gICAgICAgICAgZmxh Z3MgPSBhbWRncHVfdHRtX3R0X3B0ZV9mbGFncyhhZGV2LCBib192YS0+Ym8tPnRiby50dG0sCj4+ Pj4+PiBtZW0pOwo+Pj4+Pj4gLSAgICBndHRfZmxhZ3MgPSAoYWRldiA9PSBib192YS0+Ym8tPmFk ZXYpID8gZmxhZ3MgOiAwOwo+Pj4+Pj4gKyAgICBndHRfZmxhZ3MgPSAoYW1kZ3B1X3R0bV9pc19i b3VuZChib192YS0+Ym8tPnRiby50dG0pICYmCj4+Pj4+PiArICAgICAgICBhZGV2ID09IGJvX3Zh LT5iby0+YWRldikgPyBmbGFncyA6IDA7Cj4+Pj4+PiAgICAgICAgICBzcGluX2xvY2soJnZtLT5z dGF0dXNfbG9jayk7Cj4+Pj4+PiAgICAgICAgaWYgKCFsaXN0X2VtcHR5KCZib192YS0+dm1fc3Rh dHVzKSkKPj4+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Xwo+Pj4+IGFtZC1nZnggbWFpbGluZyBsaXN0Cj4+Pj4gYW1kLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKPj4+PiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2FtZC1nZngKPj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KPj4gYW1kLWdmeCBtYWlsaW5nIGxpc3QKPj4gYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKPj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQt Z2Z4Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBh bWQtZ2Z4IG1haWxpbmcgbGlzdAo+IGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4CgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWls aW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==