From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH v9 1/6] drm/i915: Add per context timelines for fence objects Date: Thu, 2 Jun 2016 11:28:49 +0100 Message-ID: <57500A61.20704@linux.intel.com> References: <1464800848-36672-1-git-send-email-John.C.Harrison@Intel.com> <1464800848-36672-2-git-send-email-John.C.Harrison@Intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 8A6F96E384 for ; Thu, 2 Jun 2016 10:28:51 +0000 (UTC) In-Reply-To: <1464800848-36672-2-git-send-email-John.C.Harrison@Intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: John.C.Harrison@Intel.com, Intel-GFX@Lists.FreeDesktop.Org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDAxLzA2LzE2IDE4OjA3LCBKb2huLkMuSGFycmlzb25ASW50ZWwuY29tIHdyb3RlOgo+IEZy b206IEpvaG4gSGFycmlzb24gPEpvaG4uQy5IYXJyaXNvbkBJbnRlbC5jb20+Cj4KPiBUaGUgcHVy cG9zZSBvZiB0aGlzIHBhdGNoIHNlcmllcyBpcyB0byBjb252ZXJ0IHRoZSByZXF1c3Qgc3RydWN0 dXJlIHRvCj4gdXNlIGZlbmNlIG9iamVjdHMgZm9yIHRoZSB1bmRlcmx5aW5nIGNvbXBsZXRpb24g dHJhY2tpbmcuIFRoZSBmZW5jZQo+IG9iamVjdCByZXF1aXJlcyBhIHNlcXVlbmNlIG51bWJlci4g VGhlIHVsdGltYXRlIGFpbSBpcyB0byB1c2UgdGhlIHNhbWUKPiBzZXF1ZW5jZSBudW1iZXIgYXMg Zm9yIHRoZSByZXF1ZXN0IGl0c2VsZiAob3IgcmF0aGVyLCB0byByZW1vdmUgdGhlCj4gcmVxdWVz dCdzIHNlcW5vIGZpZWxkIGFuZCBqdXN0IHVzZSB0aGUgZmVuY2UncyB2YWx1ZSB0aHJvdWdob3V0 IHRoZQo+IGRyaXZlcikuIEhvd2V2ZXIsIHRoaXMgaXMgbm90IGN1cnJlbnRseSBwb3NzaWJsZSBh bmQgc28gdGhpcyBwYXRjaAo+IGludHJvZHVjZXMgYSBzZXBhcmF0ZSBudW1iZXJpbmcgc2NoZW1l IGFzIGFuIGludGVybWVkaWF0ZSBzdGVwLgo+Cj4gQSBtYWpvciBhZHZhbnRhZ2Ugb2YgdXNpbmcg dGhlIGZlbmNlIG9iamVjdCBpcyB0aGF0IGl0IGNhbiBiZSBwYXNzZWQKPiBvdXRzaWRlIG9mIHRo ZSBpOTE1IGRyaXZlciBhbmQgdXNlZCBleHRlcm5hbGx5LiBUaGUgZmVuY2UgQVBJIGFsbG93cwo+ IGZvciB2YXJpb3VzIG9wZXJhdGlvbnMgc3VjaCBhcyBjb21iaW5pbmcgbXVsdGlwbGUgZmVuY2Vz LiBUaGlzCj4gcmVxdWlyZXMgdGhhdCBmZW5jZSBzZXFub3Mgd2l0aGluIGEgc2luZ2xlIGZlbmNl IGNvbnRleHQgYmUgZ3VhcmFudGVlZAo+IGluLW9yZGVyLiBUaGUgR1BVIHNjaGVkdWxlciB0aGF0 IGlzIGNvbWluZyBjYW4gcmUtb3JkZXIgcmVxdWVzdAo+IGV4ZWN1dGlvbiBidXQgbm90IHdpdGhp biBhIHNpbmdsZSBHUFUgY29udGV4dC4gVGh1cyB0aGUgZmVuY2UgY29udGV4dAo+IG11c3QgYmUg dGllZCB0byB0aGUgaTkxNSBjb250ZXh0IChhbmQgdGhlIGVuZ2luZSB3aXRoaW4gdGhlIGNvbnRl eHQgYXMKPiBlYWNoIGVuZ2luZSBydW5zIGFzeW5jaHJvbm91c2x5KS4KPgo+IE9uIHRoZSBvdGhl ciBoYW5kLCB0aGUgZHJpdmVyIGFzIGEgd2hvbGUgY3VycmVudGx5IG9ubHkgd29ya3Mgd2l0aAo+ IHJlcXVlc3Qgc2Vxbm9zIHRoYXQgYXJlIGFsbG9jYXRlZCBmcm9tIGEgZ2xvYmFsIGluLW9yZGVy IHRpbWVsaW5lLiBJdAo+IHdpbGwgcmVxdWlyZSBhIGZhaXIgY2h1bmsgb2YgcmUtd29yayB0byBh bGxvdyBtdWx0aXBsZSBpbmRlcGVuZGVudAo+IHNlcW5vIHRpbWVsaW5lcyB0byBiZSB1c2VkLiBI ZW5jZSB0aGUgaW50cm9kdWN0aW9uIG9mIGEgdGVtcG9yYXJ5LAo+IGZlbmNlIHNwZWNpZmljIHRp bWVsaW5lLiBPbmNlIHRoZSB3b3JrIHRvIHVwZGF0ZSB0aGUgcmVzdCBvZiB0aGUKPiBkcml2ZXIg aGFzIGJlZW4gY29tcGxldGVkIHRoZW4gdGhlIHJlcXVlc3QgY2FuIHVzZSB0aGUgZmVuY2Ugc2Vx bm8KPiBpbnN0ZWFkLgo+Cj4gdjI6IE5ldyBwYXRjaCBpbiBzZXJpZXMuCj4KPiB2MzogUmVuYW1l ZC9yZXR5cGVkIHRpbWVsaW5lIHN0cnVjdHVyZSBmaWVsZHMgYWZ0ZXIgcmV2aWV3IGNvbW1lbnRz IGJ5Cj4gVHZydGtvIFVyc3VsaW4uCj4KPiBBZGRlZCBjb250ZXh0IGluZm9ybWF0aW9uIHRvIHRo ZSB0aW1lbGluZSdzIG5hbWUgc3RyaW5nIGZvciBiZXR0ZXIKPiBpZGVudGlmaWNhdGlvbiBpbiBk ZWJ1Z2ZzIG91dHB1dC4KPgo+IHY1OiBMaW5lIHdyYXBwaW5nIGFuZCBvdGhlciB3aGl0ZSBzcGFj ZSBmaXhlcyB0byBrZWVwIHN0eWxlIGNoZWNrZXIKPiBoYXBweS4KPgo+IHY3OiBVcGRhdGVkIHRv IG5ld2VyIG5pZ2h0bHkgKGxvdHMgb2YgcmluZyAtPiBlbmdpbmUgcmVuYW1pbmcpLgo+Cj4gdjg6 IE1vdmVkIHRvIGVhcmxpZXIgaW4gcGF0Y2ggc2VyaWVzIHNvIG5vIGxvbmdlciBuZWVkcyB0byBy ZW1vdmUgdGhlCj4gcXVpY2sgaGFjayB0aW1lbGluZSB0aGF0IHdhcyBiZWluZyBhZGRlZCBiZWZv cmUuCj4KPiB2OTogVXBkYXRlZCB0byBhbm90aGVyIG5ld2VyIG5pZ2h0bHkgKGNoYW5nZXMgdG8g Y29udGV4dCBzdHJ1Y3R1cmUKPiBuYW1pbmcpLiBBbHNvIHVwZGF0ZWQgY29tbWl0IG1lc3NhZ2Ug dG8gbWF0Y2ggcHJldmlvdXMgY2hhbmdlcy4KPgo+IEZvcjogVklaLTUxOTAKPiBTaWduZWQtb2Zm LWJ5OiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25ASW50ZWwuY29tPgo+IENjOiBUdnJ0 a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+IENjOiBNYWFydGVuIExhbmto b3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+IC0tLQo+ICAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgIHwgMTQgKysrKysrKysrKysrCj4gICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICAgfCA0MCArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2Nv bnRleHQuYyB8IDE2ICsrKysrKysrKysrKysKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2xyYy5jICAgICAgICB8ICA4ICsrKysrKysKPiAgIDQgZmlsZXMgY2hhbmdlZCwgNzggaW5zZXJ0 aW9ucygrKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2Lmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggMmE4OGE0Ni4uYTVmOGFk OCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC04MzEsNiArODMxLDE5IEBAIHN0 cnVjdCBpOTE1X2N0eF9oYW5nX3N0YXRzIHsKPiAgIAlib29sIGJhbm5lZDsKPiAgIH07Cj4KPiAr c3RydWN0IGk5MTVfZmVuY2VfdGltZWxpbmUgewo+ICsJY2hhciAgICAgICAgbmFtZVszMl07Cj4g Kwl1bnNpZ25lZCAgICBmZW5jZV9jb250ZXh0Owo+ICsJdW5zaWduZWQgICAgbmV4dDsKPiArCj4g KwlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4Owo+ICsJc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lOwoKQXJlIHRoZXNlIGJhY2twb2ludGVycyB1c2VkIGluIHRoZSBwYXRjaCBzZXJp ZXM/IEkgZGlkIGEgcXVpY2sgc2VhcmNoIAp3aXRoIHRoZSAidGltZWxpbmUtPiIgc3RyaW5nIGFu ZCBkaWQgbm90IGZpbmQgYW55dGhpbmcuCgo+ICt9Owo+ICsKPiAraW50IGk5MTVfY3JlYXRlX2Zl bmNlX3RpbWVsaW5lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gKwkJCSAgICAgICBzdHJ1Y3Qg aTkxNV9nZW1fY29udGV4dCAqY3R4LAo+ICsJCQkgICAgICAgc3RydWN0IGludGVsX2VuZ2luZV9j cyAqcmluZyk7Cj4gKwo+ICAgLyogVGhpcyBtdXN0IG1hdGNoIHVwIHdpdGggdGhlIHZhbHVlIHBy ZXZpb3VzbHkgdXNlZCBmb3IgZXhlY2J1ZjIucnN2ZDEuICovCj4gICAjZGVmaW5lIERFRkFVTFRf Q09OVEVYVF9IQU5ETEUgMAo+Cj4gQEAgLTg3NSw2ICs4ODgsNyBAQCBzdHJ1Y3QgaTkxNV9nZW1f Y29udGV4dCB7Cj4gICAJCXU2NCBscmNfZGVzYzsKPiAgIAkJaW50IHBpbl9jb3VudDsKPiAgIAkJ Ym9vbCBpbml0aWFsaXNlZDsKPiArCQlzdHJ1Y3QgaTkxNV9mZW5jZV90aW1lbGluZSBmZW5jZV90 aW1lbGluZTsKPiAgIAl9IGVuZ2luZVtJOTE1X05VTV9FTkdJTkVTXTsKPgo+ICAgCXN0cnVjdCBs aXN0X2hlYWQgbGluazsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBpbmRleCA1ZmZjNmZhLi41 N2QzNTkzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gQEAgLTI3NDMsNiArMjc0Myw0 NiBAQCB2b2lkIGk5MTVfZ2VtX3JlcXVlc3RfZnJlZShzdHJ1Y3Qga3JlZiAqcmVxX3JlZikKPiAg IAlrbWVtX2NhY2hlX2ZyZWUocmVxLT5pOTE1LT5yZXF1ZXN0cywgcmVxKTsKPiAgIH0KPgo+ICtp bnQgaTkxNV9jcmVhdGVfZmVuY2VfdGltZWxpbmUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKCmRl diBpcyBub3QgdXNlZCBpbiB0aGUgZnVuY3Rpb24uIE1heWJlIGl0IHdpbGwgYmUgaW4gbGF0ZXIg cGF0Y2hlcz8gSW4gCndoaWNoIGNhc2UgSSB0aGluayBkZXZfcHJpdiBpcyB0aGUgY3VycmVudCBi a20gZm9yIGk5MTUgCnNwZWNpZmljL2ludGVybmFsIGNvZGUuCgo+ICsJCQkgICAgICAgc3RydWN0 IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKPiArCQkJICAgICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSkKPiArewo+ICsJc3RydWN0IGk5MTVfZmVuY2VfdGltZWxpbmUgKnRpbWVsaW5l Owo+ICsKPiArCXRpbWVsaW5lID0gJmN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdLmZlbmNlX3RpbWVs aW5lOwo+ICsKPiArCWlmICh0aW1lbGluZS0+ZW5naW5lKQo+ICsJCXJldHVybiAwOwoKSXMgdGhp cyBhbiBleHBlY3RlZCBjYXNlPyBVbmxlc3MgSSBhbSBtaXNzaW5nIHNvbWV0aGluZyBpdCBzaG91 bGRuJ3QgYmUgCnNvIG1heWJlIGEgV0FSTl9PTiB3b3VsZCBiZSB3YXJyYW50ZWQ/Cgo+ICsKPiAr CXRpbWVsaW5lLT5mZW5jZV9jb250ZXh0ID0gZmVuY2VfY29udGV4dF9hbGxvYygxKTsKPiArCj4g KwkvKgo+ICsJICogU3RhcnQgdGhlIHRpbWVsaW5lIGZyb20gc2Vxbm8gMCBhcyB0aGlzIGlzIGEg c3BlY2lhbCB2YWx1ZQo+ICsJICogdGhhdCBpcyByZXNlcnZlZCBmb3IgaW52YWxpZCBzeW5jIHBv aW50cy4KPiArCSAqLwoKQ29tbWVudCBhbmQgaW5pdCB0byAxIGJlbG93IGxvb2sgaW4gZGlzYWdy ZWVtZW50LiBNYXliZSBjb21tZW50IHNob3VsZCAKYmUgc29tZXRoaW5nIGxpa2UgIlN0YXJ0IHRo ZSB0aW1lbGluZSBmcm9tIHNlcW5vIDEgYXMgMCBpcyBhIHNwZWNpYWwgCnZhbHVlLi4iID8KCj4g Kwl0aW1lbGluZS0+bmV4dCAgICAgICA9IDE7Cj4gKwl0aW1lbGluZS0+Y3R4ICAgICAgICA9IGN0 eDsKPiArCXRpbWVsaW5lLT5lbmdpbmUgICAgID0gZW5naW5lOwo+ICsKPiArCXNucHJpbnRmKHRp bWVsaW5lLT5uYW1lLCBzaXplb2YodGltZWxpbmUtPm5hbWUpLCAiJWQ+JXM6JWQiLAo+ICsJCSB0 aW1lbGluZS0+ZmVuY2VfY29udGV4dCwgZW5naW5lLT5uYW1lLCBjdHgtPnVzZXJfaGFuZGxlKTsK PiArCgpGb3IgcmluZ3MgbGlrZSAidmlkZW8gZW5oYW5jZW1lbnQgcmluZyIgbmFtZSBpcyAyMiBj aGFycyBvbiBpdHMgb3duLCAKbGVhdmluZyBvbmx5IDkgZm9yIHRoZSB0d28gaW50ZWdlcnMuIElm IGEgbG90IG9mIGNvbnRleHRzIG9yIGxvbmcgCnJ1bnRpbWUgSSBzdXBwb3NlIHRoYXQgY291bGQg b3ZlcmZsb3cuIEl0IGlzIGEgYml0IG9mIGEgc3RyZXRjaCBidXQgCnBlcmhhcHMgMzIgaXMgbm90 IGVub3VnaCwgbWF5YmUgYXZhaWxhYmxlIHNwYWNlIGZvciB0aGUgbmFtZSBzaG91bGQgYmUgCmJl dHRlciBkZWZpbmVkIGFzIGxvbmdlc3QgcmluZyBuYW1lICh3aXRoIGEgY29tbWVudCkgcGx1cyBt YXhpbXVtIGZvciAKdHdvIGludGVnZXJzLgoKSSB0aGluayB0aW1lbGluZS0+bmFtZSBpcyBvbmx5 IGZvciBkZWJ1ZyBidXQgc3RpbGwgZmVlbHMgYmV0dGVyIHRvIG1ha2UgCnN1cmUgaXQgd2lsbCBm aXQgcmF0aGVyIHRoYW4gdHJ1bmNhdGUgaXQuCgpBbmQgd2Ugc2hvdWxkIHByb2FibHkganVzdCBz aG9ydGVuIHRoZSAidmlkZW8gZW5oYW5jZW1lbnQgcmluZyIgdG8gInZlY3MgCnJpbmciLi4uCgo+ ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK3Vuc2lnbmVkIGk5MTVfZmVuY2VfdGltZWxpbmVfZ2V0 X25leHRfc2Vxbm8oc3RydWN0IGk5MTVfZmVuY2VfdGltZWxpbmUgKnRpbWVsaW5lKQoKSXQgaXMg c3RyYW5nZSB0byBhZGQgYSBwdWJsaWMgZnVuY3Rpb24gaW4gdGhpcyBwYXRjaCB3aGljaCBpcyBl dmVuIAp1bnVzZWQgZXNwZWNpYWxseSBzaW5jZSB0aGUgZm9sbG93aW5nIHBhdGNoIG1ha2VzIGl0 IHByaXZhdGUuCgpXb3VsZCBpdCBtYWtlIG1vcmUgc2Vuc2UgZm9yIGl0IHRvIGJlIHN0YXRpYyBz dHJhaWdodCBhd2F5IGFuZCBtYXliZSAKZXZlbiBjYWxsZWQgZnJvbSBfX2k5MTVfZ2VtX3JlcXVl c3RfYWxsb2MgdW5jb25kaXRpb25hbGx5IHNvIHRoYXQgdGhlIApwYXRjaCBkb2VzIG5vdCBhZGQg ZGVhZCBjb2RlPwoKRG9uJ3Qga25vdywgbm90IHRlcnJpYmx5IGltcG9ydGFudCBidXQgd291bGQg cGVyaGFwcyBsb29rIG1vcmUgbG9naWNhbCAKYXMgYSBwYXRjaCBzZXJpZXMuCgo+ICt7Cj4gKwl1 bnNpZ25lZCBzZXFubzsKPiArCj4gKwlzZXFubyA9IHRpbWVsaW5lLT5uZXh0Owo+ICsKPiArCS8q IFJlc2VydmUgemVybyBmb3IgaW52YWxpZCAqLwo+ICsJaWYgKCsrdGltZWxpbmUtPm5leHQgPT0g MCkKPiArCQl0aW1lbGluZS0+bmV4dCA9IDE7Cj4gKwo+ICsJcmV0dXJuIHNlcW5vOwo+ICt9Cj4g Kwo+ICAgc3RhdGljIGlubGluZSBpbnQKPiAgIF9faTkxNV9nZW1fcmVxdWVzdF9hbGxvYyhzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCj4gICAJCQkgc3RydWN0IGk5MTVfZ2VtX2NvbnRl eHQgKmN0eCwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29u dGV4dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCj4gaW5kZXgg ZDBlN2ZjNi4uMDdkOGM2MyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9jb250ZXh0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250 ZXh0LmMKPiBAQCAtMzIwLDYgKzMyMCwyMiBAQCBpOTE1X2dlbV9jcmVhdGVfY29udGV4dChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAgCWlmIChJU19FUlIoY3R4KSkKPiAgIAkJcmV0dXJuIGN0 eDsKPgo+ICsJaWYgKCFpOTE1LmVuYWJsZV9leGVjbGlzdHMpIHsKPiArCQlzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmU7Cj4gKwo+ICsJCS8qIENyZWF0ZSBhIHBlciBjb250ZXh0IHRpbWVs aW5lIGZvciBmZW5jZXMgKi8KPiArCQlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCB0b19pOTE1KGRl dikpIHsKPiArCQkJaW50IHJldCA9IGk5MTVfY3JlYXRlX2ZlbmNlX3RpbWVsaW5lKGRldiwgY3R4 LCBlbmdpbmUpOwo+ICsJCQlpZiAocmV0KSB7Cj4gKwkJCQlEUk1fRVJST1IoIkZlbmNlIHRpbWVs aW5lIGNyZWF0aW9uIGZhaWxlZCBmb3IgbGVnYWN5ICVzOiAlcFxuIiwKPiArCQkJCQkgIGVuZ2lu ZS0+bmFtZSwgY3R4KTsKPiArCQkJCWlkcl9yZW1vdmUoJmZpbGVfcHJpdi0+Y29udGV4dF9pZHIs IGN0eC0+dXNlcl9oYW5kbGUpOwo+ICsJCQkJaTkxNV9nZW1fY29udGV4dF91bnJlZmVyZW5jZShj dHgpOwo+ICsJCQkJcmV0dXJuIEVSUl9QVFIocmV0KTsKPiArCQkJfQo+ICsJCX0KPiArCX0KPiAr Cj4gICAJaWYgKFVTRVNfRlVMTF9QUEdUVChkZXYpKSB7Cj4gICAJCXN0cnVjdCBpOTE1X2h3X3Bw Z3R0ICpwcGd0dCA9IGk5MTVfcHBndHRfY3JlYXRlKGRldiwgZmlsZV9wcml2KTsKPgo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2xyYy5jCj4gaW5kZXggNWMxOTFhMS4uMTRiY2ZiNyAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2xyYy5jCj4gQEAgLTI0OTYsNiArMjQ5NiwxNCBAQCBzdGF0aWMgaW50IGV4 ZWNsaXN0c19jb250ZXh0X2RlZmVycmVkX2FsbG9jKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpj dHgsCj4gICAJCWdvdG8gZXJyb3JfcmluZ2J1ZjsKPiAgIAl9Cj4KPiArCS8qIENyZWF0ZSBhIHBl ciBjb250ZXh0IHRpbWVsaW5lIGZvciBmZW5jZXMgKi8KPiArCXJldCA9IGk5MTVfY3JlYXRlX2Zl bmNlX3RpbWVsaW5lKGN0eC0+aTkxNS0+ZGV2LCBjdHgsIGVuZ2luZSk7Cj4gKwlpZiAocmV0KSB7 Cj4gKwkJRFJNX0VSUk9SKCJGZW5jZSB0aW1lbGluZSBjcmVhdGlvbiBmYWlsZWQgZm9yIGVuZ2lu ZSAlcywgY3R4ICVwXG4iLAoKImVuZ2luZSAlcyIgd2lsbCBsb2cgc29tZXRoaW5nIGxpa2UgImVu Z2luZSByZW5kZXIgcmluZyIgd2hpY2ggd2lsbCBiZSAKd2VpcmQuCgpBbHNvIHBvaW50ZXIgdG8g dGhlIGNvbnRleHQgaXMgbm90IHRoYXQgaW50ZXJlc3RpbmcgYXMgRFJNX0VSUk9SIEkgCnRoaW5r LiBjdHhjLT51c2VyX2hhbmRsZSBpbnN0ZWFkPyBTYW1lIGluIHRoZSBsZWdhY3kgbW9kZS4KCj4g KwkJCSAgZW5naW5lLT5uYW1lLCBjdHgpOwo+ICsJCWdvdG8gZXJyb3JfcmluZ2J1ZjsKPiArCX0K PiArCj4gICAJY2UtPnJpbmdidWYgPSByaW5nYnVmOwo+ICAgCWNlLT5zdGF0ZSA9IGN0eF9vYmo7 Cj4gICAJY2UtPmluaXRpYWxpc2VkID0gZW5naW5lLT5pbml0X2NvbnRleHQgPT0gTlVMTDsKPgoK U28gaW4gc3VtbWFyeSBqdXN0IHNvbWUgbWlub3IgdGhpbmdzLCBvdGhlcndpc2UgaXQgbG9va3Mg T0sgSSB0aGluay4KClJlZ2FyZHMsCgpUdnJ0a28KCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK