From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [RFC 5/9] drm/i915: Add per context timelines to fence object Date: Thu, 23 Jul 2015 14:50:37 +0100 Message-ID: <55B0F12D.7090204@linux.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> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id D93206E55D for ; Thu, 23 Jul 2015 06:50:59 -0700 (PDT) In-Reply-To: <1437143483-6234-6-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 CkhpLAoKT24gMDcvMTcvMjAxNSAwMzozMSBQTSwgSm9obi5DLkhhcnJpc29uQEludGVsLmNvbSB3 cm90ZToKPiBGcm9tOiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25ASW50ZWwuY29tPgo+ Cj4gVGhlIGZlbmNlIG9iamVjdCB1c2VkIGluc2lkZSB0aGUgcmVxdWVzdCBzdHJ1Y3R1cmUgcmVx dWlyZXMgYSBzZXF1ZW5jZSBudW1iZXIuCj4gQWx0aG91Z2ggdGhpcyBpcyBub3QgdXNlZCBieSB0 aGUgaTkxNSBkcml2ZXIgaXRzZWxmLCBpdCBjb3VsZCBwb3RlbnRpYWxseSBiZQo+IHVzZWQgYnkg bm9uLWk5MTUgY29kZSBpZiB0aGUgZmVuY2UgaXMgcGFzc2VkIG91dHNpZGUgb2YgdGhlIGRyaXZl ci4gVGhpcyBpcyB0aGUKPiBpbnRlbnRpb24gYXMgaXQgYWxsb3dzIGV4dGVybmFsIGtlcm5lbCBk cml2ZXJzIGFuZCB1c2VyIGFwcGxpY2F0aW9ucyB0byB3YWl0IG9uCj4gYmF0Y2ggYnVmZmVyIGNv bXBsZXRpb24gYXN5bmNocm9ub3VzbHkgdmlhIHRoZSBkbWEtYnVmZiBmZW5jZSBBUEkuCj4KPiBU byBlbnN1cmUgdGhhdCBzdWNoIGV4dGVybmFsIHVzZXJzIGFyZSBub3QgY29uZnVzZWQgYnkgc3Ry YW5nZSB0aGluZ3MgaGFwcGVuaW5nCj4gd2l0aCB0aGUgc2Vxbm8sIHRoaXMgcGF0Y2ggYWRkcyBp biBhIHBlciBjb250ZXh0IHRpbWVsaW5lIHRoYXQgY2FuIHByb3ZpZGUgYQo+IGd1YXJhbnRlZWQg aW4tb3JkZXIgc2Vxbm8gdmFsdWUgZm9yIHRoZSBmZW5jZS4gVGhpcyBpcyBzYWZlIGJlY2F1c2Ug dGhlCj4gc2NoZWR1bGVyIHdpbGwgbm90IHJlLW9yZGVyIGJhdGNoIGJ1ZmZlcnMgd2l0aGluIGEg Y29udGV4dCAtIHRoZXkgYXJlIGNvbnNpZGVyZWQKPiB0byBiZSBtdXR1YWxseSBkZXBlbmRlbnQu Cj4KPiBbbmV3IHBhdGNoIGluIHNlcmllc10KPgo+IEZvcjogVklaLTUxOTAKPiBTaWduZWQtb2Zm LWJ5OiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25ASW50ZWwuY29tPgo+IC0tLQo+ICAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgIHwgMjUgKysrKysrKystLS0t Cj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICAgfCA2OSArKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX2NvbnRleHQuYyB8IDE1ICsrKysrKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2xyYy5jICAgICAgICB8ICA4ICsrKysKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jp bmdidWZmZXIuaCB8ICAxIC0KPiAgIDUgZmlsZXMgY2hhbmdlZCwgMTAzIGluc2VydGlvbnMoKyks IDE1IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggMGM3ZGY0 Ni4uODhhNDc0NiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC04NDAsNiArODQw LDE1IEBAIHN0cnVjdCBpOTE1X2N0eF9oYW5nX3N0YXRzIHsKPiAgIAlib29sIGJhbm5lZDsKPiAg IH07Cj4KPiArc3RydWN0IGk5MTVfZmVuY2VfdGltZWxpbmUgewo+ICsJdW5zaWduZWQgICAgZmVu Y2VfY29udGV4dDsKPiArCXVpbnQzMl90ICAgIGNvbnRleHQ7CgpVbnVzZWQgZmllbGQ/Cgo+ICsJ dWludDMyX3QgICAgbmV4dDsKCmZlbmNlLmggZGVmaW5lcyBzZXFub3MgYXMgJ3Vuc2lnbmVkJywg d2hpY2ggbWF0Y2hlcyB0aGlzIGluIHByYWN0aWNlLCAKYnV0IG1heWJlIGl0IHdvdWxkIGJlIG5p Y2VyIHRvIHVzZSB0aGUgc2FtZSB0eXBlIG5hbWUuCgo+ICsKPiArCXN0cnVjdCBpbnRlbF9jb250 ZXh0ICpjdHg7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nOwo+ICt9Owo+ICsKPiAg IC8qIFRoaXMgbXVzdCBtYXRjaCB1cCB3aXRoIHRoZSB2YWx1ZSBwcmV2aW91c2x5IHVzZWQgZm9y IGV4ZWNidWYyLnJzdmQxLiAqLwo+ICAgI2RlZmluZSBERUZBVUxUX0NPTlRFWFRfSEFORExFIDAK Pgo+IEBAIC04ODUsNiArODk0LDcgQEAgc3RydWN0IGludGVsX2NvbnRleHQgewo+ICAgCQlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqc3RhdGU7Cj4gICAJCXN0cnVjdCBpbnRlbF9yaW5nYnVm ZmVyICpyaW5nYnVmOwo+ICAgCQlpbnQgcGluX2NvdW50Owo+ICsJCXN0cnVjdCBpOTE1X2ZlbmNl X3RpbWVsaW5lIGZlbmNlX3RpbWVsaW5lOwo+ICAgCX0gZW5naW5lW0k5MTVfTlVNX1JJTkdTXTsK Pgo+ICAgCXN0cnVjdCBsaXN0X2hlYWQgbGluazsKPiBAQCAtMjE1MywxMyArMjE2MywxMCBAQCB2 b2lkIGk5MTVfZ2VtX3RyYWNrX2ZiKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvbGQsCj4g ICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qgewo+ICAgCS8qKgo+ICAgCSAqIFVuZGVybHlp bmcgb2JqZWN0IGZvciBpbXBsZW1lbnRpbmcgdGhlIHNpZ25hbC93YWl0IHN0dWZmLgo+IC0JICog TkI6IE5ldmVyIGNhbGwgZmVuY2VfbGF0ZXIoKSBvciByZXR1cm4gdGhpcyBmZW5jZSBvYmplY3Qg dG8gdXNlcgo+IC0JICogbGFuZCEgRHVlIHRvIGxhenkgYWxsb2NhdGlvbiwgc2NoZWR1bGVyIHJl LW9yZGVyaW5nLCBwcmUtZW1wdGlvbiwKPiAtCSAqIGV0Yy4sIHRoZXJlIGlzIG5vIGd1YXJhbnRl ZSBhdCBhbGwgYWJvdXQgdGhlIHZhbGlkaXR5IG9yCj4gLQkgKiBzZXF1ZW50aWFsaXR5IG9mIHRo ZSBmZW5jZSdzIHNlcW5vISBJdCBpcyBhbHNvIHVuc2FmZSB0byBsZXQKPiAtCSAqIGFueXRoaW5n IG91dHNpZGUgb2YgdGhlIGk5MTUgZHJpdmVyIGdldCBob2xkIG9mIHRoZSBmZW5jZSBvYmplY3QK PiAtCSAqIGFzIHRoZSBjbGVhbiB1cCB3aGVuIGRlY3JlbWVudGluZyB0aGUgcmVmZXJlbmNlIGNv dW50IHJlcXVpcmVzCj4gLQkgKiBob2xkaW5nIHRoZSBkcml2ZXIgbXV0ZXggbG9jay4KPiArCSAq IE5COiBOZXZlciByZXR1cm4gdGhpcyBmZW5jZSBvYmplY3QgdG8gdXNlciBsYW5kISBJdCBpcyB1 bnNhZmUgdG8KPiArCSAqIGxldCBhbnl0aGluZyBvdXRzaWRlIG9mIHRoZSBpOTE1IGRyaXZlciBn ZXQgaG9sZCBvZiB0aGUgZmVuY2UKPiArCSAqIG9iamVjdCBhcyB0aGUgY2xlYW4gdXAgd2hlbiBk ZWNyZW1lbnRpbmcgdGhlIHJlZmVyZW5jZSBjb3VudAo+ICsJICogcmVxdWlyZXMgaG9sZGluZyB0 aGUgZHJpdmVyIG11dGV4IGxvY2suCj4gICAJICovCj4gICAJc3RydWN0IGZlbmNlIGZlbmNlOwo+ Cj4gQEAgLTIyMzksNiArMjI0NiwxMCBAQCBpbnQgaTkxNV9nZW1fcmVxdWVzdF9hbGxvYyhzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+ICAgCQkJICAgc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICoqcmVxX291dCk7Cj4gICB2b2lkIGk5MTVfZ2VtX3JlcXVlc3RfY2FuY2VsKHN0cnVj dCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKTsKPgo+ICtpbnQgaTkxNV9jcmVhdGVfZmVuY2Vf dGltZWxpbmUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiArCQkJICAgICAgIHN0cnVjdCBpbnRl bF9jb250ZXh0ICpjdHgsCj4gKwkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5n KTsKPiArCj4gICBzdGF0aWMgaW5saW5lIGJvb2wgaTkxNV9nZW1fcmVxdWVzdF9jb21wbGV0ZWQo c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4gICB7Cj4gICAJcmV0dXJuIGZlbmNl X2lzX3NpZ25hbGVkKCZyZXEtPmZlbmNlKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBpbmRl eCAzOTcwMjUwLi5hZjc5NzE2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gQEAgLTI2 NzEsNiArMjY3MSwyNSBAQCBzdGF0aWMgYm9vbCBpOTE1X2dlbV9yZXF1ZXN0X2lzX2NvbXBsZXRl ZChzdHJ1Y3QgZmVuY2UgKnJlcV9mZW5jZSkKPiAgIAlyZXR1cm4gaTkxNV9zZXFub19wYXNzZWQo c2Vxbm8sIHJlcS0+c2Vxbm8pOwo+ICAgfQo+Cj4gK3N0YXRpYyB2b2lkIGk5MTVfZmVuY2VfdGlt ZWxpbmVfdmFsdWVfc3RyKHN0cnVjdCBmZW5jZSAqZmVuY2UsIGNoYXIgKnN0ciwgaW50IHNpemUp Cj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxOwo+ICsKPiArCXJlcSA9 IGNvbnRhaW5lcl9vZihmZW5jZSwgdHlwZW9mKCpyZXEpLCBmZW5jZSk7Cj4gKwo+ICsJLyogTGFz dCBzaWduYWxsZWQgdGltZWxpbmUgdmFsdWUgPz8/ICovCj4gKwlzbnByaW50ZihzdHIsIHNpemUs ICI/IFslZF0iLyosIHRsLT52YWx1ZSovLCByZXEtPnJpbmctPmdldF9zZXFubyhyZXEtPnJpbmcs IHRydWUpKTsKPiArfQoKSWYgdGltZWxpbmVzIGFyZSBwZXIgY29udGV4dCBub3cgbWF5YmUgd2Ug c2hvdWxkIHVwZGF0ZSAKaTkxNV9nZW1fcmVxdWVzdF9nZXRfdGltZWxpbmVfbmFtZSB0byBiZSBw ZXIgY29udGV4dCBpbnN0ZWFkIG9mIHBlciAKZW5naW5lIGFzIHdlbGw/IExpa2UgdGhpcyB3ZSBo YXZlIGEgbmFtZSBzcGFjZSBvdmVybGFwIC8gc2Vxbm8gCmNvbGxpc2lvbnMgZnJvbSB1c2Vyc3Bh Y2UgcG9pbnQgb2Ygdmlldy4KCj4gK3N0YXRpYyB2b2lkIGk5MTVfZmVuY2VfdmFsdWVfc3RyKHN0 cnVjdCBmZW5jZSAqZmVuY2UsIGNoYXIgKnN0ciwgaW50IHNpemUpCj4gK3sKPiArCXN0cnVjdCBk cm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxOwo+ICsKPiArCXJlcSA9IGNvbnRhaW5lcl9vZihmZW5j ZSwgdHlwZW9mKCpyZXEpLCBmZW5jZSk7Cj4gKwo+ICsJc25wcmludGYoc3RyLCBzaXplLCAiJWQg WyVkXSIsIHJlcS0+ZmVuY2Uuc2Vxbm8sIHJlcS0+c2Vxbm8pOwo+ICt9Cj4gKwo+ICAgc3RhdGlj IGNvbnN0IHN0cnVjdCBmZW5jZV9vcHMgaTkxNV9nZW1fcmVxdWVzdF9mb3BzID0gewo+ICAgCS5n ZXRfZHJpdmVyX25hbWUJPSBpOTE1X2dlbV9yZXF1ZXN0X2dldF9kcml2ZXJfbmFtZSwKPiAgIAku Z2V0X3RpbWVsaW5lX25hbWUJPSBpOTE1X2dlbV9yZXF1ZXN0X2dldF90aW1lbGluZV9uYW1lLAo+ IEBAIC0yNjc4LDggKzI2OTcsNDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmZW5jZV9vcHMgaTkx NV9nZW1fcmVxdWVzdF9mb3BzID0gewo+ICAgCS5zaWduYWxlZAkJPSBpOTE1X2dlbV9yZXF1ZXN0 X2lzX2NvbXBsZXRlZCwKPiAgIAkud2FpdAkJCT0gZmVuY2VfZGVmYXVsdF93YWl0LAo+ICAgCS5y ZWxlYXNlCQk9IGk5MTVfZ2VtX3JlcXVlc3RfZnJlZSwKPiArCS5mZW5jZV92YWx1ZV9zdHIJPSBp OTE1X2ZlbmNlX3ZhbHVlX3N0ciwKPiArCS50aW1lbGluZV92YWx1ZV9zdHIJPSBpOTE1X2ZlbmNl X3RpbWVsaW5lX3ZhbHVlX3N0ciwKPiAgIH07Cj4KPiAraW50IGk5MTVfY3JlYXRlX2ZlbmNlX3Rp bWVsaW5lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gKwkJCSAgICAgICBzdHJ1Y3QgaW50ZWxf Y29udGV4dCAqY3R4LAo+ICsJCQkgICAgICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykK PiArewo+ICsJc3RydWN0IGk5MTVfZmVuY2VfdGltZWxpbmUgKnRpbWVsaW5lOwo+ICsKPiArCXRp bWVsaW5lID0gJmN0eC0+ZW5naW5lW3JpbmctPmlkXS5mZW5jZV90aW1lbGluZTsKPiArCj4gKwlp ZiAodGltZWxpbmUtPnJpbmcpCj4gKwkJcmV0dXJuIDA7Cj4gKwo+ICsJdGltZWxpbmUtPmZlbmNl X2NvbnRleHQgPSBmZW5jZV9jb250ZXh0X2FsbG9jKDEpOwo+ICsKPiArCS8qCj4gKwkgKiBTdGFy dCB0aGUgdGltZWxpbmUgZnJvbSBzZXFubyAwIGFzIHRoaXMgaXMgYSBzcGVjaWFsIHZhbHVlCj4g KwkgKiB0aGF0IGlzIHJlc2VydmVkIGZvciBpbnZhbGlkIHN5bmMgcG9pbnRzLgo+ICsJICovCj4g Kwl0aW1lbGluZS0+bmV4dCAgICAgICA9IDE7Cj4gKwl0aW1lbGluZS0+Y3R4ICAgICAgICA9IGN0 eDsKPiArCXRpbWVsaW5lLT5yaW5nICAgICAgID0gcmluZzsKPiArCj4gKwlyZXR1cm4gMDsKPiAr fQo+ICsKPiArc3RhdGljIHVpbnQzMl90IGk5MTVfZmVuY2VfdGltZWxpbmVfZ2V0X25leHRfc2Vx bm8oc3RydWN0IGk5MTVfZmVuY2VfdGltZWxpbmUgKnRpbWVsaW5lKQo+ICt7Cj4gKwl1aW50MzJf dCBzZXFubzsKPiArCj4gKwlzZXFubyA9IHRpbWVsaW5lLT5uZXh0Owo+ICsKPiArCS8qIFJlc2Vy dmUgemVybyBmb3IgaW52YWxpZCAqLwo+ICsJaWYgKCsrdGltZWxpbmUtPm5leHQgPT0gMCApIHsK PiArCQl0aW1lbGluZS0+bmV4dCA9IDE7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIHNlcW5vOwo+ICt9 Cj4gKwo+ICAgaW50IGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2Moc3RydWN0IGludGVsX2VuZ2luZV9j cyAqcmluZywKPiAgIAkJCSAgIHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsCj4gICAJCQkgICBz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKipyZXFfb3V0KQo+IEBAIC0yNzE1LDcgKzI3NzQs OSBAQCBpbnQgaTkxNV9nZW1fcmVxdWVzdF9hbGxvYyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpy aW5nLAo+ICAgCQlnb3RvIGVycjsKPiAgIAl9Cj4KPiAtCWZlbmNlX2luaXQoJnJlcS0+ZmVuY2Us ICZpOTE1X2dlbV9yZXF1ZXN0X2ZvcHMsICZyaW5nLT5mZW5jZV9sb2NrLCByaW5nLT5mZW5jZV9j b250ZXh0LCByZXEtPnNlcW5vKTsKPiArCWZlbmNlX2luaXQoJnJlcS0+ZmVuY2UsICZpOTE1X2dl bV9yZXF1ZXN0X2ZvcHMsICZyaW5nLT5mZW5jZV9sb2NrLAo+ICsJCSAgIGN0eC0+ZW5naW5lW3Jp bmctPmlkXS5mZW5jZV90aW1lbGluZS5mZW5jZV9jb250ZXh0LAo+ICsJCSAgIGk5MTVfZmVuY2Vf dGltZWxpbmVfZ2V0X25leHRfc2Vxbm8oJmN0eC0+ZW5naW5lW3JpbmctPmlkXS5mZW5jZV90aW1l bGluZSkpOwoKSSBzdXBwb3NlIGZvciBkZWJ1Z2dpbmcgaXQgY291bGQgYmUgdXNlZnVsIHRvIGFk ZCB0aGlzIG5ldyBzZXFubyBpbiAKaTkxNV9nZW1fcmVxdWVzdF9pbmZvIHRvIGhhdmUgdmlzaWJp bGl0eSBhdCBib3RoIHNpZGVzLiBUbyBtYXAgdXNlcnNwYWNlIApzZXFub3MgdG8gZHJpdmVyIHN0 YXRlLgoKPiAgIAkvKgo+ICAgCSAqIFJlc2VydmUgc3BhY2UgaW4gdGhlIHJpbmcgYnVmZmVyIGZv ciBhbGwgdGhlIGNvbW1hbmRzIHJlcXVpcmVkIHRvCj4gQEAgLTUwNjUsNyArNTEyNiw3IEBAIGk5 MTVfZ2VtX2luaXRfaHcoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgIHsKPiAgIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAgCXN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKnJpbmc7Cj4gLQlpbnQgcmV0LCBpLCBqLCBmZW5jZV9iYXNlOwo+ ICsJaW50IHJldCwgaSwgajsKPgo+ICAgCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA8IDYgJiYg IWludGVsX2VuYWJsZV9ndHQoKSkKPiAgIAkJcmV0dXJuIC1FSU87Cj4gQEAgLTUxMTcsMTYgKzUx NzgsMTIgQEAgaTkxNV9nZW1faW5pdF9odyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAgCQkJ Z290byBvdXQ7Cj4gICAJfQo+Cj4gLQlmZW5jZV9iYXNlID0gZmVuY2VfY29udGV4dF9hbGxvYyhJ OTE1X05VTV9SSU5HUyk7Cj4gLQo+ICAgCS8qIE5vdyBpdCBpcyBzYWZlIHRvIGdvIGJhY2sgcm91 bmQgYW5kIGRvIGV2ZXJ5dGhpbmcgZWxzZTogKi8KPiAgIAlmb3JfZWFjaF9yaW5nKHJpbmcsIGRl dl9wcml2LCBpKSB7Cj4gICAJCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxOwo+Cj4g ICAJCVdBUk5fT04oIXJpbmctPmRlZmF1bHRfY29udGV4dCk7Cj4KPiAtCQlyaW5nLT5mZW5jZV9j b250ZXh0ID0gZmVuY2VfYmFzZSArIGk7Cj4gLQo+ICAgCQlyZXQgPSBpOTE1X2dlbV9yZXF1ZXN0 X2FsbG9jKHJpbmcsIHJpbmctPmRlZmF1bHRfY29udGV4dCwgJnJlcSk7Cj4gICAJCWlmIChyZXQp IHsKPiAgIAkJCWk5MTVfZ2VtX2NsZWFudXBfcmluZ2J1ZmZlcihkZXYpOwo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKPiBpbmRleCBiNzdhOGY3Li43ZWI4Njk0IDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYwo+IEBAIC0yNDIsNyArMjQy LDcgQEAgaTkxNV9nZW1fY3JlYXRlX2NvbnRleHQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAg IHsKPiAgIAljb25zdCBib29sIGlzX2dsb2JhbF9kZWZhdWx0X2N0eCA9IGZpbGVfcHJpdiA9PSBO VUxMOwo+ICAgCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHg7Cj4gLQlpbnQgcmV0ID0gMDsKPiAr CWludCBpLCByZXQgPSAwOwo+Cj4gICAJQlVHX09OKCFtdXRleF9pc19sb2NrZWQoJmRldi0+c3Ry dWN0X211dGV4KSk7Cj4KPiBAQCAtMjUwLDYgKzI1MCwxOSBAQCBpOTE1X2dlbV9jcmVhdGVfY29u dGV4dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAgCWlmIChJU19FUlIoY3R4KSkKPiAgIAkJ cmV0dXJuIGN0eDsKPgo+ICsJaWYgKCFpOTE1LmVuYWJsZV9leGVjbGlzdHMpIHsKPiArCQlzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nOwo+ICsKPiArCQkvKiBDcmVhdGUgYSBwZXIgY29udGV4 dCB0aW1lbGluZSBmb3IgZmVuY2VzICovCj4gKwkJZm9yX2VhY2hfcmluZyhyaW5nLCB0b19pOTE1 KGRldiksIGkpIHsKPiArCQkJcmV0ID0gaTkxNV9jcmVhdGVfZmVuY2VfdGltZWxpbmUoZGV2LCBj dHgsIHJpbmcpOwo+ICsJCQlpZiAocmV0KSB7Cj4gKwkJCQlEUk1fRVJST1IoIkZlbmNlIHRpbWVs aW5lIGNyZWF0aW9uIGZhaWxlZCBmb3IgbGVnYWN5ICVzOiAlcFxuIiwgcmluZy0+bmFtZSwgY3R4 KTsKPiArCQkJCWdvdG8gZXJyX2Rlc3Ryb3k7Cj4gKwkJCX0KPiArCQl9Cj4gKwl9Cj4gKwo+ICAg CWlmIChpc19nbG9iYWxfZGVmYXVsdF9jdHggJiYgY3R4LT5sZWdhY3lfaHdfY3R4LnJjc19zdGF0 ZSkgewo+ICAgCQkvKiBXZSBtYXkgbmVlZCB0byBkbyB0aGluZ3Mgd2l0aCB0aGUgc2hyaW5rZXIg d2hpY2gKPiAgIAkJICogcmVxdWlyZSB1cyB0byBpbW1lZGlhdGVseSBzd2l0Y2ggYmFjayB0byB0 aGUgZGVmYXVsdAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gaW5kZXggZWU0YWVjZC4uOGYy NTVkZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gQEAgLTIzNzYsNiArMjM3Niwx NCBAQCBpbnQgaW50ZWxfbHJfY29udGV4dF9kZWZlcnJlZF9jcmVhdGUoc3RydWN0IGludGVsX2Nv bnRleHQgKmN0eCwKPiAgIAkJZ290byBlcnJvcjsKPiAgIAl9Cj4KPiArCS8qIENyZWF0ZSBhIHBl ciBjb250ZXh0IHRpbWVsaW5lIGZvciBmZW5jZXMgKi8KPiArCXJldCA9IGk5MTVfY3JlYXRlX2Zl bmNlX3RpbWVsaW5lKGRldiwgY3R4LCByaW5nKTsKPiArCWlmIChyZXQpIHsKPiArCQlEUk1fRVJS T1IoIkZlbmNlIHRpbWVsaW5lIGNyZWF0aW9uIGZhaWxlZCBmb3IgcmluZyAlcywgY3R4ICVwXG4i LAo+ICsJCQkgIHJpbmctPm5hbWUsIGN0eCk7Cj4gKwkJZ290byBlcnJvcjsKPiArCX0KPiArCgpX ZSBtdXN0IGJlIDEwMCUgc3VyZSB1c2Vyc3BhY2UgY2Fubm90IHByb3Zva2UgY29udGV4dCBjcmVh dGlvbiBmYWlsdXJlIApieSBhY2NpZGVudCBvciBkZWxpYmVyYXRlbHkuIE90aGVyd2lzZSB3ZSB3 b3VsZCBsZWFrIGZlbmNlIGNvbnRleHRzIAp1bnRpbCBvdmVyZmxvdyB3aGljaCB3b3VsZCBiZSBi YWQuCgpQZXJoYXBzIG1hdGNoaW5nIGZlbmNlX2NvbnRleHRfcmVsZWFzZSBmb3IgZXhpc3Rpbmcg ZmVuY2VfY29udGV4dF9hbGxvYyAKc2hvdWxkIGJlIGFkZGVkPwoKUmVnYXJkcywKClR2cnRrbwpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=