From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH 3/3] drm/amdgpu: busywait KIQ register accessing v2 Date: Tue, 17 Oct 2017 10:20:14 +0200 Message-ID: <7f22595c-ae6d-f859-3ba6-42fe30a24707@amd.com> References: <1508222267-18627-1-git-send-email-Pixel.Ding@amd.com> <1508222267-18627-4-git-send-email-Pixel.Ding@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1508222267-18627-4-git-send-email-Pixel.Ding-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: Pixel Ding , amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, Monk.Liu-5C7GfCeVMHo@public.gmane.org Cc: Gary.Sun-5C7GfCeVMHo@public.gmane.org, Bingley.Li-5C7GfCeVMHo@public.gmane.org QW0gMTcuMTAuMjAxNyB1bSAwODozNyBzY2hyaWViIFBpeGVsIERpbmc6Cj4gRnJvbTogcGRpbmcg PFBpeGVsLkRpbmdAYW1kLmNvbT4KPgo+IFJlZ2lzdGVyIGFjY2Vzc2luZyBpcyBwZXJmb3JtZWQg d2hlbiBJUlEgaXMgZGlzYWJsZWQuIE5ldmVyIHNsZWVwIGluCj4gdGhpcyBmdW5jdGlvbi4KPgo+ IEtub3duIGlzc3VlOiBkZWFkIHNsZWVwIGluIG1hbnkgdXNlIGNhc2VzIG9mIGluZGV4L2RhdGEg cmVnaXN0ZXJzLgo+Cj4gdjI6IHdyYXAgcG9sbGluZyBmZW5jZSBmdW5jdGlvbnMuIGRvbid0IHRy aWdnZXIgSVJRIGZvciBwb2xsaW5nIGluCj4gY2FzZSBvZiB3cm9uZ2x5IGZlbmNlIHNpZ25hbC4K Pgo+IFNpZ25lZC1vZmYtYnk6IHBkaW5nIDxQaXhlbC5EaW5nQGFtZC5jb20+Cj4gLS0tCj4gICBk cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaCAgICAgICAgICAgICAgIHwgIDIgKy0K PiAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ2Z4X3Y4LmMgfCAg NCArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9nZnhfdjku YyB8ICA0ICstCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZGV2aWNlLmMg ICAgICAgIHwgIDggKy0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Zl bmNlLmMgICAgICAgICB8IDUzICsrKysrKysrKysrKysrKysrKysrKysrCj4gICBkcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2Z4LmMgICAgICAgICAgIHwgIDIgKy0KPiAgIGRyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9yaW5nLmggICAgICAgICAgfCAgNCArKwo+ICAg ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZpcnQuYyAgICAgICAgICB8IDMwICsr KysrKy0tLS0tLS0KPiAgIDggZmlsZXMgY2hhbmdlZCwgNzggaW5zZXJ0aW9ucygrKSwgMjkgZGVs ZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaAo+IGluZGV4IGNhMjEy ZWYuLmNjMDZlNjIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHUuaAo+IEBAIC04 ODUsNyArODg1LDcgQEAgc3RydWN0IGFtZGdwdV9tZWMgewo+ICAgc3RydWN0IGFtZGdwdV9raXEg ewo+ICAgCXU2NAkJCWVvcF9ncHVfYWRkcjsKPiAgIAlzdHJ1Y3QgYW1kZ3B1X2JvCSplb3Bfb2Jq Owo+IC0Jc3RydWN0IG11dGV4CQlyaW5nX211dGV4Owo+ICsJc3BpbmxvY2tfdCAgICAgICAgICAg ICAgcmluZ19sb2NrOwo+ICAgCXN0cnVjdCBhbWRncHVfcmluZwlyaW5nOwo+ICAgCXN0cnVjdCBh bWRncHVfaXJxX3NyYwlpcnE7Cj4gICB9Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dmeF92OC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X2FtZGtmZF9nZnhfdjguYwo+IGluZGV4IDlkOTk2NWQuLjZkODM1NzMgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9nZnhf djguYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ2Z4 X3Y4LmMKPiBAQCAtNzg4LDcgKzc4OCw3IEBAIHN0YXRpYyBpbnQgaW52YWxpZGF0ZV90bGJzX3dp dGhfa2lxKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1aW50MTZfdCBwYXNpZCkKPiAgIAlz dHJ1Y3QgZG1hX2ZlbmNlICpmOwo+ICAgCXN0cnVjdCBhbWRncHVfcmluZyAqcmluZyA9ICZhZGV2 LT5nZngua2lxLnJpbmc7Cj4gICAKPiAtCW11dGV4X2xvY2soJmFkZXYtPmdmeC5raXEucmluZ19t dXRleCk7Cj4gKwlzcGluX2xvY2soJmFkZXYtPmdmeC5raXEucmluZ19sb2NrKTsKPiAgIAlhbWRn cHVfcmluZ19hbGxvYyhyaW5nLCAxMik7IC8qIGZlbmNlICsgaW52YWxpZGF0ZV90bGJzIHBhY2th Z2UqLwo+ICAgCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIFBBQ0tFVDMoUEFDS0VUM19JTlZBTElE QVRFX1RMQlMsIDApKTsKPiAgIAlhbWRncHVfcmluZ193cml0ZShyaW5nLAo+IEBAIC03OTYsNyAr Nzk2LDcgQEAgc3RhdGljIGludCBpbnZhbGlkYXRlX3RsYnNfd2l0aF9raXEoc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYsIHVpbnQxNl90IHBhc2lkKQo+ICAgCQkJUEFDS0VUM19JTlZBTElEQVRF X1RMQlNfUEFTSUQocGFzaWQpKTsKPiAgIAlhbWRncHVfZmVuY2VfZW1pdChyaW5nLCAmZik7Cj4g ICAJYW1kZ3B1X3JpbmdfY29tbWl0KHJpbmcpOwo+IC0JbXV0ZXhfdW5sb2NrKCZhZGV2LT5nZngu a2lxLnJpbmdfbXV0ZXgpOwo+ICsJc3Bpbl91bmxvY2soJmFkZXYtPmdmeC5raXEucmluZ19sb2Nr KTsKPiAgIAo+ICAgCXIgPSBkbWFfZmVuY2Vfd2FpdChmLCBmYWxzZSk7Cj4gICAJaWYgKHIpCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ2Z4 X3Y5LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dmeF92OS5j Cj4gaW5kZXggZWRiYWUxOS4uYzkyMjE3ZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dmeF92OS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9nZnhfdjkuYwo+IEBAIC05NzMsNyArOTczLDcgQEAg c3RhdGljIGludCBpbnZhbGlkYXRlX3RsYnNfd2l0aF9raXEoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYsIHVpbnQxNl90IHBhc2lkKQo+ICAgCXN0cnVjdCBkbWFfZmVuY2UgKmY7Cj4gICAJc3Ry dWN0IGFtZGdwdV9yaW5nICpyaW5nID0gJmFkZXYtPmdmeC5raXEucmluZzsKPiAgIAo+IC0JbXV0 ZXhfbG9jaygmYWRldi0+Z2Z4LmtpcS5yaW5nX211dGV4KTsKPiArCXNwaW5fbG9jaygmYWRldi0+ Z2Z4LmtpcS5yaW5nX2xvY2spOwo+ICAgCWFtZGdwdV9yaW5nX2FsbG9jKHJpbmcsIDEyKTsgLyog ZmVuY2UgKyBpbnZhbGlkYXRlX3RsYnMgcGFja2FnZSovCj4gICAJYW1kZ3B1X3Jpbmdfd3JpdGUo cmluZywgUEFDS0VUMyhQQUNLRVQzX0lOVkFMSURBVEVfVExCUywgMCkpOwo+ICAgCWFtZGdwdV9y aW5nX3dyaXRlKHJpbmcsCj4gQEAgLTk4Myw3ICs5ODMsNyBAQCBzdGF0aWMgaW50IGludmFsaWRh dGVfdGxic193aXRoX2tpcShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdWludDE2X3QgcGFz aWQpCj4gICAJCQlQQUNLRVQzX0lOVkFMSURBVEVfVExCU19GTFVTSF9UWVBFKDIpKTsKPiAgIAlh bWRncHVfZmVuY2VfZW1pdChyaW5nLCAmZik7Cj4gICAJYW1kZ3B1X3JpbmdfY29tbWl0KHJpbmcp Owo+IC0JbXV0ZXhfdW5sb2NrKCZhZGV2LT5nZngua2lxLnJpbmdfbXV0ZXgpOwo+ICsJc3Bpbl91 bmxvY2soJmFkZXYtPmdmeC5raXEucmluZ19sb2NrKTsKPiAgIAo+ICAgCXIgPSBkbWFfZmVuY2Vf d2FpdChmLCBmYWxzZSk7Cj4gICAJaWYgKHIpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9kZXZpY2UuYwo+IGluZGV4IGFiOGYwZDYuLjExOTcyNzQgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jCj4gQEAgLTEwOSwxMCArMTA5LDgg QEAgdWludDMyX3QgYW1kZ3B1X21tX3JyZWcoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHVp bnQzMl90IHJlZywKPiAgIHsKPiAgIAl1aW50MzJfdCByZXQ7Cj4gICAKPiAtCWlmICghKGFjY19m bGFncyAmIEFNREdQVV9SRUdTX05PX0tJUSkgJiYgYW1kZ3B1X3NyaW92X3J1bnRpbWUoYWRldikp IHsKPiAtCQlCVUdfT04oaW5faW50ZXJydXB0KCkpOwo+ICsJaWYgKCEoYWNjX2ZsYWdzICYgQU1E R1BVX1JFR1NfTk9fS0lRKSAmJiBhbWRncHVfc3Jpb3ZfcnVudGltZShhZGV2KSkKPiAgIAkJcmV0 dXJuIGFtZGdwdV92aXJ0X2tpcV9ycmVnKGFkZXYsIHJlZyk7Cj4gLQl9Cj4gICAKPiAgIAlpZiAo KHJlZyAqIDQpIDwgYWRldi0+cm1taW9fc2l6ZSAmJiAhKGFjY19mbGFncyAmIEFNREdQVV9SRUdT X0lEWCkpCj4gICAJCXJldCA9IHJlYWRsKCgodm9pZCBfX2lvbWVtICopYWRldi0+cm1taW8pICsg KHJlZyAqIDQpKTsKPiBAQCAtMTM3LDEwICsxMzUsOCBAQCB2b2lkIGFtZGdwdV9tbV93cmVnKHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1aW50MzJfdCByZWcsIHVpbnQzMl90IHYsCj4gICAJ CWFkZXYtPmxhc3RfbW1faW5kZXggPSB2Owo+ICAgCX0KPiAgIAo+IC0JaWYgKCEoYWNjX2ZsYWdz ICYgQU1ER1BVX1JFR1NfTk9fS0lRKSAmJiBhbWRncHVfc3Jpb3ZfcnVudGltZShhZGV2KSkgewo+ IC0JCUJVR19PTihpbl9pbnRlcnJ1cHQoKSk7Cj4gKwlpZiAoIShhY2NfZmxhZ3MgJiBBTURHUFVf UkVHU19OT19LSVEpICYmIGFtZGdwdV9zcmlvdl9ydW50aW1lKGFkZXYpKQo+ICAgCQlyZXR1cm4g YW1kZ3B1X3ZpcnRfa2lxX3dyZWcoYWRldiwgcmVnLCB2KTsKPiAtCX0KPiAgIAo+ICAgCWlmICgo cmVnICogNCkgPCBhZGV2LT5ybW1pb19zaXplICYmICEoYWNjX2ZsYWdzICYgQU1ER1BVX1JFR1Nf SURYKSkKPiAgIAkJd3JpdGVsKHYsICgodm9pZCBfX2lvbWVtICopYWRldi0+cm1taW8pICsgKHJl ZyAqIDQpKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X2ZlbmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZmVuY2UuYwo+IGlu ZGV4IDY4ODc0MGUuLjY4YTVlOTAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X2ZlbmNlLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfZmVuY2UuYwo+IEBAIC0xNjksNiArMTY5LDMyIEBAIGludCBhbWRncHVfZmVuY2VfZW1p dChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHN0cnVjdCBkbWFfZmVuY2UgKipmKQo+ICAgfQo+ ICAgCj4gICAvKioKPiArICogYW1kZ3B1X2ZlbmNlX2VtaXRfcG9sbGluZyAtIGVtaXQgYSBmZW5j ZSBvbiB0aGUgcmVxdWVzdGUgcmluZwo+ICsgKgo+ICsgKiBAcmluZzogcmluZyB0aGUgZmVuY2Ug aXMgYXNzb2NpYXRlZCB3aXRoCj4gKyAqIEBzOiByZXN1bHRpbmcgc2VxdWVuY2UgbnVtYmVyCj4g KyAqCj4gKyAqIEVtaXRzIGEgZmVuY2UgY29tbWFuZCBvbiB0aGUgcmVxdWVzdGVkIHJpbmcgKGFs bCBhc2ljcykuCj4gKyAqIFVzZWQgRm9yIHBvbGxpbmcgZmVuY2UuCj4gKyAqIFJldHVybnMgMCBv biBzdWNjZXNzLCAtRU5PTUVNIG9uIGZhaWx1cmUuCj4gKyAqLwo+ICtpbnQgYW1kZ3B1X2ZlbmNl X2VtaXRfcG9sbGluZyhzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVpbnQzMl90ICpzKQo+ICt7 Cj4gKwl1aW50MzJfdCBzZXE7Cj4gKwo+ICsJaWYgKCFzKQo+ICsJCXJldHVybiAtRUlOVkFMOwo+ ICsKPiArCXNlcSA9ICsrcmluZy0+ZmVuY2VfZHJ2LnN5bmNfc2VxOwo+ICsJYW1kZ3B1X3Jpbmdf ZW1pdF9mZW5jZShyaW5nLCByaW5nLT5mZW5jZV9kcnYuZ3B1X2FkZHIsCj4gKwkJCSAgICAgICBz ZXEsIEFNREdQVV9GRU5DRV9GTEFHX0lOVCk7Cj4gKwo+ICsJKnMgPSBzZXE7Cj4gKwo+ICsJcmV0 dXJuIDA7Cj4gK30KPiArCj4gKy8qKgo+ICAgICogYW1kZ3B1X2ZlbmNlX3NjaGVkdWxlX2ZhbGxi YWNrIC0gc2NoZWR1bGUgZmFsbGJhY2sgY2hlY2sKPiAgICAqCj4gICAgKiBAcmluZzogcG9pbnRl ciB0byBzdHJ1Y3QgYW1kZ3B1X3JpbmcKPiBAQCAtMjgxLDYgKzMwNywzMyBAQCBpbnQgYW1kZ3B1 X2ZlbmNlX3dhaXRfZW1wdHkoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQo+ICAgCXJldHVybiBy Owo+ICAgfQo+ICAgCgpQbGVhc2UgYWRkIHNvbWUgZG9jdW1lbnRhdGlvbiBoZXJlIHRoYXQgdGlt ZW91dCBpcyBpbiB1c2VjLgoKPiArc2lnbmVkIGxvbmcgYW1kZ3B1X2ZlbmNlX3dhaXRfcG9sbGlu ZyhzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCj4gKwkJCQkgICAgICB1aW50MzJfdCB3YWl0X3Nl cSwKPiArCQkJCSAgICAgIHNpZ25lZCBsb25nIHRpbWVvdXQpCj4gK3sKPiArCXVpbnQzMl90IHNl cSwgbGFzdF9zZXE7Cj4gKwlzdHJ1Y3QgYW1kZ3B1X2ZlbmNlX2RyaXZlciAqZHJ2ID0gJnJpbmct PmZlbmNlX2RydjsKPiArCj4gKwlsYXN0X3NlcSA9IGF0b21pY19yZWFkKCZyaW5nLT5mZW5jZV9k cnYubGFzdF9zZXEpOwo+ICsKPiArCWRvIHsKPiArCQlzZXEgPSBhbWRncHVfZmVuY2VfcmVhZChy aW5nKTsKPiArCj4gKwkJaWYgKHVubGlrZWx5KHNlcSA9PSBsYXN0X3NlcSkpCj4gKwkJCWJyZWFr OwoKVGhhdCBkb2Vzbid0IGxvb2sgY29ycmVjdCB0byBtZSwgaXQgd2lsbCBhYm9ydCB0aGUgYnVz eSB3YWl0IGFzIHNvb24gYXMgCndlIHNlZSB0aGUgbGFzdCB2YWx1ZSB3ZSBoYXZlIHNlZW4uCgo+ ICsJCWlmIChzZXEgPj0gd2FpdF9zZXEgJiYgd2FpdF9zZXEgPj0gbGFzdF9zZXEpCj4gKwkJCWJy ZWFrOwo+ICsJCWlmIChzZXEgPD0gbGFzdF9zZXEgJiYKPiArCQkgICAgKHdhaXRfc2VxIDw9IHNl cSB8fCB3YWl0X3NlcSA+PSBsYXN0X3NlcSkpCj4gKwkJCWJyZWFrOwoKV2h5IG5vdCBqdXN0ICIo aW50MzJfdCkod2FpdF9zZXEgLSBzZXEpID4gMCIgPyBJSVJDIHRoYXQgc2hvdWxkIGJlIApzdWZm aWNpZW50IGZvciBhIHdyYXAgYXJvdW5kIHRlc3QuCgpSZWdhcmRzLApDaHJpc3RpYW4uCgo+ICsJ CXVkZWxheSg1KTsKPiArCQl0aW1lb3V0IC09IDU7Cj4gKwl9IHdoaWxlICh0aW1lb3V0ID4gMCk7 Cj4gKwo+ICsJYXRvbWljX2NtcHhjaGcoJmRydi0+bGFzdF9zZXEsIGxhc3Rfc2VxLCB3YWl0X3Nl cSk7Cj4gKwo+ICsJcmV0dXJuIHRpbWVvdXQ7Cj4gK30KPiAgIC8qKgo+ICAgICogYW1kZ3B1X2Zl bmNlX2NvdW50X2VtaXR0ZWQgLSBnZXQgdGhlIGNvdW50IG9mIGVtaXR0ZWQgZmVuY2VzCj4gICAg Kgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2Z4LmMg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2Z4LmMKPiBpbmRleCA0ZjZjNjhm Li5lNWE5MDc3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9nZnguYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nZnguYwo+ IEBAIC0xODUsNyArMTg1LDcgQEAgaW50IGFtZGdwdV9nZnhfa2lxX2luaXRfcmluZyhzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiwKPiAgIAlzdHJ1Y3QgYW1kZ3B1X2tpcSAqa2lxID0gJmFkZXYt PmdmeC5raXE7Cj4gICAJaW50IHIgPSAwOwo+ICAgCj4gLQltdXRleF9pbml0KCZraXEtPnJpbmdf bXV0ZXgpOwo+ICsJc3Bpbl9sb2NrX2luaXQoJmtpcS0+cmluZ19sb2NrKTsKPiAgIAo+ICAgCXIg PSBhbWRncHVfd2JfZ2V0KGFkZXYsICZhZGV2LT52aXJ0LnJlZ192YWxfb2Zmcyk7Cj4gICAJaWYg KHIpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9yaW5n LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcmluZy5oCj4gaW5kZXggYWY4 ZTU0NC4uOWRlODllYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfcmluZy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3Jp bmcuaAo+IEBAIC04OSw4ICs4OSwxMiBAQCBpbnQgYW1kZ3B1X2ZlbmNlX2RyaXZlcl9zdGFydF9y aW5nKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywKPiAgIHZvaWQgYW1kZ3B1X2ZlbmNlX2RyaXZl cl9zdXNwZW5kKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKPiAgIHZvaWQgYW1kZ3B1X2Zl bmNlX2RyaXZlcl9yZXN1bWUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwo+ICAgaW50IGFt ZGdwdV9mZW5jZV9lbWl0KHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgc3RydWN0IGRtYV9mZW5j ZSAqKmZlbmNlKTsKPiAraW50IGFtZGdwdV9mZW5jZV9lbWl0X3BvbGxpbmcoc3RydWN0IGFtZGdw dV9yaW5nICpyaW5nLCB1aW50MzJfdCAqcyk7Cj4gICB2b2lkIGFtZGdwdV9mZW5jZV9wcm9jZXNz KHN0cnVjdCBhbWRncHVfcmluZyAqcmluZyk7Cj4gICBpbnQgYW1kZ3B1X2ZlbmNlX3dhaXRfZW1w dHkoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKTsKPiArc2lnbmVkIGxvbmcgYW1kZ3B1X2ZlbmNl X3dhaXRfcG9sbGluZyhzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCj4gKwkJCQkgICAgICB1aW50 MzJfdCB3YWl0X3NlcSwKPiArCQkJCSAgICAgIHNpZ25lZCBsb25nIHRpbWVvdXQpOwo+ICAgdW5z aWduZWQgYW1kZ3B1X2ZlbmNlX2NvdW50X2VtaXR0ZWQoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5n KTsKPiAgIAo+ICAgLyoKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X3ZpcnQuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92aXJ0LmMK PiBpbmRleCBhYjA1MTIxLi4xNzdmZTEwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV92aXJ0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfdmlydC5jCj4gQEAgLTIyLDcgKzIyLDcgQEAKPiAgICAqLwo+ICAgCj4gICAjaW5j bHVkZSAiYW1kZ3B1LmgiCj4gLSNkZWZpbmUgTUFYX0tJUV9SRUdfV0FJVAkxMDAwMDAKPiArI2Rl ZmluZSBNQVhfS0lRX1JFR19XQUlUCTEwMDAwMDAwMCAvKiBpbiB1c2VjcyAqLwo+ICAgCj4gICBp bnQgYW1kZ3B1X2FsbG9jYXRlX3N0YXRpY19jc2Eoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYp Cj4gICB7Cj4gQEAgLTExNCwyNyArMTE0LDI0IEBAIHZvaWQgYW1kZ3B1X3ZpcnRfaW5pdF9zZXR0 aW5nKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+ICAgdWludDMyX3QgYW1kZ3B1X3ZpcnRf a2lxX3JyZWcoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHVpbnQzMl90IHJlZykKPiAgIHsK PiAgIAlzaWduZWQgbG9uZyByOwo+IC0JdWludDMyX3QgdmFsOwo+IC0Jc3RydWN0IGRtYV9mZW5j ZSAqZjsKPiArCXVpbnQzMl90IHZhbCwgc2VxOwo+ICAgCXN0cnVjdCBhbWRncHVfa2lxICpraXEg PSAmYWRldi0+Z2Z4LmtpcTsKPiAgIAlzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcgPSAma2lxLT5y aW5nOwo+ICAgCj4gICAJQlVHX09OKCFyaW5nLT5mdW5jcy0+ZW1pdF9ycmVnKTsKPiAgIAo+IC0J bXV0ZXhfbG9jaygma2lxLT5yaW5nX211dGV4KTsKPiArCXNwaW5fbG9jaygma2lxLT5yaW5nX2xv Y2spOwo+ICAgCWFtZGdwdV9yaW5nX2FsbG9jKHJpbmcsIDMyKTsKPiAgIAlhbWRncHVfcmluZ19l bWl0X3JyZWcocmluZywgcmVnKTsKPiAtCWFtZGdwdV9mZW5jZV9lbWl0KHJpbmcsICZmKTsKPiAr CWFtZGdwdV9mZW5jZV9lbWl0X3BvbGxpbmcocmluZywgJnNlcSk7Cj4gICAJYW1kZ3B1X3Jpbmdf Y29tbWl0KHJpbmcpOwo+IC0JbXV0ZXhfdW5sb2NrKCZraXEtPnJpbmdfbXV0ZXgpOwo+ICsJc3Bp bl91bmxvY2soJmtpcS0+cmluZ19sb2NrKTsKPiAgIAo+IC0JciA9IGRtYV9mZW5jZV93YWl0X3Rp bWVvdXQoZiwgZmFsc2UsIG1zZWNzX3RvX2ppZmZpZXMoTUFYX0tJUV9SRUdfV0FJVCkpOwo+IC0J ZG1hX2ZlbmNlX3B1dChmKTsKPiArCXIgPSBhbWRncHVfZmVuY2Vfd2FpdF9wb2xsaW5nKHJpbmcs IHNlcSwgTUFYX0tJUV9SRUdfV0FJVCk7Cj4gICAJaWYgKHIgPCAxKSB7Cj4gLQkJRFJNX0VSUk9S KCJ3YWl0IGZvciBraXEgZmVuY2UgZXJyb3I6ICVsZC5cbiIsIHIpOwo+ICsJCURSTV9FUlJPUigi d2FpdCBmb3Iga2lxIGZlbmNlIGVycm9yOiAlbGRcbiIsIHIpOwo+ICAgCQlyZXR1cm4gfjA7Cj4g ICAJfQo+IC0KPiAgIAl2YWwgPSBhZGV2LT53Yi53YlthZGV2LT52aXJ0LnJlZ192YWxfb2Zmc107 Cj4gICAKPiAgIAlyZXR1cm4gdmFsOwo+IEBAIC0xNDMsMjMgKzE0MCwyMiBAQCB1aW50MzJfdCBh bWRncHVfdmlydF9raXFfcnJlZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdWludDMyX3Qg cmVnKQo+ICAgdm9pZCBhbWRncHVfdmlydF9raXFfd3JlZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldiwgdWludDMyX3QgcmVnLCB1aW50MzJfdCB2KQo+ICAgewo+ICAgCXNpZ25lZCBsb25nIHI7 Cj4gLQlzdHJ1Y3QgZG1hX2ZlbmNlICpmOwo+ICsJdWludDMyX3Qgc2VxOwo+ICAgCXN0cnVjdCBh bWRncHVfa2lxICpraXEgPSAmYWRldi0+Z2Z4LmtpcTsKPiAgIAlzdHJ1Y3QgYW1kZ3B1X3Jpbmcg KnJpbmcgPSAma2lxLT5yaW5nOwo+ICAgCj4gICAJQlVHX09OKCFyaW5nLT5mdW5jcy0+ZW1pdF93 cmVnKTsKPiAgIAo+IC0JbXV0ZXhfbG9jaygma2lxLT5yaW5nX211dGV4KTsKPiArCXNwaW5fbG9j aygma2lxLT5yaW5nX2xvY2spOwo+ICAgCWFtZGdwdV9yaW5nX2FsbG9jKHJpbmcsIDMyKTsKPiAg IAlhbWRncHVfcmluZ19lbWl0X3dyZWcocmluZywgcmVnLCB2KTsKPiAtCWFtZGdwdV9mZW5jZV9l bWl0KHJpbmcsICZmKTsKPiArCWFtZGdwdV9mZW5jZV9lbWl0X3BvbGxpbmcocmluZywgJnNlcSk7 Cj4gICAJYW1kZ3B1X3JpbmdfY29tbWl0KHJpbmcpOwo+IC0JbXV0ZXhfdW5sb2NrKCZraXEtPnJp bmdfbXV0ZXgpOwo+ICsJc3Bpbl91bmxvY2soJmtpcS0+cmluZ19sb2NrKTsKPiAgIAo+IC0JciA9 IGRtYV9mZW5jZV93YWl0X3RpbWVvdXQoZiwgZmFsc2UsIG1zZWNzX3RvX2ppZmZpZXMoTUFYX0tJ UV9SRUdfV0FJVCkpOwo+ICsJciA9IGFtZGdwdV9mZW5jZV93YWl0X3BvbGxpbmcocmluZywgc2Vx LCBNQVhfS0lRX1JFR19XQUlUKTsKPiAgIAlpZiAociA8IDEpCj4gLQkJRFJNX0VSUk9SKCJ3YWl0 IGZvciBraXEgZmVuY2UgZXJyb3I6ICVsZC5cbiIsIHIpOwo+IC0JZG1hX2ZlbmNlX3B1dChmKTsK PiArCQlEUk1fRVJST1IoIndhaXQgZm9yIGtpcSBmZW5jZSBlcnJvcjogJWxkXG4iLCByKTsKPiAg IH0KPiAgIAo+ICAgLyoqCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4 Cg==