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 10:18:54 +0200 Message-ID: <24352e53-0c1c-8b55-0b39-35b3e5d350ff@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> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <57CFBF51.3000506-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: zhoucm1 , amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org QW0gMDcuMDkuMjAxNiB1bSAwOToxOCBzY2hyaWViIHpob3VjbTE6Cj4KPgo+IE9uIDIwMTblubQw OeaciDA25pelIDE4OjQ4LCBDaHJpc3RpYW4gS8O2bmlnIHdyb3RlOgo+PiBBbSAwNi4wOS4yMDE2 IHVtIDExOjUzIHNjaHJpZWIgemhvdWNtMToKPj4+Cj4+Pgo+Pj4gT24gMjAxNuW5tDA55pyIMDbm l6UgMTc6NDEsIENocmlzdGlhbiBLw7ZuaWcgd3JvdGU6Cj4+Pj4gRnJvbTogQ2hyaXN0aWFuIEvD tm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgo+Pj4+Cj4+Pj4gV2UgZG9uJ3QgcmVhbGx5 IG5lZWQgdGhlIEdUVCB0YWJsZSBhbnkgbW9yZSBtb3N0IG9mIHRoZSB0aW1lLgo+Pj4gV2h5PyBJ IHRob3VnaHQgR1RUIGJvIGlzIGFsd2F5cyBuZWVkZWQgdG8gYmUgYm91bmQgd2hlbiBHUFUgaXMg Cj4+PiB0cnlpbmcgdG8gYWNjZXNzIGl0LCBkb2Vzbid0IGl0Pwo+Pgo+PiBXZSBvbmx5IG5lZWQg aXQgdG8gYmUgYm91bmQgd2hlbiB3ZSB0cnkgdG8gYWNjZXNzIGl0IGZyb20gdGhlIHN5c3RlbSAK Pj4gVk0gKFVWRC9WQ0UsIHJpbmcgYnVmZmVycywgZmVuY2VzIGV0Yy4uLikuCj4+Cj4+IFRoZSBW TXMgZm9yIGVhY2ggcHJvY2VzcyBjYW4gd29yayB3aXRob3V0IGl0IGFuZCBpdCBpcyBqdXN0IG92 ZXJoZWFkIAo+PiB0byBiaW5kIGl0IGFsbCB0aGUgdGltZS4KPiBZZXMsIEkgZ290IHlvdXIgbWVh biwgY29weWluZyBwdGUgZnJvbSBHQVJUIHRvIFZNIGNvbmZ1c2VkIG1lLCBJIAo+IHRob3VnaHQg YmluZGluZyBHVFQgdGFibGUgaXMgYSBtdXN0LCB0aGF0J3Mgd3JvbmcuCj4gR28gdGhvdWdoIHZt IGNvZGUgYWdhaW4sIHB0ZSBjYW4gYmUgY3JlYXRlZCBieSBhbWRncHVfdm1fbWFwX2dhcnQgaWYg Cj4gbm8gR1RUIHB0ZSBzb3VyY2Ugd2hlbiB3ZSBkb24ndCBiaW5kIGl0IGF0IGFsbCB1bmRlciBW TSBwcm9jZXNzLCBhbSBJIAo+IHJpZ2h0IG5vdz8KClllcyBleGFjdGx5LiBJIHN0aWxsIG5lZWQg dG8gbWVhc3VyZSB0aGUgcGVyZm9ybWFuY2UgaW1wYWN0IG9mIHRoYXQsIAphZGRpbmcgdGhlIGNv cHkgZnJvbSB0aGUgR1RUIG1hZGUgcXVpdGUgYSBkaWZmZXJlbmNlIHdoZW4gSSBpbnRyb2R1Y2Vk IHRoYXQuCgpJIGhvcGUgdGhhdCBkb2luZyB0aGUgd3JpdGUgd2hlbiB0aGUgdXBkYXRlIHRoZSBW TSBpcyBzdGlsbCBmYXN0ZXIgdGhhbiAKZG9pbmcgdGhlIEdUVCB3cml0ZS4KClJlZ2FyZHMsCkNo cmlzdGlhbi4KCj4KPiBSZWdhcmRzLAo+IERhdmlkIFpob3UKPgo+Pgo+PiBSZWdhcmRzLAo+PiBD aHJpc3RpYW4uCj4+Cj4+Cj4+Pgo+Pj4gUmVnYXJkcywKPj4+IERhdmlkIFpob3UKPj4+PiAgIFNv IGJpbmQgaXQKPj4+PiBvbmx5IG9uIGRlbWFuZC4KPj4+Pgo+Pj4+IFNpZ25lZC1vZmYtYnk6IENo cmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KPj4+PiAtLS0KPj4+PiAg IGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oICAgICAgICB8ICAxICsKPj4+PiAg IGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jICAgICB8IDM0IAo+Pj4+ICsr KysrKysrKysrKysrKysrKysrKysrKysrKystLQo+Pj4+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X29iamVjdC5jIHwgIDcgKysrKysrCj4+Pj4gICBkcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfdHRtLmMgICAgfCAzMyAKPj4+PiArKysrKysrKysrKysrKysrKysr KysrKysrKy0tLQo+Pj4+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5o ICAgIHwgIDMgKysrCj4+Pj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdXZk LmMgICAgfCAgNCArKysrCj4+Pj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf dmNlLmMgICAgfCAgNiArKysrKy0KPj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV92bS5jICAgICB8ICAzICsrLQo+Pj4+ICAgOCBmaWxlcyBjaGFuZ2VkLCA4NCBpbnNlcnRp b25zKCspLCA3IGRlbGV0aW9ucygtKQo+Pj4+Cj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oIAo+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1LmgKPj4+PiBpbmRleCA5ZDM5ZmE4Li4yOGQ0YTY3IDEwMDY0NAo+Pj4+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oCj4+Pj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmgKPj4+PiBAQCAtMjUyMSw2ICsyNTIxLDcgQEAgc3Rh dGljIGlubGluZSB2b2lkIGFtZGdwdV9hY3BpX2Zpbmkoc3RydWN0IAo+Pj4+IGFtZGdwdV9kZXZp Y2UgKmFkZXYpIHsgfQo+Pj4+ICAgc3RydWN0IGFtZGdwdV9ib192YV9tYXBwaW5nICoKPj4+PiAg IGFtZGdwdV9jc19maW5kX21hcHBpbmcoc3RydWN0IGFtZGdwdV9jc19wYXJzZXIgKnBhcnNlciwK Pj4+PiAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGFkZHIsIHN0cnVjdCBhbWRncHVfYm8gKipi byk7Cj4+Pj4gK2ludCBhbWRncHVfY3Nfc3lzdm1fYWNjZXNzX3JlcXVpcmVkKHN0cnVjdCBhbWRn cHVfY3NfcGFyc2VyICpwYXJzZXIpOwo+Pj4+ICAgICAjaWYgZGVmaW5lZChDT05GSUdfRFJNX0FN RF9EQUwpCj4+Pj4gICBpbnQgYW1kZ3B1X2RtX2Rpc3BsYXlfcmVzdW1lKHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2ICk7Cj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9jcy5jIAo+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X2NzLmMKPj4+PiBpbmRleCAyMGExOTYyLi5lMDY5OTc4IDEwMDY0NAo+Pj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jCj4+Pj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMKPj4+PiBAQCAtNjQwLDggKzY0MCwxMiBAQCBzdGF0 aWMgaW50IGFtZGdwdV9jc19wYXJzZXJfYm9zKHN0cnVjdCAKPj4+PiBhbWRncHVfY3NfcGFyc2Vy ICpwLAo+Pj4+ICAgICAgICAgICB9Cj4+Pj4gICAgICAgfQo+Pj4+ICAgLSAgICBpZiAocC0+dWZf ZW50cnkucm9iaikKPj4+PiAtICAgICAgICBwLT5qb2ItPnVmX2FkZHIgKz0gYW1kZ3B1X2JvX2dw dV9vZmZzZXQocC0+dWZfZW50cnkucm9iaik7Cj4+Pj4gKyAgICBpZiAoIXIgJiYgcC0+dWZfZW50 cnkucm9iaikgewo+Pj4+ICsgICAgICAgIHN0cnVjdCBhbWRncHVfYm8gKnVmID0gcC0+dWZfZW50 cnkucm9iajsKPj4+PiArCj4+Pj4gKyAgICAgICAgciA9IGFtZGdwdV90dG1fYmluZCh1Zi0+dGJv LnR0bSwgJnVmLT50Ym8ubWVtKTsKPj4+PiArICAgICAgICBwLT5qb2ItPnVmX2FkZHIgKz0gYW1k Z3B1X2JvX2dwdV9vZmZzZXQodWYpOwo+Pj4+ICsgICAgfQo+Pj4+ICAgICBlcnJvcl92YWxpZGF0 ZToKPj4+PiAgICAgICBpZiAocikgewo+Pj4+IEBAIC0xMTU2LDMgKzExNjAsMjkgQEAgYW1kZ3B1 X2NzX2ZpbmRfbWFwcGluZyhzdHJ1Y3QgCj4+Pj4gYW1kZ3B1X2NzX3BhcnNlciAqcGFyc2VyLAo+ Pj4+ICAgICAgICAgcmV0dXJuIE5VTEw7Cj4+Pj4gICB9Cj4+Pj4gKwo+Pj4+ICsvKioKPj4+PiAr ICogYW1kZ3B1X2NzX3N5c3ZtX2FjY2Vzc19yZXF1aXJlZCAtIG1ha2UgQk9zIGFjY2Vzc2libGUg YnkgdGhlIAo+Pj4+IHN5c3RlbSBWTQo+Pj4+ICsgKgo+Pj4+ICsgKiBAcGFyc2VyOiBjb21tYW5k IHN1Ym1pc3Npb24gcGFyc2VyIGNvbnRleHQKPj4+PiArICoKPj4+PiArICogSGVscGVyIGZvciBV VkQvVkNFIFZNIGVtdWxhdGlvbiwgbWFrZSBzdXJlIEJPcyBhcmUgYWNjZXNzaWJsZSAKPj4+PiBi eSB0aGUgc3lzdGVtIFZNLgo+Pj4+ICsgKi8KPj4+PiAraW50IGFtZGdwdV9jc19zeXN2bV9hY2Nl c3NfcmVxdWlyZWQoc3RydWN0IGFtZGdwdV9jc19wYXJzZXIgKnBhcnNlcikKPj4+PiArewo+Pj4+ ICsgICAgdW5zaWduZWQgaTsKPj4+PiArICAgIGludCByOwo+Pj4+ICsKPj4+PiArICAgIGlmICgh cGFyc2VyLT5ib19saXN0KQo+Pj4+ICsgICAgICAgIHJldHVybiAwOwo+Pj4+ICsKPj4+PiArICAg IGZvciAoaSA9IDA7IGkgPCBwYXJzZXItPmJvX2xpc3QtPm51bV9lbnRyaWVzOyBpKyspIHsKPj4+ PiArICAgICAgICBzdHJ1Y3QgYW1kZ3B1X2JvICpibyA9IHBhcnNlci0+Ym9fbGlzdC0+YXJyYXlb aV0ucm9iajsKPj4+PiArCj4+Pj4gKyAgICAgICAgciA9IGFtZGdwdV90dG1fYmluZChiby0+dGJv LnR0bSwgJmJvLT50Ym8ubWVtKTsKPj4+PiArICAgICAgICBpZiAodW5saWtlbHkocikpCj4+Pj4g KyAgICAgICAgICAgIHJldHVybiByOwo+Pj4+ICsgICAgfQo+Pj4+ICsKPj4+PiArICAgIHJldHVy biAwOwo+Pj4+ICt9Cj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9vYmplY3QuYyAKPj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9vYmplY3QuYwo+Pj4+IGluZGV4IGIxNzczNGUuLmRjNzNmMTEgMTAwNjQ0Cj4+Pj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5jCj4+Pj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5jCj4+Pj4gQEAgLTY0Niw2ICs2 NDYsMTEgQEAgaW50IGFtZGdwdV9ib19waW5fcmVzdHJpY3RlZChzdHJ1Y3QgYW1kZ3B1X2JvIAo+ Pj4+ICpibywgdTMyIGRvbWFpbiwKPj4+PiAgICAgICAgICAgZGV2X2Vycihiby0+YWRldi0+ZGV2 LCAiJXAgcGluIGZhaWxlZFxuIiwgYm8pOwo+Pj4+ICAgICAgICAgICBnb3RvIGVycm9yOwo+Pj4+ ICAgICAgIH0KPj4+PiArICAgIHIgPSBhbWRncHVfdHRtX2JpbmQoYm8tPnRiby50dG0sICZiby0+ dGJvLm1lbSk7Cj4+Pj4gKyAgICBpZiAodW5saWtlbHkocikpIHsKPj4+PiArICAgICAgICBkZXZf ZXJyKGJvLT5hZGV2LT5kZXYsICIlcCBiaW5kIGZhaWxlZFxuIiwgYm8pOwo+Pj4+ICsgICAgICAg IGdvdG8gZXJyb3I7Cj4+Pj4gKyAgICB9Cj4+Pj4gICAgICAgICBiby0+cGluX2NvdW50ID0gMTsK Pj4+PiAgICAgICBpZiAoZ3B1X2FkZHIgIT0gTlVMTCkKPj4+PiBAQCAtOTE4LDYgKzkyMyw4IEBA IHZvaWQgYW1kZ3B1X2JvX2ZlbmNlKHN0cnVjdCBhbWRncHVfYm8gKmJvLCAKPj4+PiBzdHJ1Y3Qg ZmVuY2UgKmZlbmNlLAo+Pj4+ICAgdTY0IGFtZGdwdV9ib19ncHVfb2Zmc2V0KHN0cnVjdCBhbWRn cHVfYm8gKmJvKQo+Pj4+ICAgewo+Pj4+ICAgICAgIFdBUk5fT05fT05DRShiby0+dGJvLm1lbS5t ZW1fdHlwZSA9PSBUVE1fUExfU1lTVEVNKTsKPj4+PiArICAgIFdBUk5fT05fT05DRShiby0+dGJv Lm1lbS5tZW1fdHlwZSA9PSBUVE1fUExfVFQgJiYKPj4+PiArICAgICAgICAgICAgICFhbWRncHVf dHRtX2lzX2JvdW5kKGJvLT50Ym8udHRtKSk7Cj4+Pj4gV0FSTl9PTl9PTkNFKCF3d19tdXRleF9p c19sb2NrZWQoJmJvLT50Ym8ucmVzdi0+bG9jaykgJiYKPj4+PiAgICAgICAgICAgICAgICAhYm8t PnBpbl9jb3VudCk7Cj4+Pj4gICBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X3R0bS5jIAo+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X3R0bS5jCj4+Pj4gaW5kZXggNDMzN2IzYS4uYzI5NGFhOSAxMDA2NDQKPj4+PiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmMKPj4+PiArKysgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmMKPj4+PiBAQCAtMjU2LDggKzI1NiwxMiBAQCBz dGF0aWMgaW50IGFtZGdwdV9tb3ZlX2JsaXQoc3RydWN0IAo+Pj4+IHR0bV9idWZmZXJfb2JqZWN0 ICpibywKPj4+PiAgICAgICBuZXdfc3RhcnQgPSAodTY0KW5ld19tZW0tPnN0YXJ0IDw8IFBBR0Vf U0hJRlQ7Cj4+Pj4gICAgICAgICBzd2l0Y2ggKG9sZF9tZW0tPm1lbV90eXBlKSB7Cj4+Pj4gLSAg ICBjYXNlIFRUTV9QTF9WUkFNOgo+Pj4+ICAgICAgIGNhc2UgVFRNX1BMX1RUOgo+Pj4+ICsgICAg ICAgIHIgPSBhbWRncHVfdHRtX2JpbmQoYm8tPnR0bSwgb2xkX21lbSk7Cj4+Pj4gKyAgICAgICAg aWYgKHIpCj4+Pj4gKyAgICAgICAgICAgIHJldHVybiByOwo+Pj4+ICsKPj4+PiArICAgIGNhc2Ug VFRNX1BMX1ZSQU06Cj4+Pj4gICAgICAgICAgIG9sZF9zdGFydCArPSBiby0+YmRldi0+bWFuW29s ZF9tZW0tPm1lbV90eXBlXS5ncHVfb2Zmc2V0Owo+Pj4+ICAgICAgICAgICBicmVhazsKPj4+PiAg ICAgICBkZWZhdWx0Ogo+Pj4+IEBAIC0yNjUsOCArMjY5LDEyIEBAIHN0YXRpYyBpbnQgYW1kZ3B1 X21vdmVfYmxpdChzdHJ1Y3QgCj4+Pj4gdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAo+Pj4+ICAgICAg ICAgICByZXR1cm4gLUVJTlZBTDsKPj4+PiAgICAgICB9Cj4+Pj4gICAgICAgc3dpdGNoIChuZXdf bWVtLT5tZW1fdHlwZSkgewo+Pj4+IC0gICAgY2FzZSBUVE1fUExfVlJBTToKPj4+PiAgICAgICBj YXNlIFRUTV9QTF9UVDoKPj4+PiArICAgICAgICByID0gYW1kZ3B1X3R0bV9iaW5kKGJvLT50dG0s IG5ld19tZW0pOwo+Pj4+ICsgICAgICAgIGlmIChyKQo+Pj4+ICsgICAgICAgICAgICByZXR1cm4g cjsKPj4+PiArCj4+Pj4gKyAgICBjYXNlIFRUTV9QTF9WUkFNOgo+Pj4+ICAgICAgICAgICBuZXdf c3RhcnQgKz0gYm8tPmJkZXYtPm1hbltuZXdfbWVtLT5tZW1fdHlwZV0uZ3B1X29mZnNldDsKPj4+ PiAgICAgICAgICAgYnJlYWs7Cj4+Pj4gICAgICAgZGVmYXVsdDoKPj4+PiBAQCAtNjM5LDcgKzY0 Nyw2IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X3R0bV9iYWNrZW5kX2JpbmQoc3RydWN0IAo+Pj4+IHR0 bV90dCAqdHRtLAo+Pj4+ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0dG1fbWVtX3JlZyAq Ym9fbWVtKQo+Pj4+ICAgewo+Pj4+ICAgICAgIHN0cnVjdCBhbWRncHVfdHRtX3R0ICpndHQgPSAo dm9pZCopdHRtOwo+Pj4+IC0gICAgdWludDMyX3QgZmxhZ3MgPSBhbWRncHVfdHRtX3R0X3B0ZV9m bGFncyhndHQtPmFkZXYsIHR0bSwgYm9fbWVtKTsKPj4+PiAgICAgICBpbnQgcjsKPj4+PiAgICAg ICAgIGlmIChndHQtPnVzZXJwdHIpIHsKPj4+PiBAQCAtNjYwLDYgKzY2NywyNiBAQCBzdGF0aWMg aW50IGFtZGdwdV90dG1fYmFja2VuZF9iaW5kKHN0cnVjdCAKPj4+PiB0dG1fdHQgKnR0bSwKPj4+ PiAgICAgICAgICAgYm9fbWVtLT5tZW1fdHlwZSA9PSBBTURHUFVfUExfT0EpCj4+Pj4gICAgICAg ICAgIHJldHVybiAtRUlOVkFMOwo+Pj4+ICAgKyAgICByZXR1cm4gMDsKPj4+PiArfQo+Pj4+ICsK Pj4+PiArYm9vbCBhbWRncHVfdHRtX2lzX2JvdW5kKHN0cnVjdCB0dG1fdHQgKnR0bSkKPj4+PiAr ewo+Pj4+ICsgICAgc3RydWN0IGFtZGdwdV90dG1fdHQgKmd0dCA9ICh2b2lkICopdHRtOwo+Pj4+ ICsKPj4+PiArICAgIHJldHVybiBndHQgJiYgIWxpc3RfZW1wdHkoJmd0dC0+bGlzdCk7Cj4+Pj4g K30KPj4+PiArCj4+Pj4gK2ludCBhbWRncHVfdHRtX2JpbmQoc3RydWN0IHR0bV90dCAqdHRtLCBz dHJ1Y3QgdHRtX21lbV9yZWcgKmJvX21lbSkKPj4+PiArewo+Pj4+ICsgICAgc3RydWN0IGFtZGdw dV90dG1fdHQgKmd0dCA9ICh2b2lkICopdHRtOwo+Pj4+ICsgICAgdWludDMyX3QgZmxhZ3M7Cj4+ Pj4gKyAgICBpbnQgcjsKPj4+PiArCj4+Pj4gKyAgICBpZiAoIXR0bSB8fCBhbWRncHVfdHRtX2lz X2JvdW5kKHR0bSkpCj4+Pj4gKyAgICAgICAgcmV0dXJuIDA7Cj4+Pj4gKwo+Pj4+ICsgICAgZmxh Z3MgPSBhbWRncHVfdHRtX3R0X3B0ZV9mbGFncyhndHQtPmFkZXYsIHR0bSwgYm9fbWVtKTsKPj4+ PiAgICAgICByID0gYW1kZ3B1X2dhcnRfYmluZChndHQtPmFkZXYsIGd0dC0+b2Zmc2V0LCB0dG0t Pm51bV9wYWdlcywKPj4+PiAgICAgICAgICAgdHRtLT5wYWdlcywgZ3R0LT50dG0uZG1hX2FkZHJl c3MsIGZsYWdzKTsKPj4+PiAgIGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfdHRtLmggCj4+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf dHRtLmgKPj4+PiBpbmRleCA3MmY2YmZjLi4yMTRiYWU5IDEwMDY0NAo+Pj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uaAo+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uaAo+Pj4+IEBAIC03Nyw0ICs3Nyw3IEBAIGludCBh bWRncHVfZmlsbF9idWZmZXIoc3RydWN0IGFtZGdwdV9ibyAqYm8sCj4+Pj4gICAgICAgICAgICAg ICBzdHJ1Y3QgZmVuY2UgKipmZW5jZSk7Cj4+Pj4gICAgIGludCBhbWRncHVfbW1hcChzdHJ1Y3Qg ZmlsZSAqZmlscCwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpOwo+Pj4+ICtib29sIGFtZGdw dV90dG1faXNfYm91bmQoc3RydWN0IHR0bV90dCAqdHRtKTsKPj4+PiAraW50IGFtZGdwdV90dG1f YmluZChzdHJ1Y3QgdHRtX3R0ICp0dG0sIHN0cnVjdCB0dG1fbWVtX3JlZyAqYm9fbWVtKTsKPj4+ PiArCj4+Pj4gICAjZW5kaWYKPj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X3V2ZC5jIAo+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X3V2ZC5jCj4+Pj4gaW5kZXggNTg4OGU4YS4uZmFiN2JiMSAxMDA2NDQKPj4+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdXZkLmMKPj4+PiArKysgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdXZkLmMKPj4+PiBAQCAtODkxLDYgKzg5MSwxMCBA QCBpbnQgYW1kZ3B1X3V2ZF9yaW5nX3BhcnNlX2NzKHN0cnVjdCAKPj4+PiBhbWRncHVfY3NfcGFy c2VyICpwYXJzZXIsIHVpbnQzMl90IGliX2lkeCkKPj4+PiAgICAgICAgICAgcmV0dXJuIC1FSU5W QUw7Cj4+Pj4gICAgICAgfQo+Pj4+ICAgKyAgICByID0gYW1kZ3B1X2NzX3N5c3ZtX2FjY2Vzc19y ZXF1aXJlZChwYXJzZXIpOwo+Pj4+ICsgICAgaWYgKHIpCj4+Pj4gKyAgICAgICAgcmV0dXJuIHI7 Cj4+Pj4gKwo+Pj4+ICAgICAgIGN0eC5wYXJzZXIgPSBwYXJzZXI7Cj4+Pj4gICAgICAgY3R4LmJ1 Zl9zaXplcyA9IGJ1Zl9zaXplczsKPj4+PiAgICAgICBjdHguaWJfaWR4ID0gaWJfaWR4Owo+Pj4+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmNlLmMgCj4+ Pj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdmNlLmMKPj4+PiBpbmRleCA5 YjcxZDZjLi5iMGM2NzAyIDEwMDY0NAo+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV92Y2UuYwo+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV92Y2UuYwo+Pj4+IEBAIC02MzQsNyArNjM0LDExIEBAIGludCBhbWRncHVfdmNlX3Jpbmdf cGFyc2VfY3Moc3RydWN0IAo+Pj4+IGFtZGdwdV9jc19wYXJzZXIgKnAsIHVpbnQzMl90IGliX2lk eCkKPj4+PiAgICAgICB1aW50MzJfdCBhbGxvY2F0ZWQgPSAwOwo+Pj4+ICAgICAgIHVpbnQzMl90 IHRtcCwgaGFuZGxlID0gMDsKPj4+PiAgICAgICB1aW50MzJfdCAqc2l6ZSA9ICZ0bXA7Cj4+Pj4g LSAgICBpbnQgaSwgciA9IDAsIGlkeCA9IDA7Cj4+Pj4gKyAgICBpbnQgaSwgciwgaWR4ID0gMDsK Pj4+PiArCj4+Pj4gKyAgICByID0gYW1kZ3B1X2NzX3N5c3ZtX2FjY2Vzc19yZXF1aXJlZChwKTsK Pj4+PiArICAgIGlmIChyKQo+Pj4+ICsgICAgICAgIHJldHVybiByOwo+Pj4+ICAgICAgICAgd2hp bGUgKGlkeCA8IGliLT5sZW5ndGhfZHcpIHsKPj4+PiAgICAgICAgICAgdWludDMyX3QgbGVuID0g YW1kZ3B1X2dldF9pYl92YWx1ZShwLCBpYl9pZHgsIGlkeCk7Cj4+Pj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jIAo+Pj4+IGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMKPj4+PiBpbmRleCA3NjYwZjgyLi5hNTQ5YWJkIDEw MDY0NAo+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jCj4+ Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMKPj4+PiBAQCAt MTE2Miw3ICsxMTYyLDggQEAgaW50IGFtZGdwdV92bV9ib191cGRhdGUoc3RydWN0IGFtZGdwdV9k ZXZpY2UgCj4+Pj4gKmFkZXYsCj4+Pj4gICAgICAgfQo+Pj4+ICAgICAgICAgZmxhZ3MgPSBhbWRn cHVfdHRtX3R0X3B0ZV9mbGFncyhhZGV2LCBib192YS0+Ym8tPnRiby50dG0sIAo+Pj4+IG1lbSk7 Cj4+Pj4gLSAgICBndHRfZmxhZ3MgPSAoYWRldiA9PSBib192YS0+Ym8tPmFkZXYpID8gZmxhZ3Mg OiAwOwo+Pj4+ICsgICAgZ3R0X2ZsYWdzID0gKGFtZGdwdV90dG1faXNfYm91bmQoYm9fdmEtPmJv LT50Ym8udHRtKSAmJgo+Pj4+ICsgICAgICAgIGFkZXYgPT0gYm9fdmEtPmJvLT5hZGV2KSA/IGZs YWdzIDogMDsKPj4+PiAgICAgICAgIHNwaW5fbG9jaygmdm0tPnN0YXR1c19sb2NrKTsKPj4+PiAg ICAgICBpZiAoIWxpc3RfZW1wdHkoJmJvX3ZhLT52bV9zdGF0dXMpKQo+Pj4KPj4KPj4gX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4gYW1kLWdmeCBtYWls aW5nIGxpc3QKPj4gYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4gaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cj4KCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0 CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=