From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oded Gabbay Subject: Re: [PATCH 06/16] drm/amdkfd: Clean up kfd_wait_on_events Date: Wed, 25 Oct 2017 11:49:27 +0300 Message-ID: References: <1508545400-24338-1-git-send-email-Felix.Kuehling@amd.com> <1508545400-24338-7-git-send-email-Felix.Kuehling@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1508545400-24338-7-git-send-email-Felix.Kuehling-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: Felix Kuehling Cc: amd-gfx list T24gU2F0LCBPY3QgMjEsIDIwMTcgYXQgMzoyMyBBTSwgRmVsaXggS3VlaGxpbmcgPEZlbGl4Lkt1 ZWhsaW5nQGFtZC5jb20+IHdyb3RlOgo+IENsZWFuZWQgdXAgdGhlIGNvZGUgd2hpbGUgcmVzb2x2 aW5nIHNvbWUgcG90ZW50aWFsIGJ1Z3MgYW5kCj4gaW5jb25zaXN0ZW5jaWVzIGluIHRoZSBwcm9j ZXNzLgo+Cj4gQ2xlYW4tdXBzOgo+ICogUmVtb3ZlIGVudW0ga2ZkX2V2ZW50X3dhaXRfcmVzdWx0 LCB3aGljaCBkdXBsaWNhdGVzCj4gICBLRkRfSU9DX0VWRU5UX1JFU1VMVCBkZWZpbml0aW9ucwo+ ICogYWxsb2NfZXZlbnRfd2FpdGVycyBjYW4gYmUgY2FsbGVkIHdpdGhvdXQgaG9sZGluZyBwLT5l dmVudF9tdXRleAo+ICogUmV0dXJuIGFuIGVycm9yIGNvZGUgZnJvbSBjb3B5X3NpZ25hbGVkX2V2 ZW50X2RhdGEgaW5zdGVhZCBvZiBib29sCj4gKiBDbGVhbiB1cCBlcnJvciBoYW5kbGluZyBjb2Rl IHBhdGhzIHRvIG1pbmltaXplIGR1cGxpY2F0aW9uIGluCj4gICBrZmRfd2FpdF9vbl9ldmVudHMK Pgo+IEZpeGVzOgo+ICogQ29uc2lzdGVudGx5IHJldHVybiBhbiBlcnJvciBjb2RlIGZyb20ga2Zk X3dhaXRfb25fZXZlbnRzIGFuZCBzZXQKPiAgIHdhaXRfcmVzdWx0IHRvIEtGRF9JT0NfV0FJVF9S RVNVTFRfRkFJTCBpbiBhbGwgZmFpbHVyZSBjYXNlcy4KPiAqIEFsd2F5cyBjYWxsIGZyZWVfd2Fp dGVycyB3aGlsZSBob2xkaW5nIHAtPmV2ZW50X211dGV4Cj4gKiBjb3B5X3NpZ25hbGVkX2V2ZW50 X2RhdGEgbWlnaHQgc2xlZXAuIERvbid0IGNhbGwgaXQgd2hpbGUgdGhlIHRhc2sgc3RhdGUKPiAg IGlzIFRBU0tfSU5URVJSVVBUSUJMRS4KPgo+IFNpZ25lZC1vZmYtYnk6IEZlbGl4IEt1ZWhsaW5n IDxGZWxpeC5LdWVobGluZ0BhbWQuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGtmZC9rZmRfY2hhcmRldi5jIHwgIDUgKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2Zk L2tmZF9ldmVudHMuYyAgfCA3MSArKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQo+ICBk cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfcHJpdi5oICAgIHwgIDggKy0tLQo+ICAzIGZp bGVzIGNoYW5nZWQsIDMyIGluc2VydGlvbnMoKyksIDUyIGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9jaGFyZGV2LmMgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfY2hhcmRldi5jCj4gaW5kZXggMGVmODJiMi4uYTI1MzIx ZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfY2hhcmRldi5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2NoYXJkZXYuYwo+IEBAIC04 MzUsMTUgKzgzNSwxMiBAQCBzdGF0aWMgaW50IGtmZF9pb2N0bF93YWl0X2V2ZW50cyhzdHJ1Y3Qg ZmlsZSAqZmlscCwgc3RydWN0IGtmZF9wcm9jZXNzICpwLAo+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdm9pZCAqZGF0YSkKPiAgewo+ICAgICAgICAgc3RydWN0IGtmZF9pb2N0bF93 YWl0X2V2ZW50c19hcmdzICphcmdzID0gZGF0YTsKPiAtICAgICAgIGVudW0ga2ZkX2V2ZW50X3dh aXRfcmVzdWx0IHdhaXRfcmVzdWx0Owo+ICAgICAgICAgaW50IGVycjsKPgo+ICAgICAgICAgZXJy ID0ga2ZkX3dhaXRfb25fZXZlbnRzKHAsIGFyZ3MtPm51bV9ldmVudHMsCj4gICAgICAgICAgICAg ICAgICAgICAgICAgKHZvaWQgX191c2VyICopYXJncy0+ZXZlbnRzX3B0ciwKPiAgICAgICAgICAg ICAgICAgICAgICAgICAoYXJncy0+d2FpdF9mb3JfYWxsICE9IDApLAo+IC0gICAgICAgICAgICAg ICAgICAgICAgIGFyZ3MtPnRpbWVvdXQsICZ3YWl0X3Jlc3VsdCk7Cj4gLQo+IC0gICAgICAgYXJn cy0+d2FpdF9yZXN1bHQgPSB3YWl0X3Jlc3VsdDsKPiArICAgICAgICAgICAgICAgICAgICAgICBh cmdzLT50aW1lb3V0LCAmYXJncy0+d2FpdF9yZXN1bHQpOwo+Cj4gICAgICAgICByZXR1cm4gZXJy Owo+ICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9ldmVu dHMuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9ldmVudHMuYwo+IGluZGV4IGM2 ZDk1NzIuLjViYjg4Yjc0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2Zk L2tmZF9ldmVudHMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9ldmVu dHMuYwo+IEBAIC02NjgsNyArNjY4LDcgQEAgc3RhdGljIGJvb2wgdGVzdF9ldmVudF9jb25kaXRp b24oYm9vbCBhbGwsIHVpbnQzMl90IG51bV9ldmVudHMsCj4gICAqIENvcHkgZXZlbnQgc3BlY2lm aWMgZGF0YSwgaWYgZGVmaW5lZC4KPiAgICogQ3VycmVudGx5IG9ubHkgbWVtb3J5IGV4Y2VwdGlv biBldmVudHMgaGF2ZSBhZGRpdGlvbmFsIGRhdGEgdG8gY29weSB0byB1c2VyCj4gICAqLwo+IC1z dGF0aWMgYm9vbCBjb3B5X3NpZ25hbGVkX2V2ZW50X2RhdGEodWludDMyX3QgbnVtX2V2ZW50cywK PiArc3RhdGljIGludCBjb3B5X3NpZ25hbGVkX2V2ZW50X2RhdGEodWludDMyX3QgbnVtX2V2ZW50 cywKPiAgICAgICAgICAgICAgICAgc3RydWN0IGtmZF9ldmVudF93YWl0ZXIgKmV2ZW50X3dhaXRl cnMsCj4gICAgICAgICAgICAgICAgIHN0cnVjdCBrZmRfZXZlbnRfZGF0YSBfX3VzZXIgKmRhdGEp Cj4gIHsKPiBAQCAtNjg2LDExICs2ODYsMTEgQEAgc3RhdGljIGJvb2wgY29weV9zaWduYWxlZF9l dmVudF9kYXRhKHVpbnQzMl90IG51bV9ldmVudHMsCj4gICAgICAgICAgICAgICAgICAgICAgICAg c3JjID0gJmV2ZW50LT5tZW1vcnlfZXhjZXB0aW9uX2RhdGE7Cj4gICAgICAgICAgICAgICAgICAg ICAgICAgaWYgKGNvcHlfdG9fdXNlcihkc3QsIHNyYywKPiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNpemVvZihzdHJ1Y3Qga2ZkX2hzYV9tZW1vcnlfZXhjZXB0aW9uX2RhdGEpKSkK PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtRUZBVUxUOwo+ICAgICAgICAgICAgICAg ICB9Cj4gICAgICAgICB9Cj4KPiAtICAgICAgIHJldHVybiB0cnVlOwo+ICsgICAgICAgcmV0dXJu IDA7Cj4KPiAgfQo+Cj4gQEAgLTcyNyw3ICs3MjcsNyBAQCBzdGF0aWMgdm9pZCBmcmVlX3dhaXRl cnModWludDMyX3QgbnVtX2V2ZW50cywgc3RydWN0IGtmZF9ldmVudF93YWl0ZXIgKndhaXRlcnMp Cj4gIGludCBrZmRfd2FpdF9vbl9ldmVudHMoc3RydWN0IGtmZF9wcm9jZXNzICpwLAo+ICAgICAg ICAgICAgICAgICAgICAgICAgdWludDMyX3QgbnVtX2V2ZW50cywgdm9pZCBfX3VzZXIgKmRhdGEs Cj4gICAgICAgICAgICAgICAgICAgICAgICBib29sIGFsbCwgdWludDMyX3QgdXNlcl90aW1lb3V0 X21zLAo+IC0gICAgICAgICAgICAgICAgICAgICAgZW51bSBrZmRfZXZlbnRfd2FpdF9yZXN1bHQg KndhaXRfcmVzdWx0KQo+ICsgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgKndhaXRfcmVz dWx0KQo+ICB7Cj4gICAgICAgICBzdHJ1Y3Qga2ZkX2V2ZW50X2RhdGEgX191c2VyICpldmVudHMg PQo+ICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJ1Y3Qga2ZkX2V2ZW50X2RhdGEgX191c2Vy ICopIGRhdGE7Cj4gQEAgLTczNywxOCArNzM3LDE4IEBAIGludCBrZmRfd2FpdF9vbl9ldmVudHMo c3RydWN0IGtmZF9wcm9jZXNzICpwLAo+ICAgICAgICAgc3RydWN0IGtmZF9ldmVudF93YWl0ZXIg KmV2ZW50X3dhaXRlcnMgPSBOVUxMOwo+ICAgICAgICAgbG9uZyB0aW1lb3V0ID0gdXNlcl90aW1l b3V0X3RvX2ppZmZpZXModXNlcl90aW1lb3V0X21zKTsKPgo+ICsgICAgICAgZXZlbnRfd2FpdGVy cyA9IGFsbG9jX2V2ZW50X3dhaXRlcnMobnVtX2V2ZW50cyk7Cj4gKyAgICAgICBpZiAoIWV2ZW50 X3dhaXRlcnMpIHsKPiArICAgICAgICAgICAgICAgcmV0ID0gLUVOT01FTTsKPiArICAgICAgICAg ICAgICAgZ290byBvdXQ7Cj4gKyAgICAgICB9Cj4gKwo+ICAgICAgICAgbXV0ZXhfbG9jaygmcC0+ ZXZlbnRfbXV0ZXgpOwo+Cj4gICAgICAgICAvKiBTZXQgdG8gc29tZXRoaW5nIHVucmVhc29uYWJs ZSAtIHRoaXMgaXMgcmVhbGx5Cj4gICAgICAgICAgKiBqdXN0IGEgYm9vbCBmb3Igbm93Lgo+ICAg ICAgICAgICovCj4gLSAgICAgICAqd2FpdF9yZXN1bHQgPSBLRkRfV0FJVF9USU1FT1VUOwo+IC0K PiAtICAgICAgIGV2ZW50X3dhaXRlcnMgPSBhbGxvY19ldmVudF93YWl0ZXJzKG51bV9ldmVudHMp Owo+IC0gICAgICAgaWYgKCFldmVudF93YWl0ZXJzKSB7Cj4gLSAgICAgICAgICAgICAgIHJldCA9 IC1FTk9NRU07Cj4gLSAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKPiAtICAgICAgIH0KPiArICAg ICAgICp3YWl0X3Jlc3VsdCA9IEtGRF9JT0NfV0FJVF9SRVNVTFRfVElNRU9VVDsKPgo+ICAgICAg ICAgZm9yIChpID0gMDsgaSA8IG51bV9ldmVudHM7IGkrKykgewo+ICAgICAgICAgICAgICAgICBz dHJ1Y3Qga2ZkX2V2ZW50X2RhdGEgZXZlbnRfZGF0YTsKPiBAQCAtNzU2LDIzICs3NTYsMjEgQEAg aW50IGtmZF93YWl0X29uX2V2ZW50cyhzdHJ1Y3Qga2ZkX3Byb2Nlc3MgKnAsCj4gICAgICAgICAg ICAgICAgIGlmIChjb3B5X2Zyb21fdXNlcigmZXZlbnRfZGF0YSwgJmV2ZW50c1tpXSwKPiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihzdHJ1Y3Qga2ZkX2V2ZW50X2RhdGEp KSkgewo+ICAgICAgICAgICAgICAgICAgICAgICAgIHJldCA9IC1FRkFVTFQ7Cj4gLSAgICAgICAg ICAgICAgICAgICAgICAgZ290byBmYWlsOwo+ICsgICAgICAgICAgICAgICAgICAgICAgIGdvdG8g b3V0X3VubG9jazsKPiAgICAgICAgICAgICAgICAgfQo+Cj4gICAgICAgICAgICAgICAgIHJldCA9 IGluaXRfZXZlbnRfd2FpdGVyX2dldF9zdGF0dXMocCwgJmV2ZW50X3dhaXRlcnNbaV0sCj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudF9kYXRhLmV2ZW50X2lkLCBpKTsKPiAg ICAgICAgICAgICAgICAgaWYgKHJldCkKPiAtICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZh aWw7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgZ290byBvdXRfdW5sb2NrOwo+ICAgICAgICAg fQo+Cj4gICAgICAgICAvKiBDaGVjayBjb25kaXRpb24gb25jZS4gKi8KPiAgICAgICAgIGlmICh0 ZXN0X2V2ZW50X2NvbmRpdGlvbihhbGwsIG51bV9ldmVudHMsIGV2ZW50X3dhaXRlcnMpKSB7Cj4g LSAgICAgICAgICAgICAgIGlmIChjb3B5X3NpZ25hbGVkX2V2ZW50X2RhdGEobnVtX2V2ZW50cywK PiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50X3dhaXRlcnMsIGV2ZW50cykp Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgKndhaXRfcmVzdWx0ID0gS0ZEX1dBSVRfQ09NUExF VEU7Cj4gLSAgICAgICAgICAgICAgIGVsc2UKPiAtICAgICAgICAgICAgICAgICAgICAgICAqd2Fp dF9yZXN1bHQgPSBLRkRfV0FJVF9FUlJPUjsKPiAtICAgICAgICAgICAgICAgZnJlZV93YWl0ZXJz KG51bV9ldmVudHMsIGV2ZW50X3dhaXRlcnMpOwo+ICsgICAgICAgICAgICAgICAqd2FpdF9yZXN1 bHQgPSBLRkRfSU9DX1dBSVRfUkVTVUxUX0NPTVBMRVRFOwo+ICsgICAgICAgICAgICAgICByZXQg PSBjb3B5X3NpZ25hbGVkX2V2ZW50X2RhdGEobnVtX2V2ZW50cywKPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50X3dhaXRlcnMsIGV2ZW50cyk7Cj4g KyAgICAgICAgICAgICAgIGdvdG8gb3V0X3VubG9jazsKPiAgICAgICAgIH0gZWxzZSB7Cj4gICAg ICAgICAgICAgICAgIC8qIEFkZCB0byB3YWl0IGxpc3RzIGlmIHdlIG5lZWQgdG8gd2FpdC4gKi8K PiAgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG51bV9ldmVudHM7IGkrKykKPiBAQCAt NzgxLDEyICs3NzksNiBAQCBpbnQga2ZkX3dhaXRfb25fZXZlbnRzKHN0cnVjdCBrZmRfcHJvY2Vz cyAqcCwKPgo+ICAgICAgICAgbXV0ZXhfdW5sb2NrKCZwLT5ldmVudF9tdXRleCk7Cj4KPiAtICAg ICAgIC8qIFJldHVybiBpZiBhbGwgd2FpdHMgd2VyZSBhbHJlYWR5IHNhdGlzZmllZC4gKi8KPiAt ICAgICAgIGlmICgqd2FpdF9yZXN1bHQgIT0gS0ZEX1dBSVRfVElNRU9VVCkgewo+IC0gICAgICAg ICAgICAgICBfX3NldF9jdXJyZW50X3N0YXRlKFRBU0tfUlVOTklORyk7Cj4gLSAgICAgICAgICAg ICAgIHJldHVybiByZXQ7Cj4gLSAgICAgICB9Cj4gLQo+ICAgICAgICAgd2hpbGUgKHRydWUpIHsK PiAgICAgICAgICAgICAgICAgaWYgKGZhdGFsX3NpZ25hbF9wZW5kaW5nKGN1cnJlbnQpKSB7Cj4g ICAgICAgICAgICAgICAgICAgICAgICAgcmV0ID0gLUVJTlRSOwo+IEBAIC04MTgsMTYgKzgxMCwx MiBAQCBpbnQga2ZkX3dhaXRfb25fZXZlbnRzKHN0cnVjdCBrZmRfcHJvY2VzcyAqcCwKPiAgICAg ICAgICAgICAgICAgc2V0X2N1cnJlbnRfc3RhdGUoVEFTS19JTlRFUlJVUFRJQkxFKTsKPgo+ICAg ICAgICAgICAgICAgICBpZiAodGVzdF9ldmVudF9jb25kaXRpb24oYWxsLCBudW1fZXZlbnRzLCBl dmVudF93YWl0ZXJzKSkgewo+IC0gICAgICAgICAgICAgICAgICAgICAgIGlmIChjb3B5X3NpZ25h bGVkX2V2ZW50X2RhdGEobnVtX2V2ZW50cywKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZXZlbnRfd2FpdGVycywgZXZlbnRzKSkKPiAtICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICp3YWl0X3Jlc3VsdCA9IEtGRF9XQUlUX0NPTVBMRVRFOwo+IC0gICAgICAg ICAgICAgICAgICAgICAgIGVsc2UKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICp3 YWl0X3Jlc3VsdCA9IEtGRF9XQUlUX0VSUk9SOwo+ICsgICAgICAgICAgICAgICAgICAgICAgICp3 YWl0X3Jlc3VsdCA9IEtGRF9JT0NfV0FJVF9SRVNVTFRfQ09NUExFVEU7Cj4gICAgICAgICAgICAg ICAgICAgICAgICAgYnJlYWs7Cj4gICAgICAgICAgICAgICAgIH0KPgo+ICAgICAgICAgICAgICAg ICBpZiAodGltZW91dCA8PSAwKSB7Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgKndhaXRfcmVz dWx0ID0gS0ZEX1dBSVRfVElNRU9VVDsKPiArICAgICAgICAgICAgICAgICAgICAgICAqd2FpdF9y ZXN1bHQgPSBLRkRfSU9DX1dBSVRfUkVTVUxUX1RJTUVPVVQ7Cj4gICAgICAgICAgICAgICAgICAg ICAgICAgYnJlYWs7Cj4gICAgICAgICAgICAgICAgIH0KPgo+IEBAIC04MzUsMTkgKzgyMywyMCBA QCBpbnQga2ZkX3dhaXRfb25fZXZlbnRzKHN0cnVjdCBrZmRfcHJvY2VzcyAqcCwKPiAgICAgICAg IH0KPiAgICAgICAgIF9fc2V0X2N1cnJlbnRfc3RhdGUoVEFTS19SVU5OSU5HKTsKPgo+ICsgICAg ICAgLyogY29weV9zaWduYWxlZF9ldmVudF9kYXRhIG1heSBzbGVlcC4gU28gdGhpcyBoYXMgdG8g aGFwcGVuCj4gKyAgICAgICAgKiBhZnRlciB0aGUgdGFzayBzdGF0ZSBpcyBzZXQgYmFjayB0byBS VU5OSU5HLgo+ICsgICAgICAgICovCj4gKyAgICAgICBpZiAoIXJldCAmJiAqd2FpdF9yZXN1bHQg PT0gS0ZEX0lPQ19XQUlUX1JFU1VMVF9DT01QTEVURSkKPiArICAgICAgICAgICAgICAgcmV0ID0g Y29weV9zaWduYWxlZF9ldmVudF9kYXRhKG51bV9ldmVudHMsCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudF93YWl0ZXJzLCBldmVudHMpOwo+ICsK PiAgICAgICAgIG11dGV4X2xvY2soJnAtPmV2ZW50X211dGV4KTsKPiArb3V0X3VubG9jazoKPiAg ICAgICAgIGZyZWVfd2FpdGVycyhudW1fZXZlbnRzLCBldmVudF93YWl0ZXJzKTsKPiAgICAgICAg IG11dGV4X3VubG9jaygmcC0+ZXZlbnRfbXV0ZXgpOwo+IC0KPiAtICAgICAgIHJldHVybiByZXQ7 Cj4gLQo+IC1mYWlsOgo+IC0gICAgICAgaWYgKGV2ZW50X3dhaXRlcnMpCj4gLSAgICAgICAgICAg ICAgIGZyZWVfd2FpdGVycyhudW1fZXZlbnRzLCBldmVudF93YWl0ZXJzKTsKPiAtCj4gLSAgICAg ICBtdXRleF91bmxvY2soJnAtPmV2ZW50X211dGV4KTsKPiAtCj4gLSAgICAgICAqd2FpdF9yZXN1 bHQgPSBLRkRfV0FJVF9FUlJPUjsKPiArb3V0Ogo+ICsgICAgICAgaWYgKHJldCkKPiArICAgICAg ICAgICAgICAgKndhaXRfcmVzdWx0ID0gS0ZEX0lPQ19XQUlUX1JFU1VMVF9GQUlMOwo+Cj4gICAg ICAgICByZXR1cm4gcmV0Owo+ICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1ka2ZkL2tmZF9wcml2LmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfcHJpdi5o Cj4gaW5kZXggMWE0ODNhNy4uZDNjZjUzYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGtmZC9rZmRfcHJpdi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQv a2ZkX3ByaXYuaAo+IEBAIC03MjYsMTkgKzcyNiwxMyBAQCB1aW50NjRfdCBrZmRfZ2V0X251bWJl cl9lbGVtcyhzdHJ1Y3Qga2ZkX2RldiAqa2ZkKTsKPiAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBrZmRf ZXZlbnRfaW50ZXJydXB0X2NsYXNzIGV2ZW50X2ludGVycnVwdF9jbGFzc19jaWs7Cj4gIGV4dGVy biBjb25zdCBzdHJ1Y3Qga2ZkX2RldmljZV9nbG9iYWxfaW5pdF9jbGFzcyBkZXZpY2VfZ2xvYmFs X2luaXRfY2xhc3NfY2lrOwo+Cj4gLWVudW0ga2ZkX2V2ZW50X3dhaXRfcmVzdWx0IHsKPiAtICAg ICAgIEtGRF9XQUlUX0NPTVBMRVRFLAo+IC0gICAgICAgS0ZEX1dBSVRfVElNRU9VVCwKPiAtICAg ICAgIEtGRF9XQUlUX0VSUk9SCj4gLX07Cj4gLQo+ICB2b2lkIGtmZF9ldmVudF9pbml0X3Byb2Nl c3Moc3RydWN0IGtmZF9wcm9jZXNzICpwKTsKPiAgdm9pZCBrZmRfZXZlbnRfZnJlZV9wcm9jZXNz KHN0cnVjdCBrZmRfcHJvY2VzcyAqcCk7Cj4gIGludCBrZmRfZXZlbnRfbW1hcChzdHJ1Y3Qga2Zk X3Byb2Nlc3MgKnByb2Nlc3MsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKTsKPiAgaW50IGtm ZF93YWl0X29uX2V2ZW50cyhzdHJ1Y3Qga2ZkX3Byb2Nlc3MgKnAsCj4gICAgICAgICAgICAgICAg ICAgICAgICB1aW50MzJfdCBudW1fZXZlbnRzLCB2b2lkIF9fdXNlciAqZGF0YSwKPiAgICAgICAg ICAgICAgICAgICAgICAgIGJvb2wgYWxsLCB1aW50MzJfdCB1c2VyX3RpbWVvdXRfbXMsCj4gLSAg ICAgICAgICAgICAgICAgICAgICBlbnVtIGtmZF9ldmVudF93YWl0X3Jlc3VsdCAqd2FpdF9yZXN1 bHQpOwo+ICsgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgKndhaXRfcmVzdWx0KTsKPiAg dm9pZCBrZmRfc2lnbmFsX2V2ZW50X2ludGVycnVwdCh1bnNpZ25lZCBpbnQgcGFzaWQsIHVpbnQz Ml90IHBhcnRpYWxfaWQsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJf dCB2YWxpZF9pZF9iaXRzKTsKPiAgdm9pZCBrZmRfc2lnbmFsX2lvbW11X2V2ZW50KHN0cnVjdCBr ZmRfZGV2ICpkZXYsCj4gLS0KPiAyLjcuNAo+CgpUaGlzIHBhdGNoIGlzOgpBY2tlZC1ieTogT2Rl ZCBHYWJiYXkgPG9kZWQuZ2FiYmF5QGdtYWlsLmNvbT4KX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9hbWQtZ2Z4Cg==