From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH 1/2] drm/amdgpu: Remap hdp coherency registers Date: Fri, 12 Apr 2019 09:23:36 +0200 Message-ID: <9cc46562-129b-5e1f-14a9-6244ede19f3e@gmail.com> References: <1555014669-30077-1-git-send-email-Oak.Zeng@amd.com> Reply-To: christian.koenig-5C7GfCeVMHo@public.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1555014669-30077-1-git-send-email-Oak.Zeng-5C7GfCeVMHo@public.gmane.org> Content-Language: en-US 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: "Zeng, Oak" , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" Cc: "Deucher, Alexander" , "Kuehling, Felix" , "Keely, Sean" QW0gMTEuMDQuMTkgdW0gMjI6MzEgc2NocmllYiBaZW5nLCBPYWs6Cj4gUmVtYXAgSERQX01FTV9D T0hFUkVOQ1lfRkxVU0hfQ05UTCBhbmQgSERQX1JFR19DT0hFUkVOQ1lfRkxVU0hfQ05UTAo+IHRv IGFuIGVtcHR5IHBhZ2UgaW4gbW1pbyBzcGFjZS4gV2Ugd2lsbCBsYXRlciBtYXAgdGhpcyBwYWdl IHRvIHByb2Nlc3MKPiBzcGFjZSBzbyBhcHBsaWNhdGlvbiBjYW4gZmx1c2ggaGRwLiBUaGlzIGNh bid0IGJlIGRvbmUgcHJvcGVybHkgYXQKPiB0aG9zZSByZWdpc3RlcnMnIG9yaWdpbmFsIGxvY2F0 aW9uIGJlY2F1c2UgaXQgd2lsbCBleHBvc2UgbW9yZSB0aGFuCj4gZGVzaXJlZCByZWdpc3RlcnMg dG8gcHJvY2VzcyBzcGFjZS4KPgo+IENoYW5nZS1JZDogSWE4ZDI3YzBjOWEwODI3MTFkMTZiYmY1 NTYwMmJmNTcxMmE0N2I2ZDYKPiBTaWduZWQtb2ZmLWJ5OiBPYWsgWmVuZyA8T2FrLlplbmdAYW1k LmNvbT4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oICAgIHwg IDYgKysrKystCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9uYmlvX3Y2XzEuYyB8ICAy ICstCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9uYmlvX3Y2XzEuaCB8ICAyICstCj4g ICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9uYmlvX3Y3XzAuYyB8ICA3ICsrKy0tLS0KPiAg IGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L25iaW9fdjdfMC5oIHwgIDIgKy0KPiAgIGRyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L25iaW9fdjdfNC5jIHwgIDcgKysrLS0tLQo+ICAgZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvbmJpb192N180LmggfCAgMiArLQo+ICAgZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvc29jMTUuYyAgICAgfCAyMiArKysrKysrKysrKysrKysrKysrKysrCj4g ICA4IGZpbGVzIGNoYW5nZWQsIDM3IGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQo+Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmgKPiBpbmRleCBiYzk2ZWM0Li44NDBiZTA1IDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1LmgKPiBAQCAtNjQ0LDYgKzY0NCwxMCBA QCBzdHJ1Y3QgbmJpb19oZHBfZmx1c2hfcmVnIHsKPiAgIAo+ICAgc3RydWN0IGFtZGdwdV9uYmlv X2Z1bmNzIHsKPiAgIAljb25zdCBzdHJ1Y3QgbmJpb19oZHBfZmx1c2hfcmVnICpoZHBfZmx1c2hf cmVnOwo+ICsJdTMyIHJlbWFwcGVkX2hkcF9tZW1fZmx1c2hfY250bF9yZWdfb2Zmc2V0Owo+ICsJ dTMyIHJlbWFwcGVkX2hkcF9yZWdfZmx1c2hfY250bF9yZWdfb2Zmc2V0Owo+ICsJcmVzb3VyY2Vf c2l6ZV90IHJlbWFwcGVkX2hkcF9tZW1fZmx1c2hfY250bF9waHlzaWNhbF9hZGRyOwo+ICsJcmVz b3VyY2Vfc2l6ZV90IHJlbWFwcGVkX2hkcF9yZWdfZmx1c2hfY250bF9waHlzaWNhbF9hZGRyOwo+ ICAgCXUzMiAoKmdldF9oZHBfZmx1c2hfcmVxX29mZnNldCkoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYpOwo+ICAgCXUzMiAoKmdldF9oZHBfZmx1c2hfZG9uZV9vZmZzZXQpKHN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2KTsKPiAgIAl1MzIgKCpnZXRfcGNpZV9pbmRleF9vZmZzZXQpKHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2KTsKPiBAQCAtOTA1LDcgKzkwOSw3IEBAIHN0cnVjdCBhbWRn cHVfZGV2aWNlIHsKPiAgIAkvKiBzb2MxNSByZWdpc3RlciBvZmZzZXQgYmFzZWQgb24gaXAsIGlu c3RhbmNlIGFuZCAgc2VnbWVudCAqLwo+ICAgCXVpbnQzMl90IAkJKnJlZ19vZmZzZXRbTUFYX0hX SVBdW0hXSVBfTUFYX0lOU1RBTkNFXTsKPiAgIAo+IC0JY29uc3Qgc3RydWN0IGFtZGdwdV9uYmlv X2Z1bmNzCSpuYmlvX2Z1bmNzOwo+ICsJc3RydWN0IGFtZGdwdV9uYmlvX2Z1bmNzCSpuYmlvX2Z1 bmNzOwoKUGxlYXNlIGtlcCB0aGUgZnVuY3Rpb24gcG9pbnRlcnMgY29uc3RhbnQuIFRob3NlIHNo b3VsZCBuZXZlciBiZSBjaGFuZ2VkIApvbiBhIHJ1bm5pbmcgc3lzdGVtLgoKQ2hyaXN0aWFuLgoK PiAgIAljb25zdCBzdHJ1Y3QgYW1kZ3B1X2RmX2Z1bmNzCSpkZl9mdW5jczsKPiAgIAo+ICAgCS8q IGRlbGF5ZWQgd29ya19mdW5jIGZvciBkZWZlcnJpbmcgY2xvY2tnYXRpbmcgZHVyaW5nIHJlc3Vt ZSAqLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9uYmlvX3Y2XzEu YyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L25iaW9fdjZfMS5jCj4gaW5kZXggNjU5MDE0 My4uMjQ3MGI4ZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9uYmlv X3Y2XzEuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L25iaW9fdjZfMS5jCj4g QEAgLTI3Niw3ICsyNzYsNyBAQCBzdGF0aWMgdm9pZCBuYmlvX3Y2XzFfaW5pdF9yZWdpc3RlcnMo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4gICAJCVdSRUczMl9QQ0lFKHNtblBDSUVfQ0lf Q05UTCwgZGF0YSk7Cj4gICB9Cj4gICAKPiAtY29uc3Qgc3RydWN0IGFtZGdwdV9uYmlvX2Z1bmNz IG5iaW9fdjZfMV9mdW5jcyA9IHsKPiArc3RydWN0IGFtZGdwdV9uYmlvX2Z1bmNzIG5iaW9fdjZf MV9mdW5jcyA9IHsKPiAgIAkuaGRwX2ZsdXNoX3JlZyA9ICZuYmlvX3Y2XzFfaGRwX2ZsdXNoX3Jl ZywKPiAgIAkuZ2V0X2hkcF9mbHVzaF9yZXFfb2Zmc2V0ID0gbmJpb192Nl8xX2dldF9oZHBfZmx1 c2hfcmVxX29mZnNldCwKPiAgIAkuZ2V0X2hkcF9mbHVzaF9kb25lX29mZnNldCA9IG5iaW9fdjZf MV9nZXRfaGRwX2ZsdXNoX2RvbmVfb2Zmc2V0LAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9uYmlvX3Y2XzEuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L25i aW9fdjZfMS5oCj4gaW5kZXggMDc0M2E2Zi4uZDQwOWJiNiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9uYmlvX3Y2XzEuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L25iaW9fdjZfMS5oCj4gQEAgLTI2LDYgKzI2LDYgQEAKPiAgIAo+ICAgI2luY2x1 ZGUgInNvYzE1X2NvbW1vbi5oIgo+ICAgCj4gLWV4dGVybiBjb25zdCBzdHJ1Y3QgYW1kZ3B1X25i aW9fZnVuY3MgbmJpb192Nl8xX2Z1bmNzOwo+ICtleHRlcm4gc3RydWN0IGFtZGdwdV9uYmlvX2Z1 bmNzIG5iaW9fdjZfMV9mdW5jczsKPiAgIAo+ICAgI2VuZGlmCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L25iaW9fdjdfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvbmJpb192N18wLmMKPiBpbmRleCAxY2RiOThhLi45YTVhYmY1IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L25iaW9fdjdfMC5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvbmJpb192N18wLmMKPiBAQCAtNTUsMTAgKzU1LDkgQEAgc3RhdGlj IHZvaWQgbmJpb192N18wX2hkcF9mbHVzaChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKPiAg IAkJCQlzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpCj4gICB7Cj4gICAJaWYgKCFyaW5nIHx8ICFy aW5nLT5mdW5jcy0+ZW1pdF93cmVnKQo+IC0JCVdSRUczMl9TT0MxNV9OT19LSVEoTkJJTywgMCwg bW1IRFBfTUVNX0NPSEVSRU5DWV9GTFVTSF9DTlRMLCAwKTsKPiArCQlXUkVHMzJfTk9fS0lRKGFk ZXYtPm5iaW9fZnVuY3MtPnJlbWFwcGVkX2hkcF9tZW1fZmx1c2hfY250bF9yZWdfb2Zmc2V0LCAw KTsKPiAgIAllbHNlCj4gLQkJYW1kZ3B1X3JpbmdfZW1pdF93cmVnKHJpbmcsIFNPQzE1X1JFR19P RkZTRVQoCj4gLQkJCU5CSU8sIDAsIG1tSERQX01FTV9DT0hFUkVOQ1lfRkxVU0hfQ05UTCksIDAp Owo+ICsJCWFtZGdwdV9yaW5nX2VtaXRfd3JlZyhyaW5nLCBhZGV2LT5uYmlvX2Z1bmNzLT5yZW1h cHBlZF9oZHBfbWVtX2ZsdXNoX2NudGxfcmVnX29mZnNldCwgMCk7Cj4gICB9Cj4gICAKPiAgIHN0 YXRpYyB1MzIgbmJpb192N18wX2dldF9tZW1zaXplKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 KQo+IEBAIC0yNjMsNyArMjYyLDcgQEAgc3RhdGljIHZvaWQgbmJpb192N18wX2luaXRfcmVnaXN0 ZXJzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+ICAgCj4gICB9Cj4gICAKPiAtY29uc3Qg c3RydWN0IGFtZGdwdV9uYmlvX2Z1bmNzIG5iaW9fdjdfMF9mdW5jcyA9IHsKPiArc3RydWN0IGFt ZGdwdV9uYmlvX2Z1bmNzIG5iaW9fdjdfMF9mdW5jcyA9IHsKPiAgIAkuaGRwX2ZsdXNoX3JlZyA9 ICZuYmlvX3Y3XzBfaGRwX2ZsdXNoX3JlZywKPiAgIAkuZ2V0X2hkcF9mbHVzaF9yZXFfb2Zmc2V0 ID0gbmJpb192N18wX2dldF9oZHBfZmx1c2hfcmVxX29mZnNldCwKPiAgIAkuZ2V0X2hkcF9mbHVz aF9kb25lX29mZnNldCA9IG5iaW9fdjdfMF9nZXRfaGRwX2ZsdXNoX2RvbmVfb2Zmc2V0LAo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9uYmlvX3Y3XzAuaCBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L25iaW9fdjdfMC5oCj4gaW5kZXggNTA4ZDU0OS4uZGI1MDYx OCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9uYmlvX3Y3XzAuaAo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L25iaW9fdjdfMC5oCj4gQEAgLTI2LDYg KzI2LDYgQEAKPiAgIAo+ICAgI2luY2x1ZGUgInNvYzE1X2NvbW1vbi5oIgo+ICAgCj4gLWV4dGVy biBjb25zdCBzdHJ1Y3QgYW1kZ3B1X25iaW9fZnVuY3MgbmJpb192N18wX2Z1bmNzOwo+ICtleHRl cm4gc3RydWN0IGFtZGdwdV9uYmlvX2Z1bmNzIG5iaW9fdjdfMF9mdW5jczsKPiAgIAo+ICAgI2Vu ZGlmCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L25iaW9fdjdfNC5j IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbmJpb192N180LmMKPiBpbmRleCBjNjlkNTE1 Li4yNTIwM2NjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L25iaW9f djdfNC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbmJpb192N180LmMKPiBA QCAtNTMsMTAgKzUzLDkgQEAgc3RhdGljIHZvaWQgbmJpb192N180X2hkcF9mbHVzaChzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiwKPiAgIAkJCQlzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpCj4g ICB7Cj4gICAJaWYgKCFyaW5nIHx8ICFyaW5nLT5mdW5jcy0+ZW1pdF93cmVnKQo+IC0JCVdSRUcz Ml9TT0MxNV9OT19LSVEoTkJJTywgMCwgbW1IRFBfTUVNX0NPSEVSRU5DWV9GTFVTSF9DTlRMLCAw KTsKPiArCQlXUkVHMzJfTk9fS0lRKGFkZXYtPm5iaW9fZnVuY3MtPnJlbWFwcGVkX2hkcF9tZW1f Zmx1c2hfY250bF9yZWdfb2Zmc2V0LCAwKTsKPiAgIAllbHNlCj4gLQkJYW1kZ3B1X3JpbmdfZW1p dF93cmVnKHJpbmcsIFNPQzE1X1JFR19PRkZTRVQoCj4gLQkJCU5CSU8sIDAsIG1tSERQX01FTV9D T0hFUkVOQ1lfRkxVU0hfQ05UTCksIDApOwo+ICsJCWFtZGdwdV9yaW5nX2VtaXRfd3JlZyhyaW5n LCBhZGV2LT5uYmlvX2Z1bmNzLT5yZW1hcHBlZF9oZHBfbWVtX2ZsdXNoX2NudGxfcmVnX29mZnNl dCwgMCk7Cj4gICB9Cj4gICAKPiAgIHN0YXRpYyB1MzIgbmJpb192N180X2dldF9tZW1zaXplKHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+IEBAIC0yNDIsNyArMjQxLDcgQEAgc3RhdGljIHZv aWQgbmJpb192N180X2luaXRfcmVnaXN0ZXJzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+ ICAgCQlXUkVHMzJfUENJRShzbW5QQ0lFX0NJX0NOVEwsIGRhdGEpOwo+ICAgfQo+ICAgCj4gLWNv bnN0IHN0cnVjdCBhbWRncHVfbmJpb19mdW5jcyBuYmlvX3Y3XzRfZnVuY3MgPSB7Cj4gK3N0cnVj dCBhbWRncHVfbmJpb19mdW5jcyBuYmlvX3Y3XzRfZnVuY3MgPSB7Cj4gICAJLmhkcF9mbHVzaF9y ZWcgPSAmbmJpb192N180X2hkcF9mbHVzaF9yZWcsCj4gICAJLmdldF9oZHBfZmx1c2hfcmVxX29m ZnNldCA9IG5iaW9fdjdfNF9nZXRfaGRwX2ZsdXNoX3JlcV9vZmZzZXQsCj4gICAJLmdldF9oZHBf Zmx1c2hfZG9uZV9vZmZzZXQgPSBuYmlvX3Y3XzRfZ2V0X2hkcF9mbHVzaF9kb25lX29mZnNldCwK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbmJpb192N180LmggYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9uYmlvX3Y3XzQuaAo+IGluZGV4IGM0NDI4NjUuLjJl NWJiMDMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbmJpb192N180 LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9uYmlvX3Y3XzQuaAo+IEBAIC0y Niw2ICsyNiw2IEBACj4gICAKPiAgICNpbmNsdWRlICJzb2MxNV9jb21tb24uaCIKPiAgIAo+IC1l eHRlcm4gY29uc3Qgc3RydWN0IGFtZGdwdV9uYmlvX2Z1bmNzIG5iaW9fdjdfNF9mdW5jczsKPiAr ZXh0ZXJuIHN0cnVjdCBhbWRncHVfbmJpb19mdW5jcyBuYmlvX3Y3XzRfZnVuY3M7Cj4gICAKPiAg ICNlbmRpZgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zb2MxNS5j IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc29jMTUuYwo+IGluZGV4IGJkYjVhZDkuLmM0 N2U3YTUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc29jMTUuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NvYzE1LmMKPiBAQCAtNDQsNiArNDQs NyBAQAo+ICAgI2luY2x1ZGUgInNtdWlvL3NtdWlvXzlfMF9vZmZzZXQuaCIKPiAgICNpbmNsdWRl ICJzbXVpby9zbXVpb185XzBfc2hfbWFzay5oIgo+ICAgI2luY2x1ZGUgIm5iaW8vbmJpb183XzBf ZGVmYXVsdC5oIgo+ICsjaW5jbHVkZSAibmJpby9uYmlvXzdfMF9vZmZzZXQuaCIKPiAgICNpbmNs dWRlICJuYmlvL25iaW9fN18wX3NoX21hc2suaCIKPiAgICNpbmNsdWRlICJuYmlvL25iaW9fN18w X3Ntbi5oIgo+ICAgI2luY2x1ZGUgIm1wL21wXzlfMF9vZmZzZXQuaCIKPiBAQCAtNzc1LDYgKzc3 NiwyNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGFtZGdwdV9hc2ljX2Z1bmNzIHZlZ2EyMF9hc2lj X2Z1bmNzID0KPiAgIAkubmVlZF9yZXNldF9vbl9pbml0ID0gJnNvYzE1X25lZWRfcmVzZXRfb25f aW5pdCwKPiAgIH07Cj4gICAKPiArc3RhdGljIHZvaWQgc29jMTVfcmVtYXBfaGRwX2NvaGVyZW5j eV9yZWdpc3RlcnMoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4gK3sKPiArCS8qIFJlbWFw IGhkcCBjb2hlcmVuY3kgcmVnaXN0ZXJzIHRvIHRoZSBsYXN0IHBhZ2Ugb2YgbW1pbwo+ICsJICog c3BhY2UsIGZvciB0aGUgcHVycG9zZSBvZiBtYXBwaW5nIHRoZW0gdG8gcHJvY2VzcyBzcGFjZSgK PiArCSAqIHNvIHByb2Nlc3MgY2FuIGZsdXNoIGhkcCkKPiArCSAqLwo+ICsJV1JFRzMyX1NPQzE1 KE5CSU8sIDAsIG1tUkVNQVBfSERQX01FTV9GTFVTSF9DTlRMLAo+ICsJCQlhZGV2LT5ybW1pb19z aXplIC0gUEFHRV9TSVpFKTsKPiArCVdSRUczMl9TT0MxNShOQklPLCAwLCBtbVJFTUFQX0hEUF9S RUdfRkxVU0hfQ05UTCwKPiArCQkJYWRldi0+cm1taW9fc2l6ZSAtIFBBR0VfU0laRSArIDQpOwo+ ICsJYWRldi0+bmJpb19mdW5jcy0+cmVtYXBwZWRfaGRwX21lbV9mbHVzaF9jbnRsX3JlZ19vZmZz ZXQgPQo+ICsJCQkoYWRldi0+cm1taW9fc2l6ZSAtIFBBR0VfU0laRSkgPj4gMjsKPiArCWFkZXYt Pm5iaW9fZnVuY3MtPnJlbWFwcGVkX2hkcF9yZWdfZmx1c2hfY250bF9yZWdfb2Zmc2V0ID0KPiAr CQkJKGFkZXYtPnJtbWlvX3NpemUgLSBQQUdFX1NJWkUgKyA0KSA+PiAyOwo+ICsJYWRldi0+bmJp b19mdW5jcy0+cmVtYXBwZWRfaGRwX21lbV9mbHVzaF9jbnRsX3BoeXNpY2FsX2FkZHIgPQo+ICsJ CQlhZGV2LT5ybW1pb19iYXNlICsgYWRldi0+cm1taW9fc2l6ZSAtIFBBR0VfU0laRTsKPiArCWFk ZXYtPm5iaW9fZnVuY3MtPnJlbWFwcGVkX2hkcF9yZWdfZmx1c2hfY250bF9waHlzaWNhbF9hZGRy ID0KPiArCQkJYWRldi0+cm1taW9fYmFzZSArIGFkZXYtPnJtbWlvX3NpemUgLSBQQUdFX1NJWkUg KyA0Owo+ICt9Cj4gKwo+ICAgc3RhdGljIGludCBzb2MxNV9jb21tb25fZWFybHlfaW5pdCh2b2lk ICpoYW5kbGUpCj4gICB7Cj4gICAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0 IGFtZGdwdV9kZXZpY2UgKiloYW5kbGU7Cj4gQEAgLTc5NCw2ICs4MTUsNyBAQCBzdGF0aWMgaW50 IHNvYzE1X2NvbW1vbl9lYXJseV9pbml0KHZvaWQgKmhhbmRsZSkKPiAgIAo+ICAgCj4gICAJYWRl di0+ZXh0ZXJuYWxfcmV2X2lkID0gMHhGRjsKPiArCXNvYzE1X3JlbWFwX2hkcF9jb2hlcmVuY3lf cmVnaXN0ZXJzKGFkZXYpOwo+ICAgCXN3aXRjaCAoYWRldi0+YXNpY190eXBlKSB7Cj4gICAJY2Fz ZSBDSElQX1ZFR0ExMDoKPiAgIAkJYWRldi0+YXNpY19mdW5jcyA9ICZzb2MxNV9hc2ljX2Z1bmNz OwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdm eCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4