From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [RFC 5/9] drm/i915: Add per context timelines to fence object Date: Tue, 17 Nov 2015 14:54:44 +0100 Message-ID: <20151117135444.GY16848@phenom.ffwll.local> References: <1437143483-6234-1-git-send-email-John.C.Harrison@Intel.com> <1437143483-6234-6-git-send-email-John.C.Harrison@Intel.com> <55B0F12D.7090204@linux.intel.com> <5630C6B3.8020908@Intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-f53.google.com (mail-wm0-f53.google.com [74.125.82.53]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6D91D6E3A4 for ; Tue, 17 Nov 2015 05:54:48 -0800 (PST) Received: by wmec201 with SMTP id c201so27012095wme.1 for ; Tue, 17 Nov 2015 05:54:46 -0800 (PST) Content-Disposition: inline In-Reply-To: <5630C6B3.8020908@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 Harrison Cc: Intel-GFX@Lists.FreeDesktop.Org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBPY3QgMjgsIDIwMTUgYXQgMTI6NTk6MzFQTSArMDAwMCwgSm9obiBIYXJyaXNvbiB3 cm90ZToKPiBIYXZlIGZpbmFsbHkgaGFkIHNvbWUgdGltZSB0byBjb21lIGJhY2sgdG8gdGhpcyBh bmQgcmVzcG9uZCB0by9pbmNvcnBvcmF0ZQo+IHRoZSBjb21tZW50cyBtYWRlIHNvbWUgd2hpbGUg YWdvLi4uCj4gCj4gCj4gT24gMjMvMDcvMjAxNSAxNDo1MCwgVHZydGtvIFVyc3VsaW4gd3JvdGU6 Cj4gPkhpLAo+ID4KPiA+T24gMDcvMTcvMjAxNSAwMzozMSBQTSwgSm9obi5DLkhhcnJpc29uQElu dGVsLmNvbSB3cm90ZToKPiA+PkZyb206IEpvaG4gSGFycmlzb24gPEpvaG4uQy5IYXJyaXNvbkBJ bnRlbC5jb20+Cj4gPj4KPiA+PlRoZSBmZW5jZSBvYmplY3QgdXNlZCBpbnNpZGUgdGhlIHJlcXVl c3Qgc3RydWN0dXJlIHJlcXVpcmVzIGEgc2VxdWVuY2UKPiA+Pm51bWJlci4KPiA+PkFsdGhvdWdo IHRoaXMgaXMgbm90IHVzZWQgYnkgdGhlIGk5MTUgZHJpdmVyIGl0c2VsZiwgaXQgY291bGQKPiA+ PnBvdGVudGlhbGx5IGJlCj4gPj51c2VkIGJ5IG5vbi1pOTE1IGNvZGUgaWYgdGhlIGZlbmNlIGlz IHBhc3NlZCBvdXRzaWRlIG9mIHRoZSBkcml2ZXIuIFRoaXMKPiA+PmlzIHRoZQo+ID4+aW50ZW50 aW9uIGFzIGl0IGFsbG93cyBleHRlcm5hbCBrZXJuZWwgZHJpdmVycyBhbmQgdXNlciBhcHBsaWNh dGlvbnMgdG8KPiA+PndhaXQgb24KPiA+PmJhdGNoIGJ1ZmZlciBjb21wbGV0aW9uIGFzeW5jaHJv bm91c2x5IHZpYSB0aGUgZG1hLWJ1ZmYgZmVuY2UgQVBJLgo+ID4+Cj4gPj5UbyBlbnN1cmUgdGhh dCBzdWNoIGV4dGVybmFsIHVzZXJzIGFyZSBub3QgY29uZnVzZWQgYnkgc3RyYW5nZSB0aGluZ3MK PiA+PmhhcHBlbmluZwo+ID4+d2l0aCB0aGUgc2Vxbm8sIHRoaXMgcGF0Y2ggYWRkcyBpbiBhIHBl ciBjb250ZXh0IHRpbWVsaW5lIHRoYXQgY2FuCj4gPj5wcm92aWRlIGEKPiA+Pmd1YXJhbnRlZWQg aW4tb3JkZXIgc2Vxbm8gdmFsdWUgZm9yIHRoZSBmZW5jZS4gVGhpcyBpcyBzYWZlIGJlY2F1c2Ug dGhlCj4gPj5zY2hlZHVsZXIgd2lsbCBub3QgcmUtb3JkZXIgYmF0Y2ggYnVmZmVycyB3aXRoaW4g YSBjb250ZXh0IC0gdGhleSBhcmUKPiA+PmNvbnNpZGVyZWQKPiA+PnRvIGJlIG11dHVhbGx5IGRl cGVuZGVudC4KPiA+Pgo+ID4+W25ldyBwYXRjaCBpbiBzZXJpZXNdCj4gPj4KPiA+PkZvcjogVkla LTUxOTAKPiA+PlNpZ25lZC1vZmYtYnk6IEpvaG4gSGFycmlzb24gPEpvaG4uQy5IYXJyaXNvbkBJ bnRlbC5jb20+Cj4gPj4tLS0KPiA+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAg ICAgICAgIHwgMjUgKysrKysrKystLS0tCj4gPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtLmMgICAgICAgICB8IDY5Cj4gPj4rKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0K PiA+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jIHwgMTUgKysrKysr LQo+ID4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAgfCAgOCArKysr Cj4gPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCB8ICAxIC0KPiA+ PiAgNSBmaWxlcyBjaGFuZ2VkLCAxMDMgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCj4g Pj4KPiA+PmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPj5i L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+PmluZGV4IDBjN2RmNDYuLjg4YTQ3 NDYgMTAwNjQ0Cj4gPj4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPj4r KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPj5AQCAtODQwLDYgKzg0MCwx NSBAQCBzdHJ1Y3QgaTkxNV9jdHhfaGFuZ19zdGF0cyB7Cj4gPj4gICAgICBib29sIGJhbm5lZDsK PiA+PiAgfTsKPiA+Pgo+ID4+K3N0cnVjdCBpOTE1X2ZlbmNlX3RpbWVsaW5lIHsKPiA+PisgICAg dW5zaWduZWQgICAgZmVuY2VfY29udGV4dDsKPiA+PisgICAgdWludDMyX3QgICAgY29udGV4dDsK PiA+Cj4gPlVudXNlZCBmaWVsZD8KPiA+Cj4gPj4rICAgIHVpbnQzMl90ICAgIG5leHQ7Cj4gPgo+ ID5mZW5jZS5oIGRlZmluZXMgc2Vxbm9zIGFzICd1bnNpZ25lZCcsIHdoaWNoIG1hdGNoZXMgdGhp cyBpbiBwcmFjdGljZSwgYnV0Cj4gPm1heWJlIGl0IHdvdWxkIGJlIG5pY2VyIHRvIHVzZSB0aGUg c2FtZSB0eXBlIG5hbWUuCj4gPgo+ID4+Kwo+ID4+KyAgICBzdHJ1Y3QgaW50ZWxfY29udGV4dCAq Y3R4Owo+ID4+KyAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nOwo+ID4+K307Cj4gPj4r Cj4gPj4gIC8qIFRoaXMgbXVzdCBtYXRjaCB1cCB3aXRoIHRoZSB2YWx1ZSBwcmV2aW91c2x5IHVz ZWQgZm9yCj4gPj5leGVjYnVmMi5yc3ZkMS4gKi8KPiA+PiAgI2RlZmluZSBERUZBVUxUX0NPTlRF WFRfSEFORExFIDAKPiA+Pgo+ID4+QEAgLTg4NSw2ICs4OTQsNyBAQCBzdHJ1Y3QgaW50ZWxfY29u dGV4dCB7Cj4gPj4gICAgICAgICAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKnN0YXRlOwo+ ID4+ICAgICAgICAgIHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmOwo+ID4+ICAgICAg ICAgIGludCBwaW5fY291bnQ7Cj4gPj4rICAgICAgICBzdHJ1Y3QgaTkxNV9mZW5jZV90aW1lbGlu ZSBmZW5jZV90aW1lbGluZTsKPiA+PiAgICAgIH0gZW5naW5lW0k5MTVfTlVNX1JJTkdTXTsKPiA+ Pgo+ID4+ICAgICAgc3RydWN0IGxpc3RfaGVhZCBsaW5rOwo+ID4+QEAgLTIxNTMsMTMgKzIxNjMs MTAgQEAgdm9pZCBpOTE1X2dlbV90cmFja19mYihzdHJ1Y3QKPiA+PmRybV9pOTE1X2dlbV9vYmpl Y3QgKm9sZCwKPiA+PiAgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0IHsKPiA+PiAgICAgIC8q Kgo+ID4+ICAgICAgICogVW5kZXJseWluZyBvYmplY3QgZm9yIGltcGxlbWVudGluZyB0aGUgc2ln bmFsL3dhaXQgc3R1ZmYuCj4gPj4tICAgICAqIE5COiBOZXZlciBjYWxsIGZlbmNlX2xhdGVyKCkg b3IgcmV0dXJuIHRoaXMgZmVuY2Ugb2JqZWN0IHRvIHVzZXIKPiA+Pi0gICAgICogbGFuZCEgRHVl IHRvIGxhenkgYWxsb2NhdGlvbiwgc2NoZWR1bGVyIHJlLW9yZGVyaW5nLAo+ID4+cHJlLWVtcHRp b24sCj4gPj4tICAgICAqIGV0Yy4sIHRoZXJlIGlzIG5vIGd1YXJhbnRlZSBhdCBhbGwgYWJvdXQg dGhlIHZhbGlkaXR5IG9yCj4gPj4tICAgICAqIHNlcXVlbnRpYWxpdHkgb2YgdGhlIGZlbmNlJ3Mg c2Vxbm8hIEl0IGlzIGFsc28gdW5zYWZlIHRvIGxldAo+ID4+LSAgICAgKiBhbnl0aGluZyBvdXRz aWRlIG9mIHRoZSBpOTE1IGRyaXZlciBnZXQgaG9sZCBvZiB0aGUgZmVuY2Ugb2JqZWN0Cj4gPj4t ICAgICAqIGFzIHRoZSBjbGVhbiB1cCB3aGVuIGRlY3JlbWVudGluZyB0aGUgcmVmZXJlbmNlIGNv dW50IHJlcXVpcmVzCj4gPj4tICAgICAqIGhvbGRpbmcgdGhlIGRyaXZlciBtdXRleCBsb2NrLgo+ ID4+KyAgICAgKiBOQjogTmV2ZXIgcmV0dXJuIHRoaXMgZmVuY2Ugb2JqZWN0IHRvIHVzZXIgbGFu ZCEgSXQgaXMgdW5zYWZlIHRvCj4gPj4rICAgICAqIGxldCBhbnl0aGluZyBvdXRzaWRlIG9mIHRo ZSBpOTE1IGRyaXZlciBnZXQgaG9sZCBvZiB0aGUgZmVuY2UKPiA+PisgICAgICogb2JqZWN0IGFz IHRoZSBjbGVhbiB1cCB3aGVuIGRlY3JlbWVudGluZyB0aGUgcmVmZXJlbmNlIGNvdW50Cj4gPj4r ICAgICAqIHJlcXVpcmVzIGhvbGRpbmcgdGhlIGRyaXZlciBtdXRleCBsb2NrLgo+ID4+ICAgICAg ICovCj4gPj4gICAgICBzdHJ1Y3QgZmVuY2UgZmVuY2U7Cj4gPj4KPiA+PkBAIC0yMjM5LDYgKzIy NDYsMTAgQEAgaW50IGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2Moc3RydWN0IGludGVsX2VuZ2luZV9j cwo+ID4+KnJpbmcsCj4gPj4gICAgICAgICAgICAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqKnJlcV9vdXQpOwo+ID4+ICB2b2lkIGk5MTVfZ2VtX3JlcXVlc3RfY2FuY2VsKHN0cnVj dCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKTsKPiA+Pgo+ID4+K2ludCBpOTE1X2NyZWF0ZV9m ZW5jZV90aW1lbGluZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4+KyAgICAgICAgICAgICAg ICAgICBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4LAo+ID4+KyAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKTsKPiA+PisKPiA+PiAgc3RhdGljIGlubGluZSBi b29sIGk5MTVfZ2VtX3JlcXVlc3RfY29tcGxldGVkKHN0cnVjdAo+ID4+ZHJtX2k5MTVfZ2VtX3Jl cXVlc3QgKnJlcSkKPiA+PiAgewo+ID4+ICAgICAgcmV0dXJuIGZlbmNlX2lzX3NpZ25hbGVkKCZy ZXEtPmZlbmNlKTsKPiA+PmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bS5jCj4gPj5iL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiA+PmluZGV4IDM5NzAy NTAuLmFmNzk3MTYgMTAwNjQ0Cj4gPj4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bS5jCj4gPj4rKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gPj5AQCAtMjY3 MSw2ICsyNjcxLDI1IEBAIHN0YXRpYyBib29sIGk5MTVfZ2VtX3JlcXVlc3RfaXNfY29tcGxldGVk KHN0cnVjdAo+ID4+ZmVuY2UgKnJlcV9mZW5jZSkKPiA+PiAgICAgIHJldHVybiBpOTE1X3NlcW5v X3Bhc3NlZChzZXFubywgcmVxLT5zZXFubyk7Cj4gPj4gIH0KPiA+Pgo+ID4+K3N0YXRpYyB2b2lk IGk5MTVfZmVuY2VfdGltZWxpbmVfdmFsdWVfc3RyKHN0cnVjdCBmZW5jZSAqZmVuY2UsIGNoYXIK PiA+PipzdHIsIGludCBzaXplKQo+ID4+K3sKPiA+PisgICAgc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICpyZXE7Cj4gPj4rCj4gPj4rICAgIHJlcSA9IGNvbnRhaW5lcl9vZihmZW5jZSwgdHlw ZW9mKCpyZXEpLCBmZW5jZSk7Cj4gPj4rCj4gPj4rICAgIC8qIExhc3Qgc2lnbmFsbGVkIHRpbWVs aW5lIHZhbHVlID8/PyAqLwo+ID4+KyAgICBzbnByaW50ZihzdHIsIHNpemUsICI/IFslZF0iLyos IHRsLT52YWx1ZSovLAo+ID4+cmVxLT5yaW5nLT5nZXRfc2Vxbm8ocmVxLT5yaW5nLCB0cnVlKSk7 Cj4gPj4rfQo+ID4KPiA+SWYgdGltZWxpbmVzIGFyZSBwZXIgY29udGV4dCBub3cgbWF5YmUgd2Ug c2hvdWxkIHVwZGF0ZQo+ID5pOTE1X2dlbV9yZXF1ZXN0X2dldF90aW1lbGluZV9uYW1lIHRvIGJl IHBlciBjb250ZXh0IGluc3RlYWQgb2YgcGVyIGVuZ2luZQo+ID5hcyB3ZWxsPyBMaWtlIHRoaXMg d2UgaGF2ZSBhIG5hbWUgc3BhY2Ugb3ZlcmxhcCAvIHNlcW5vIGNvbGxpc2lvbnMgZnJvbQo+ID51 c2Vyc3BhY2UgcG9pbnQgb2Ygdmlldy4KPiA+Cj4gPj4rc3RhdGljIHZvaWQgaTkxNV9mZW5jZV92 YWx1ZV9zdHIoc3RydWN0IGZlbmNlICpmZW5jZSwgY2hhciAqc3RyLCBpbnQKPiA+PnNpemUpCj4g Pj4rewo+ID4+KyAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcTsKPiA+PisKPiA+ PisgICAgcmVxID0gY29udGFpbmVyX29mKGZlbmNlLCB0eXBlb2YoKnJlcSksIGZlbmNlKTsKPiA+ PisKPiA+PisgICAgc25wcmludGYoc3RyLCBzaXplLCAiJWQgWyVkXSIsIHJlcS0+ZmVuY2Uuc2Vx bm8sIHJlcS0+c2Vxbm8pOwo+ID4+K30KPiA+PisKPiA+PiAgc3RhdGljIGNvbnN0IHN0cnVjdCBm ZW5jZV9vcHMgaTkxNV9nZW1fcmVxdWVzdF9mb3BzID0gewo+ID4+ICAgICAgLmdldF9kcml2ZXJf bmFtZSAgICA9IGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X2RyaXZlcl9uYW1lLAo+ID4+ICAgICAgLmdl dF90aW1lbGluZV9uYW1lICAgID0gaTkxNV9nZW1fcmVxdWVzdF9nZXRfdGltZWxpbmVfbmFtZSwK PiA+PkBAIC0yNjc4LDggKzI2OTcsNDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmZW5jZV9vcHMK PiA+Pmk5MTVfZ2VtX3JlcXVlc3RfZm9wcyA9IHsKPiA+PiAgICAgIC5zaWduYWxlZCAgICAgICAg PSBpOTE1X2dlbV9yZXF1ZXN0X2lzX2NvbXBsZXRlZCwKPiA+PiAgICAgIC53YWl0ICAgICAgICAg ICAgPSBmZW5jZV9kZWZhdWx0X3dhaXQsCj4gPj4gICAgICAucmVsZWFzZSAgICAgICAgPSBpOTE1 X2dlbV9yZXF1ZXN0X2ZyZWUsCj4gPj4rICAgIC5mZW5jZV92YWx1ZV9zdHIgICAgPSBpOTE1X2Zl bmNlX3ZhbHVlX3N0ciwKPiA+PisgICAgLnRpbWVsaW5lX3ZhbHVlX3N0ciAgICA9IGk5MTVfZmVu Y2VfdGltZWxpbmVfdmFsdWVfc3RyLAo+ID4+ICB9Owo+ID4+Cj4gPj4raW50IGk5MTVfY3JlYXRl X2ZlbmNlX3RpbWVsaW5lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPj4rICAgICAgICAgICAg ICAgICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsCj4gPj4rICAgICAgICAgICAgICAgICAg IHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCj4gPj4rewo+ID4+KyAgICBzdHJ1Y3QgaTkx NV9mZW5jZV90aW1lbGluZSAqdGltZWxpbmU7Cj4gPj4rCj4gPj4rICAgIHRpbWVsaW5lID0gJmN0 eC0+ZW5naW5lW3JpbmctPmlkXS5mZW5jZV90aW1lbGluZTsKPiA+PisKPiA+PisgICAgaWYgKHRp bWVsaW5lLT5yaW5nKQo+ID4+KyAgICAgICAgcmV0dXJuIDA7Cj4gPj4rCj4gPj4rICAgIHRpbWVs aW5lLT5mZW5jZV9jb250ZXh0ID0gZmVuY2VfY29udGV4dF9hbGxvYygxKTsKPiA+PisKPiA+Pisg ICAgLyoKPiA+PisgICAgICogU3RhcnQgdGhlIHRpbWVsaW5lIGZyb20gc2Vxbm8gMCBhcyB0aGlz IGlzIGEgc3BlY2lhbCB2YWx1ZQo+ID4+KyAgICAgKiB0aGF0IGlzIHJlc2VydmVkIGZvciBpbnZh bGlkIHN5bmMgcG9pbnRzLgo+ID4+KyAgICAgKi8KPiA+PisgICAgdGltZWxpbmUtPm5leHQgICAg ICAgPSAxOwo+ID4+KyAgICB0aW1lbGluZS0+Y3R4ICAgICAgICA9IGN0eDsKPiA+PisgICAgdGlt ZWxpbmUtPnJpbmcgICAgICAgPSByaW5nOwo+ID4+Kwo+ID4+KyAgICByZXR1cm4gMDsKPiA+Pit9 Cj4gPj4rCj4gPj4rc3RhdGljIHVpbnQzMl90IGk5MTVfZmVuY2VfdGltZWxpbmVfZ2V0X25leHRf c2Vxbm8oc3RydWN0Cj4gPj5pOTE1X2ZlbmNlX3RpbWVsaW5lICp0aW1lbGluZSkKPiA+Pit7Cj4g Pj4rICAgIHVpbnQzMl90IHNlcW5vOwo+ID4+Kwo+ID4+KyAgICBzZXFubyA9IHRpbWVsaW5lLT5u ZXh0Owo+ID4+Kwo+ID4+KyAgICAvKiBSZXNlcnZlIHplcm8gZm9yIGludmFsaWQgKi8KPiA+Pisg ICAgaWYgKCsrdGltZWxpbmUtPm5leHQgPT0gMCApIHsKPiA+PisgICAgICAgIHRpbWVsaW5lLT5u ZXh0ID0gMTsKPiA+PisgICAgfQo+ID4+Kwo+ID4+KyAgICByZXR1cm4gc2Vxbm87Cj4gPj4rfQo+ ID4+Kwo+ID4+ICBpbnQgaTkxNV9nZW1fcmVxdWVzdF9hbGxvYyhzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICpyaW5nLAo+ID4+ICAgICAgICAgICAgICAgICBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4 LAo+ID4+ICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKipyZXFf b3V0KQo+ID4+QEAgLTI3MTUsNyArMjc3NCw5IEBAIGludCBpOTE1X2dlbV9yZXF1ZXN0X2FsbG9j KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MKPiA+PipyaW5nLAo+ID4+ICAgICAgICAgIGdvdG8gZXJy Owo+ID4+ICAgICAgfQo+ID4+Cj4gPj4tICAgIGZlbmNlX2luaXQoJnJlcS0+ZmVuY2UsICZpOTE1 X2dlbV9yZXF1ZXN0X2ZvcHMsICZyaW5nLT5mZW5jZV9sb2NrLAo+ID4+cmluZy0+ZmVuY2VfY29u dGV4dCwgcmVxLT5zZXFubyk7Cj4gPj4rICAgIGZlbmNlX2luaXQoJnJlcS0+ZmVuY2UsICZpOTE1 X2dlbV9yZXF1ZXN0X2ZvcHMsICZyaW5nLT5mZW5jZV9sb2NrLAo+ID4+KyBjdHgtPmVuZ2luZVty aW5nLT5pZF0uZmVuY2VfdGltZWxpbmUuZmVuY2VfY29udGV4dCwKPiA+PisKPiA+Pmk5MTVfZmVu Y2VfdGltZWxpbmVfZ2V0X25leHRfc2Vxbm8oJmN0eC0+ZW5naW5lW3JpbmctPmlkXS5mZW5jZV90 aW1lbGluZSkpOwo+ID4KPiA+SSBzdXBwb3NlIGZvciBkZWJ1Z2dpbmcgaXQgY291bGQgYmUgdXNl ZnVsIHRvIGFkZCB0aGlzIG5ldyBzZXFubyBpbgo+ID5pOTE1X2dlbV9yZXF1ZXN0X2luZm8gdG8g aGF2ZSB2aXNpYmlsaXR5IGF0IGJvdGggc2lkZXMuIFRvIG1hcCB1c2Vyc3BhY2UKPiA+c2Vxbm9z IHRvIGRyaXZlciBzdGF0ZS4KPiA+Cj4gPj4gICAgICAvKgo+ID4+ICAgICAgICogUmVzZXJ2ZSBz cGFjZSBpbiB0aGUgcmluZyBidWZmZXIgZm9yIGFsbCB0aGUgY29tbWFuZHMgcmVxdWlyZWQKPiA+ PnRvCj4gPj5AQCAtNTA2NSw3ICs1MTI2LDcgQEAgaTkxNV9nZW1faW5pdF9odyhzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KQo+ID4+ICB7Cj4gPj4gICAgICBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ID4+ICAgICAgc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqcmluZzsKPiA+Pi0gICAgaW50IHJldCwgaSwgaiwgZmVuY2VfYmFzZTsKPiA+PisgICAg aW50IHJldCwgaSwgajsKPiA+Pgo+ID4+ICAgICAgaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuIDwg NiAmJiAhaW50ZWxfZW5hYmxlX2d0dCgpKQo+ID4+ICAgICAgICAgIHJldHVybiAtRUlPOwo+ID4+ QEAgLTUxMTcsMTYgKzUxNzgsMTIgQEAgaTkxNV9nZW1faW5pdF9odyhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQo+ID4+ICAgICAgICAgICAgICBnb3RvIG91dDsKPiA+PiAgICAgIH0KPiA+Pgo+ID4+ LSAgICBmZW5jZV9iYXNlID0gZmVuY2VfY29udGV4dF9hbGxvYyhJOTE1X05VTV9SSU5HUyk7Cj4g Pj4tCj4gPj4gICAgICAvKiBOb3cgaXQgaXMgc2FmZSB0byBnbyBiYWNrIHJvdW5kIGFuZCBkbyBl dmVyeXRoaW5nIGVsc2U6ICovCj4gPj4gICAgICBmb3JfZWFjaF9yaW5nKHJpbmcsIGRldl9wcml2 LCBpKSB7Cj4gPj4gICAgICAgICAgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXE7Cj4g Pj4KPiA+PiAgICAgICAgICBXQVJOX09OKCFyaW5nLT5kZWZhdWx0X2NvbnRleHQpOwo+ID4+Cj4g Pj4tICAgICAgICByaW5nLT5mZW5jZV9jb250ZXh0ID0gZmVuY2VfYmFzZSArIGk7Cj4gPj4tCj4g Pj4gICAgICAgICAgcmV0ID0gaTkxNV9nZW1fcmVxdWVzdF9hbGxvYyhyaW5nLCByaW5nLT5kZWZh dWx0X2NvbnRleHQsCj4gPj4mcmVxKTsKPiA+PiAgICAgICAgICBpZiAocmV0KSB7Cj4gPj4gICAg ICAgICAgICAgIGk5MTVfZ2VtX2NsZWFudXBfcmluZ2J1ZmZlcihkZXYpOwo+ID4+ZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwo+ID4+Yi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKPiA+PmluZGV4IGI3N2E4ZjcuLjdlYjg2 OTQgMTAwNjQ0Cj4gPj4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0 LmMKPiA+PisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwo+ID4+ QEAgLTI0Miw3ICsyNDIsNyBAQCBpOTE1X2dlbV9jcmVhdGVfY29udGV4dChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAo+ID4+ICB7Cj4gPj4gICAgICBjb25zdCBib29sIGlzX2dsb2JhbF9kZWZhdWx0 X2N0eCA9IGZpbGVfcHJpdiA9PSBOVUxMOwo+ID4+ICAgICAgc3RydWN0IGludGVsX2NvbnRleHQg KmN0eDsKPiA+Pi0gICAgaW50IHJldCA9IDA7Cj4gPj4rICAgIGludCBpLCByZXQgPSAwOwo+ID4+ Cj4gPj4gICAgICBCVUdfT04oIW11dGV4X2lzX2xvY2tlZCgmZGV2LT5zdHJ1Y3RfbXV0ZXgpKTsK PiA+Pgo+ID4+QEAgLTI1MCw2ICsyNTAsMTkgQEAgaTkxNV9nZW1fY3JlYXRlX2NvbnRleHQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKPiA+PiAgICAgIGlmIChJU19FUlIoY3R4KSkKPiA+PiAgICAg ICAgICByZXR1cm4gY3R4Owo+ID4+Cj4gPj4rICAgIGlmICghaTkxNS5lbmFibGVfZXhlY2xpc3Rz KSB7Cj4gPj4rICAgICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nOwo+ID4+Kwo+ID4+ KyAgICAgICAgLyogQ3JlYXRlIGEgcGVyIGNvbnRleHQgdGltZWxpbmUgZm9yIGZlbmNlcyAqLwo+ ID4+KyAgICAgICAgZm9yX2VhY2hfcmluZyhyaW5nLCB0b19pOTE1KGRldiksIGkpIHsKPiA+Pisg ICAgICAgICAgICByZXQgPSBpOTE1X2NyZWF0ZV9mZW5jZV90aW1lbGluZShkZXYsIGN0eCwgcmlu Zyk7Cj4gPj4rICAgICAgICAgICAgaWYgKHJldCkgewo+ID4+KyAgICAgICAgICAgICAgICBEUk1f RVJST1IoIkZlbmNlIHRpbWVsaW5lIGNyZWF0aW9uIGZhaWxlZCBmb3IgbGVnYWN5Cj4gPj4lczog JXBcbiIsIHJpbmctPm5hbWUsIGN0eCk7Cj4gPj4rICAgICAgICAgICAgICAgIGdvdG8gZXJyX2Rl c3Ryb3k7Cj4gPj4rICAgICAgICAgICAgfQo+ID4+KyAgICAgICAgfQo+ID4+KyAgICB9Cj4gPj4r Cj4gPj4gICAgICBpZiAoaXNfZ2xvYmFsX2RlZmF1bHRfY3R4ICYmIGN0eC0+bGVnYWN5X2h3X2N0 eC5yY3Nfc3RhdGUpIHsKPiA+PiAgICAgICAgICAvKiBXZSBtYXkgbmVlZCB0byBkbyB0aGluZ3Mg d2l0aCB0aGUgc2hyaW5rZXIgd2hpY2gKPiA+PiAgICAgICAgICAgKiByZXF1aXJlIHVzIHRvIGlt bWVkaWF0ZWx5IHN3aXRjaCBiYWNrIHRvIHRoZSBkZWZhdWx0Cj4gPj5kaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiA+PmIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfbHJjLmMKPiA+PmluZGV4IGVlNGFlY2QuLjhmMjU1ZGUgMTAwNjQ0Cj4gPj4tLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+ID4+KysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfbHJjLmMKPiA+PkBAIC0yMzc2LDYgKzIzNzYsMTQgQEAgaW50IGludGVsX2xy X2NvbnRleHRfZGVmZXJyZWRfY3JlYXRlKHN0cnVjdAo+ID4+aW50ZWxfY29udGV4dCAqY3R4LAo+ ID4+ICAgICAgICAgIGdvdG8gZXJyb3I7Cj4gPj4gICAgICB9Cj4gPj4KPiA+PisgICAgLyogQ3Jl YXRlIGEgcGVyIGNvbnRleHQgdGltZWxpbmUgZm9yIGZlbmNlcyAqLwo+ID4+KyAgICByZXQgPSBp OTE1X2NyZWF0ZV9mZW5jZV90aW1lbGluZShkZXYsIGN0eCwgcmluZyk7Cj4gPj4rICAgIGlmIChy ZXQpIHsKPiA+PisgICAgICAgIERSTV9FUlJPUigiRmVuY2UgdGltZWxpbmUgY3JlYXRpb24gZmFp bGVkIGZvciByaW5nICVzLCBjdHgKPiA+PiVwXG4iLAo+ID4+KyAgICAgICAgICAgICAgcmluZy0+ bmFtZSwgY3R4KTsKPiA+PisgICAgICAgIGdvdG8gZXJyb3I7Cj4gPj4rICAgIH0KPiA+PisKPiA+ Cj4gPldlIG11c3QgYmUgMTAwJSBzdXJlIHVzZXJzcGFjZSBjYW5ub3QgcHJvdm9rZSBjb250ZXh0 IGNyZWF0aW9uIGZhaWx1cmUgYnkKPiA+YWNjaWRlbnQgb3IgZGVsaWJlcmF0ZWx5LiBPdGhlcndp c2Ugd2Ugd291bGQgbGVhayBmZW5jZSBjb250ZXh0cyB1bnRpbAo+ID5vdmVyZmxvdyB3aGljaCB3 b3VsZCBiZSBiYWQuCj4gPgo+ID5QZXJoYXBzIG1hdGNoaW5nIGZlbmNlX2NvbnRleHRfcmVsZWFz ZSBmb3IgZXhpc3RpbmcgZmVuY2VfY29udGV4dF9hbGxvYwo+ID5zaG91bGQgYmUgYWRkZWQ/Cj4g Cj4gTm90ZSB0aGF0IHRoZXJlIGlzIG5vIGZlbmNlX2NvbnRleHRfcmVsZWFzZS4gVGhlIGZlbmNl X2NvbnRleHRfYWxsb2MgY29kZSBpcwo+IHNpbXBseSAncmV0dXJuIHN0YXRpY19jb3VudCsrOycu IFRoZXJlIGlzIG5vIG92ZXJmbG93IGNoZWNraW5nLiBUaGVyZSBpcyBubwo+IGFudGktcmUtdXNl IGNoZWNraW5nLiBXaGVuIDRHQiBjb250ZXh0cyBoYXZlIGJlZW4gYWxsb2NhdGVkLCB0aGUgb2xk IG9uZXMKPiB3aWxsIGdldCByZS1hbGxvY2F0ZWQgYW5kIGlmIHRoZXkgYXJlIHN0aWxsIGluIHVz ZSB0aGVuIHRvdWdoLiBJdCdzIGEgcmVhbGx5Cj4gYmFkIEFQSSEgT24gdGhlIG90aGVyIGhhbmQs IHRoZSBjb250ZXh0IGlzIG5vdCBhY3R1YWxseSB1c2VkIGZvciBhbnl0aGluZy4KPiBTbyBpdCBk b2Vzbid0IHJlYWxseSBtYXR0ZXIuCgpXaGVuIGl0IHdhcyB3cml0dGVuIGFsbCB0aGUgdXNlcnMg b2YgdGhlIGZlbmNlIGFwaSBvbmx5IGFsbG9jYXRlZCBjb250ZXh0cwpmb3IgaHcgcmVzb3VyY2Vz LCB3aGljaCBtZWFucyBvdmVyZmxvd2luZyBpcyBwcmV0dHkgbXVjaCBpbXBvc3NpYmxlLiBXaXRo CmV4ZWNsaXN0IHRoaXMgaXMgZGlmZmVyZW50LiBJIGd1ZXNzIGl0J3MgdGltZSB0byBmaXggdXAg dGhlIGZlbmNlIHRpbWVsaW5lCmNyZWF0aW9uIGFwaS4KLURhbmllbAoKPiAKPiAKPiA+Cj4gPlJl Z2FyZHMsCj4gPgo+ID5UdnJ0a28KPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAoKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIs IEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==