From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH 1/5] drm: add support of syncobj timeline point wait v4 Date: Fri, 2 Nov 2018 09:35:08 +0100 Message-ID: References: <20181102082517.4456-1-david1.zhou@amd.com> Reply-To: christian.koenig@amd.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wr1-x441.google.com (mail-wr1-x441.google.com [IPv6:2a00:1450:4864:20::441]) by gabe.freedesktop.org (Postfix) with ESMTPS id 669636E53F for ; Fri, 2 Nov 2018 08:35:11 +0000 (UTC) Received: by mail-wr1-x441.google.com with SMTP id j26-v6so1120174wre.1 for ; Fri, 02 Nov 2018 01:35:11 -0700 (PDT) In-Reply-To: <20181102082517.4456-1-david1.zhou@amd.com> 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: Chunming Zhou , dri-devel@lists.freedesktop.org Cc: Dave Airlie , Daniel Rakos , =?UTF-8?Q?Christian_K=c3=b6nig?= , Jason Ekstrand List-Id: dri-devel@lists.freedesktop.org QW0gMDIuMTEuMTggdW0gMDk6MjUgc2NocmllYiBDaHVubWluZyBaaG91Ogo+IHBvaW50cyBhcnJh eSBpcyBvbmUtdG8tb25lIG1hdGNoIHdpdGggc3luY29ianMgYXJyYXkuCj4gdjI6Cj4gYWRkIHNl cGVyYXRlIGlvY3RsIGZvciB0aW1lbGluZSBwb2ludCB3YWl0LCBvdGhlcndpc2UgYnJlYWsgdWFw aS4KPiB2MzoKPiB1c2Vyc3BhY2UgY2FuIHNwZWNpZnkgdHdvIGtpbmRzIHdhaXRzOjoKPiBhLiBX YWl0IGZvciB0aW1lIHBvaW50IHRvIGJlIGNvbXBsZXRlZC4KPiBiLiBhbmQgd2FpdCBmb3IgdGlt ZSBwb2ludCB0byBiZWNvbWUgYXZhaWxhYmxlCj4gdjQ6Cj4gcmViYXNlCj4KPiBTaWduZWQtb2Zm LWJ5OiBDaHVubWluZyBaaG91IDxkYXZpZDEuemhvdUBhbWQuY29tPgo+IENjOiBEYW5pZWwgUmFr b3MgPERhbmllbC5SYWtvc0BhbWQuY29tPgo+IENjOiBKYXNvbiBFa3N0cmFuZCA8amFzb25Aamxl a3N0cmFuZC5uZXQ+Cj4gQ2M6IEJhcyBOaWV1d2VuaHVpemVuIDxiYXNAYmFzbmlldXdlbmh1aXpl bi5ubD4KPiBDYzogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVkaGF0LmNvbT4KPiBDYzogQ2hyaXN0 aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgo+IENjOiBDaHJpcyBXaWxzb24g PGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9kcm1f aW50ZXJuYWwuaCB8ICAgMiArCj4gICBkcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMgICAgfCAg IDIgKwo+ICAgZHJpdmVycy9ncHUvZHJtL2RybV9zeW5jb2JqLmMgIHwgMTE1ICsrKysrKysrKysr KysrKysrKysrKysrKysrKystLS0tLQo+ICAgaW5jbHVkZS91YXBpL2RybS9kcm0uaCAgICAgICAg IHwgIDE4ICsrKysrKwo+ICAgNCBmaWxlcyBjaGFuZ2VkLCAxMjEgaW5zZXJ0aW9ucygrKSwgMTYg ZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5h bC5oIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oCj4gaW5kZXggMGM0ZWI0YTlhYjMx Li41NjZkNDRlM2M3ODIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5h bC5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oCj4gQEAgLTE4Myw2ICsx ODMsOCBAQCBpbnQgZHJtX3N5bmNvYmpfZmRfdG9faGFuZGxlX2lvY3RsKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gICAJCQkJICAgc3RydWN0IGRybV9maWxlICpmaWxlX3By aXZhdGUpOwo+ICAgaW50IGRybV9zeW5jb2JqX3dhaXRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgdm9pZCAqZGF0YSwKPiAgIAkJCSAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2YXRl KTsKPiAraW50IGRybV9zeW5jb2JqX3RpbWVsaW5lX3dhaXRfaW9jdGwoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgdm9pZCAqZGF0YSwKPiArCQkJCSAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJp dmF0ZSk7Cj4gICBpbnQgZHJtX3N5bmNvYmpfcmVzZXRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgdm9pZCAqZGF0YSwKPiAgIAkJCSAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdmF0 ZSk7Cj4gICBpbnQgZHJtX3N5bmNvYmpfc2lnbmFsX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHZvaWQgKmRhdGEsCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwu YyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYwo+IGluZGV4IDk0YmQ4NzJkNTZjNC4uYTlh MTdlZDM1Y2M0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYwo+IEBAIC02NzUsNiArNjc1LDggQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBkcm1faW9jdGxfZGVzYyBkcm1faW9jdGxzW10gPSB7Cj4gICAJCSAg ICAgIERSTV9VTkxPQ0tFRHxEUk1fUkVOREVSX0FMTE9XKSwKPiAgIAlEUk1fSU9DVExfREVGKERS TV9JT0NUTF9TWU5DT0JKX1dBSVQsIGRybV9zeW5jb2JqX3dhaXRfaW9jdGwsCj4gICAJCSAgICAg IERSTV9VTkxPQ0tFRHxEUk1fUkVOREVSX0FMTE9XKSwKPiArCURSTV9JT0NUTF9ERUYoRFJNX0lP Q1RMX1NZTkNPQkpfVElNRUxJTkVfV0FJVCwgZHJtX3N5bmNvYmpfdGltZWxpbmVfd2FpdF9pb2N0 bCwKPiArCQkgICAgICBEUk1fVU5MT0NLRUR8RFJNX1JFTkRFUl9BTExPVyksCj4gICAJRFJNX0lP Q1RMX0RFRihEUk1fSU9DVExfU1lOQ09CSl9SRVNFVCwgZHJtX3N5bmNvYmpfcmVzZXRfaW9jdGws Cj4gICAJCSAgICAgIERSTV9VTkxPQ0tFRHxEUk1fUkVOREVSX0FMTE9XKSwKPiAgIAlEUk1fSU9D VExfREVGKERSTV9JT0NUTF9TWU5DT0JKX1NJR05BTCwgZHJtX3N5bmNvYmpfc2lnbmFsX2lvY3Rs LAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3N5bmNvYmouYyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fc3luY29iai5jCj4gaW5kZXggNGRjYTVmN2U4YzRiLi45ZGM1NGEzNDU0ODAg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9zeW5jb2JqLmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX3N5bmNvYmouYwo+IEBAIC0xNTMsMTEgKzE1MywxMiBAQCBzdGF0aWMg dm9pZCBkcm1fc3luY29ial9hZGRfY2FsbGJhY2tfbG9ja2VkKHN0cnVjdCBkcm1fc3luY29iaiAq c3luY29iaiwKPiAgIH0KPiAgIAo+ICAgc3RhdGljIHZvaWQgZHJtX3N5bmNvYmpfZmVuY2VfZ2V0 X29yX2FkZF9jYWxsYmFjayhzdHJ1Y3QgZHJtX3N5bmNvYmogKnN5bmNvYmosCj4gKwkJCQkJCSAg dWludDY0X3QgcG9pbnQsCj4gICAJCQkJCQkgIHN0cnVjdCBkbWFfZmVuY2UgKipmZW5jZSwKPiAg IAkJCQkJCSAgc3RydWN0IGRybV9zeW5jb2JqX2NiICpjYiwKPiAgIAkJCQkJCSAgZHJtX3N5bmNv YmpfZnVuY190IGZ1bmMpCj4gICB7Cj4gLQl1NjQgcHRfdmFsdWUgPSAwOwo+ICsJdTY0IHB0X3Zh bHVlID0gcG9pbnQ7Cj4gICAKPiAgIAlXQVJOX09OKCpmZW5jZSk7Cj4gICAKPiBAQCAtODU0LDYg Kzg1NSw3IEBAIHN0cnVjdCBzeW5jb2JqX3dhaXRfZW50cnkgewo+ICAgCXN0cnVjdCBkbWFfZmVu Y2UgKmZlbmNlOwo+ICAgCXN0cnVjdCBkbWFfZmVuY2VfY2IgZmVuY2VfY2I7Cj4gICAJc3RydWN0 IGRybV9zeW5jb2JqX2NiIHN5bmNvYmpfY2I7Cj4gKwl1NjQgICAgcG9pbnQ7Cj4gICB9Owo+ICAg Cj4gICBzdGF0aWMgdm9pZCBzeW5jb2JqX3dhaXRfZmVuY2VfZnVuYyhzdHJ1Y3QgZG1hX2ZlbmNl ICpmZW5jZSwKPiBAQCAtODcxLDEyICs4NzMsMTMgQEAgc3RhdGljIHZvaWQgc3luY29ial93YWl0 X3N5bmNvYmpfZnVuYyhzdHJ1Y3QgZHJtX3N5bmNvYmogKnN5bmNvYmosCj4gICAJc3RydWN0IHN5 bmNvYmpfd2FpdF9lbnRyeSAqd2FpdCA9Cj4gICAJCWNvbnRhaW5lcl9vZihjYiwgc3RydWN0IHN5 bmNvYmpfd2FpdF9lbnRyeSwgc3luY29ial9jYik7Cj4gICAKPiAtCWRybV9zeW5jb2JqX3NlYXJj aF9mZW5jZShzeW5jb2JqLCAwLCAwLCAmd2FpdC0+ZmVuY2UpOwo+ICsJZHJtX3N5bmNvYmpfc2Vh cmNoX2ZlbmNlKHN5bmNvYmosIHdhaXQtPnBvaW50LCAwLCAmd2FpdC0+ZmVuY2UpOwo+ICAgCj4g ICAJd2FrZV91cF9wcm9jZXNzKHdhaXQtPnRhc2spOwo+ICAgfQo+ICAgCj4gICBzdGF0aWMgc2ln bmVkIGxvbmcgZHJtX3N5bmNvYmpfYXJyYXlfd2FpdF90aW1lb3V0KHN0cnVjdCBkcm1fc3luY29i aiAqKnN5bmNvYmpzLAo+ICsJCQkJCQkgIHZvaWQgX191c2VyICp1c2VyX3BvaW50cywKPiAgIAkJ CQkJCSAgdWludDMyX3QgY291bnQsCj4gICAJCQkJCQkgIHVpbnQzMl90IGZsYWdzLAo+ICAgCQkJ CQkJICBzaWduZWQgbG9uZyB0aW1lb3V0LAo+IEBAIC04ODQsMTIgKzg4NywzNyBAQCBzdGF0aWMg c2lnbmVkIGxvbmcgZHJtX3N5bmNvYmpfYXJyYXlfd2FpdF90aW1lb3V0KHN0cnVjdCBkcm1fc3lu Y29iaiAqKnN5bmNvYmpzLAo+ICAgewo+ICAgCXN0cnVjdCBzeW5jb2JqX3dhaXRfZW50cnkgKmVu dHJpZXM7Cj4gICAJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7Cj4gKwl1aW50NjRfdCAqcG9pbnRz Owo+ICAgCXVpbnQzMl90IHNpZ25hbGVkX2NvdW50LCBpOwo+ICAgCj4gLQllbnRyaWVzID0ga2Nh bGxvYyhjb3VudCwgc2l6ZW9mKCplbnRyaWVzKSwgR0ZQX0tFUk5FTCk7Cj4gLQlpZiAoIWVudHJp ZXMpCj4gKwlwb2ludHMgPSBrbWFsbG9jX2FycmF5KGNvdW50LCBzaXplb2YoKnBvaW50cyksIEdG UF9LRVJORUwpOwo+ICsJaWYgKHBvaW50cyA9PSBOVUxMKQo+ICAgCQlyZXR1cm4gLUVOT01FTTsK PiAgIAo+ICsJaWYgKCF1c2VyX3BvaW50cykgewo+ICsJCW1lbXNldChwb2ludHMsIDAsIGNvdW50 ICogc2l6ZW9mKHVpbnQ2NF90KSk7Cj4gKwl9IGVsc2UgaWYgKGNvcHlfZnJvbV91c2VyKHBvaW50 cywgdXNlcl9wb2ludHMsIHNpemVvZih1aW50NjRfdCkgKiBjb3VudCkpIHsKPiArCQl0aW1lb3V0 ID0gLUVGQVVMVDsKPiArCQlnb3RvIGVycl9mcmVlX3BvaW50czsKPiArCX0KPiArCj4gKwoKRG91 YmxlIGVtcHR5IGxpbmUgaGVyZS4KCj4gKwlpZiAoZmxhZ3MgJiBEUk1fU1lOQ09CSl9XQUlUX0ZM QUdTX1dBSVRfQVZBSUxBQkxFKSB7Cj4gKwkJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7Cj4gKwkJ Zm9yIChpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKPiArCQkJdGltZW91dCA9IGRybV9zeW5jb2Jq X3NlYXJjaF9mZW5jZShzeW5jb2Jqc1tpXSwgcG9pbnRzW2ldLAo+ICsJCQkJCQkJICAgRFJNX1NZ TkNPQkpfV0FJVF9GTEFHU19XQUlUX0ZPUl9TVUJNSVQsCj4gKwkJCQkJCQkgICAmZmVuY2UpOwo+ ICsJCQlpZiAodGltZW91dCkKPiArCQkJCWdvdG8gZXJyX2ZyZWVfcG9pbnRzOwo+ICsJCX0KPiAr CQlnb3RvIGVycl9mcmVlX3BvaW50czsKCkEgY29tbWVudCB3b3VsZCBiZSBuaWNlIGhlcmUgdG8g bm90ZSB0aGF0IHdlIG9ubHkgd2FpdCBmb3IgdGhlIGZlbmNlcyB0byAKYmVjb21lIGF2YWlsYWJs ZS4KCkFsdGVybmF0aXZlbHkgaXQgbWlnaHQgYmUgYSBnb29kIGlkZWEgdG8gbWFrZSB0aGlzIGFu IHNlcGFyYXRlIElPQ1RMLgoKQXBhcnQgZnJvbSB0aG9zZSBuaXQgcGlja3MgbG9va3MgcXVpdGUg Z29vZCB0byBtZSwKQ2hyaXN0aWFuLgoKPiArCX0KPiArCWVudHJpZXMgPSBrY2FsbG9jKGNvdW50 LCBzaXplb2YoKmVudHJpZXMpLCBHRlBfS0VSTkVMKTsKPiArCWlmICghZW50cmllcykgewo+ICsJ CXRpbWVvdXQgPSAtRU5PTUVNOwo+ICsJCWdvdG8gZXJyX2ZyZWVfcG9pbnRzOwo+ICsJfQo+ICAg CS8qIFdhbGsgdGhlIGxpc3Qgb2Ygc3luYyBvYmplY3RzIGFuZCBpbml0aWFsaXplIGVudHJpZXMu ICBXZSBkbwo+ICAgCSAqIHRoaXMgdXAtZnJvbnQgc28gdGhhdCB3ZSBjYW4gcHJvcGVybHkgcmV0 dXJuIC1FSU5WQUwgaWYgdGhlcmUgaXMKPiAgIAkgKiBhIHN5bmNvYmogd2l0aCBhIG1pc3Npbmcg ZmVuY2UgYW5kIHRoZW4gbmV2ZXIgaGF2ZSB0aGUgY2hhbmNlIG9mCj4gQEAgLTg5OCw3ICs5MjYs OCBAQCBzdGF0aWMgc2lnbmVkIGxvbmcgZHJtX3N5bmNvYmpfYXJyYXlfd2FpdF90aW1lb3V0KHN0 cnVjdCBkcm1fc3luY29iaiAqKnN5bmNvYmpzLAo+ICAgCXNpZ25hbGVkX2NvdW50ID0gMDsKPiAg IAlmb3IgKGkgPSAwOyBpIDwgY291bnQ7ICsraSkgewo+ICAgCQllbnRyaWVzW2ldLnRhc2sgPSBj dXJyZW50Owo+IC0JCWRybV9zeW5jb2JqX3NlYXJjaF9mZW5jZShzeW5jb2Jqc1tpXSwgMCwgMCwK PiArCQllbnRyaWVzW2ldLnBvaW50ID0gcG9pbnRzW2ldOwo+ICsJCWRybV9zeW5jb2JqX3NlYXJj aF9mZW5jZShzeW5jb2Jqc1tpXSwgcG9pbnRzW2ldLCAwLAo+ICAgCQkJCQkgJmVudHJpZXNbaV0u ZmVuY2UpOwo+ICAgCQlpZiAoIWVudHJpZXNbaV0uZmVuY2UpIHsKPiAgIAkJCWlmIChmbGFncyAm IERSTV9TWU5DT0JKX1dBSVRfRkxBR1NfV0FJVF9GT1JfU1VCTUlUKSB7Cj4gQEAgLTkzNCw2ICs5 NjMsNyBAQCBzdGF0aWMgc2lnbmVkIGxvbmcgZHJtX3N5bmNvYmpfYXJyYXlfd2FpdF90aW1lb3V0 KHN0cnVjdCBkcm1fc3luY29iaiAqKnN5bmNvYmpzLAo+ICAgCQkJCWNvbnRpbnVlOwo+ICAgCj4g ICAJCQlkcm1fc3luY29ial9mZW5jZV9nZXRfb3JfYWRkX2NhbGxiYWNrKHN5bmNvYmpzW2ldLAo+ ICsJCQkJCQkJICAgICAgZW50cmllc1tpXS5wb2ludCwKPiAgIAkJCQkJCQkgICAgICAmZW50cmll c1tpXS5mZW5jZSwKPiAgIAkJCQkJCQkgICAgICAmZW50cmllc1tpXS5zeW5jb2JqX2NiLAo+ICAg CQkJCQkJCSAgICAgIHN5bmNvYmpfd2FpdF9zeW5jb2JqX2Z1bmMpOwo+IEBAIC05OTYsNiArMTAy Niw5IEBAIHN0YXRpYyBzaWduZWQgbG9uZyBkcm1fc3luY29ial9hcnJheV93YWl0X3RpbWVvdXQo c3RydWN0IGRybV9zeW5jb2JqICoqc3luY29ianMsCj4gICAJfQo+ICAgCWtmcmVlKGVudHJpZXMp Owo+ICAgCj4gK2Vycl9mcmVlX3BvaW50czoKPiArCWtmcmVlKHBvaW50cyk7Cj4gKwo+ICAgCXJl dHVybiB0aW1lb3V0Owo+ICAgfQo+ICAgCj4gQEAgLTEwMzQsMTkgKzEwNjcsMzMgQEAgc3RhdGlj IHNpZ25lZCBsb25nIGRybV90aW1lb3V0X2Fic190b19qaWZmaWVzKGludDY0X3QgdGltZW91dF9u c2VjKQo+ICAgc3RhdGljIGludCBkcm1fc3luY29ial9hcnJheV93YWl0KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCj4gICAJCQkJICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdmF0ZSwKPiAgIAkJ CQkgIHN0cnVjdCBkcm1fc3luY29ial93YWl0ICp3YWl0LAo+IC0JCQkJICBzdHJ1Y3QgZHJtX3N5 bmNvYmogKipzeW5jb2JqcykKPiArCQkJCSAgc3RydWN0IGRybV9zeW5jb2JqX3RpbWVsaW5lX3dh aXQgKnRpbWVsaW5lX3dhaXQsCj4gKwkJCQkgIHN0cnVjdCBkcm1fc3luY29iaiAqKnN5bmNvYmpz LCBib29sIHRpbWVsaW5lKQo+ICAgewo+IC0Jc2lnbmVkIGxvbmcgdGltZW91dCA9IGRybV90aW1l b3V0X2Fic190b19qaWZmaWVzKHdhaXQtPnRpbWVvdXRfbnNlYyk7Cj4gKwlzaWduZWQgbG9uZyB0 aW1lb3V0ID0gMDsKPiAgIAl1aW50MzJfdCBmaXJzdCA9IH4wOwo+ICAgCj4gLQl0aW1lb3V0ID0g ZHJtX3N5bmNvYmpfYXJyYXlfd2FpdF90aW1lb3V0KHN5bmNvYmpzLAo+IC0JCQkJCQkgd2FpdC0+ Y291bnRfaGFuZGxlcywKPiAtCQkJCQkJIHdhaXQtPmZsYWdzLAo+IC0JCQkJCQkgdGltZW91dCwg JmZpcnN0KTsKPiAtCWlmICh0aW1lb3V0IDwgMCkKPiAtCQlyZXR1cm4gdGltZW91dDsKPiAtCj4g LQl3YWl0LT5maXJzdF9zaWduYWxlZCA9IGZpcnN0Owo+ICsJaWYgKCF0aW1lbGluZSkgewo+ICsJ CXRpbWVvdXQgPSBkcm1fdGltZW91dF9hYnNfdG9famlmZmllcyh3YWl0LT50aW1lb3V0X25zZWMp Owo+ICsJCXRpbWVvdXQgPSBkcm1fc3luY29ial9hcnJheV93YWl0X3RpbWVvdXQoc3luY29ianMs Cj4gKwkJCQkJCQkgTlVMTCwKPiArCQkJCQkJCSB3YWl0LT5jb3VudF9oYW5kbGVzLAo+ICsJCQkJ CQkJIHdhaXQtPmZsYWdzLAo+ICsJCQkJCQkJIHRpbWVvdXQsICZmaXJzdCk7Cj4gKwkJaWYgKHRp bWVvdXQgPCAwKQo+ICsJCQlyZXR1cm4gdGltZW91dDsKPiArCQl3YWl0LT5maXJzdF9zaWduYWxl ZCA9IGZpcnN0Owo+ICsJfSBlbHNlIHsKPiArCQl0aW1lb3V0ID0gZHJtX3RpbWVvdXRfYWJzX3Rv X2ppZmZpZXModGltZWxpbmVfd2FpdC0+dGltZW91dF9uc2VjKTsKPiArCQl0aW1lb3V0ID0gZHJt X3N5bmNvYmpfYXJyYXlfd2FpdF90aW1lb3V0KHN5bmNvYmpzLAo+ICsJCQkJCQkJIHU2NF90b191 c2VyX3B0cih0aW1lbGluZV93YWl0LT5wb2ludHMpLAo+ICsJCQkJCQkJIHRpbWVsaW5lX3dhaXQt PmNvdW50X2hhbmRsZXMsCj4gKwkJCQkJCQkgdGltZWxpbmVfd2FpdC0+ZmxhZ3MsCj4gKwkJCQkJ CQkgdGltZW91dCwgJmZpcnN0KTsKPiArCQlpZiAodGltZW91dCA8IDApCj4gKwkJCXJldHVybiB0 aW1lb3V0Owo+ICsJCXRpbWVsaW5lX3dhaXQtPmZpcnN0X3NpZ25hbGVkID0gZmlyc3Q7Cj4gKwl9 Cj4gICAJcmV0dXJuIDA7Cj4gICB9Cj4gICAKPiBAQCAtMTEzMiwxMyArMTE3OSw0OSBAQCBkcm1f c3luY29ial93YWl0X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4g ICAJCXJldHVybiByZXQ7Cj4gICAKPiAgIAlyZXQgPSBkcm1fc3luY29ial9hcnJheV93YWl0KGRl diwgZmlsZV9wcml2YXRlLAo+IC0JCQkJICAgICBhcmdzLCBzeW5jb2Jqcyk7Cj4gKwkJCQkgICAg IGFyZ3MsIE5VTEwsIHN5bmNvYmpzLCBmYWxzZSk7Cj4gICAKPiAgIAlkcm1fc3luY29ial9hcnJh eV9mcmVlKHN5bmNvYmpzLCBhcmdzLT5jb3VudF9oYW5kbGVzKTsKPiAgIAo+ICAgCXJldHVybiBy ZXQ7Cj4gICB9Cj4gICAKPiAraW50Cj4gK2RybV9zeW5jb2JqX3RpbWVsaW5lX3dhaXRfaW9jdGwo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiArCQkJCXN0cnVjdCBkcm1fZmls ZSAqZmlsZV9wcml2YXRlKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX3N5bmNvYmpfdGltZWxpbmVfd2Fp dCAqYXJncyA9IGRhdGE7Cj4gKwlzdHJ1Y3QgZHJtX3N5bmNvYmogKipzeW5jb2JqczsKPiArCWlu dCByZXQgPSAwOwo+ICsKPiArCWlmICghZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZF Ul9TWU5DT0JKKSkKPiArCQlyZXR1cm4gLUVOT0RFVjsKPiArCj4gKwlpZiAoYXJncy0+ZmxhZ3Mg JiB+KERSTV9TWU5DT0JKX1dBSVRfRkxBR1NfV0FJVF9BTEwgfAo+ICsJCQkgICAgRFJNX1NZTkNP QkpfV0FJVF9GTEFHU19XQUlUX0ZPUl9TVUJNSVQgfAo+ICsJCQkgICAgRFJNX1NZTkNPQkpfV0FJ VF9GTEFHU19XQUlUX0NPTVBMRVRFRCB8Cj4gKwkJCSAgICBEUk1fU1lOQ09CSl9XQUlUX0ZMQUdT X1dBSVRfQVZBSUxBQkxFKSkKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCj4gKwlpZiAoYXJncy0+ Y291bnRfaGFuZGxlcyA9PSAwKQo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsKPiArCXJldCA9IGRy bV9zeW5jb2JqX2FycmF5X2ZpbmQoZmlsZV9wcml2YXRlLAo+ICsJCQkJICAgICB1NjRfdG9fdXNl cl9wdHIoYXJncy0+aGFuZGxlcyksCj4gKwkJCQkgICAgIGFyZ3MtPmNvdW50X2hhbmRsZXMsCj4g KwkJCQkgICAgICZzeW5jb2Jqcyk7Cj4gKwlpZiAocmV0IDwgMCkKPiArCQlyZXR1cm4gcmV0Owo+ ICsKPiArCXJldCA9IGRybV9zeW5jb2JqX2FycmF5X3dhaXQoZGV2LCBmaWxlX3ByaXZhdGUsCj4g KwkJCQkgICAgIE5VTEwsIGFyZ3MsIHN5bmNvYmpzLCB0cnVlKTsKPiArCj4gKwlkcm1fc3luY29i al9hcnJheV9mcmVlKHN5bmNvYmpzLCBhcmdzLT5jb3VudF9oYW5kbGVzKTsKPiArCj4gKwlyZXR1 cm4gcmV0Owo+ICt9Cj4gKwo+ICsKPiAgIGludAo+ICAgZHJtX3N5bmNvYmpfcmVzZXRfaW9jdGwo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiAgIAkJCXN0cnVjdCBkcm1fZmls ZSAqZmlsZV9wcml2YXRlKQo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL2RybS5oIGIv aW5jbHVkZS91YXBpL2RybS9kcm0uaAo+IGluZGV4IGNlYmRiMjU0MWViNy4uYzhiYzE0MTQ3NTNk IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgKPiArKysgYi9pbmNsdWRlL3Vh cGkvZHJtL2RybS5oCj4gQEAgLTczOCw2ICs3MzgsMTAgQEAgc3RydWN0IGRybV9zeW5jb2JqX2hh bmRsZSB7Cj4gICAKPiAgICNkZWZpbmUgRFJNX1NZTkNPQkpfV0FJVF9GTEFHU19XQUlUX0FMTCAo MSA8PCAwKQo+ICAgI2RlZmluZSBEUk1fU1lOQ09CSl9XQUlUX0ZMQUdTX1dBSVRfRk9SX1NVQk1J VCAoMSA8PCAxKQo+ICsvKiB3YWl0IGZvciB0aW1lIHBvaW50IHRvIGJlIGNvbXBsZXRlZCAqLwo+ ICsjZGVmaW5lIERSTV9TWU5DT0JKX1dBSVRfRkxBR1NfV0FJVF9DT01QTEVURUQgKDEgPDwgMikK PiArLyogd2FpdCBmb3IgdGltZSBwb2ludCB0byBiZWNvbWUgYXZhaWxhYmxlICovCj4gKyNkZWZp bmUgRFJNX1NZTkNPQkpfV0FJVF9GTEFHU19XQUlUX0FWQUlMQUJMRSAoMSA8PCAzKQo+ICAgc3Ry dWN0IGRybV9zeW5jb2JqX3dhaXQgewo+ICAgCV9fdTY0IGhhbmRsZXM7Cj4gICAJLyogYWJzb2x1 dGUgdGltZW91dCAqLwo+IEBAIC03NDgsNiArNzUyLDE5IEBAIHN0cnVjdCBkcm1fc3luY29ial93 YWl0IHsKPiAgIAlfX3UzMiBwYWQ7Cj4gICB9Owo+ICAgCj4gK3N0cnVjdCBkcm1fc3luY29ial90 aW1lbGluZV93YWl0IHsKPiArCV9fdTY0IGhhbmRsZXM7Cj4gKwkvKiB3YWl0IG9uIHNwZWNpZmlj IHRpbWVsaW5lIHBvaW50IGZvciBldmVyeSBoYW5kbGVzKi8KPiArCV9fdTY0IHBvaW50czsKPiAr CS8qIGFic29sdXRlIHRpbWVvdXQgKi8KPiArCV9fczY0IHRpbWVvdXRfbnNlYzsKPiArCV9fdTMy IGNvdW50X2hhbmRsZXM7Cj4gKwlfX3UzMiBmbGFnczsKPiArCV9fdTMyIGZpcnN0X3NpZ25hbGVk OyAvKiBvbmx5IHZhbGlkIHdoZW4gbm90IHdhaXRpbmcgYWxsICovCj4gKwlfX3UzMiBwYWQ7Cj4g K307Cj4gKwo+ICsKPiAgIHN0cnVjdCBkcm1fc3luY29ial9hcnJheSB7Cj4gICAJX191NjQgaGFu ZGxlczsKPiAgIAlfX3UzMiBjb3VudF9oYW5kbGVzOwo+IEBAIC05MTAsNiArOTI3LDcgQEAgZXh0 ZXJuICJDIiB7Cj4gICAjZGVmaW5lIERSTV9JT0NUTF9NT0RFX0dFVF9MRUFTRQlEUk1fSU9XUigw eEM4LCBzdHJ1Y3QgZHJtX21vZGVfZ2V0X2xlYXNlKQo+ICAgI2RlZmluZSBEUk1fSU9DVExfTU9E RV9SRVZPS0VfTEVBU0UJRFJNX0lPV1IoMHhDOSwgc3RydWN0IGRybV9tb2RlX3Jldm9rZV9sZWFz ZSkKPiAgIAo+ICsjZGVmaW5lIERSTV9JT0NUTF9TWU5DT0JKX1RJTUVMSU5FX1dBSVQJRFJNX0lP V1IoMHhDQSwgc3RydWN0IGRybV9zeW5jb2JqX3RpbWVsaW5lX3dhaXQpCj4gICAvKioKPiAgICAq IERldmljZSBzcGVjaWZpYyBpb2N0bHMgc2hvdWxkIG9ubHkgYmUgaW4gdGhlaXIgcmVzcGVjdGl2 ZSBoZWFkZXJzCj4gICAgKiBUaGUgZGV2aWNlIHNwZWNpZmljIGlvY3RsIHJhbmdlIGlzIGZyb20g MHg0MCB0byAweDlmLgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRl dmVsCg==