From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zhang, Jerry (Junwei)" Subject: Re: [PATCH 1/2] drm/amdgpu: return bo itself if userptr is cpu addr of bo (v3) Date: Tue, 31 Jul 2018 16:05:24 +0800 Message-ID: <5B601844.3010405@amd.com> References: <1532944950-28619-1-git-send-email-Jerry.Zhang@amd.com> <3d423f44-e47a-e70c-dfd9-80c1ff843e45@gmail.com> <5B6008A1.5050401@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: christian.koenig-5C7GfCeVMHo@public.gmane.org, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Chunming Zhou T24gMDcvMzEvMjAxOCAwMzowMyBQTSwgQ2hyaXN0aWFuIEvDtm5pZyB3cm90ZToKPiBBbSAzMS4w Ny4yMDE4IHVtIDA4OjU4IHNjaHJpZWIgWmhhbmcsIEplcnJ5IChKdW53ZWkpOgo+PiBPbiAwNy8z MC8yMDE4IDA2OjQ3IFBNLCBDaHJpc3RpYW4gS8O2bmlnIHdyb3RlOgo+Pj4gQW0gMzAuMDcuMjAx OCB1bSAxMjowMiBzY2hyaWViIEp1bndlaSBaaGFuZzoKPj4+PiBGcm9tOiBDaHVubWluZyBaaG91 IDxEYXZpZDEuWmhvdUBhbWQuY29tPgo+Pj4+Cj4+Pj4gdjI6IGdldCBvcmlnaW5hbCBnZW0gaGFu ZGxlIGZyb20gZ29iago+Pj4+IHYzOiB1cGRhdGUgZmluZCBibyBkYXRhIHN0cnVjdHVyZSBhcyB1 bmlvbihpbiwgb3V0KQo+Pj4+ICAgICAgc2ltcGx5IHNvbWUgY29kZSBsb2dpYwo+Pj4KPj4+IERv IHdlIG5vdyBoYXZlIGFuIG9wZW4gc291cmNlIHVzZXIgZm9yIHRoaXMsIHNvIHRoYXQgd2UgY2Fu IHVwc3RyZWFtIGl0PyBPbmUgbW9yZSBwb2ludCBiZWxvdy4KPj4+Cj4+Pj4KPj4+PiBTaWduZWQt b2ZmLWJ5OiBDaHVubWluZyBaaG91IDxEYXZpZDEuWmhvdUBhbWQuY29tPgo+Pj4+IFNpZ25lZC1v ZmYtYnk6IEp1bndlaSBaaGFuZyA8SmVycnkuWmhhbmdAYW1kLmNvbT4gKHYzKQo+Pj4+IFJldmll d2VkLWJ5OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+Cj4+Pj4g UmV2aWV3ZWQtYnk6IEphbW15IFpob3UgPEphbW15Llpob3VAYW1kLmNvbT4KPj4+PiAtLS0KPj4+ PiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oICAgICB8ICAyICsrCj4+Pj4g ICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2VtLmMgfCA2MyArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysKPj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9rbXMuYyB8ICAzICstCj4+Pj4gICBpbmNsdWRlL3VhcGkvZHJtL2FtZGdwdV9kcm0u aCAgICAgICAgICAgfCAyMSArKysrKysrKysrKwo+Pj4+ICAgNCBmaWxlcyBjaGFuZ2VkLCA4OCBp bnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4+Pj4KPj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHUuaAo+Pj4+IGluZGV4IDRjZDIwZTcuLjQ2YzM3MGIgMTAwNjQ0Cj4+Pj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmgKPj4+PiArKysgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaAo+Pj4+IEBAIC0xMjEzLDYgKzEyMTMsOCBAQCBpbnQg YW1kZ3B1X2dlbV9pbmZvX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEs Cj4+Pj4gICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlscCk7Cj4+Pj4gICBpbnQg YW1kZ3B1X2dlbV91c2VycHRyX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRh dGEsCj4+Pj4gICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbHApOwo+Pj4+ICtpbnQg YW1kZ3B1X2dlbV9maW5kX2JvX2J5X2NwdV9tYXBwaW5nX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHZvaWQgKmRhdGEsCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBk cm1fZmlsZSAqZmlscCk7Cj4+Pj4gICBpbnQgYW1kZ3B1X2dlbV9tbWFwX2lvY3RsKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4+Pj4gICAgICAgICAgICAgICAgIHN0cnVjdCBk cm1fZmlsZSAqZmlscCk7Cj4+Pj4gICBpbnQgYW1kZ3B1X2dlbV93YWl0X2lkbGVfaW9jdGwoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X2dlbS5jCj4+Pj4gaW5kZXggNzE3OTJkOC4uYmFlODQxNyAxMDA2NDQKPj4+ PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2VtLmMKPj4+PiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2VtLmMKPj4+PiBAQCAtMjg4LDYg KzI4OCw2OSBAQCBpbnQgYW1kZ3B1X2dlbV9jcmVhdGVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgdm9pZCAqZGF0YSwKPj4+PiAgICAgICByZXR1cm4gMDsKPj4+PiAgIH0KPj4+PiArc3Rh dGljIGludCBhbWRncHVfZ2VtX2dldF9oYW5kbGVfZnJvbV9vYmplY3Qoc3RydWN0IGRybV9maWxl ICpmaWxwLAo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9nZW1fb2Jq ZWN0ICpvYmopCj4+Pj4gK3sKPj4+PiArICAgIGludCBpOwo+Pj4+ICsgICAgc3RydWN0IGRybV9n ZW1fb2JqZWN0ICp0bXA7Cj4+Pj4gKwo+Pj4+ICsgICAgc3Bpbl9sb2NrKCZmaWxwLT50YWJsZV9s b2NrKTsKPj4+PiArICAgIGlkcl9mb3JfZWFjaF9lbnRyeSgmZmlscC0+b2JqZWN0X2lkciwgdG1w LCBpKSB7Cj4+Pj4gKyAgICAgICAgaWYgKG9iaiA9PSB0bXApIHsKPj4+PiArICAgICAgICAgICAg ZHJtX2dlbV9vYmplY3RfcmVmZXJlbmNlKG9iaik7Cj4+Pj4gKyAgICAgICAgICAgIHNwaW5fdW5s b2NrKCZmaWxwLT50YWJsZV9sb2NrKTsKPj4+PiArICAgICAgICAgICAgcmV0dXJuIGk7Cj4+Pj4g KyAgICAgICAgfQo+Pj4+ICsgICAgfQo+Pj4KPj4+IFBsZWFzZSBkb3VibGUgY2hlY2sgaWYgdGhh dCBpcyBzdGlsbCB1cCB0byBkYXRlLgo+Pgo+PiBXZSBtYXkgaGF2ZSB0byByZXBsYWNlIGRybV9n ZW1fb2JqZWN0X3JlZmVyZW5jZSgpIHdpdGggZHJtX2dlbV9vYmplY3RfZ2V0KCkuCj4+Cj4+IE9u IDJuZCB0aG91Z2h0LCBkbyB3ZSByZWFsbHkgbmVlZCB0byBkbyByZWZlcmVuY2UgZXZlcnkgdGlt ZT8KPgo+IFllcywgdGhhdCdzIGEgbXVzdCBoYXZlLiBPdGhlcndpc2UgdGhlIGhhbmRsZSBjb3Vs ZCBiZSBmcmVlZCBhbmQgcmV1c2VkIGFscmVhZHkgd2hlbiB3ZSByZXR1cm4uCj4KPj4gaWYgVU1E IGZpbmQgdGhlIHNhbWUgZ2VtIG9iamVjdCBmb3IgMyB0aW1lcywgaXQgYWxzbyBuZWVkIHRvIGV4 cGxpY2l0bHkgZnJlZShwdXQpIHRoYXQgb2JqZWN0IGZvciAzIHRpbWVzPwo+Cj4gQ29ycmVjdCB5 ZXMuIFRoaW5raW5nIG1vcmUgYWJvdXQgdGhpcyB0aGUgcmVhbCBwcm9ibGVtIGlzIHRvIHRyYW5z bGF0ZSB0aGUgaGFuZGxlIGludG8gYSBzdHJ1Y3R1cmUgaW4gbGliZHJtLgo+Cj4gSGVyZSB3ZSBh cmUgYmFjayB0byB0aGUgcHJvYmxlbSBNYXJlayBhbmQgTWljaGVsIGhhcyBiZWVuIHdvcmtpbmcg b24gZm9yIGEgd2hpbGUgdGhhdCB3ZSBhbHdheXMgbmVlZCB0byBiZSBhYmxlIHRvIHRyYW5zbGF0 ZSBhIGhhbmRsZSBpbnRvIGEgYm8gc3RydWN0dXJlLi4uLi4KPgo+IFNvIHRoYXQgbmVlZHMgdG8g YmUgc29sdmVkIGJlZm9yZSB3ZSBjYW4gdXBzdHJlYW0gdGhlIGNoYW5nZXMuCgpUaGFua3MgZm9y IHlvdXIgaW5mby4KSXQncyBiZXR0ZXIgdG8gZml4IHRoYXQgYmVmb3JlIHVwc3RyZWFtLgoKUmVn YXJkcywKSmVycnkKCj4KPiBSZWdhcmRzLAo+IENocmlzdGlhbi4KPgo+Pgo+Pgo+Pj4KPj4+IEkg dGhpbmsgd2UgY291bGQgYXMgd2VsbCB0cnkgdG8gdXNlIHRoZSBETUEtYnVmIGhhbmRsZSB0cmVl IGZvciB0aGF0Lgo+Pgo+PiBJZiB0aGUgYm8gaXMgbm90IGltcG9ydC9leHBvcnQsIERNQS1idWYg d2lsbCBiZSBOVUxMIGFsd2F5cy4KPj4KPj4gUmVnYXJkcywKPj4gSmVycnkKPj4+Cj4+PiBDaHJp c3RpYW4uCj4+Pgo+Pj4+ICsgc3Bpbl91bmxvY2soJmZpbHAtPnRhYmxlX2xvY2spOwo+Pj4+ICsK Pj4+PiArICAgIHJldHVybiAwOwo+Pj4+ICt9Cj4+Pj4gKwo+Pj4+ICtpbnQgYW1kZ3B1X2dlbV9m aW5kX2JvX2J5X2NwdV9tYXBwaW5nX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQg KmRhdGEsCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmls cCkKPj4+PiArewo+Pj4+ICsgICAgdW5pb24gZHJtX2FtZGdwdV9nZW1fZmluZF9ibyAqYXJncyA9 IGRhdGE7Cj4+Pj4gKyAgICBzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdvYmo7Cj4+Pj4gKyAgICBz dHJ1Y3QgYW1kZ3B1X2JvICpibzsKPj4+PiArICAgIHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAq dGJvOwo+Pj4+ICsgICAgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWE7Cj4+Pj4gKyAgICB1aW50 MzJfdCBoYW5kbGU7Cj4+Pj4gKyAgICBpbnQgcjsKPj4+PiArCj4+Pj4gKyAgICBpZiAob2Zmc2V0 X2luX3BhZ2UoYXJncy0+aW4uYWRkciB8IGFyZ3MtPmluLnNpemUpKQo+Pj4+ICsgICAgICAgIHJl dHVybiAtRUlOVkFMOwo+Pj4+ICsKPj4+PiArICAgIGRvd25fcmVhZCgmY3VycmVudC0+bW0tPm1t YXBfc2VtKTsKPj4+PiArICAgIHZtYSA9IGZpbmRfdm1hKGN1cnJlbnQtPm1tLCBhcmdzLT5pbi5h ZGRyKTsKPj4+PiArICAgIGlmICghdm1hIHx8IHZtYS0+dm1fZmlsZSAhPSBmaWxwLT5maWxwIHx8 Cj4+Pj4gKyAgICAgICAgKGFyZ3MtPmluLnNpemUgPiAodm1hLT52bV9lbmQgLSBhcmdzLT5pbi5h ZGRyKSkpIHsKPj4+PiArICAgICAgICBhcmdzLT5vdXQuaGFuZGxlID0gMDsKPj4+PiArICAgICAg ICB1cF9yZWFkKCZjdXJyZW50LT5tbS0+bW1hcF9zZW0pOwo+Pj4+ICsgICAgICAgIHJldHVybiAt RUlOVkFMOwo+Pj4+ICsgICAgfQo+Pj4+ICsgICAgYXJncy0+b3V0Lm9mZnNldCA9IGFyZ3MtPmlu LmFkZHIgLSB2bWEtPnZtX3N0YXJ0Owo+Pj4+ICsKPj4+PiArICAgIHRibyA9IHZtYS0+dm1fcHJp dmF0ZV9kYXRhOwo+Pj4+ICsgICAgYm8gPSBjb250YWluZXJfb2YodGJvLCBzdHJ1Y3QgYW1kZ3B1 X2JvLCB0Ym8pOwo+Pj4+ICsgICAgYW1kZ3B1X2JvX3JlZihibyk7Cj4+Pj4gKyAgICBnb2JqID0g JmJvLT5nZW1fYmFzZTsKPj4+PiArCj4+Pj4gKyAgICBoYW5kbGUgPSBhbWRncHVfZ2VtX2dldF9o YW5kbGVfZnJvbV9vYmplY3QoZmlscCwgZ29iaik7Cj4+Pj4gKyAgICBpZiAoIWhhbmRsZSkgewo+ Pj4+ICsgICAgICAgIHIgPSBkcm1fZ2VtX2hhbmRsZV9jcmVhdGUoZmlscCwgZ29iaiwgJmhhbmRs ZSk7Cj4+Pj4gKyAgICAgICAgaWYgKHIpIHsKPj4+PiArICAgICAgICAgICAgRFJNX0VSUk9SKCJj cmVhdGUgZ2VtIGhhbmRsZSBmYWlsZWRcbiIpOwo+Pj4+ICsgICAgICAgICAgICB1cF9yZWFkKCZj dXJyZW50LT5tbS0+bW1hcF9zZW0pOwo+Pj4+ICsgICAgICAgICAgICByZXR1cm4gcjsKPj4+PiAr ICAgICAgICB9Cj4+Pj4gKyAgICB9Cj4+Pj4gKyAgICBhcmdzLT5vdXQuaGFuZGxlID0gaGFuZGxl Owo+Pj4+ICsgICAgdXBfcmVhZCgmY3VycmVudC0+bW0tPm1tYXBfc2VtKTsKPj4+PiArCj4+Pj4g KyAgICByZXR1cm4gMDsKPj4+PiArfQo+Pj4+ICsKPj4+PiAgIGludCBhbWRncHVfZ2VtX3VzZXJw dHJfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPj4+PiAgICAgICAg ICAgICAgICAgICAgc3RydWN0IGRybV9maWxlICpmaWxwKQo+Pj4+ICAgewo+Pj4+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfa21zLmMgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfa21zLmMKPj4+PiBpbmRleCA3OTU2ODQ4Li4xYmQyY2Mx IDEwMDY0NAo+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9rbXMu Ywo+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9rbXMuYwo+Pj4+ IEBAIC0xMTAwLDcgKzExMDAsOCBAQCB2b2lkIGFtZGdwdV9kaXNhYmxlX3ZibGFua19rbXMoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpCj4+Pj4gICAgICAgRFJNX0lP Q1RMX0RFRl9EUlYoQU1ER1BVX0dFTV9WQSwgYW1kZ3B1X2dlbV92YV9pb2N0bCwgRFJNX0FVVEh8 RFJNX1JFTkRFUl9BTExPVyksCj4+Pj4gICAgICAgRFJNX0lPQ1RMX0RFRl9EUlYoQU1ER1BVX0dF TV9PUCwgYW1kZ3B1X2dlbV9vcF9pb2N0bCwgRFJNX0FVVEh8RFJNX1JFTkRFUl9BTExPVyksCj4+ Pj4gICAgICAgRFJNX0lPQ1RMX0RFRl9EUlYoQU1ER1BVX0dFTV9VU0VSUFRSLCBhbWRncHVfZ2Vt X3VzZXJwdHJfaW9jdGwsIERSTV9BVVRIfERSTV9SRU5ERVJfQUxMT1cpLAo+Pj4+IC0gICAgRFJN X0lPQ1RMX0RFRl9EUlYoQU1ER1BVX0ZSRUVTWU5DLCBhbWRncHVfZGlzcGxheV9mcmVlc3luY19p b2N0bCwgRFJNX01BU1RFUikKPj4+PiArICAgIERSTV9JT0NUTF9ERUZfRFJWKEFNREdQVV9GUkVF U1lOQywgYW1kZ3B1X2Rpc3BsYXlfZnJlZXN5bmNfaW9jdGwsIERSTV9NQVNURVIpLAo+Pj4+ICsg ICAgRFJNX0lPQ1RMX0RFRl9EUlYoQU1ER1BVX0dFTV9GSU5EX0JPLCBhbWRncHVfZ2VtX2ZpbmRf Ym9fYnlfY3B1X21hcHBpbmdfaW9jdGwsIERSTV9BVVRIfERSTV9SRU5ERVJfQUxMT1cpCj4+Pj4g ICB9Owo+Pj4+ICAgY29uc3QgaW50IGFtZGdwdV9tYXhfa21zX2lvY3RsID0gQVJSQVlfU0laRShh bWRncHVfaW9jdGxzX2ttcyk7Cj4+Pj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vYW1k Z3B1X2RybS5oIGIvaW5jbHVkZS91YXBpL2RybS9hbWRncHVfZHJtLmgKPj4+PiBpbmRleCA5NDQ0 NGVlLi4wMDBjNDE1IDEwMDY0NAo+Pj4+IC0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vYW1kZ3B1X2Ry bS5oCj4+Pj4gKysrIGIvaW5jbHVkZS91YXBpL2RybS9hbWRncHVfZHJtLmgKPj4+PiBAQCAtNTQs NiArNTQsNyBAQAo+Pj4+ICAgI2RlZmluZSBEUk1fQU1ER1BVX1ZNICAgICAgICAgICAgMHgxMwo+ Pj4+ICAgI2RlZmluZSBEUk1fQU1ER1BVX0ZFTkNFX1RPX0hBTkRMRSAgICAweDE0Cj4+Pj4gICAj ZGVmaW5lIERSTV9BTURHUFVfU0NIRUQgICAgICAgIDB4MTUKPj4+PiArI2RlZmluZSBEUk1fQU1E R1BVX0dFTV9GSU5EX0JPICAgICAgICAweDE2Cj4+Pj4gICAvKiBub3QgdXBzdHJlYW0gKi8KPj4+ PiAgICNkZWZpbmUgRFJNX0FNREdQVV9GUkVFU1lOQyAgICAgICAgICAgIDB4NWQKPj4+PiBAQCAt NzQsNiArNzUsNyBAQAo+Pj4+ICAgI2RlZmluZSBEUk1fSU9DVExfQU1ER1BVX0ZFTkNFX1RPX0hB TkRMRSBEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX0FNREdQVV9GRU5DRV9UT19IQU5E TEUsIHVuaW9uIGRybV9hbWRncHVfZmVuY2VfdG9faGFuZGxlKQo+Pj4+ICAgI2RlZmluZSBEUk1f SU9DVExfQU1ER1BVX1NDSEVEIERSTV9JT1coRFJNX0NPTU1BTkRfQkFTRSArIERSTV9BTURHUFVf U0NIRUQsIHVuaW9uIGRybV9hbWRncHVfc2NoZWQpCj4+Pj4gICAjZGVmaW5lIERSTV9JT0NUTF9B TURHUFVfRlJFRVNZTkMgRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9BTURHUFVfRlJF RVNZTkMsIHN0cnVjdCBkcm1fYW1kZ3B1X2ZyZWVzeW5jKQo+Pj4+ICsjZGVmaW5lIERSTV9JT0NU TF9BTURHUFVfR0VNX0ZJTkRfQk8gRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9BTURH UFVfR0VNX0ZJTkRfQk8sIHVuaW9uIGRybV9hbWRncHVfZ2VtX2ZpbmRfYm8pCj4+Pj4gICAvKioK Pj4+PiAgICAqIERPQzogbWVtb3J5IGRvbWFpbnMKPj4+PiBAQCAtMzkyLDYgKzM5NCwyNSBAQCBz dHJ1Y3QgZHJtX2FtZGdwdV9nZW1fd2FpdF9pZGxlX291dCB7Cj4+Pj4gICAgICAgc3RydWN0IGRy bV9hbWRncHVfZ2VtX3dhaXRfaWRsZV9vdXQgb3V0Owo+Pj4+ICAgfTsKPj4+PiArc3RydWN0IGRy bV9hbWRncHVfZ2VtX2ZpbmRfYm9faW4gewo+Pj4+ICsgICAgLyogQ1BVIGFkZHJlc3MgKi8KPj4+ PiArICAgIF9fdTY0ICAgICAgICAgICAgYWRkcjsKPj4+PiArICAgIC8qIG1lbW9yeSBzaXplIGZy b20gQ1BVIGFkZHJlc3MgKi8KPj4+PiArICAgIF9fdTY0ICAgICAgICAgICAgc2l6ZTsKPj4+PiAr fTsKPj4+PiArCj4+Pj4gK3N0cnVjdCBkcm1fYW1kZ3B1X2dlbV9maW5kX2JvX291dCB7Cj4+Pj4g KyAgICAvKiBvZmZzZXQgaW4gYm8gKi8KPj4+PiArICAgIF9fdTY0ICAgICAgICAgICAgb2Zmc2V0 Owo+Pj4+ICsgICAgLyogcmVzdWx0aW5nIEdFTSBoYW5kbGUgKi8KPj4+PiArICAgIF9fdTMyICAg ICAgICAgICAgaGFuZGxlOwo+Pj4+ICt9Owo+Pj4+ICsKPj4+PiArdW5pb24gZHJtX2FtZGdwdV9n ZW1fZmluZF9ibyB7Cj4+Pj4gKyAgICBzdHJ1Y3QgZHJtX2FtZGdwdV9nZW1fZmluZF9ib19pbiBp bjsKPj4+PiArICAgIHN0cnVjdCBkcm1fYW1kZ3B1X2dlbV9maW5kX2JvX291dCBvdXQ7Cj4+Pj4g K307Cj4+Pj4gKwo+Pj4+ICAgc3RydWN0IGRybV9hbWRncHVfd2FpdF9jc19pbiB7Cj4+Pj4gICAg ICAgLyogQ29tbWFuZCBzdWJtaXNzaW9uIGhhbmRsZQo+Pj4+ICAgICAgICAgICAgKiBoYW5kbGUg ZXF1YWxzIDAgbWVhbnMgbm9uZSB0byB3YWl0IGZvcgo+Pj4KPj4gX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPj4gYW1kLWdmeCBtYWlsaW5nIGxpc3QKPj4g YW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cj4KX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9hbWQtZ2Z4Cg==