From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Harrison Subject: Re: [RFC 5/9] drm/i915: Add per context timelines to fence object Date: Wed, 28 Oct 2015 12:59:31 +0000 Message-ID: <5630C6B3.8020908@Intel.com> 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> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 2DB126E8B4 for ; Wed, 28 Oct 2015 05:59:33 -0700 (PDT) In-Reply-To: <55B0F12D.7090204@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Tvrtko Ursulin , Intel-GFX@Lists.FreeDesktop.Org List-Id: intel-gfx@lists.freedesktop.org SGF2ZSBmaW5hbGx5IGhhZCBzb21lIHRpbWUgdG8gY29tZSBiYWNrIHRvIHRoaXMgYW5kIHJlc3Bv bmQgCnRvL2luY29ycG9yYXRlIHRoZSBjb21tZW50cyBtYWRlIHNvbWUgd2hpbGUgYWdvLi4uCgoK T24gMjMvMDcvMjAxNSAxNDo1MCwgVHZydGtvIFVyc3VsaW4gd3JvdGU6Cj4gSGksCj4KPiBPbiAw Ny8xNy8yMDE1IDAzOjMxIFBNLCBKb2huLkMuSGFycmlzb25ASW50ZWwuY29tIHdyb3RlOgo+PiBG cm9tOiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25ASW50ZWwuY29tPgo+Pgo+PiBUaGUg ZmVuY2Ugb2JqZWN0IHVzZWQgaW5zaWRlIHRoZSByZXF1ZXN0IHN0cnVjdHVyZSByZXF1aXJlcyBh IAo+PiBzZXF1ZW5jZSBudW1iZXIuCj4+IEFsdGhvdWdoIHRoaXMgaXMgbm90IHVzZWQgYnkgdGhl IGk5MTUgZHJpdmVyIGl0c2VsZiwgaXQgY291bGQgCj4+IHBvdGVudGlhbGx5IGJlCj4+IHVzZWQg Ynkgbm9uLWk5MTUgY29kZSBpZiB0aGUgZmVuY2UgaXMgcGFzc2VkIG91dHNpZGUgb2YgdGhlIGRy aXZlci4gCj4+IFRoaXMgaXMgdGhlCj4+IGludGVudGlvbiBhcyBpdCBhbGxvd3MgZXh0ZXJuYWwg a2VybmVsIGRyaXZlcnMgYW5kIHVzZXIgYXBwbGljYXRpb25zIAo+PiB0byB3YWl0IG9uCj4+IGJh dGNoIGJ1ZmZlciBjb21wbGV0aW9uIGFzeW5jaHJvbm91c2x5IHZpYSB0aGUgZG1hLWJ1ZmYgZmVu Y2UgQVBJLgo+Pgo+PiBUbyBlbnN1cmUgdGhhdCBzdWNoIGV4dGVybmFsIHVzZXJzIGFyZSBub3Qg Y29uZnVzZWQgYnkgc3RyYW5nZSB0aGluZ3MgCj4+IGhhcHBlbmluZwo+PiB3aXRoIHRoZSBzZXFu bywgdGhpcyBwYXRjaCBhZGRzIGluIGEgcGVyIGNvbnRleHQgdGltZWxpbmUgdGhhdCBjYW4gCj4+ IHByb3ZpZGUgYQo+PiBndWFyYW50ZWVkIGluLW9yZGVyIHNlcW5vIHZhbHVlIGZvciB0aGUgZmVu Y2UuIFRoaXMgaXMgc2FmZSBiZWNhdXNlIHRoZQo+PiBzY2hlZHVsZXIgd2lsbCBub3QgcmUtb3Jk ZXIgYmF0Y2ggYnVmZmVycyB3aXRoaW4gYSBjb250ZXh0IC0gdGhleSBhcmUgCj4+IGNvbnNpZGVy ZWQKPj4gdG8gYmUgbXV0dWFsbHkgZGVwZW5kZW50Lgo+Pgo+PiBbbmV3IHBhdGNoIGluIHNlcmll c10KPj4KPj4gRm9yOiBWSVotNTE5MAo+PiBTaWduZWQtb2ZmLWJ5OiBKb2huIEhhcnJpc29uIDxK b2huLkMuSGFycmlzb25ASW50ZWwuY29tPgo+PiAtLS0KPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oICAgICAgICAgfCAyNSArKysrKysrKy0tLS0KPj4gICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICAgfCA2OSAKPj4gKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLS0tCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5j IHwgMTUgKysrKysrLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jICAgICAg ICB8ICA4ICsrKysKPj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgg fCAgMSAtCj4+ICAgNSBmaWxlcyBjaGFuZ2VkLCAxMDMgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRp b25zKC0pCj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o IAo+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4gaW5kZXggMGM3ZGY0Ni4u ODhhNDc0NiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+IEBAIC04NDAsNiArODQw LDE1IEBAIHN0cnVjdCBpOTE1X2N0eF9oYW5nX3N0YXRzIHsKPj4gICAgICAgYm9vbCBiYW5uZWQ7 Cj4+ICAgfTsKPj4KPj4gK3N0cnVjdCBpOTE1X2ZlbmNlX3RpbWVsaW5lIHsKPj4gKyAgICB1bnNp Z25lZCAgICBmZW5jZV9jb250ZXh0Owo+PiArICAgIHVpbnQzMl90ICAgIGNvbnRleHQ7Cj4KPiBV bnVzZWQgZmllbGQ/Cj4KPj4gKyAgICB1aW50MzJfdCAgICBuZXh0Owo+Cj4gZmVuY2UuaCBkZWZp bmVzIHNlcW5vcyBhcyAndW5zaWduZWQnLCB3aGljaCBtYXRjaGVzIHRoaXMgaW4gcHJhY3RpY2Us IAo+IGJ1dCBtYXliZSBpdCB3b3VsZCBiZSBuaWNlciB0byB1c2UgdGhlIHNhbWUgdHlwZSBuYW1l Lgo+Cj4+ICsKPj4gKyAgICBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4Owo+PiArICAgIHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKnJpbmc7Cj4+ICt9Owo+PiArCj4+ICAgLyogVGhpcyBtdXN0IG1h dGNoIHVwIHdpdGggdGhlIHZhbHVlIHByZXZpb3VzbHkgdXNlZCBmb3IgCj4+IGV4ZWNidWYyLnJz dmQxLiAqLwo+PiAgICNkZWZpbmUgREVGQVVMVF9DT05URVhUX0hBTkRMRSAwCj4+Cj4+IEBAIC04 ODUsNiArODk0LDcgQEAgc3RydWN0IGludGVsX2NvbnRleHQgewo+PiAgICAgICAgICAgc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKnN0YXRlOwo+PiAgICAgICAgICAgc3RydWN0IGludGVsX3Jp bmdidWZmZXIgKnJpbmdidWY7Cj4+ICAgICAgICAgICBpbnQgcGluX2NvdW50Owo+PiArICAgICAg ICBzdHJ1Y3QgaTkxNV9mZW5jZV90aW1lbGluZSBmZW5jZV90aW1lbGluZTsKPj4gICAgICAgfSBl bmdpbmVbSTkxNV9OVU1fUklOR1NdOwo+Pgo+PiAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGxpbms7 Cj4+IEBAIC0yMTUzLDEzICsyMTYzLDEwIEBAIHZvaWQgaTkxNV9nZW1fdHJhY2tfZmIoc3RydWN0 IAo+PiBkcm1faTkxNV9nZW1fb2JqZWN0ICpvbGQsCj4+ICAgc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0IHsKPj4gICAgICAgLyoqCj4+ICAgICAgICAqIFVuZGVybHlpbmcgb2JqZWN0IGZvciBp bXBsZW1lbnRpbmcgdGhlIHNpZ25hbC93YWl0IHN0dWZmLgo+PiAtICAgICAqIE5COiBOZXZlciBj YWxsIGZlbmNlX2xhdGVyKCkgb3IgcmV0dXJuIHRoaXMgZmVuY2Ugb2JqZWN0IHRvIHVzZXIKPj4g LSAgICAgKiBsYW5kISBEdWUgdG8gbGF6eSBhbGxvY2F0aW9uLCBzY2hlZHVsZXIgcmUtb3JkZXJp bmcsIAo+PiBwcmUtZW1wdGlvbiwKPj4gLSAgICAgKiBldGMuLCB0aGVyZSBpcyBubyBndWFyYW50 ZWUgYXQgYWxsIGFib3V0IHRoZSB2YWxpZGl0eSBvcgo+PiAtICAgICAqIHNlcXVlbnRpYWxpdHkg b2YgdGhlIGZlbmNlJ3Mgc2Vxbm8hIEl0IGlzIGFsc28gdW5zYWZlIHRvIGxldAo+PiAtICAgICAq IGFueXRoaW5nIG91dHNpZGUgb2YgdGhlIGk5MTUgZHJpdmVyIGdldCBob2xkIG9mIHRoZSBmZW5j ZSBvYmplY3QKPj4gLSAgICAgKiBhcyB0aGUgY2xlYW4gdXAgd2hlbiBkZWNyZW1lbnRpbmcgdGhl IHJlZmVyZW5jZSBjb3VudCByZXF1aXJlcwo+PiAtICAgICAqIGhvbGRpbmcgdGhlIGRyaXZlciBt dXRleCBsb2NrLgo+PiArICAgICAqIE5COiBOZXZlciByZXR1cm4gdGhpcyBmZW5jZSBvYmplY3Qg dG8gdXNlciBsYW5kISBJdCBpcyB1bnNhZmUgdG8KPj4gKyAgICAgKiBsZXQgYW55dGhpbmcgb3V0 c2lkZSBvZiB0aGUgaTkxNSBkcml2ZXIgZ2V0IGhvbGQgb2YgdGhlIGZlbmNlCj4+ICsgICAgICog b2JqZWN0IGFzIHRoZSBjbGVhbiB1cCB3aGVuIGRlY3JlbWVudGluZyB0aGUgcmVmZXJlbmNlIGNv dW50Cj4+ICsgICAgICogcmVxdWlyZXMgaG9sZGluZyB0aGUgZHJpdmVyIG11dGV4IGxvY2suCj4+ ICAgICAgICAqLwo+PiAgICAgICBzdHJ1Y3QgZmVuY2UgZmVuY2U7Cj4+Cj4+IEBAIC0yMjM5LDYg KzIyNDYsMTAgQEAgaW50IGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2Moc3RydWN0IAo+PiBpbnRlbF9l bmdpbmVfY3MgKnJpbmcsCj4+ICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICoqcmVxX291dCk7Cj4+ICAgdm9pZCBpOTE1X2dlbV9yZXF1ZXN0X2NhbmNlbChzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSk7Cj4+Cj4+ICtpbnQgaTkxNV9jcmVhdGVfZmVu Y2VfdGltZWxpbmUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPj4gKyAgICAgICAgICAgICAgICAg ICBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4LAo+PiArICAgICAgICAgICAgICAgICAgIHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpOwo+PiArCj4+ICAgc3RhdGljIGlubGluZSBib29sIGk5 MTVfZ2VtX3JlcXVlc3RfY29tcGxldGVkKHN0cnVjdCAKPj4gZHJtX2k5MTVfZ2VtX3JlcXVlc3Qg KnJlcSkKPj4gICB7Cj4+ICAgICAgIHJldHVybiBmZW5jZV9pc19zaWduYWxlZCgmcmVxLT5mZW5j ZSk7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIAo+PiBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPj4gaW5kZXggMzk3MDI1MC4uYWY3OTcx NiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+PiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4+IEBAIC0yNjcxLDYgKzI2NzEsMjUg QEAgc3RhdGljIGJvb2wgCj4+IGk5MTVfZ2VtX3JlcXVlc3RfaXNfY29tcGxldGVkKHN0cnVjdCBm ZW5jZSAqcmVxX2ZlbmNlKQo+PiAgICAgICByZXR1cm4gaTkxNV9zZXFub19wYXNzZWQoc2Vxbm8s IHJlcS0+c2Vxbm8pOwo+PiAgIH0KPj4KPj4gK3N0YXRpYyB2b2lkIGk5MTVfZmVuY2VfdGltZWxp bmVfdmFsdWVfc3RyKHN0cnVjdCBmZW5jZSAqZmVuY2UsIGNoYXIgCj4+ICpzdHIsIGludCBzaXpl KQo+PiArewo+PiArICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxOwo+PiArCj4+ ICsgICAgcmVxID0gY29udGFpbmVyX29mKGZlbmNlLCB0eXBlb2YoKnJlcSksIGZlbmNlKTsKPj4g Kwo+PiArICAgIC8qIExhc3Qgc2lnbmFsbGVkIHRpbWVsaW5lIHZhbHVlID8/PyAqLwo+PiArICAg IHNucHJpbnRmKHN0ciwgc2l6ZSwgIj8gWyVkXSIvKiwgdGwtPnZhbHVlKi8sIAo+PiByZXEtPnJp bmctPmdldF9zZXFubyhyZXEtPnJpbmcsIHRydWUpKTsKPj4gK30KPgo+IElmIHRpbWVsaW5lcyBh cmUgcGVyIGNvbnRleHQgbm93IG1heWJlIHdlIHNob3VsZCB1cGRhdGUgCj4gaTkxNV9nZW1fcmVx dWVzdF9nZXRfdGltZWxpbmVfbmFtZSB0byBiZSBwZXIgY29udGV4dCBpbnN0ZWFkIG9mIHBlciAK PiBlbmdpbmUgYXMgd2VsbD8gTGlrZSB0aGlzIHdlIGhhdmUgYSBuYW1lIHNwYWNlIG92ZXJsYXAg LyBzZXFubyAKPiBjb2xsaXNpb25zIGZyb20gdXNlcnNwYWNlIHBvaW50IG9mIHZpZXcuCj4KPj4g K3N0YXRpYyB2b2lkIGk5MTVfZmVuY2VfdmFsdWVfc3RyKHN0cnVjdCBmZW5jZSAqZmVuY2UsIGNo YXIgKnN0ciwgaW50IAo+PiBzaXplKQo+PiArewo+PiArICAgIHN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCAqcmVxOwo+PiArCj4+ICsgICAgcmVxID0gY29udGFpbmVyX29mKGZlbmNlLCB0eXBl b2YoKnJlcSksIGZlbmNlKTsKPj4gKwo+PiArICAgIHNucHJpbnRmKHN0ciwgc2l6ZSwgIiVkIFsl ZF0iLCByZXEtPmZlbmNlLnNlcW5vLCByZXEtPnNlcW5vKTsKPj4gK30KPj4gKwo+PiAgIHN0YXRp YyBjb25zdCBzdHJ1Y3QgZmVuY2Vfb3BzIGk5MTVfZ2VtX3JlcXVlc3RfZm9wcyA9IHsKPj4gICAg ICAgLmdldF9kcml2ZXJfbmFtZSAgICA9IGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X2RyaXZlcl9uYW1l LAo+PiAgICAgICAuZ2V0X3RpbWVsaW5lX25hbWUgICAgPSBpOTE1X2dlbV9yZXF1ZXN0X2dldF90 aW1lbGluZV9uYW1lLAo+PiBAQCAtMjY3OCw4ICsyNjk3LDQ4IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgZmVuY2Vfb3BzIAo+PiBpOTE1X2dlbV9yZXF1ZXN0X2ZvcHMgPSB7Cj4+ICAgICAgIC5zaWdu YWxlZCAgICAgICAgPSBpOTE1X2dlbV9yZXF1ZXN0X2lzX2NvbXBsZXRlZCwKPj4gICAgICAgLndh aXQgICAgICAgICAgICA9IGZlbmNlX2RlZmF1bHRfd2FpdCwKPj4gICAgICAgLnJlbGVhc2UgICAg ICAgID0gaTkxNV9nZW1fcmVxdWVzdF9mcmVlLAo+PiArICAgIC5mZW5jZV92YWx1ZV9zdHIgICAg PSBpOTE1X2ZlbmNlX3ZhbHVlX3N0ciwKPj4gKyAgICAudGltZWxpbmVfdmFsdWVfc3RyICAgID0g aTkxNV9mZW5jZV90aW1lbGluZV92YWx1ZV9zdHIsCj4+ICAgfTsKPj4KPj4gK2ludCBpOTE1X2Ny ZWF0ZV9mZW5jZV90aW1lbGluZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+PiArICAgICAgICAg ICAgICAgICAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsCj4+ICsgICAgICAgICAgICAgICAg ICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKPj4gK3sKPj4gKyAgICBzdHJ1Y3QgaTkx NV9mZW5jZV90aW1lbGluZSAqdGltZWxpbmU7Cj4+ICsKPj4gKyAgICB0aW1lbGluZSA9ICZjdHgt PmVuZ2luZVtyaW5nLT5pZF0uZmVuY2VfdGltZWxpbmU7Cj4+ICsKPj4gKyAgICBpZiAodGltZWxp bmUtPnJpbmcpCj4+ICsgICAgICAgIHJldHVybiAwOwo+PiArCj4+ICsgICAgdGltZWxpbmUtPmZl bmNlX2NvbnRleHQgPSBmZW5jZV9jb250ZXh0X2FsbG9jKDEpOwo+PiArCj4+ICsgICAgLyoKPj4g KyAgICAgKiBTdGFydCB0aGUgdGltZWxpbmUgZnJvbSBzZXFubyAwIGFzIHRoaXMgaXMgYSBzcGVj aWFsIHZhbHVlCj4+ICsgICAgICogdGhhdCBpcyByZXNlcnZlZCBmb3IgaW52YWxpZCBzeW5jIHBv aW50cy4KPj4gKyAgICAgKi8KPj4gKyAgICB0aW1lbGluZS0+bmV4dCAgICAgICA9IDE7Cj4+ICsg ICAgdGltZWxpbmUtPmN0eCAgICAgICAgPSBjdHg7Cj4+ICsgICAgdGltZWxpbmUtPnJpbmcgICAg ICAgPSByaW5nOwo+PiArCj4+ICsgICAgcmV0dXJuIDA7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyB1 aW50MzJfdCBpOTE1X2ZlbmNlX3RpbWVsaW5lX2dldF9uZXh0X3NlcW5vKHN0cnVjdCAKPj4gaTkx NV9mZW5jZV90aW1lbGluZSAqdGltZWxpbmUpCj4+ICt7Cj4+ICsgICAgdWludDMyX3Qgc2Vxbm87 Cj4+ICsKPj4gKyAgICBzZXFubyA9IHRpbWVsaW5lLT5uZXh0Owo+PiArCj4+ICsgICAgLyogUmVz ZXJ2ZSB6ZXJvIGZvciBpbnZhbGlkICovCj4+ICsgICAgaWYgKCsrdGltZWxpbmUtPm5leHQgPT0g MCApIHsKPj4gKyAgICAgICAgdGltZWxpbmUtPm5leHQgPSAxOwo+PiArICAgIH0KPj4gKwo+PiAr ICAgIHJldHVybiBzZXFubzsKPj4gK30KPj4gKwo+PiAgIGludCBpOTE1X2dlbV9yZXF1ZXN0X2Fs bG9jKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4+ICAgICAgICAgICAgICAgICAgc3Ry dWN0IGludGVsX2NvbnRleHQgKmN0eCwKPj4gICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKipyZXFfb3V0KQo+PiBAQCAtMjcxNSw3ICsyNzc0LDkgQEAgaW50IGk5 MTVfZ2VtX3JlcXVlc3RfYWxsb2Moc3RydWN0IAo+PiBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4+ ICAgICAgICAgICBnb3RvIGVycjsKPj4gICAgICAgfQo+Pgo+PiAtICAgIGZlbmNlX2luaXQoJnJl cS0+ZmVuY2UsICZpOTE1X2dlbV9yZXF1ZXN0X2ZvcHMsIAo+PiAmcmluZy0+ZmVuY2VfbG9jaywg cmluZy0+ZmVuY2VfY29udGV4dCwgcmVxLT5zZXFubyk7Cj4+ICsgICAgZmVuY2VfaW5pdCgmcmVx LT5mZW5jZSwgJmk5MTVfZ2VtX3JlcXVlc3RfZm9wcywgJnJpbmctPmZlbmNlX2xvY2ssCj4+ICsg Y3R4LT5lbmdpbmVbcmluZy0+aWRdLmZlbmNlX3RpbWVsaW5lLmZlbmNlX2NvbnRleHQsCj4+ICsg Cj4+IGk5MTVfZmVuY2VfdGltZWxpbmVfZ2V0X25leHRfc2Vxbm8oJmN0eC0+ZW5naW5lW3Jpbmct PmlkXS5mZW5jZV90aW1lbGluZSkpOwo+Cj4gSSBzdXBwb3NlIGZvciBkZWJ1Z2dpbmcgaXQgY291 bGQgYmUgdXNlZnVsIHRvIGFkZCB0aGlzIG5ldyBzZXFubyBpbiAKPiBpOTE1X2dlbV9yZXF1ZXN0 X2luZm8gdG8gaGF2ZSB2aXNpYmlsaXR5IGF0IGJvdGggc2lkZXMuIFRvIG1hcCAKPiB1c2Vyc3Bh Y2Ugc2Vxbm9zIHRvIGRyaXZlciBzdGF0ZS4KPgo+PiAgICAgICAvKgo+PiAgICAgICAgKiBSZXNl cnZlIHNwYWNlIGluIHRoZSByaW5nIGJ1ZmZlciBmb3IgYWxsIHRoZSBjb21tYW5kcyAKPj4gcmVx dWlyZWQgdG8KPj4gQEAgLTUwNjUsNyArNTEyNiw3IEBAIGk5MTVfZ2VtX2luaXRfaHcoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKPj4gICB7Cj4+ICAgICAgIHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4+ICAgICAgIHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKnJpbmc7Cj4+IC0gICAgaW50IHJldCwgaSwgaiwgZmVuY2VfYmFzZTsKPj4gKyAgICBp bnQgcmV0LCBpLCBqOwo+Pgo+PiAgICAgICBpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPCA2ICYm ICFpbnRlbF9lbmFibGVfZ3R0KCkpCj4+ICAgICAgICAgICByZXR1cm4gLUVJTzsKPj4gQEAgLTUx MTcsMTYgKzUxNzgsMTIgQEAgaTkxNV9nZW1faW5pdF9odyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQo+PiAgICAgICAgICAgICAgIGdvdG8gb3V0Owo+PiAgICAgICB9Cj4+Cj4+IC0gICAgZmVuY2Vf YmFzZSA9IGZlbmNlX2NvbnRleHRfYWxsb2MoSTkxNV9OVU1fUklOR1MpOwo+PiAtCj4+ICAgICAg IC8qIE5vdyBpdCBpcyBzYWZlIHRvIGdvIGJhY2sgcm91bmQgYW5kIGRvIGV2ZXJ5dGhpbmcgZWxz ZTogKi8KPj4gICAgICAgZm9yX2VhY2hfcmluZyhyaW5nLCBkZXZfcHJpdiwgaSkgewo+PiAgICAg ICAgICAgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXE7Cj4+Cj4+ICAgICAgICAgICBX QVJOX09OKCFyaW5nLT5kZWZhdWx0X2NvbnRleHQpOwo+Pgo+PiAtICAgICAgICByaW5nLT5mZW5j ZV9jb250ZXh0ID0gZmVuY2VfYmFzZSArIGk7Cj4+IC0KPj4gICAgICAgICAgIHJldCA9IGk5MTVf Z2VtX3JlcXVlc3RfYWxsb2MocmluZywgcmluZy0+ZGVmYXVsdF9jb250ZXh0LCAKPj4gJnJlcSk7 Cj4+ICAgICAgICAgICBpZiAocmV0KSB7Cj4+ICAgICAgICAgICAgICAgaTkxNV9nZW1fY2xlYW51 cF9yaW5nYnVmZmVyKGRldik7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9jb250ZXh0LmMgCj4+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29u dGV4dC5jCj4+IGluZGV4IGI3N2E4ZjcuLjdlYjg2OTQgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKPj4gQEAgLTI0Miw3ICsyNDIsNyBAQCBpOTE1X2dlbV9j cmVhdGVfY29udGV4dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+PiAgIHsKPj4gICAgICAgY29u c3QgYm9vbCBpc19nbG9iYWxfZGVmYXVsdF9jdHggPSBmaWxlX3ByaXYgPT0gTlVMTDsKPj4gICAg ICAgc3RydWN0IGludGVsX2NvbnRleHQgKmN0eDsKPj4gLSAgICBpbnQgcmV0ID0gMDsKPj4gKyAg ICBpbnQgaSwgcmV0ID0gMDsKPj4KPj4gICAgICAgQlVHX09OKCFtdXRleF9pc19sb2NrZWQoJmRl di0+c3RydWN0X211dGV4KSk7Cj4+Cj4+IEBAIC0yNTAsNiArMjUwLDE5IEBAIGk5MTVfZ2VtX2Ny ZWF0ZV9jb250ZXh0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+ICAgICAgIGlmIChJU19FUlIo Y3R4KSkKPj4gICAgICAgICAgIHJldHVybiBjdHg7Cj4+Cj4+ICsgICAgaWYgKCFpOTE1LmVuYWJs ZV9leGVjbGlzdHMpIHsKPj4gKyAgICAgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZzsK Pj4gKwo+PiArICAgICAgICAvKiBDcmVhdGUgYSBwZXIgY29udGV4dCB0aW1lbGluZSBmb3IgZmVu Y2VzICovCj4+ICsgICAgICAgIGZvcl9lYWNoX3JpbmcocmluZywgdG9faTkxNShkZXYpLCBpKSB7 Cj4+ICsgICAgICAgICAgICByZXQgPSBpOTE1X2NyZWF0ZV9mZW5jZV90aW1lbGluZShkZXYsIGN0 eCwgcmluZyk7Cj4+ICsgICAgICAgICAgICBpZiAocmV0KSB7Cj4+ICsgICAgICAgICAgICAgICAg RFJNX0VSUk9SKCJGZW5jZSB0aW1lbGluZSBjcmVhdGlvbiBmYWlsZWQgZm9yIGxlZ2FjeSAKPj4g JXM6ICVwXG4iLCByaW5nLT5uYW1lLCBjdHgpOwo+PiArICAgICAgICAgICAgICAgIGdvdG8gZXJy X2Rlc3Ryb3k7Cj4+ICsgICAgICAgICAgICB9Cj4+ICsgICAgICAgIH0KPj4gKyAgICB9Cj4+ICsK Pj4gICAgICAgaWYgKGlzX2dsb2JhbF9kZWZhdWx0X2N0eCAmJiBjdHgtPmxlZ2FjeV9od19jdHgu cmNzX3N0YXRlKSB7Cj4+ICAgICAgICAgICAvKiBXZSBtYXkgbmVlZCB0byBkbyB0aGluZ3Mgd2l0 aCB0aGUgc2hyaW5rZXIgd2hpY2gKPj4gICAgICAgICAgICAqIHJlcXVpcmUgdXMgdG8gaW1tZWRp YXRlbHkgc3dpdGNoIGJhY2sgdG8gdGhlIGRlZmF1bHQKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIAo+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2xyYy5jCj4+IGluZGV4IGVlNGFlY2QuLjhmMjU1ZGUgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2xyYy5jCj4+IEBAIC0yMzc2LDYgKzIzNzYsMTQgQEAgaW50IGludGVsX2xyX2NvbnRleHRf ZGVmZXJyZWRfY3JlYXRlKHN0cnVjdCAKPj4gaW50ZWxfY29udGV4dCAqY3R4LAo+PiAgICAgICAg ICAgZ290byBlcnJvcjsKPj4gICAgICAgfQo+Pgo+PiArICAgIC8qIENyZWF0ZSBhIHBlciBjb250 ZXh0IHRpbWVsaW5lIGZvciBmZW5jZXMgKi8KPj4gKyAgICByZXQgPSBpOTE1X2NyZWF0ZV9mZW5j ZV90aW1lbGluZShkZXYsIGN0eCwgcmluZyk7Cj4+ICsgICAgaWYgKHJldCkgewo+PiArICAgICAg ICBEUk1fRVJST1IoIkZlbmNlIHRpbWVsaW5lIGNyZWF0aW9uIGZhaWxlZCBmb3IgcmluZyAlcywg Y3R4IAo+PiAlcFxuIiwKPj4gKyAgICAgICAgICAgICAgcmluZy0+bmFtZSwgY3R4KTsKPj4gKyAg ICAgICAgZ290byBlcnJvcjsKPj4gKyAgICB9Cj4+ICsKPgo+IFdlIG11c3QgYmUgMTAwJSBzdXJl IHVzZXJzcGFjZSBjYW5ub3QgcHJvdm9rZSBjb250ZXh0IGNyZWF0aW9uIGZhaWx1cmUgCj4gYnkg YWNjaWRlbnQgb3IgZGVsaWJlcmF0ZWx5LiBPdGhlcndpc2Ugd2Ugd291bGQgbGVhayBmZW5jZSBj b250ZXh0cyAKPiB1bnRpbCBvdmVyZmxvdyB3aGljaCB3b3VsZCBiZSBiYWQuCj4KPiBQZXJoYXBz IG1hdGNoaW5nIGZlbmNlX2NvbnRleHRfcmVsZWFzZSBmb3IgZXhpc3RpbmcgCj4gZmVuY2VfY29u dGV4dF9hbGxvYyBzaG91bGQgYmUgYWRkZWQ/CgpOb3RlIHRoYXQgdGhlcmUgaXMgbm8gZmVuY2Vf Y29udGV4dF9yZWxlYXNlLiBUaGUgZmVuY2VfY29udGV4dF9hbGxvYyAKY29kZSBpcyBzaW1wbHkg J3JldHVybiBzdGF0aWNfY291bnQrKzsnLiBUaGVyZSBpcyBubyBvdmVyZmxvdyBjaGVja2luZy4g ClRoZXJlIGlzIG5vIGFudGktcmUtdXNlIGNoZWNraW5nLiBXaGVuIDRHQiBjb250ZXh0cyBoYXZl IGJlZW4gYWxsb2NhdGVkLCAKdGhlIG9sZCBvbmVzIHdpbGwgZ2V0IHJlLWFsbG9jYXRlZCBhbmQg aWYgdGhleSBhcmUgc3RpbGwgaW4gdXNlIHRoZW4gCnRvdWdoLiBJdCdzIGEgcmVhbGx5IGJhZCBB UEkhIE9uIHRoZSBvdGhlciBoYW5kLCB0aGUgY29udGV4dCBpcyBub3QgCmFjdHVhbGx5IHVzZWQg Zm9yIGFueXRoaW5nLiBTbyBpdCBkb2Vzbid0IHJlYWxseSBtYXR0ZXIuCgoKPgo+IFJlZ2FyZHMs Cj4KPiBUdnJ0a28KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4 Cg==