From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH 3/6] drm: add support of syncobj timeline point wait v2 Date: Fri, 21 Sep 2018 09:21:30 +0200 Message-ID: <5b19b0b2-a408-bf62-1e42-e5341a0753ad@amd.com> References: <20180920110353.16114-1-david1.zhou@amd.com> <20180920110353.16114-3-david1.zhou@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: "Zhou, David(ChunMing)" , "dri-devel@lists.freedesktop.org" Cc: "amd-gfx@lists.freedesktop.org" List-Id: amd-gfx.lists.freedesktop.org QW0gMjEuMDkuMjAxOCB1bSAwOToxNSBzY2hyaWViIFpob3UsIERhdmlkKENodW5NaW5nKToKPgo+ PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+PiBGcm9tOiBhbWQtZ2Z4IDxhbWQtZ2Z4LWJv dW5jZXNAbGlzdHMuZnJlZWRlc2t0b3Aub3JnPiBPbiBCZWhhbGYgT2YKPj4gQ2hyaXN0aWFuIEs/ bmlnCj4+IFNlbnQ6IFRodXJzZGF5LCBTZXB0ZW1iZXIgMjAsIDIwMTggNzoxMSBQTQo+PiBUbzog WmhvdSwgRGF2aWQoQ2h1bk1pbmcpIDxEYXZpZDEuWmhvdUBhbWQuY29tPjsgZHJpLQo+PiBkZXZl bEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4gQ2M6IGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCj4+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggMy82XSBkcm06IGFkZCBzdXBwb3J0IG9mIHN5bmNv YmogdGltZWxpbmUgcG9pbnQgd2FpdCB2Mgo+Pgo+PiBBbSAyMC4wOS4yMDE4IHVtIDEzOjAzIHNj aHJpZWIgQ2h1bm1pbmcgWmhvdToKPj4+IHBvaW50cyBhcnJheSBpcyBvbmUtdG8tb25lIG1hdGNo IHdpdGggc3luY29ianMgYXJyYXkuCj4+PiB2MjoKPj4+IGFkZCBzZXBlcmF0ZSBpb2N0bCBmb3Ig dGltZWxpbmUgcG9pbnQgd2FpdCwgb3RoZXJ3aXNlIGJyZWFrIHVhcGkuCj4+Pgo+Pj4gU2lnbmVk LW9mZi1ieTogQ2h1bm1pbmcgWmhvdSA8ZGF2aWQxLnpob3VAYW1kLmNvbT4KPj4+IC0tLQo+Pj4g ICAgZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oIHwgIDIgKwo+Pj4gICAgZHJpdmVycy9n cHUvZHJtL2RybV9pb2N0bC5jICAgIHwgIDIgKwo+Pj4gICAgZHJpdmVycy9ncHUvZHJtL2RybV9z eW5jb2JqLmMgIHwgOTkKPj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLQo+Pj4g ICAgaW5jbHVkZS91YXBpL2RybS9kcm0uaCAgICAgICAgIHwgMTQgKysrKysKPj4+ICAgIDQgZmls ZXMgY2hhbmdlZCwgMTAzIGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQo+Pj4KPj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmgKPj4+IGIvZHJpdmVycy9n cHUvZHJtL2RybV9pbnRlcm5hbC5oIGluZGV4IDBjNGViNGE5YWIzMS4uNTY2ZDQ0ZTNjNzgyCj4+ PiAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaAo+Pj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oCj4+PiBAQCAtMTgzLDYgKzE4Myw4IEBA IGludCBkcm1fc3luY29ial9mZF90b19oYW5kbGVfaW9jdGwoc3RydWN0Cj4+IGRybV9kZXZpY2Ug KmRldiwgdm9pZCAqZGF0YSwKPj4+ICAgIAkJCQkgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJp dmF0ZSk7Cj4+PiAgICBpbnQgZHJtX3N5bmNvYmpfd2FpdF9pb2N0bChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCB2b2lkICpkYXRhLAo+Pj4gICAgCQkJICAgc3RydWN0IGRybV9maWxlICpmaWxlX3By aXZhdGUpOwo+Pj4gK2ludCBkcm1fc3luY29ial90aW1lbGluZV93YWl0X2lvY3RsKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4+PiArCQkJCSAgICBzdHJ1Y3QgZHJtX2ZpbGUg KmZpbGVfcHJpdmF0ZSk7Cj4+PiAgICBpbnQgZHJtX3N5bmNvYmpfcmVzZXRfaW9jdGwoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPj4+ICAgIAkJCSAgICBzdHJ1Y3QgZHJtX2Zp bGUgKmZpbGVfcHJpdmF0ZSk7Cj4+PiAgICBpbnQgZHJtX3N5bmNvYmpfc2lnbmFsX2lvY3RsKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2RybV9pb2N0bC5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5jCj4+PiBp bmRleCA2YjRhNjMzYjQyNDAuLmMwODkxNjE0ZjUxNiAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9kcm1faW9jdGwuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5j Cj4+PiBAQCAtNjY5LDYgKzY2OSw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2lvY3RsX2Rl c2MgZHJtX2lvY3Rsc1tdID0gewo+Pj4gICAgCQkgICAgICBEUk1fVU5MT0NLRUR8RFJNX1JFTkRF Ul9BTExPVyksCj4+PiAgICAJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfU1lOQ09CSl9XQUlULAo+ PiBkcm1fc3luY29ial93YWl0X2lvY3RsLAo+Pj4gICAgCQkgICAgICBEUk1fVU5MT0NLRUR8RFJN X1JFTkRFUl9BTExPVyksCj4+PiArCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1NZTkNPQkpfVElN RUxJTkVfV0FJVCwKPj4gZHJtX3N5bmNvYmpfdGltZWxpbmVfd2FpdF9pb2N0bCwKPj4+ICsJCSAg ICAgIERSTV9VTkxPQ0tFRHxEUk1fUkVOREVSX0FMTE9XKSwKPj4+ICAgIAlEUk1fSU9DVExfREVG KERSTV9JT0NUTF9TWU5DT0JKX1JFU0VULAo+PiBkcm1fc3luY29ial9yZXNldF9pb2N0bCwKPj4+ ICAgIAkJICAgICAgRFJNX1VOTE9DS0VEfERSTV9SRU5ERVJfQUxMT1cpLAo+Pj4gICAgCURSTV9J T0NUTF9ERUYoRFJNX0lPQ1RMX1NZTkNPQkpfU0lHTkFMLAo+PiBkcm1fc3luY29ial9zaWduYWxf aW9jdGwsCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9zeW5jb2JqLmMKPj4+ IGIvZHJpdmVycy9ncHUvZHJtL2RybV9zeW5jb2JqLmMgaW5kZXggNjc0NzJiZDc3YzgzLi5hNDNk ZTBlNDYxNmMKPj4+IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9zeW5jb2Jq LmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fc3luY29iai5jCj4+PiBAQCAtMTI2LDEz ICsxMjYsMTQgQEAgc3RhdGljIHZvaWQKPj4gZHJtX3N5bmNvYmpfYWRkX2NhbGxiYWNrX2xvY2tl ZChzdHJ1Y3QgZHJtX3N5bmNvYmogKnN5bmNvYmosCj4+PiAgICB9Cj4+Pgo+Pj4gICAgc3RhdGlj IGludCBkcm1fc3luY29ial9mZW5jZV9nZXRfb3JfYWRkX2NhbGxiYWNrKHN0cnVjdCBkcm1fc3lu Y29iago+Pj4gKnN5bmNvYmosCj4+PiArCQkJCQkJIHU2NCBwb2ludCwKPj4+ICAgIAkJCQkJCSBz dHJ1Y3QgZG1hX2ZlbmNlICoqZmVuY2UsCj4+PiAgICAJCQkJCQkgc3RydWN0IGRybV9zeW5jb2Jq X2NiICpjYiwKPj4+ICAgIAkJCQkJCSBkcm1fc3luY29ial9mdW5jX3QgZnVuYykKPj4+ICAgIHsK Pj4+ICAgIAlpbnQgcmV0Owo+Pj4KPj4+IC0JcmV0ID0gZHJtX3N5bmNvYmpfc2VhcmNoX2ZlbmNl KHN5bmNvYmosIDAsIDAsIGZlbmNlKTsKPj4+ICsJcmV0ID0gZHJtX3N5bmNvYmpfc2VhcmNoX2Zl bmNlKHN5bmNvYmosIHBvaW50LCAwLCBmZW5jZSk7Cj4+PiAgICAJaWYgKCFyZXQpCj4+PiAgICAJ CXJldHVybiAxOwo+Pj4KPj4+IEBAIC0xNDMsNyArMTQ0LDcgQEAgc3RhdGljIGludAo+PiBkcm1f c3luY29ial9mZW5jZV9nZXRfb3JfYWRkX2NhbGxiYWNrKHN0cnVjdCBkcm1fc3luY29iaiAqc3lu Y29iaiwKPj4+ICAgIAkgKi8KPj4+ICAgIAlpZiAoIWxpc3RfZW1wdHkoJnN5bmNvYmotPnNpZ25h bF9wdF9saXN0KSkgewo+Pj4gICAgCQlzcGluX3VubG9jaygmc3luY29iai0+bG9jayk7Cj4+PiAt CQlkcm1fc3luY29ial9zZWFyY2hfZmVuY2Uoc3luY29iaiwgMCwgMCwgZmVuY2UpOwo+Pj4gKwkJ ZHJtX3N5bmNvYmpfc2VhcmNoX2ZlbmNlKHN5bmNvYmosIHBvaW50LCAwLCBmZW5jZSk7Cj4+PiAg ICAJCWlmICgqZmVuY2UpCj4+PiAgICAJCQlyZXR1cm4gMTsKPj4+ICAgIAkJc3Bpbl9sb2NrKCZz eW5jb2JqLT5sb2NrKTsKPj4+IEBAIC0zNTgsNyArMzU5LDkgQEAgdm9pZCBkcm1fc3luY29ial9y ZXBsYWNlX2ZlbmNlKHN0cnVjdAo+PiBkcm1fc3luY29iaiAqc3luY29iaiwKPj4+ICAgIAkJc3Bp bl9sb2NrKCZzeW5jb2JqLT5sb2NrKTsKPj4+ICAgIAkJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZl KGN1ciwgdG1wLCAmc3luY29iai0+Y2JfbGlzdCwgbm9kZSkKPj4gewo+Pj4gICAgCQkJbGlzdF9k ZWxfaW5pdCgmY3VyLT5ub2RlKTsKPj4+ICsJCQlzcGluX3VubG9jaygmc3luY29iai0+bG9jayk7 Cj4+PiAgICAJCQljdXItPmZ1bmMoc3luY29iaiwgY3VyKTsKPj4+ICsJCQlzcGluX2xvY2soJnN5 bmNvYmotPmxvY2spOwo+PiBUaGF0IGxvb2tzIGZpc2h5IHRvIG1lLiBXaHkgZG8gd2UgbmVlZCB0 byB1bmxvY2sKPiBDYiBmdW5jIHdpbGwgY2FsbCBfc2VhcmNoX2ZlbmNlLCB3aGljaCB3aWxsIG5l ZWQgdG8gZ3JhYiB0aGUgbG9jaywgb3RoZXJ3aXNlIGRlYWRsb2NrLgo+Cj4KPj4gYW5kIHdobyBn dWFyYW50ZWVzIHRoYXQKPj4gdG1wIGlzIHN0aWxsIHZhbGlkIHdoZW4gd2UgZ3JhYiB0aGUgbG9j ayBhZ2Fpbj8KPiBTb3JyeSBmb3IgdGhhdCwgcXVpY2tseSAgZml4IGRlYWRsb2NrIGFuZCBmb3Jn ZXQgdG8gY2FyZSB0aGF0IHdoZW4gZGVidWcuCj4gSG93IGFib3V0IHNwbGljZSB0byBhIHRtcCBs aXN0LCBhbmQgdGhlbiBsaXN0X2ZvciBfeHh4IHdpdGhvdXQgbG9jaz8KClllYWgsIHRoYXQgc2hv dWxkIHdvcmsuIEFsdGVybmF0aXZlIGlzIHRvIHVzZSBzb21ldGhpbmcgbGlrZSAid2hpbGUgCigh bGlzdF9lbXB0eSgpKSB7IGUgPSBsaXN0X2ZpcnN0X2VudHJ5KCk7IGxpc3RfZGVsKGUpLi4uLiIu IEJ1dCBlaXRoZXIgCndheSBzaG91bGQgd29yay4KCj4gQW55IG90aGVyIGNvbW1lbnQgb24gcGF0 Y2ggc2VyaWVzIGFuZCBsaWJkcm0gcGF0Y2hlcz8gICBUaGF0IG9uZSBjb21tZW50IGluY3JlYXNl cyBhIHBhdGNoIHNldCB2ZXJzaW9uIHNlZW1zIGJlIG92ZXJjb21taXQuCgpPbiBhIGZpcnN0IGds YW5jZSB0aGF0IHN0dWZmIGxvb2tlZCBnb29kLCBidXQgZ2l2ZSBtZSB0aWxsIG1vbmRheSBmb3Ig CnRoYXQuIEknbSBjdXJyZW50bHkgaW4gdGhlIG1pZGRsZSBvZiBkZWJ1Z2dpbmcgaXNzdWVzLgoK VGhhbmtzLApDaHJpc3RpYW4uCgo+Cj4gVGhhbmtzLAo+IERhdmlkIFpob3UKPgo+PiBBcGFydCBm cm9tIHRoYXQgY2FuJ3Qgc2VlIGFueXRoaW5nIG9idmlvdXMgd3JvbmcsIGJ1dCBJIGNlcnRhaW5s eSBuZWVkIHRvCj4+IHRha2UgYSBjbG9zZXIgbG9vay4KPj4KPj4gQ2hyaXN0aWFuLgo+Pgo+Pj4g ICAgCQl9Cj4+PiAgICAJCXNwaW5fdW5sb2NrKCZzeW5jb2JqLT5sb2NrKTsKPj4+ICAgIAl9Cj4+ PiBAQCAtODU2LDYgKzg1OSw3IEBAIHN0cnVjdCBzeW5jb2JqX3dhaXRfZW50cnkgewo+Pj4gICAg CXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwo+Pj4gICAgCXN0cnVjdCBkbWFfZmVuY2VfY2IgZmVu Y2VfY2I7Cj4+PiAgICAJc3RydWN0IGRybV9zeW5jb2JqX2NiIHN5bmNvYmpfY2I7Cj4+PiArCXU2 NCAgICBwb2ludDsKPj4+ICAgIH07Cj4+Pgo+Pj4gICAgc3RhdGljIHZvaWQgc3luY29ial93YWl0 X2ZlbmNlX2Z1bmMoc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UsIEBACj4+PiAtODczLDEyICs4Nzcs MTMgQEAgc3RhdGljIHZvaWQgc3luY29ial93YWl0X3N5bmNvYmpfZnVuYyhzdHJ1Y3QKPj4gZHJt X3N5bmNvYmogKnN5bmNvYmosCj4+PiAgICAJc3RydWN0IHN5bmNvYmpfd2FpdF9lbnRyeSAqd2Fp dCA9Cj4+PiAgICAJCWNvbnRhaW5lcl9vZihjYiwgc3RydWN0IHN5bmNvYmpfd2FpdF9lbnRyeSwg c3luY29ial9jYik7Cj4+Pgo+Pj4gLQlkcm1fc3luY29ial9zZWFyY2hfZmVuY2Uoc3luY29iaiwg MCwgMCwgJndhaXQtPmZlbmNlKTsKPj4+ICsJZHJtX3N5bmNvYmpfc2VhcmNoX2ZlbmNlKHN5bmNv YmosIHdhaXQtPnBvaW50LCAwLCAmd2FpdC0+ZmVuY2UpOwo+Pj4KPj4+ICAgIAl3YWtlX3VwX3By b2Nlc3Mod2FpdC0+dGFzayk7Cj4+PiAgICB9Cj4+Pgo+Pj4gICAgc3RhdGljIHNpZ25lZCBsb25n IGRybV9zeW5jb2JqX2FycmF5X3dhaXRfdGltZW91dChzdHJ1Y3QgZHJtX3N5bmNvYmoKPj4+ICoq c3luY29ianMsCj4+PiArCQkJCQkJICB2b2lkIF9fdXNlciAqdXNlcl9wb2ludHMsCj4+PiAgICAJ CQkJCQkgIHVpbnQzMl90IGNvdW50LAo+Pj4gICAgCQkJCQkJICB1aW50MzJfdCBmbGFncywKPj4+ ICAgIAkJCQkJCSAgc2lnbmVkIGxvbmcgdGltZW91dCwKPj4+IEBAIC04ODYsMTMgKzg5MSwyNyBA QCBzdGF0aWMgc2lnbmVkIGxvbmcKPj4gZHJtX3N5bmNvYmpfYXJyYXlfd2FpdF90aW1lb3V0KHN0 cnVjdCBkcm1fc3luY29iaiAqKnN5bmNvYmpzLAo+Pj4gICAgewo+Pj4gICAgCXN0cnVjdCBzeW5j b2JqX3dhaXRfZW50cnkgKmVudHJpZXM7Cj4+PiAgICAJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7 Cj4+PiArCXVpbnQ2NF90ICpwb2ludHM7Cj4+PiAgICAJc2lnbmVkIGxvbmcgcmV0Owo+Pj4gICAg CXVpbnQzMl90IHNpZ25hbGVkX2NvdW50LCBpOwo+Pj4KPj4+IC0JZW50cmllcyA9IGtjYWxsb2Mo Y291bnQsIHNpemVvZigqZW50cmllcyksIEdGUF9LRVJORUwpOwo+Pj4gLQlpZiAoIWVudHJpZXMp Cj4+PiArCXBvaW50cyA9IGttYWxsb2NfYXJyYXkoY291bnQsIHNpemVvZigqcG9pbnRzKSwgR0ZQ X0tFUk5FTCk7Cj4+PiArCWlmIChwb2ludHMgPT0gTlVMTCkKPj4+ICAgIAkJcmV0dXJuIC1FTk9N RU07Cj4+Pgo+Pj4gKwlpZiAoIXVzZXJfcG9pbnRzKSB7Cj4+PiArCQltZW1zZXQocG9pbnRzLCAw LCBjb3VudCAqIHNpemVvZih1aW50NjRfdCkpOwo+Pj4gKwl9IGVsc2UgaWYgKGNvcHlfZnJvbV91 c2VyKHBvaW50cywgdXNlcl9wb2ludHMsIHNpemVvZih1aW50NjRfdCkgKgo+PiBjb3VudCkpIHsK Pj4+ICsJCXJldCA9IC1FRkFVTFQ7Cj4+PiArCQlnb3RvIGVycl9mcmVlX3BvaW50czsKPj4+ICsJ fQo+Pj4gKwo+Pj4gKwo+Pj4gKwllbnRyaWVzID0ga2NhbGxvYyhjb3VudCwgc2l6ZW9mKCplbnRy aWVzKSwgR0ZQX0tFUk5FTCk7Cj4+PiArCWlmICghZW50cmllcykgewo+Pj4gKwkJcmV0ID0gLUVO T01FTTsKPj4+ICsJCWdvdG8gZXJyX2ZyZWVfcG9pbnRzOwo+Pj4gKwl9Cj4+PiAgICAJLyogV2Fs ayB0aGUgbGlzdCBvZiBzeW5jIG9iamVjdHMgYW5kIGluaXRpYWxpemUgZW50cmllcy4gIFdlIGRv Cj4+PiAgICAJICogdGhpcyB1cC1mcm9udCBzbyB0aGF0IHdlIGNhbiBwcm9wZXJseSByZXR1cm4g LUVJTlZBTCBpZiB0aGVyZSBpcwo+Pj4gICAgCSAqIGEgc3luY29iaiB3aXRoIGEgbWlzc2luZyBm ZW5jZSBhbmQgdGhlbiBuZXZlciBoYXZlIHRoZSBjaGFuY2Ugb2YKPj4+IEBAIC05MDEsNyArOTIw LDggQEAgc3RhdGljIHNpZ25lZCBsb25nCj4+IGRybV9zeW5jb2JqX2FycmF5X3dhaXRfdGltZW91 dChzdHJ1Y3QgZHJtX3N5bmNvYmogKipzeW5jb2JqcywKPj4+ICAgIAlzaWduYWxlZF9jb3VudCA9 IDA7Cj4+PiAgICAJZm9yIChpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKPj4+ICAgIAkJZW50cmll c1tpXS50YXNrID0gY3VycmVudDsKPj4+IC0JCXJldCA9IGRybV9zeW5jb2JqX3NlYXJjaF9mZW5j ZShzeW5jb2Jqc1tpXSwgMCwgMCwKPj4+ICsJCWVudHJpZXNbaV0ucG9pbnQgPSBwb2ludHNbaV07 Cj4+PiArCQlyZXQgPSBkcm1fc3luY29ial9zZWFyY2hfZmVuY2Uoc3luY29ianNbaV0sIHBvaW50 c1tpXSwgMCwKPj4+ICAgIAkJCQkJICAgICAgICZlbnRyaWVzW2ldLmZlbmNlKTsKPj4+ICAgIAkJ aWYgKCFlbnRyaWVzW2ldLmZlbmNlKSB7Cj4+PiAgICAJCQlpZiAoZmxhZ3MgJgo+PiBEUk1fU1lO Q09CSl9XQUlUX0ZMQUdTX1dBSVRfRk9SX1NVQk1JVCkgeyBAQCAtOTQwLDYKPj4+ICs5NjAsNyBA QCBzdGF0aWMgc2lnbmVkIGxvbmcgZHJtX3N5bmNvYmpfYXJyYXlfd2FpdF90aW1lb3V0KHN0cnVj dAo+PiBkcm1fc3luY29iaiAqKnN5bmNvYmpzLAo+Pj4gICAgCWlmIChmbGFncyAmIERSTV9TWU5D T0JKX1dBSVRfRkxBR1NfV0FJVF9GT1JfU1VCTUlUKSB7Cj4+PiAgICAJCWZvciAoaSA9IDA7IGkg PCBjb3VudDsgKytpKSB7Cj4+Pgo+PiAJZHJtX3N5bmNvYmpfZmVuY2VfZ2V0X29yX2FkZF9jYWxs YmFjayhzeW5jb2Jqc1tpXSwKPj4+ICsJCQkJCQkJICAgICAgZW50cmllc1tpXS5wb2ludCwKPj4+ ICAgIAkJCQkJCQkgICAgICAmZW50cmllc1tpXS5mZW5jZSwKPj4+Cj4+ICZlbnRyaWVzW2ldLnN5 bmNvYmpfY2IsCj4+IHN5bmNvYmpfd2FpdF9zeW5jb2JqX2Z1bmMpOyBAQCAtMTAwMyw2ICsxMDI0 LDkgQEAKPj4+IHN0YXRpYyBzaWduZWQgbG9uZyBkcm1fc3luY29ial9hcnJheV93YWl0X3RpbWVv dXQoc3RydWN0IGRybV9zeW5jb2JqCj4+ICoqc3luY29ianMsCj4+PiAgICAJfQo+Pj4gICAgCWtm cmVlKGVudHJpZXMpOwo+Pj4KPj4+ICtlcnJfZnJlZV9wb2ludHM6Cj4+PiArCWtmcmVlKHBvaW50 cyk7Cj4+PiArCj4+PiAgICAJcmV0dXJuIHJldDsKPj4+ICAgIH0KPj4+Cj4+PiBAQCAtMTA0MSwy MCArMTA2NSwzMyBAQCBzdGF0aWMgc2lnbmVkIGxvbmcKPj4gZHJtX3RpbWVvdXRfYWJzX3RvX2pp ZmZpZXMoaW50NjRfdCB0aW1lb3V0X25zZWMpCj4+PiAgICBzdGF0aWMgaW50IGRybV9zeW5jb2Jq X2FycmF5X3dhaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPj4+ICAgIAkJCQkgIHN0cnVjdCBk cm1fZmlsZSAqZmlsZV9wcml2YXRlLAo+Pj4gICAgCQkJCSAgc3RydWN0IGRybV9zeW5jb2JqX3dh aXQgKndhaXQsCj4+PiAtCQkJCSAgc3RydWN0IGRybV9zeW5jb2JqICoqc3luY29ianMpCj4+PiAr CQkJCSAgc3RydWN0IGRybV9zeW5jb2JqX3RpbWVsaW5lX3dhaXQKPj4gKnRpbWVsaW5lX3dhaXQs Cj4+PiArCQkJCSAgc3RydWN0IGRybV9zeW5jb2JqICoqc3luY29ianMsIGJvb2wKPj4gdGltZWxp bmUpCj4+PiAgICB7Cj4+PiAtCXNpZ25lZCBsb25nIHRpbWVvdXQgPSBkcm1fdGltZW91dF9hYnNf dG9famlmZmllcyh3YWl0LQo+Pj4gdGltZW91dF9uc2VjKTsKPj4+ICsJc2lnbmVkIGxvbmcgdGlt ZW91dCA9IDA7Cj4+PiAgICAJc2lnbmVkIGxvbmcgcmV0ID0gMDsKPj4+ICAgIAl1aW50MzJfdCBm aXJzdCA9IH4wOwo+Pj4KPj4+IC0JcmV0ID0gZHJtX3N5bmNvYmpfYXJyYXlfd2FpdF90aW1lb3V0 KHN5bmNvYmpzLAo+Pj4gLQkJCQkJICAgICB3YWl0LT5jb3VudF9oYW5kbGVzLAo+Pj4gLQkJCQkJ ICAgICB3YWl0LT5mbGFncywKPj4+IC0JCQkJCSAgICAgdGltZW91dCwgJmZpcnN0KTsKPj4+ICsJ aWYgKCF0aW1lbGluZSkgewo+Pj4gKwkJdGltZW91dCA9IGRybV90aW1lb3V0X2Fic190b19qaWZm aWVzKHdhaXQtPnRpbWVvdXRfbnNlYyk7Cj4+PiArCQlyZXQgPSBkcm1fc3luY29ial9hcnJheV93 YWl0X3RpbWVvdXQoc3luY29ianMsCj4+PiArCQkJCQkJICAgICBOVUxMLAo+Pj4gKwkJCQkJCSAg ICAgd2FpdC0+Y291bnRfaGFuZGxlcywKPj4+ICsJCQkJCQkgICAgIHdhaXQtPmZsYWdzLAo+Pj4g KwkJCQkJCSAgICAgdGltZW91dCwgJmZpcnN0KTsKPj4+ICsJCXdhaXQtPmZpcnN0X3NpZ25hbGVk ID0gZmlyc3Q7Cj4+PiArCX0gZWxzZSB7Cj4+PiArCQl0aW1lb3V0ID0gZHJtX3RpbWVvdXRfYWJz X3RvX2ppZmZpZXModGltZWxpbmVfd2FpdC0KPj4+IHRpbWVvdXRfbnNlYyk7Cj4+PiArCQlyZXQg PSBkcm1fc3luY29ial9hcnJheV93YWl0X3RpbWVvdXQoc3luY29ianMsCj4+PiArCj4+IHU2NF90 b191c2VyX3B0cih0aW1lbGluZV93YWl0LT5wb2ludHMpLAo+Pj4gKwkJCQkJCSAgICAgdGltZWxp bmVfd2FpdC0KPj4+IGNvdW50X2hhbmRsZXMsCj4+PiArCQkJCQkJICAgICB0aW1lbGluZV93YWl0 LT5mbGFncywKPj4+ICsJCQkJCQkgICAgIHRpbWVvdXQsICZmaXJzdCk7Cj4+PiArCQl0aW1lbGlu ZV93YWl0LT5maXJzdF9zaWduYWxlZCA9IGZpcnN0Owo+Pj4gKwl9Cj4+PiAgICAJaWYgKHJldCA8 IDApCj4+PiAgICAJCXJldHVybiByZXQ7Cj4+Pgo+Pj4gLQl3YWl0LT5maXJzdF9zaWduYWxlZCA9 IGZpcnN0Owo+Pj4gICAgCWlmIChyZXQgPT0gMCkKPj4+ICAgIAkJcmV0dXJuIC1FVElNRTsKPj4+ ICAgIAlyZXR1cm4gMDsKPj4+IEBAIC0xMTQyLDEzICsxMTc5LDQ3IEBAIGRybV9zeW5jb2JqX3dh aXRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UKPj4gKmRldiwgdm9pZCAqZGF0YSwKPj4+ICAgIAkJ cmV0dXJuIHJldDsKPj4+Cj4+PiAgICAJcmV0ID0gZHJtX3N5bmNvYmpfYXJyYXlfd2FpdChkZXYs IGZpbGVfcHJpdmF0ZSwKPj4+IC0JCQkJICAgICBhcmdzLCBzeW5jb2Jqcyk7Cj4+PiArCQkJCSAg ICAgYXJncywgTlVMTCwgc3luY29ianMsIGZhbHNlKTsKPj4+Cj4+PiAgICAJZHJtX3N5bmNvYmpf YXJyYXlfZnJlZShzeW5jb2JqcywgYXJncy0+Y291bnRfaGFuZGxlcyk7Cj4+Pgo+Pj4gICAgCXJl dHVybiByZXQ7Cj4+PiAgICB9Cj4+Pgo+Pj4gK2ludAo+Pj4gK2RybV9zeW5jb2JqX3RpbWVsaW5l X3dhaXRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPj4+ICsJCQkJ c3RydWN0IGRybV9maWxlICpmaWxlX3ByaXZhdGUpCj4+PiArewo+Pj4gKwlzdHJ1Y3QgZHJtX3N5 bmNvYmpfdGltZWxpbmVfd2FpdCAqYXJncyA9IGRhdGE7Cj4+PiArCXN0cnVjdCBkcm1fc3luY29i aiAqKnN5bmNvYmpzOwo+Pj4gKwlpbnQgcmV0ID0gMDsKPj4+ICsKPj4+ICsJaWYgKCFkcm1fY29y ZV9jaGVja19mZWF0dXJlKGRldiwgRFJJVkVSX1NZTkNPQkopKQo+Pj4gKwkJcmV0dXJuIC1FTk9E RVY7Cj4+PiArCj4+PiArCWlmIChhcmdzLT5mbGFncyAmIH4oRFJNX1NZTkNPQkpfV0FJVF9GTEFH U19XQUlUX0FMTCB8Cj4+PiArCj4+IERSTV9TWU5DT0JKX1dBSVRfRkxBR1NfV0FJVF9GT1JfU1VC TUlUKSkKPj4+ICsJCXJldHVybiAtRUlOVkFMOwo+Pj4gKwo+Pj4gKwlpZiAoYXJncy0+Y291bnRf aGFuZGxlcyA9PSAwKQo+Pj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4+PiArCj4+PiArCXJldCA9IGRy bV9zeW5jb2JqX2FycmF5X2ZpbmQoZmlsZV9wcml2YXRlLAo+Pj4gKwkJCQkgICAgIHU2NF90b191 c2VyX3B0cihhcmdzLT5oYW5kbGVzKSwKPj4+ICsJCQkJICAgICBhcmdzLT5jb3VudF9oYW5kbGVz LAo+Pj4gKwkJCQkgICAgICZzeW5jb2Jqcyk7Cj4+PiArCWlmIChyZXQgPCAwKQo+Pj4gKwkJcmV0 dXJuIHJldDsKPj4+ICsKPj4+ICsJcmV0ID0gZHJtX3N5bmNvYmpfYXJyYXlfd2FpdChkZXYsIGZp bGVfcHJpdmF0ZSwKPj4+ICsJCQkJICAgICBOVUxMLCBhcmdzLCBzeW5jb2JqcywgdHJ1ZSk7Cj4+ PiArCj4+PiArCWRybV9zeW5jb2JqX2FycmF5X2ZyZWUoc3luY29ianMsIGFyZ3MtPmNvdW50X2hh bmRsZXMpOwo+Pj4gKwo+Pj4gKwlyZXR1cm4gcmV0Owo+Pj4gK30KPj4+ICsKPj4+ICsKPj4+ICAg IGludAo+Pj4gICAgZHJtX3N5bmNvYmpfcmVzZXRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdm9pZCAqZGF0YSwKPj4+ICAgIAkJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2YXRlKQo+ Pj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmggYi9pbmNsdWRlL3VhcGkvZHJt L2RybS5oIGluZGV4Cj4+PiBjZWJkYjI1NDFlYjcuLjUwMWU4NmQ4MWY0NyAxMDA2NDQKPj4+IC0t LSBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgKPj4+ICsrKyBiL2luY2x1ZGUvdWFwaS9kcm0vZHJt LmgKPj4+IEBAIC03NDgsNiArNzQ4LDE5IEBAIHN0cnVjdCBkcm1fc3luY29ial93YWl0IHsKPj4+ ICAgIAlfX3UzMiBwYWQ7Cj4+PiAgICB9Owo+Pj4KPj4+ICtzdHJ1Y3QgZHJtX3N5bmNvYmpfdGlt ZWxpbmVfd2FpdCB7Cj4+PiArCV9fdTY0IGhhbmRsZXM7Cj4+PiArCS8qIHdhaXQgb24gc3BlY2lm aWMgdGltZWxpbmUgcG9pbnQgZm9yIGV2ZXJ5IGhhbmRsZXMqLwo+Pj4gKwlfX3U2NCBwb2ludHM7 Cj4+PiArCS8qIGFic29sdXRlIHRpbWVvdXQgKi8KPj4+ICsJX19zNjQgdGltZW91dF9uc2VjOwo+ Pj4gKwlfX3UzMiBjb3VudF9oYW5kbGVzOwo+Pj4gKwlfX3UzMiBmbGFnczsKPj4+ICsJX191MzIg Zmlyc3Rfc2lnbmFsZWQ7IC8qIG9ubHkgdmFsaWQgd2hlbiBub3Qgd2FpdGluZyBhbGwgKi8KPj4+ ICsJX191MzIgcGFkOwo+Pj4gK307Cj4+PiArCj4+PiArCj4+PiAgICBzdHJ1Y3QgZHJtX3N5bmNv YmpfYXJyYXkgewo+Pj4gICAgCV9fdTY0IGhhbmRsZXM7Cj4+PiAgICAJX191MzIgY291bnRfaGFu ZGxlczsKPj4+IEBAIC05MTAsNiArOTIzLDcgQEAgZXh0ZXJuICJDIiB7Cj4+PiAgICAjZGVmaW5l IERSTV9JT0NUTF9NT0RFX0dFVF9MRUFTRQlEUk1fSU9XUigweEM4LCBzdHJ1Y3QKPj4gZHJtX21v ZGVfZ2V0X2xlYXNlKQo+Pj4gICAgI2RlZmluZSBEUk1fSU9DVExfTU9ERV9SRVZPS0VfTEVBU0UJ RFJNX0lPV1IoMHhDOSwKPj4gc3RydWN0IGRybV9tb2RlX3Jldm9rZV9sZWFzZSkKPj4+ICsjZGVm aW5lIERSTV9JT0NUTF9TWU5DT0JKX1RJTUVMSU5FX1dBSVQJRFJNX0lPV1IoMHhDQSwKPj4gc3Ry dWN0IGRybV9zeW5jb2JqX3RpbWVsaW5lX3dhaXQpCj4+PiAgICAvKioKPj4+ICAgICAqIERldmlj ZSBzcGVjaWZpYyBpb2N0bHMgc2hvdWxkIG9ubHkgYmUgaW4gdGhlaXIgcmVzcGVjdGl2ZSBoZWFk ZXJzCj4+PiAgICAgKiBUaGUgZGV2aWNlIHNwZWNpZmljIGlvY3RsIHJhbmdlIGlzIGZyb20gMHg0 MCB0byAweDlmLgo+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwo+PiBhbWQtZ2Z4IG1haWxpbmcgbGlzdAo+PiBhbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwo+PiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Ft ZC1nZngKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRy aS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=