From mboxrd@z Thu Jan 1 00:00:00 1970 From: zhoucm1 Subject: Re: [PATCH 2/2] drm/amdgpu: bind GTT on demand Date: Wed, 7 Sep 2016 15:18:41 +0800 Message-ID: <57CFBF51.3000506@amd.com> References: <1473154866-2448-1-git-send-email-deathsimple@vodafone.de> <1473154866-2448-2-git-send-email-deathsimple@vodafone.de> <57CE9220.8060403@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: 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: =?UTF-8?B?Q2hyaXN0aWFuIEvDtm5pZw==?= , amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org CgpPbiAyMDE25bm0MDnmnIgwNuaXpSAxODo0OCwgQ2hyaXN0aWFuIEvDtm5pZyB3cm90ZToKPiBB bSAwNi4wOS4yMDE2IHVtIDExOjUzIHNjaHJpZWIgemhvdWNtMToKPj4KPj4KPj4gT24gMjAxNuW5 tDA55pyIMDbml6UgMTc6NDEsIENocmlzdGlhbiBLw7ZuaWcgd3JvdGU6Cj4+PiBGcm9tOiBDaHJp c3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+Cj4+Pgo+Pj4gV2UgZG9uJ3Qg cmVhbGx5IG5lZWQgdGhlIEdUVCB0YWJsZSBhbnkgbW9yZSBtb3N0IG9mIHRoZSB0aW1lLgo+PiBX aHk/IEkgdGhvdWdodCBHVFQgYm8gaXMgYWx3YXlzIG5lZWRlZCB0byBiZSBib3VuZCB3aGVuIEdQ VSBpcyB0cnlpbmcgCj4+IHRvIGFjY2VzcyBpdCwgZG9lc24ndCBpdD8KPgo+IFdlIG9ubHkgbmVl ZCBpdCB0byBiZSBib3VuZCB3aGVuIHdlIHRyeSB0byBhY2Nlc3MgaXQgZnJvbSB0aGUgc3lzdGVt IAo+IFZNIChVVkQvVkNFLCByaW5nIGJ1ZmZlcnMsIGZlbmNlcyBldGMuLi4pLgo+Cj4gVGhlIFZN cyBmb3IgZWFjaCBwcm9jZXNzIGNhbiB3b3JrIHdpdGhvdXQgaXQgYW5kIGl0IGlzIGp1c3Qgb3Zl cmhlYWQgCj4gdG8gYmluZCBpdCBhbGwgdGhlIHRpbWUuClllcywgSSBnb3QgeW91ciBtZWFuLCBj b3B5aW5nIHB0ZSBmcm9tIEdBUlQgdG8gVk0gY29uZnVzZWQgbWUsIEkgdGhvdWdodCAKYmluZGlu ZyBHVFQgdGFibGUgaXMgYSBtdXN0LCB0aGF0J3Mgd3JvbmcuCkdvIHRob3VnaCB2bSBjb2RlIGFn YWluLCBwdGUgY2FuIGJlIGNyZWF0ZWQgYnkgYW1kZ3B1X3ZtX21hcF9nYXJ0IGlmIG5vIApHVFQg cHRlIHNvdXJjZSB3aGVuIHdlIGRvbid0IGJpbmQgaXQgYXQgYWxsIHVuZGVyIFZNIHByb2Nlc3Ms IGFtIEkgcmlnaHQgCm5vdz8KClJlZ2FyZHMsCkRhdmlkIFpob3UKCj4KPiBSZWdhcmRzLAo+IENo cmlzdGlhbi4KPgo+Cj4+Cj4+IFJlZ2FyZHMsCj4+IERhdmlkIFpob3UKPj4+ICAgU28gYmluZCBp dAo+Pj4gb25seSBvbiBkZW1hbmQuCj4+Pgo+Pj4gU2lnbmVkLW9mZi1ieTogQ2hyaXN0aWFuIEvD tm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgo+Pj4gLS0tCj4+PiAgIGRyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oICAgICAgICB8ICAxICsKPj4+ICAgZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMgICAgIHwgMzQgCj4+PiArKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0KPj4+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29i amVjdC5jIHwgIDcgKysrKysrCj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV90dG0uYyAgICB8IDMzIAo+Pj4gKysrKysrKysrKysrKysrKysrKysrKysrKystLS0KPj4+ICAg ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5oICAgIHwgIDMgKysrCj4+PiAg IGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV91dmQuYyAgICB8ICA0ICsrKysKPj4+ ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZjZS5jICAgIHwgIDYgKysrKyst Cj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jICAgICB8ICAzICsr LQo+Pj4gICA4IGZpbGVzIGNoYW5nZWQsIDg0IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0p Cj4+Pgo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5o IAo+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaAo+Pj4gaW5kZXggOWQz OWZhOC4uMjhkNGE2NyAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdS5oCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaAo+ Pj4gQEAgLTI1MjEsNiArMjUyMSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhbWRncHVfYWNwaV9m aW5pKHN0cnVjdCAKPj4+IGFtZGdwdV9kZXZpY2UgKmFkZXYpIHsgfQo+Pj4gICBzdHJ1Y3QgYW1k Z3B1X2JvX3ZhX21hcHBpbmcgKgo+Pj4gICBhbWRncHVfY3NfZmluZF9tYXBwaW5nKHN0cnVjdCBh bWRncHVfY3NfcGFyc2VyICpwYXJzZXIsCj4+PiAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGFk ZHIsIHN0cnVjdCBhbWRncHVfYm8gKipibyk7Cj4+PiAraW50IGFtZGdwdV9jc19zeXN2bV9hY2Nl c3NfcmVxdWlyZWQoc3RydWN0IGFtZGdwdV9jc19wYXJzZXIgKnBhcnNlcik7Cj4+PiAgICAgI2lm IGRlZmluZWQoQ09ORklHX0RSTV9BTURfREFMKQo+Pj4gICBpbnQgYW1kZ3B1X2RtX2Rpc3BsYXlf cmVzdW1lKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ICk7Cj4+PiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMgCj4+PiBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jCj4+PiBpbmRleCAyMGExOTYyLi5lMDY5OTc4IDEwMDY0 NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMKPj4+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jCj4+PiBAQCAtNjQwLDgg KzY0MCwxMiBAQCBzdGF0aWMgaW50IGFtZGdwdV9jc19wYXJzZXJfYm9zKHN0cnVjdCAKPj4+IGFt ZGdwdV9jc19wYXJzZXIgKnAsCj4+PiAgICAgICAgICAgfQo+Pj4gICAgICAgfQo+Pj4gICAtICAg IGlmIChwLT51Zl9lbnRyeS5yb2JqKQo+Pj4gLSAgICAgICAgcC0+am9iLT51Zl9hZGRyICs9IGFt ZGdwdV9ib19ncHVfb2Zmc2V0KHAtPnVmX2VudHJ5LnJvYmopOwo+Pj4gKyAgICBpZiAoIXIgJiYg cC0+dWZfZW50cnkucm9iaikgewo+Pj4gKyAgICAgICAgc3RydWN0IGFtZGdwdV9ibyAqdWYgPSBw LT51Zl9lbnRyeS5yb2JqOwo+Pj4gKwo+Pj4gKyAgICAgICAgciA9IGFtZGdwdV90dG1fYmluZCh1 Zi0+dGJvLnR0bSwgJnVmLT50Ym8ubWVtKTsKPj4+ICsgICAgICAgIHAtPmpvYi0+dWZfYWRkciAr PSBhbWRncHVfYm9fZ3B1X29mZnNldCh1Zik7Cj4+PiArICAgIH0KPj4+ICAgICBlcnJvcl92YWxp ZGF0ZToKPj4+ICAgICAgIGlmIChyKSB7Cj4+PiBAQCAtMTE1NiwzICsxMTYwLDI5IEBAIGFtZGdw dV9jc19maW5kX21hcHBpbmcoc3RydWN0IAo+Pj4gYW1kZ3B1X2NzX3BhcnNlciAqcGFyc2VyLAo+ Pj4gICAgICAgICByZXR1cm4gTlVMTDsKPj4+ICAgfQo+Pj4gKwo+Pj4gKy8qKgo+Pj4gKyAqIGFt ZGdwdV9jc19zeXN2bV9hY2Nlc3NfcmVxdWlyZWQgLSBtYWtlIEJPcyBhY2Nlc3NpYmxlIGJ5IHRo ZSAKPj4+IHN5c3RlbSBWTQo+Pj4gKyAqCj4+PiArICogQHBhcnNlcjogY29tbWFuZCBzdWJtaXNz aW9uIHBhcnNlciBjb250ZXh0Cj4+PiArICoKPj4+ICsgKiBIZWxwZXIgZm9yIFVWRC9WQ0UgVk0g ZW11bGF0aW9uLCBtYWtlIHN1cmUgQk9zIGFyZSBhY2Nlc3NpYmxlIGJ5IAo+Pj4gdGhlIHN5c3Rl bSBWTS4KPj4+ICsgKi8KPj4+ICtpbnQgYW1kZ3B1X2NzX3N5c3ZtX2FjY2Vzc19yZXF1aXJlZChz dHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAqcGFyc2VyKQo+Pj4gK3sKPj4+ICsgICAgdW5zaWduZWQg aTsKPj4+ICsgICAgaW50IHI7Cj4+PiArCj4+PiArICAgIGlmICghcGFyc2VyLT5ib19saXN0KQo+ Pj4gKyAgICAgICAgcmV0dXJuIDA7Cj4+PiArCj4+PiArICAgIGZvciAoaSA9IDA7IGkgPCBwYXJz ZXItPmJvX2xpc3QtPm51bV9lbnRyaWVzOyBpKyspIHsKPj4+ICsgICAgICAgIHN0cnVjdCBhbWRn cHVfYm8gKmJvID0gcGFyc2VyLT5ib19saXN0LT5hcnJheVtpXS5yb2JqOwo+Pj4gKwo+Pj4gKyAg ICAgICAgciA9IGFtZGdwdV90dG1fYmluZChiby0+dGJvLnR0bSwgJmJvLT50Ym8ubWVtKTsKPj4+ ICsgICAgICAgIGlmICh1bmxpa2VseShyKSkKPj4+ICsgICAgICAgICAgICByZXR1cm4gcjsKPj4+ ICsgICAgfQo+Pj4gKwo+Pj4gKyAgICByZXR1cm4gMDsKPj4+ICt9Cj4+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5jIAo+Pj4gYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmMKPj4+IGluZGV4IGIxNzczNGUuLmRj NzNmMTEgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf b2JqZWN0LmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmpl Y3QuYwo+Pj4gQEAgLTY0Niw2ICs2NDYsMTEgQEAgaW50IGFtZGdwdV9ib19waW5fcmVzdHJpY3Rl ZChzdHJ1Y3QgYW1kZ3B1X2JvIAo+Pj4gKmJvLCB1MzIgZG9tYWluLAo+Pj4gICAgICAgICAgIGRl dl9lcnIoYm8tPmFkZXYtPmRldiwgIiVwIHBpbiBmYWlsZWRcbiIsIGJvKTsKPj4+ICAgICAgICAg ICBnb3RvIGVycm9yOwo+Pj4gICAgICAgfQo+Pj4gKyAgICByID0gYW1kZ3B1X3R0bV9iaW5kKGJv LT50Ym8udHRtLCAmYm8tPnRiby5tZW0pOwo+Pj4gKyAgICBpZiAodW5saWtlbHkocikpIHsKPj4+ ICsgICAgICAgIGRldl9lcnIoYm8tPmFkZXYtPmRldiwgIiVwIGJpbmQgZmFpbGVkXG4iLCBibyk7 Cj4+PiArICAgICAgICBnb3RvIGVycm9yOwo+Pj4gKyAgICB9Cj4+PiAgICAgICAgIGJvLT5waW5f Y291bnQgPSAxOwo+Pj4gICAgICAgaWYgKGdwdV9hZGRyICE9IE5VTEwpCj4+PiBAQCAtOTE4LDYg KzkyMyw4IEBAIHZvaWQgYW1kZ3B1X2JvX2ZlbmNlKHN0cnVjdCBhbWRncHVfYm8gKmJvLCAKPj4+ IHN0cnVjdCBmZW5jZSAqZmVuY2UsCj4+PiAgIHU2NCBhbWRncHVfYm9fZ3B1X29mZnNldChzdHJ1 Y3QgYW1kZ3B1X2JvICpibykKPj4+ICAgewo+Pj4gICAgICAgV0FSTl9PTl9PTkNFKGJvLT50Ym8u bWVtLm1lbV90eXBlID09IFRUTV9QTF9TWVNURU0pOwo+Pj4gKyAgICBXQVJOX09OX09OQ0UoYm8t PnRiby5tZW0ubWVtX3R5cGUgPT0gVFRNX1BMX1RUICYmCj4+PiArICAgICAgICAgICAgICFhbWRn cHVfdHRtX2lzX2JvdW5kKGJvLT50Ym8udHRtKSk7Cj4+PiBXQVJOX09OX09OQ0UoIXd3X211dGV4 X2lzX2xvY2tlZCgmYm8tPnRiby5yZXN2LT5sb2NrKSAmJgo+Pj4gICAgICAgICAgICAgICAgIWJv LT5waW5fY291bnQpOwo+Pj4gICBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X3R0bS5jIAo+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf dHRtLmMKPj4+IGluZGV4IDQzMzdiM2EuLmMyOTRhYTkgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYwo+Pj4gQEAgLTI1Niw4ICsyNTYsMTIgQEAgc3RhdGlj IGludCBhbWRncHVfbW92ZV9ibGl0KHN0cnVjdCAKPj4+IHR0bV9idWZmZXJfb2JqZWN0ICpibywK Pj4+ICAgICAgIG5ld19zdGFydCA9ICh1NjQpbmV3X21lbS0+c3RhcnQgPDwgUEFHRV9TSElGVDsK Pj4+ICAgICAgICAgc3dpdGNoIChvbGRfbWVtLT5tZW1fdHlwZSkgewo+Pj4gLSAgICBjYXNlIFRU TV9QTF9WUkFNOgo+Pj4gICAgICAgY2FzZSBUVE1fUExfVFQ6Cj4+PiArICAgICAgICByID0gYW1k Z3B1X3R0bV9iaW5kKGJvLT50dG0sIG9sZF9tZW0pOwo+Pj4gKyAgICAgICAgaWYgKHIpCj4+PiAr ICAgICAgICAgICAgcmV0dXJuIHI7Cj4+PiArCj4+PiArICAgIGNhc2UgVFRNX1BMX1ZSQU06Cj4+ PiAgICAgICAgICAgb2xkX3N0YXJ0ICs9IGJvLT5iZGV2LT5tYW5bb2xkX21lbS0+bWVtX3R5cGVd LmdwdV9vZmZzZXQ7Cj4+PiAgICAgICAgICAgYnJlYWs7Cj4+PiAgICAgICBkZWZhdWx0Ogo+Pj4g QEAgLTI2NSw4ICsyNjksMTIgQEAgc3RhdGljIGludCBhbWRncHVfbW92ZV9ibGl0KHN0cnVjdCAK Pj4+IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4+ICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsK Pj4+ICAgICAgIH0KPj4+ICAgICAgIHN3aXRjaCAobmV3X21lbS0+bWVtX3R5cGUpIHsKPj4+IC0g ICAgY2FzZSBUVE1fUExfVlJBTToKPj4+ICAgICAgIGNhc2UgVFRNX1BMX1RUOgo+Pj4gKyAgICAg ICAgciA9IGFtZGdwdV90dG1fYmluZChiby0+dHRtLCBuZXdfbWVtKTsKPj4+ICsgICAgICAgIGlm IChyKQo+Pj4gKyAgICAgICAgICAgIHJldHVybiByOwo+Pj4gKwo+Pj4gKyAgICBjYXNlIFRUTV9Q TF9WUkFNOgo+Pj4gICAgICAgICAgIG5ld19zdGFydCArPSBiby0+YmRldi0+bWFuW25ld19tZW0t Pm1lbV90eXBlXS5ncHVfb2Zmc2V0Owo+Pj4gICAgICAgICAgIGJyZWFrOwo+Pj4gICAgICAgZGVm YXVsdDoKPj4+IEBAIC02MzksNyArNjQ3LDYgQEAgc3RhdGljIGludCBhbWRncHVfdHRtX2JhY2tl bmRfYmluZChzdHJ1Y3QgdHRtX3R0IAo+Pj4gKnR0bSwKPj4+ICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCB0dG1fbWVtX3JlZyAqYm9fbWVtKQo+Pj4gICB7Cj4+PiAgICAgICBzdHJ1Y3QgYW1k Z3B1X3R0bV90dCAqZ3R0ID0gKHZvaWQqKXR0bTsKPj4+IC0gICAgdWludDMyX3QgZmxhZ3MgPSBh bWRncHVfdHRtX3R0X3B0ZV9mbGFncyhndHQtPmFkZXYsIHR0bSwgYm9fbWVtKTsKPj4+ICAgICAg IGludCByOwo+Pj4gICAgICAgICBpZiAoZ3R0LT51c2VycHRyKSB7Cj4+PiBAQCAtNjYwLDYgKzY2 NywyNiBAQCBzdGF0aWMgaW50IGFtZGdwdV90dG1fYmFja2VuZF9iaW5kKHN0cnVjdCAKPj4+IHR0 bV90dCAqdHRtLAo+Pj4gICAgICAgICAgIGJvX21lbS0+bWVtX3R5cGUgPT0gQU1ER1BVX1BMX09B KQo+Pj4gICAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+Pj4gICArICAgIHJldHVybiAwOwo+Pj4g K30KPj4+ICsKPj4+ICtib29sIGFtZGdwdV90dG1faXNfYm91bmQoc3RydWN0IHR0bV90dCAqdHRt KQo+Pj4gK3sKPj4+ICsgICAgc3RydWN0IGFtZGdwdV90dG1fdHQgKmd0dCA9ICh2b2lkICopdHRt Owo+Pj4gKwo+Pj4gKyAgICByZXR1cm4gZ3R0ICYmICFsaXN0X2VtcHR5KCZndHQtPmxpc3QpOwo+ Pj4gK30KPj4+ICsKPj4+ICtpbnQgYW1kZ3B1X3R0bV9iaW5kKHN0cnVjdCB0dG1fdHQgKnR0bSwg c3RydWN0IHR0bV9tZW1fcmVnICpib19tZW0pCj4+PiArewo+Pj4gKyAgICBzdHJ1Y3QgYW1kZ3B1 X3R0bV90dCAqZ3R0ID0gKHZvaWQgKil0dG07Cj4+PiArICAgIHVpbnQzMl90IGZsYWdzOwo+Pj4g KyAgICBpbnQgcjsKPj4+ICsKPj4+ICsgICAgaWYgKCF0dG0gfHwgYW1kZ3B1X3R0bV9pc19ib3Vu ZCh0dG0pKQo+Pj4gKyAgICAgICAgcmV0dXJuIDA7Cj4+PiArCj4+PiArICAgIGZsYWdzID0gYW1k Z3B1X3R0bV90dF9wdGVfZmxhZ3MoZ3R0LT5hZGV2LCB0dG0sIGJvX21lbSk7Cj4+PiAgICAgICBy ID0gYW1kZ3B1X2dhcnRfYmluZChndHQtPmFkZXYsIGd0dC0+b2Zmc2V0LCB0dG0tPm51bV9wYWdl cywKPj4+ICAgICAgICAgICB0dG0tPnBhZ2VzLCBndHQtPnR0bS5kbWFfYWRkcmVzcywgZmxhZ3Mp Owo+Pj4gICBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0 bS5oIAo+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmgKPj4+IGlu ZGV4IDcyZjZiZmMuLjIxNGJhZTkgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfdHRtLmgKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV90dG0uaAo+Pj4gQEAgLTc3LDQgKzc3LDcgQEAgaW50IGFtZGdwdV9maWxsX2J1ZmZl cihzdHJ1Y3QgYW1kZ3B1X2JvICpibywKPj4+ICAgICAgICAgICAgICAgc3RydWN0IGZlbmNlICoq ZmVuY2UpOwo+Pj4gICAgIGludCBhbWRncHVfbW1hcChzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0 IHZtX2FyZWFfc3RydWN0ICp2bWEpOwo+Pj4gK2Jvb2wgYW1kZ3B1X3R0bV9pc19ib3VuZChzdHJ1 Y3QgdHRtX3R0ICp0dG0pOwo+Pj4gK2ludCBhbWRncHVfdHRtX2JpbmQoc3RydWN0IHR0bV90dCAq dHRtLCBzdHJ1Y3QgdHRtX21lbV9yZWcgKmJvX21lbSk7Cj4+PiArCj4+PiAgICNlbmRpZgo+Pj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV91dmQuYyAKPj4+ IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3V2ZC5jCj4+PiBpbmRleCA1ODg4 ZThhLi5mYWI3YmIxIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X3V2ZC5jCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf dXZkLmMKPj4+IEBAIC04OTEsNiArODkxLDEwIEBAIGludCBhbWRncHVfdXZkX3JpbmdfcGFyc2Vf Y3Moc3RydWN0IAo+Pj4gYW1kZ3B1X2NzX3BhcnNlciAqcGFyc2VyLCB1aW50MzJfdCBpYl9pZHgp Cj4+PiAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4+PiAgICAgICB9Cj4+PiAgICsgICAgciA9 IGFtZGdwdV9jc19zeXN2bV9hY2Nlc3NfcmVxdWlyZWQocGFyc2VyKTsKPj4+ICsgICAgaWYgKHIp Cj4+PiArICAgICAgICByZXR1cm4gcjsKPj4+ICsKPj4+ICAgICAgIGN0eC5wYXJzZXIgPSBwYXJz ZXI7Cj4+PiAgICAgICBjdHguYnVmX3NpemVzID0gYnVmX3NpemVzOwo+Pj4gICAgICAgY3R4Lmli X2lkeCA9IGliX2lkeDsKPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfdmNlLmMgCj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92 Y2UuYwo+Pj4gaW5kZXggOWI3MWQ2Yy4uYjBjNjcwMiAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92Y2UuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X3ZjZS5jCj4+PiBAQCAtNjM0LDcgKzYzNCwxMSBAQCBpbnQgYW1k Z3B1X3ZjZV9yaW5nX3BhcnNlX2NzKHN0cnVjdCAKPj4+IGFtZGdwdV9jc19wYXJzZXIgKnAsIHVp bnQzMl90IGliX2lkeCkKPj4+ICAgICAgIHVpbnQzMl90IGFsbG9jYXRlZCA9IDA7Cj4+PiAgICAg ICB1aW50MzJfdCB0bXAsIGhhbmRsZSA9IDA7Cj4+PiAgICAgICB1aW50MzJfdCAqc2l6ZSA9ICZ0 bXA7Cj4+PiAtICAgIGludCBpLCByID0gMCwgaWR4ID0gMDsKPj4+ICsgICAgaW50IGksIHIsIGlk eCA9IDA7Cj4+PiArCj4+PiArICAgIHIgPSBhbWRncHVfY3Nfc3lzdm1fYWNjZXNzX3JlcXVpcmVk KHApOwo+Pj4gKyAgICBpZiAocikKPj4+ICsgICAgICAgIHJldHVybiByOwo+Pj4gICAgICAgICB3 aGlsZSAoaWR4IDwgaWItPmxlbmd0aF9kdykgewo+Pj4gICAgICAgICAgIHVpbnQzMl90IGxlbiA9 IGFtZGdwdV9nZXRfaWJfdmFsdWUocCwgaWJfaWR4LCBpZHgpOwo+Pj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jIAo+Pj4gYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYwo+Pj4gaW5kZXggNzY2MGY4Mi4uYTU0OWFiZCAxMDA2 NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jCj4+PiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYwo+Pj4gQEAgLTExNjIs NyArMTE2Miw4IEBAIGludCBhbWRncHVfdm1fYm9fdXBkYXRlKHN0cnVjdCBhbWRncHVfZGV2aWNl IAo+Pj4gKmFkZXYsCj4+PiAgICAgICB9Cj4+PiAgICAgICAgIGZsYWdzID0gYW1kZ3B1X3R0bV90 dF9wdGVfZmxhZ3MoYWRldiwgYm9fdmEtPmJvLT50Ym8udHRtLCBtZW0pOwo+Pj4gLSAgICBndHRf ZmxhZ3MgPSAoYWRldiA9PSBib192YS0+Ym8tPmFkZXYpID8gZmxhZ3MgOiAwOwo+Pj4gKyAgICBn dHRfZmxhZ3MgPSAoYW1kZ3B1X3R0bV9pc19ib3VuZChib192YS0+Ym8tPnRiby50dG0pICYmCj4+ PiArICAgICAgICBhZGV2ID09IGJvX3ZhLT5iby0+YWRldikgPyBmbGFncyA6IDA7Cj4+PiAgICAg ICAgIHNwaW5fbG9jaygmdm0tPnN0YXR1c19sb2NrKTsKPj4+ICAgICAgIGlmICghbGlzdF9lbXB0 eSgmYm9fdmEtPnZtX3N0YXR1cykpCj4+Cj4KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwo+IGFtZC1nZnggbWFpbGluZyBsaXN0Cj4gYW1kLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2FtZC1nZngKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdm eAo=