From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH 1/4] [RFC]drm: add syncobj timeline support v6 Date: Wed, 19 Sep 2018 09:45:05 +0200 Message-ID: <9bdce2dd-2129-3ed9-56f0-db4b14005194@amd.com> References: <20180919042659.3769-1-david1.zhou@amd.com> <04e91247-387c-ed5d-0793-9eb1d37d12bd@amd.com> <392512eb-271d-3d16-263b-f2429dedfffc@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <392512eb-271d-3d16-263b-f2429dedfffc-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: zhoucm1 , Chunming Zhou , dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Dave Airlie , Daniel Rakos , Daniel Vetter , amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org QW0gMTkuMDkuMjAxOCB1bSAwOTozMiBzY2hyaWViIHpob3VjbTE6Cj4KPgo+IE9uIDIwMTjlubQw OeaciDE55pelIDE1OjE4LCBDaHJpc3RpYW4gS8O2bmlnIHdyb3RlOgo+PiBBbSAxOS4wOS4yMDE4 IHVtIDA2OjI2IHNjaHJpZWIgQ2h1bm1pbmcgWmhvdToKPiBbc25pcF0KPj4+IMKgwqDCoMKgwqDC oMKgwqDCoCAqZmVuY2UgPSBOVUxMOwo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIGRybV9zeW5jb2Jq X2FkZF9jYWxsYmFja19sb2NrZWQoc3luY29iaiwgY2IsIGZ1bmMpOwo+Pj4gQEAgLTE2NCw2ICsx NzcsMTUzIEBAIHZvaWQgZHJtX3N5bmNvYmpfcmVtb3ZlX2NhbGxiYWNrKHN0cnVjdCAKPj4+IGRy bV9zeW5jb2JqICpzeW5jb2JqLAo+Pj4gwqDCoMKgwqDCoCBzcGluX3VubG9jaygmc3luY29iai0+ bG9jayk7Cj4+PiDCoCB9Cj4+PiDCoCArc3RhdGljIHZvaWQgZHJtX3N5bmNvYmpfdGltZWxpbmVf aW5pdChzdHJ1Y3QgZHJtX3N5bmNvYmogKnN5bmNvYmopCj4+Cj4+IFdlIHN0aWxsIGhhdmUgX3Rp bWVsaW5lXyBpbiB0aGUgbmFtZSBoZXJlLgo+IHRoZSBmdW5jIGlzIHJlbGV2YW50IHRvIHRpbWVs aW5lIG1lbWJlcnMsIG9yIHdoaWNoIG5hbWUgaXMgcHJvcGVyPwoKWWVhaCwgYnV0IHdlIG5vdyB1 c2UgdGhlIHRpbWVsaW5lIGltcGxlbWVudGF0aW9uIGZvciB0aGUgaW5kaXZpZHVhbCAKc3luY29i aiBhcyB3ZWxsLgoKTm90IGEgYmlnIGlzc3VlLCBidXQgSSB3b3VsZCBqdXN0IG5hbWUgaXQgCmRy bV9zeW5jb2JqX2luaXQoKS9kcm1fc3luY29ial9maW5pLgoKPgo+Pgo+Pj4gK3sKPj4+ICvCoMKg wqAgc3Bpbl9sb2NrKCZzeW5jb2JqLT5sb2NrKTsKPj4+ICvCoMKgwqAgc3luY29iai0+dGltZWxp bmVfY29udGV4dCA9IGRtYV9mZW5jZV9jb250ZXh0X2FsbG9jKDEpOwo+IFtzbmlwXQo+Pj4gK30K Pj4+ICsKPj4+ICtpbnQgZHJtX3N5bmNvYmpfbG9va3VwX2ZlbmNlKHN0cnVjdCBkcm1fc3luY29i aiAqc3luY29iaiwgdTY0IHBvaW50LAo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg c3RydWN0IGRtYV9mZW5jZSAqKmZlbmNlKSB7Cj4+PiArCj4+PiArwqDCoMKgIHJldHVybiBkcm1f c3luY29ial9zZWFyY2hfZmVuY2Uoc3luY29iaiwgcG9pbnQsCj4+PiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgRFJNX1NZTkNPQkpfV0FJVF9GTEFHU19XQUlUX0ZPUl9T VUJNSVQsCj4+Cj4+IEkgc3RpbGwgaGF2ZSBhIGJhZCBmZWVsaW5nIHNldHRpbmcgdGhhdCBmbGFn IGFzIGRlZmF1bHQgY2F1c2UgaXQgCj4+IG1pZ2h0IGNoYW5nZSB0aGUgYmVoYXZpb3IgZm9yIHRo ZSBVQVBJLgo+Pgo+PiBNYXliZSBleHBvcnQgZHJtX3N5bmNvYmpfc2VhcmNoX2ZlbmNlIGRpcmVj dGx5PyBFLmcuIHdpdGggdGhlIGZsYWdzIAo+PiBwYXJhbWV0ZXIuCj4gcHJldmlvdXMgdjUgaW5k ZWVkIGRvIHRoaXMsIHlvdSBsZXQgbWUgd3JhcCBpdCwgbmVlZCBjaGFuZ2UgYmFjaz8KCk5vLCB0 aGUgcHJvYmxlbSBpcyB0aGF0IGRybV9zeW5jb2JqX2ZpbmRfZmVuY2UoKSBpcyBzdGlsbCB1c2lu ZyAKZHJtX3N5bmNvYmpfbG9va3VwX2ZlbmNlKCkgd2hpY2ggc2V0cyB0aGUgZmxhZyBpbnN0ZWFk IG9mIApkcm1fc3luY29ial9zZWFyY2hfZmVuY2UoKSB3aXRob3V0IHRoZSBmbGFnLgoKVGhhdCBj aGFuZ2VzIHRoZSBVQVBJIGJlaGF2aW9yIGJlY2F1c2UgcHJldmlvdXNseSB3ZSB3b3VsZCBoYXZl IHJldHVybmVkIAphbiBlcnJvciBjb2RlIGFuZCBub3cgd2UgYmxvY2sgZm9yIGEgZmVuY2UgdG8g YXBwZWFyLgoKU28gSSB0aGluayB0aGUgcmlnaHQgc29sdXRpb24gd291bGQgYmUgdG8gYWRkIHRo ZSBmbGFncyBwYXJhbWV0ZXIgdG8gCmRybV9zeW5jb2JqX2ZpbmRfZmVuY2UoKSBhbmQgbGV0IHRo ZSBkcml2ZXIgZGVjaWRlIGlmIHdlIG5lZWQgdG8gYmxvY2sgCm9yIGdldCAtRU5PRU5ULgoKUmVn YXJkcywKQ2hyaXN0aWFuLgoKPgo+IFJlZ2FyZHMsCj4gRGF2aWQgWmhvdQo+Pgo+PiBSZWdhcmRz LAo+PiBDaHJpc3RpYW4uCj4+Cj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgZmVuY2UpOwo+Pj4gK30KPj4+ICtFWFBPUlRfU1lNQk9MKGRybV9zeW5jb2JqX2xvb2t1 cF9mZW5jZSk7Cj4+PiArCj4+PiDCoCAvKioKPj4+IMKgwqAgKiBkcm1fc3luY29ial9maW5kX2Zl bmNlIC0gbG9va3VwIGFuZCByZWZlcmVuY2UgdGhlIGZlbmNlIGluIGEgCj4+PiBzeW5jIG9iamVj dAo+Pj4gwqDCoCAqIEBmaWxlX3ByaXZhdGU6IGRybSBmaWxlIHByaXZhdGUgcG9pbnRlcgo+Pj4g QEAgLTIyOCw3ICs0NDMsNyBAQCBzdGF0aWMgaW50IGRybV9zeW5jb2JqX2Fzc2lnbl9udWxsX2hh bmRsZShzdHJ1Y3QgCj4+PiBkcm1fc3luY29iaiAqc3luY29iaikKPj4+IMKgwqAgKiBAZmVuY2U6 IG91dCBwYXJhbWV0ZXIgZm9yIHRoZSBmZW5jZQo+Pj4gwqDCoCAqCj4+PiDCoMKgICogVGhpcyBp cyBqdXN0IGEgY29udmVuaWVuY2UgZnVuY3Rpb24gdGhhdCBjb21iaW5lcyAKPj4+IGRybV9zeW5j b2JqX2ZpbmQoKSBhbmQKPj4+IC0gKiBkcm1fc3luY29ial9mZW5jZV9nZXQoKS4KPj4+ICsgKiBk cm1fc3luY29ial9sb29rdXBfZmVuY2UoKS4KPj4+IMKgwqAgKgo+Pj4gwqDCoCAqIFJldHVybnMg MCBvbiBzdWNjZXNzIG9yIGEgbmVnYXRpdmUgZXJyb3IgdmFsdWUgb24gZmFpbHVyZS4gT24gCj4+ PiBzdWNjZXNzIEBmZW5jZQo+Pj4gwqDCoCAqIGNvbnRhaW5zIGEgcmVmZXJlbmNlIHRvIHRoZSBm ZW5jZSwgd2hpY2ggbXVzdCBiZSByZWxlYXNlZCBieSAKPj4+IGNhbGxpbmcKPj4+IEBAIC0yMzYs MTggKzQ1MSwxMSBAQCBzdGF0aWMgaW50IAo+Pj4gZHJtX3N5bmNvYmpfYXNzaWduX251bGxfaGFu ZGxlKHN0cnVjdCBkcm1fc3luY29iaiAqc3luY29iaikKPj4+IMKgwqAgKi8KPj4+IMKgIGludCBk cm1fc3luY29ial9maW5kX2ZlbmNlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2YXRlLAo+Pj4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdTMyIGhhbmRsZSwgdTY0IHBvaW50LAo+ Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGRtYV9mZW5jZSAqKmZlbmNl KQo+Pj4gLXsKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBkbWFfZmVu Y2UgKipmZW5jZSkgewo+Pj4gwqDCoMKgwqDCoCBzdHJ1Y3QgZHJtX3N5bmNvYmogKnN5bmNvYmog PSBkcm1fc3luY29ial9maW5kKGZpbGVfcHJpdmF0ZSwgCj4+PiBoYW5kbGUpOwo+Pj4gLcKgwqDC oCBpbnQgcmV0ID0gMDsKPj4+IC0KPj4+IC3CoMKgwqAgaWYgKCFzeW5jb2JqKQo+Pj4gLcKgwqDC oMKgwqDCoMKgIHJldHVybiAtRU5PRU5UOwo+Pj4gK8KgwqDCoCBpbnQgcmV0Owo+Pj4gwqAgLcKg wqDCoCAqZmVuY2UgPSBkcm1fc3luY29ial9mZW5jZV9nZXQoc3luY29iaik7Cj4+PiAtwqDCoMKg IGlmICghKmZlbmNlKSB7Cj4+PiAtwqDCoMKgwqDCoMKgwqAgcmV0ID0gLUVJTlZBTDsKPj4+IC3C oMKgwqAgfQo+Pj4gK8KgwqDCoCByZXQgPSBkcm1fc3luY29ial9sb29rdXBfZmVuY2Uoc3luY29i aiwgcG9pbnQsIGZlbmNlKTsKPj4+IMKgwqDCoMKgwqAgZHJtX3N5bmNvYmpfcHV0KHN5bmNvYmop Owo+Pj4gwqDCoMKgwqDCoCByZXR1cm4gcmV0Owo+Pj4gwqAgfQo+Pj4gQEAgLTI2NCw3ICs0NzIs NyBAQCB2b2lkIGRybV9zeW5jb2JqX2ZyZWUoc3RydWN0IGtyZWYgKmtyZWYpCj4+PiDCoMKgwqDC oMKgIHN0cnVjdCBkcm1fc3luY29iaiAqc3luY29iaiA9IGNvbnRhaW5lcl9vZihrcmVmLAo+Pj4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg c3RydWN0IGRybV9zeW5jb2JqLAo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmVmY291bnQpOwo+Pj4gLcKgwqDCoCBkcm1fc3luY29i al9yZXBsYWNlX2ZlbmNlKHN5bmNvYmosIDAsIE5VTEwpOwo+Pj4gK8KgwqDCoCBkcm1fc3luY29i al90aW1lbGluZV9maW5pKHN5bmNvYmopOwo+Pj4gwqDCoMKgwqDCoCBrZnJlZShzeW5jb2JqKTsK Pj4+IMKgIH0KPj4+IMKgIEVYUE9SVF9TWU1CT0woZHJtX3N5bmNvYmpfZnJlZSk7Cj4+PiBAQCAt Mjk0LDYgKzUwMiwxMSBAQCBpbnQgZHJtX3N5bmNvYmpfY3JlYXRlKHN0cnVjdCBkcm1fc3luY29i aiAKPj4+ICoqb3V0X3N5bmNvYmosIHVpbnQzMl90IGZsYWdzLAo+Pj4gwqDCoMKgwqDCoCBrcmVm X2luaXQoJnN5bmNvYmotPnJlZmNvdW50KTsKPj4+IMKgwqDCoMKgwqAgSU5JVF9MSVNUX0hFQUQo JnN5bmNvYmotPmNiX2xpc3QpOwo+Pj4gwqDCoMKgwqDCoCBzcGluX2xvY2tfaW5pdCgmc3luY29i ai0+bG9jayk7Cj4+PiArwqDCoMKgIGlmIChmbGFncyAmIERSTV9TWU5DT0JKX0NSRUFURV9UWVBF X1RJTUVMSU5FKQo+Pj4gK8KgwqDCoMKgwqDCoMKgIHN5bmNvYmotPnR5cGUgPSBEUk1fU1lOQ09C Sl9UWVBFX1RJTUVMSU5FOwo+Pj4gK8KgwqDCoCBlbHNlCj4+PiArwqDCoMKgwqDCoMKgwqAgc3lu Y29iai0+dHlwZSA9IERSTV9TWU5DT0JKX1RZUEVfSU5ESVZJRFVBTDsKPj4+ICvCoMKgwqAgZHJt X3N5bmNvYmpfdGltZWxpbmVfaW5pdChzeW5jb2JqKTsKPj4+IMKgIMKgwqDCoMKgwqAgaWYgKGZs YWdzICYgRFJNX1NZTkNPQkpfQ1JFQVRFX1NJR05BTEVEKSB7Cj4+PiDCoMKgwqDCoMKgwqDCoMKg wqAgcmV0ID0gZHJtX3N5bmNvYmpfYXNzaWduX251bGxfaGFuZGxlKHN5bmNvYmopOwo+Pj4gQEAg LTU3Niw3ICs3ODksOCBAQCBkcm1fc3luY29ial9jcmVhdGVfaW9jdGwoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgCj4+PiB2b2lkICpkYXRhLAo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAt RU5PREVWOwo+Pj4gwqAgwqDCoMKgwqDCoCAvKiBubyB2YWxpZCBmbGFncyB5ZXQgKi8KPj4+IC3C oMKgwqAgaWYgKGFyZ3MtPmZsYWdzICYgfkRSTV9TWU5DT0JKX0NSRUFURV9TSUdOQUxFRCkKPj4+ ICvCoMKgwqAgaWYgKGFyZ3MtPmZsYWdzICYgfihEUk1fU1lOQ09CSl9DUkVBVEVfU0lHTkFMRUQg fAo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBEUk1fU1lOQ09CSl9DUkVBVEVf VFlQRV9USU1FTElORSkpCj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIC1FSU5WQUw7Cj4+ PiDCoCDCoMKgwqDCoMKgIHJldHVybiBkcm1fc3luY29ial9jcmVhdGVfYXNfaGFuZGxlKGZpbGVf cHJpdmF0ZSwKPj4+IEBAIC02NjksOSArODgzLDggQEAgc3RhdGljIHZvaWQgc3luY29ial93YWl0 X3N5bmNvYmpfZnVuYyhzdHJ1Y3QgCj4+PiBkcm1fc3luY29iaiAqc3luY29iaiwKPj4+IMKgwqDC oMKgwqAgc3RydWN0IHN5bmNvYmpfd2FpdF9lbnRyeSAqd2FpdCA9Cj4+PiDCoMKgwqDCoMKgwqDC oMKgwqAgY29udGFpbmVyX29mKGNiLCBzdHJ1Y3Qgc3luY29ial93YWl0X2VudHJ5LCBzeW5jb2Jq X2NiKTsKPj4+IMKgIC3CoMKgwqAgLyogVGhpcyBoYXBwZW5zIGluc2lkZSB0aGUgc3luY29iaiBs b2NrICovCj4+PiAtwqDCoMKgIHdhaXQtPmZlbmNlID0gCj4+PiBkbWFfZmVuY2VfZ2V0KHJjdV9k ZXJlZmVyZW5jZV9wcm90ZWN0ZWQoc3luY29iai0+ZmVuY2UsCj4+PiAtIGxvY2tkZXBfaXNfaGVs ZCgmc3luY29iai0+bG9jaykpKTsKPj4+ICvCoMKgwqAgZHJtX3N5bmNvYmpfc2VhcmNoX2ZlbmNl KHN5bmNvYmosIDAsIDAsICZ3YWl0LT5mZW5jZSk7Cj4+PiArCj4+PiDCoMKgwqDCoMKgIHdha2Vf dXBfcHJvY2Vzcyh3YWl0LT50YXNrKTsKPj4+IMKgIH0KPj4+IMKgIEBAIC02OTgsNyArOTExLDgg QEAgc3RhdGljIHNpZ25lZCBsb25nIAo+Pj4gZHJtX3N5bmNvYmpfYXJyYXlfd2FpdF90aW1lb3V0 KHN0cnVjdCBkcm1fc3luY29iaiAqKnN5bmNvYmpzLAo+Pj4gwqDCoMKgwqDCoCBzaWduYWxlZF9j b3VudCA9IDA7Cj4+PiDCoMKgwqDCoMKgIGZvciAoaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7Cj4+ PiDCoMKgwqDCoMKgwqDCoMKgwqAgZW50cmllc1tpXS50YXNrID0gY3VycmVudDsKPj4+IC3CoMKg wqDCoMKgwqDCoCBlbnRyaWVzW2ldLmZlbmNlID0gZHJtX3N5bmNvYmpfZmVuY2VfZ2V0KHN5bmNv YmpzW2ldKTsKPj4+ICvCoMKgwqDCoMKgwqDCoCByZXQgPSBkcm1fc3luY29ial9zZWFyY2hfZmVu Y2Uoc3luY29ianNbaV0sIDAsIDAsCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAmZW50cmllc1tpXS5mZW5jZSk7Cj4+PiDCoMKgwqDCoMKg wqDCoMKgwqAgaWYgKCFlbnRyaWVzW2ldLmZlbmNlKSB7Cj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBpZiAoZmxhZ3MgJiBEUk1fU1lOQ09CSl9XQUlUX0ZMQUdTX1dBSVRfRk9SX1NVQk1J VCkgewo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb250aW51ZTsKPj4+ IEBAIC05NzAsMTIgKzExODQsMTkgQEAgZHJtX3N5bmNvYmpfcmVzZXRfaW9jdGwoc3RydWN0IGRy bV9kZXZpY2UgCj4+PiAqZGV2LCB2b2lkICpkYXRhLAo+Pj4gwqDCoMKgwqDCoCBpZiAocmV0IDwg MCkKPj4+IMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gcmV0Owo+Pj4gwqAgLcKgwqDCoCBmb3Ig KGkgPSAwOyBpIDwgYXJncy0+Y291bnRfaGFuZGxlczsgaSsrKQo+Pj4gLcKgwqDCoMKgwqDCoMKg IGRybV9zeW5jb2JqX3JlcGxhY2VfZmVuY2Uoc3luY29ianNbaV0sIDAsIE5VTEwpOwo+Pj4gLQo+ Pj4gK8KgwqDCoCBmb3IgKGkgPSAwOyBpIDwgYXJncy0+Y291bnRfaGFuZGxlczsgaSsrKSB7Cj4+ PiArwqDCoMKgwqDCoMKgwqAgaWYgKHN5bmNvYmpzW2ldLT50eXBlID09IERSTV9TWU5DT0JKX1RZ UEVfVElNRUxJTkUpIHsKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIERSTV9FUlJPUigidGlt ZWxpbmUgc3luY29iaiBjYW5ub3QgcmVzZXQhXG4iKTsKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHJldCA9IC1FSU5WQUw7Cj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBnb3RvIG91dDsK Pj4+ICvCoMKgwqDCoMKgwqDCoCB9Cj4+PiArwqDCoMKgwqDCoMKgwqAgZHJtX3N5bmNvYmpfdGlt ZWxpbmVfZmluaShzeW5jb2Jqc1tpXSk7Cj4+PiArwqDCoMKgwqDCoMKgwqAgZHJtX3N5bmNvYmpf dGltZWxpbmVfaW5pdChzeW5jb2Jqc1tpXSk7Cj4+PiArwqDCoMKgIH0KPj4+ICtvdXQ6Cj4+PiDC oMKgwqDCoMKgIGRybV9zeW5jb2JqX2FycmF5X2ZyZWUoc3luY29ianMsIGFyZ3MtPmNvdW50X2hh bmRsZXMpOwo+Pj4gwqAgLcKgwqDCoCByZXR1cm4gMDsKPj4+ICvCoMKgwqAgcmV0dXJuIHJldDsK Pj4+IMKgIH0KPj4+IMKgIMKgIGludAo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyAKPj4+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fZXhlY2J1ZmZlci5jCj4+PiBpbmRleCAwYThkMmQ2NGYzODAuLmEwNDBmYTMyODFkZiAx MDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIu Ywo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCj4+ PiBAQCAtMjEzNyw3ICsyMTM3LDcgQEAgYXdhaXRfZmVuY2VfYXJyYXkoc3RydWN0IGk5MTVfZXhl Y2J1ZmZlciAqZWIsCj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKCEoZmxhZ3MgJiBJOTE1X0VY RUNfRkVOQ0VfV0FJVCkpCj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb250aW51ZTsK Pj4+IMKgIC3CoMKgwqDCoMKgwqDCoCBmZW5jZSA9IGRybV9zeW5jb2JqX2ZlbmNlX2dldChzeW5j b2JqKTsKPj4+ICvCoMKgwqDCoMKgwqDCoCBkcm1fc3luY29ial9sb29rdXBfZmVuY2Uoc3luY29i aiwgMCwgJmZlbmNlKTsKPj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoIWZlbmNlKQo+Pj4gwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIC1FSU5WQUw7Cj4+PiDCoCBkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9kcm0vZHJtX3N5bmNvYmouaCBiL2luY2x1ZGUvZHJtL2RybV9zeW5jb2JqLmgK Pj4+IGluZGV4IDQyNTQzMmI4NWE4Ny4uNmRhYzQ3OWZlZGZlIDEwMDY0NAo+Pj4gLS0tIGEvaW5j bHVkZS9kcm0vZHJtX3N5bmNvYmouaAo+Pj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX3N5bmNvYmou aAo+Pj4gQEAgLTMwLDYgKzMwLDExIEBACj4+PiDCoCDCoCBzdHJ1Y3QgZHJtX3N5bmNvYmpfY2I7 Cj4+PiDCoCArZW51bSBkcm1fc3luY29ial90eXBlIHsKPj4+ICvCoMKgwqAgRFJNX1NZTkNPQkpf VFlQRV9JTkRJVklEVUFMLAo+Pj4gK8KgwqDCoCBEUk1fU1lOQ09CSl9UWVBFX1RJTUVMSU5FCj4+ PiArfTsKPj4+ICsKPj4+IMKgIC8qKgo+Pj4gwqDCoCAqIHN0cnVjdCBkcm1fc3luY29iaiAtIHN5 bmMgb2JqZWN0Lgo+Pj4gwqDCoCAqCj4+PiBAQCAtNDEsMTkgKzQ2LDM2IEBAIHN0cnVjdCBkcm1f c3luY29iaiB7Cj4+PiDCoMKgwqDCoMKgwqAgKi8KPj4+IMKgwqDCoMKgwqAgc3RydWN0IGtyZWYg cmVmY291bnQ7Cj4+PiDCoMKgwqDCoMKgIC8qKgo+Pj4gLcKgwqDCoMKgICogQGZlbmNlOgo+Pj4g LcKgwqDCoMKgICogTlVMTCBvciBhIHBvaW50ZXIgdG8gdGhlIGZlbmNlIGJvdW5kIHRvIHRoaXMg b2JqZWN0Lgo+Pj4gLcKgwqDCoMKgICoKPj4+IC3CoMKgwqDCoCAqIFRoaXMgZmllbGQgc2hvdWxk IG5vdCBiZSB1c2VkIGRpcmVjdGx5LiBVc2UgCj4+PiBkcm1fc3luY29ial9mZW5jZV9nZXQoKQo+ Pj4gLcKgwqDCoMKgICogYW5kIGRybV9zeW5jb2JqX3JlcGxhY2VfZmVuY2UoKSBpbnN0ZWFkLgo+ Pj4gK8KgwqDCoMKgICogQHR5cGU6IGluZGljYXRlIHN5bmNvYmogdHlwZQo+Pj4gK8KgwqDCoMKg ICovCj4+PiArwqDCoMKgIGVudW0gZHJtX3N5bmNvYmpfdHlwZSB0eXBlOwo+Pj4gK8KgwqDCoCAv KioKPj4+ICvCoMKgwqDCoCAqIEB3cTogd2FpdCBzaWduYWwgb3BlcmF0aW9uIHdvcmsgcXVldWUK Pj4+ICvCoMKgwqDCoCAqLwo+Pj4gK8KgwqDCoCB3YWl0X3F1ZXVlX2hlYWRfdMKgwqDCoCB3cTsK Pj4+ICvCoMKgwqAgLyoqCj4+PiArwqDCoMKgwqAgKiBAdGltZWxpbmVfY29udGV4dDogZmVuY2Ug Y29udGV4dCB1c2VkIGJ5IHRpbWVsaW5lCj4+PiDCoMKgwqDCoMKgwqAgKi8KPj4+IC3CoMKgwqAg c3RydWN0IGRtYV9mZW5jZSBfX3JjdSAqZmVuY2U7Cj4+PiArwqDCoMKgIHU2NCB0aW1lbGluZV9j b250ZXh0Owo+Pj4gwqDCoMKgwqDCoCAvKioKPj4+IC3CoMKgwqDCoCAqIEBjYl9saXN0OiBMaXN0 IG9mIGNhbGxiYWNrcyB0byBjYWxsIHdoZW4gdGhlICZmZW5jZSBnZXRzIAo+Pj4gcmVwbGFjZWQu Cj4+PiArwqDCoMKgwqAgKiBAdGltZWxpbmU6IHN5bmNvYmogdGltZWxpbmUgdmFsdWUsIHdoaWNo IGluZGljYXRlcyBwb2ludCBpcyAKPj4+IHNpZ25hbGVkLgo+Pj4gwqDCoMKgwqDCoMKgICovCj4+ PiArwqDCoMKgIHU2NCB0aW1lbGluZTsKPj4+ICvCoMKgwqAgLyoqCj4+PiArwqDCoMKgwqAgKiBA c2lnbmFsX3BvaW50OiB3aGljaCBpbmRpY2F0ZXMgdGhlIGxhdGVzdCBzaWduYWxlciBwb2ludC4K Pj4+ICvCoMKgwqDCoCAqLwo+Pj4gK8KgwqDCoCB1NjQgc2lnbmFsX3BvaW50Owo+Pj4gK8KgwqDC oCAvKioKPj4+ICvCoMKgwqDCoCAqIEBzaWduYWxfcHRfbGlzdDogc2lnbmFsZXIgcG9pbnQgbGlz dC4KPj4+ICvCoMKgwqDCoCAqLwo+Pj4gK8KgwqDCoCBzdHJ1Y3QgbGlzdF9oZWFkIHNpZ25hbF9w dF9saXN0Owo+Pj4gKwo+Pj4gK8KgwqDCoCAvKioKPj4+ICvCoMKgwqDCoMKgwqDCoMKgICogQGNi X2xpc3Q6IExpc3Qgb2YgY2FsbGJhY2tzIHRvIGNhbGwgd2hlbiB0aGUgJmZlbmNlIGdldHMgCj4+ PiByZXBsYWNlZC4KPj4+ICvCoMKgwqDCoMKgwqDCoMKgICovCj4+PiDCoMKgwqDCoMKgIHN0cnVj dCBsaXN0X2hlYWQgY2JfbGlzdDsKPj4+IMKgwqDCoMKgwqAgLyoqCj4+PiAtwqDCoMKgwqAgKiBA bG9jazogUHJvdGVjdHMgJmNiX2xpc3QgYW5kIHdyaXRlLWxvY2tzICZmZW5jZS4KPj4+ICvCoMKg wqDCoCAqIEBsb2NrOiBQcm90ZWN0cyBzeW5jb2JqIGxpc3QgYW5kIHdyaXRlLWxvY2tzICZmZW5j ZS4KPj4+IMKgwqDCoMKgwqDCoCAqLwo+Pj4gwqDCoMKgwqDCoCBzcGlubG9ja190IGxvY2s7Cj4+ PiDCoMKgwqDCoMKgIC8qKgo+Pj4gQEAgLTY4LDcgKzkwLDcgQEAgdHlwZWRlZiB2b2lkICgqZHJt X3N5bmNvYmpfZnVuY190KShzdHJ1Y3QgCj4+PiBkcm1fc3luY29iaiAqc3luY29iaiwKPj4+IMKg IC8qKgo+Pj4gwqDCoCAqIHN0cnVjdCBkcm1fc3luY29ial9jYiAtIGNhbGxiYWNrIGZvciBkcm1f c3luY29ial9hZGRfY2FsbGJhY2sKPj4+IMKgwqAgKiBAbm9kZTogdXNlZCBieSBkcm1fc3luY29i X2FkZF9jYWxsYmFjayB0byBhcHBlbmQgdGhpcyBzdHJ1Y3QgdG8KPj4+IC0gKsKgwqDCoMKgwqAg JmRybV9zeW5jb2JqLmNiX2xpc3QKPj4+ICsgKsKgwqDCoMKgwqDCoCAmZHJtX3N5bmNvYmouY2Jf bGlzdAo+Pj4gwqDCoCAqIEBmdW5jOiBkcm1fc3luY29ial9mdW5jX3QgdG8gY2FsbAo+Pj4gwqDC oCAqCj4+PiDCoMKgICogVGhpcyBzdHJ1Y3Qgd2lsbCBiZSBpbml0aWFsaXplZCBieSBkcm1fc3lu Y29ial9hZGRfY2FsbGJhY2ssIAo+Pj4gYWRkaXRpb25hbAo+Pj4gQEAgLTEwNiwyOSArMTI4LDYg QEAgZHJtX3N5bmNvYmpfcHV0KHN0cnVjdCBkcm1fc3luY29iaiAqb2JqKQo+Pj4gwqDCoMKgwqDC oCBrcmVmX3B1dCgmb2JqLT5yZWZjb3VudCwgZHJtX3N5bmNvYmpfZnJlZSk7Cj4+PiDCoCB9Cj4+ PiDCoCAtLyoqCj4+PiAtICogZHJtX3N5bmNvYmpfZmVuY2VfZ2V0IC0gZ2V0IGEgcmVmZXJlbmNl IHRvIGEgZmVuY2UgaW4gYSBzeW5jIG9iamVjdAo+Pj4gLSAqIEBzeW5jb2JqOiBzeW5jIG9iamVj dC4KPj4+IC0gKgo+Pj4gLSAqIFRoaXMgYWNxdWlyZXMgYWRkaXRpb25hbCByZWZlcmVuY2UgdG8g JmRybV9zeW5jb2JqLmZlbmNlIAo+Pj4gY29udGFpbmVkIGluIEBvYmosCj4+PiAtICogaWYgbm90 IE5VTEwuIEl0IGlzIGlsbGVnYWwgdG8gY2FsbCB0aGlzIHdpdGhvdXQgYWxyZWFkeSBob2xkaW5n IAo+Pj4gYSByZWZlcmVuY2UuCj4+PiAtICogTm8gbG9ja3MgcmVxdWlyZWQuCj4+PiAtICoKPj4+ IC0gKiBSZXR1cm5zOgo+Pj4gLSAqIEVpdGhlciB0aGUgZmVuY2Ugb2YgQG9iaiBvciBOVUxMIGlm IHRoZXJlJ3Mgbm9uZS4KPj4+IC0gKi8KPj4+IC1zdGF0aWMgaW5saW5lIHN0cnVjdCBkbWFfZmVu Y2UgKgo+Pj4gLWRybV9zeW5jb2JqX2ZlbmNlX2dldChzdHJ1Y3QgZHJtX3N5bmNvYmogKnN5bmNv YmopCj4+PiAtewo+Pj4gLcKgwqDCoCBzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKPj4+IC0KPj4+ IC3CoMKgwqAgcmN1X3JlYWRfbG9jaygpOwo+Pj4gLcKgwqDCoCBmZW5jZSA9IGRtYV9mZW5jZV9n ZXRfcmN1X3NhZmUoJnN5bmNvYmotPmZlbmNlKTsKPj4+IC3CoMKgwqAgcmN1X3JlYWRfdW5sb2Nr KCk7Cj4+PiAtCj4+PiAtwqDCoMKgIHJldHVybiBmZW5jZTsKPj4+IC19Cj4+PiAtCj4+PiDCoCBz dHJ1Y3QgZHJtX3N5bmNvYmogKmRybV9zeW5jb2JqX2ZpbmQoc3RydWN0IGRybV9maWxlICpmaWxl X3ByaXZhdGUsCj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCB1MzIgaGFuZGxlKTsKPj4+IMKgIHZvaWQgZHJtX3N5bmNvYmpfcmVwbGFjZV9mZW5jZShzdHJ1 Y3QgZHJtX3N5bmNvYmogKnN5bmNvYmosIHU2NCAKPj4+IHBvaW50LAo+Pj4gQEAgLTE0Miw1ICsx NDEsNyBAQCBpbnQgZHJtX3N5bmNvYmpfY3JlYXRlKHN0cnVjdCBkcm1fc3luY29iaiAKPj4+ICoq b3V0X3N5bmNvYmosIHVpbnQzMl90IGZsYWdzLAo+Pj4gwqAgaW50IGRybV9zeW5jb2JqX2dldF9o YW5kbGUoc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXZhdGUsCj4+PiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgZHJtX3N5bmNvYmogKnN5bmNvYmosIHUzMiAqaGFuZGxl KTsKPj4+IMKgIGludCBkcm1fc3luY29ial9nZXRfZmQoc3RydWN0IGRybV9zeW5jb2JqICpzeW5j b2JqLCBpbnQgKnBfZmQpOwo+Pj4gK2ludCBkcm1fc3luY29ial9sb29rdXBfZmVuY2Uoc3RydWN0 IGRybV9zeW5jb2JqICpzeW5jb2JqLCB1NjQgcG9pbnQsCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgc3RydWN0IGRtYV9mZW5jZSAqKmZlbmNlKTsKPj4+IMKgIMKgICNlbmRp Zgo+Pj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmggYi9pbmNsdWRlL3VhcGkv ZHJtL2RybS5oCj4+PiBpbmRleCAzMDBmMzM2NjMzZjIuLmNlYmRiMjU0MWViNyAxMDA2NDQKPj4+ IC0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgKPj4+ICsrKyBiL2luY2x1ZGUvdWFwaS9kcm0v ZHJtLmgKPj4+IEBAIC03MTcsNiArNzE3LDcgQEAgc3RydWN0IGRybV9wcmltZV9oYW5kbGUgewo+ Pj4gwqAgc3RydWN0IGRybV9zeW5jb2JqX2NyZWF0ZSB7Cj4+PiDCoMKgwqDCoMKgIF9fdTMyIGhh bmRsZTsKPj4+IMKgICNkZWZpbmUgRFJNX1NZTkNPQkpfQ1JFQVRFX1NJR05BTEVEICgxIDw8IDAp Cj4+PiArI2RlZmluZSBEUk1fU1lOQ09CSl9DUkVBVEVfVFlQRV9USU1FTElORSAoMSA8PCAxKQo+ Pj4gwqDCoMKgwqDCoCBfX3UzMiBmbGFnczsKPj4+IMKgIH07Cj4+Cj4KCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFt ZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=