From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Harrison Subject: Re: [RFC 9/9] drm/i915: Add sync framework support to execbuff IOCTL Date: Wed, 28 Oct 2015 13:01:17 +0000 Message-ID: <5630C71D.5090504@Intel.com> References: <1437143483-6234-1-git-send-email-John.C.Harrison@Intel.com> <1437143483-6234-10-git-send-email-John.C.Harrison@Intel.com> <55B62B62.20300@linux.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 1F44C720EA for ; Wed, 28 Oct 2015 06:01:20 -0700 (PDT) In-Reply-To: <55B62B62.20300@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 T24gMjcvMDcvMjAxNSAxNDowMCwgVHZydGtvIFVyc3VsaW4gd3JvdGU6Cj4gT24gMDcvMTcvMjAx NSAwMzozMSBQTSwgSm9obi5DLkhhcnJpc29uQEludGVsLmNvbSB3cm90ZToKPj4gRnJvbTogSm9o biBIYXJyaXNvbiA8Sm9obi5DLkhhcnJpc29uQEludGVsLmNvbT4KPj4KPj4gVmFyaW91cyBwcm9q ZWN0cyBkZXNpcmUgYSBtZWNoYW5pc20gZm9yIG1hbmFnaW5nIGRlcGVuZGVuY2llcyBiZXR3ZWVu Cj4+IHdvcmsgaXRlbXMgYXN5bmNocm9ub3VzbHkuIFRoaXMgY2FuIGFsc28gaW5jbHVkZSB3b3Jr IGl0ZW1zIGFjcm9zcwo+PiBjb21wbGV0ZSBkaWZmZXJlbnQgYW5kIGluZGVwZW5kZW50IHN5c3Rl bXMuIEZvciBleGFtcGxlLCBhbgo+PiBhcHBsaWNhdGlvbiB3YW50cyB0byByZXRyZWl2ZSBhIGZy YW1lIGZyb20gYSB2aWRlbyBpbiBkZXZpY2UsCj4+IHVzaW5nIGl0IGZvciByZW5kZXJpbmcgb24g YSBHUFUgdGhlbiBzZW5kIGl0IHRvIHRoZSB2aWRlbyBvdXQgZGV2aWNlCj4+IGZvciBkaXNwbGF5 IGFsbCB3aXRob3V0IGhhdmluZyB0byBzdGFsbCB3YWl0aW5nIGZvciBjb21wbGV0aW9uIGFsb25n Cj4+IHRoZSB3YXkuIFRoZSBzeW5jIGZyYW1ld29yayBhbGxvd3MgdGhpcy4gSXQgZW5jYXBzdWxh dGVzCj4+IHN5bmNocm9uaXNhdGlvbiBldmVudHMgaW4gZmlsZSBkZXNjcmlwdG9ycy4gVGhlIGFw cGxpY2F0aW9uIGNhbgo+PiByZXF1ZXN0IGEgc3luYyBwb2ludCBmb3IgdGhlIGNvbXBsZXRpb24g b2YgZWFjaCBwaWVjZSBvZiB3b3JrLiBEcml2ZXJzCj4+IHNob3VsZCBhbHNvIHRha2Ugc3luYyBw b2ludHMgaW4gd2l0aCBlYWNoIG5ldyB3b3JrIHJlcXVlc3QgYW5kIG5vdAo+PiBzY2hlZHVsZSB0 aGUgd29yayB0byBzdGFydCB1bnRpbCB0aGUgc3luYyBoYXMgYmVlbiBzaWduYWxsZWQuCj4+Cj4+ IFRoaXMgcGF0Y2ggYWRkcyBzeW5jIGZyYW1ld29yayBzdXBwb3J0IHRvIHRoZSBleGVjIGJ1ZmZl ciBJT0NUTC4gQQo+PiBzeW5jIHBvaW50IGNhbiBiZSBwYXNzZWQgaW4gdG8gc3RhbGwgZXhlY3V0 aW9uIG9mIHRoZSBiYXRjaCBidWZmZXIKPj4gdW50aWwgc2lnbmFsbGVkLiBBbmQgYSBzeW5jIHBv aW50IGNhbiBiZSByZXR1cm5lZCBhZnRlciBlYWNoIGJhdGNoCj4+IGJ1ZmZlciBzdWJtaXNzaW9u IHdoaWNoIHdpbGwgYmUgc2lnbmFsbGVkIHVwb24gdGhhdCBiYXRjaCBidWZmZXIncwo+PiBjb21w bGV0aW9uLgo+Pgo+PiBBdCBwcmVzZW50LCB0aGUgaW5wdXQgc3luYyBwb2ludCBpcyBzaW1wbHkg d2FpdGVkIG9uIHN5bmNocm9ub3VzbHkKPj4gaW5zaWRlIHRoZSBleGVjIGJ1ZmZlciBJT0NUTCBj YWxsLiBPbmNlIHRoZSBHUFUgc2NoZWR1bGVyIGFycml2ZXMsCj4+IHRoaXMgd2lsbCBiZSBoYW5k bGVkIGFzeW5jaHJvbm91c2x5IGluc2lkZSB0aGUgc2NoZWR1bGVyIGFuZCB0aGUgSU9DVEwKPj4g Y2FuIHJldHVybiB3aXRob3V0IGhhdmluZyB0byB3YWl0Lgo+Pgo+PiBOb3RlIGFsc28gdGhhdCB0 aGUgc2NoZWR1bGVyIHdpbGwgcmUtb3JkZXIgdGhlIGV4ZWN1dGlvbiBvZiBiYXRjaAo+PiBidWZm ZXJzLCBlLmcuIGJlY2F1c2UgYSBiYXRjaCBidWZmZXIgaXMgc3RhbGxlZCBvbiBhIHN5bmMgcG9p bnQgYW5kCj4+IGNhbm5vdCBiZSBzdWJtaXR0ZWQgeWV0IGJ1dCBvdGhlciwgaW5kZXBlbmRlbnQs IGJhdGNoIGJ1ZmZlcnMgYXJlCj4+IGJlaW5nIHByZXNlbnRlZCB0byB0aGUgZHJpdmVyLiBUaGlz IG1lYW5zIHRoYXQgdGhlIHRpbWVsaW5lIHdpdGhpbiB0aGUKPj4gc3luYyBwb2ludHMgcmV0dXJu ZWQgY2Fubm90IGJlIGdsb2JhbCB0byB0aGUgZW5naW5lLiBJbnN0ZWFkIHRoZXkgbXVzdAo+PiBi ZSBrZXB0IHBlciBjb250ZXh0IHBlciBlbmdpbmUgKHRoZSBzY2hlZHVsZXIgbWF5IG5vdCByZS1v cmRlciBiYXRjaGVzCj4+IHdpdGhpbiBhIGNvbnRleHQpLiBIZW5jZSB0aGUgdGltZWxpbmUgY2Fu bm90IGJlIGJhc2VkIG9uIHRoZSBleGlzdGluZwo+PiBzZXFubyB2YWx1ZXMgYnV0IG11c3QgYmUg YSBuZXcgaW1wbGVtZW50YXRpb24uCj4+Cj4+IFRoaXMgcGF0Y2ggaXMgYSBwb3J0IG9mIHdvcmsg Ynkgc2V2ZXJhbCBwZW9wbGUgdGhhdCBoYXMgYmVlbiBwdWxsZWQKPj4gYWNyb3NzIGZyb20gQW5k cm9pZC4gSXQgaGFzIGJlZW4gdXBkYXRlZCBzZXZlcmFsIHRpbWVzIGFjcm9zcyBzZXZlcmFsCj4+ IHBhdGNoZXMuIFJhdGhlciB0aGFuIGF0dGVtcHQgdG8gcG9ydCBlYWNoIGluZGl2aWR1YWwgcGF0 Y2gsIHRoaXMKPj4gdmVyc2lvbiBpcyB0aGUgZmluaXNoZWQgcHJvZHVjdCBhcyBhIHNpbmdsZSBw YXRjaC4gVGhlIHZhcmlvdXMKPj4gY29udHJpYnV0b3JzL2F1dGhvcnMgYWxvbmcgdGhlIHdheSAo aW4gYWRkaXRpb24gdG8gbXlzZWxmKSB3ZXJlOgo+PiAgICBTYXR5YW5hbnRoYSBSYW1hR29wYWwg TSA8cmFtYS5nb3BhbC5tLnNhdHlhbmFudGhhQGludGVsLmNvbT4KPj4gICAgVHZydGtvIFVyc3Vs aW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KPj4gICAgTWljaGVsIFRoaWVycnkgPG1pY2hl bC50aGllcnJ5QGludGVsLmNvbT4KPj4gICAgQXJ1biBTaWx1dmVyeSA8YXJ1bi5zaWx1dmVyeUBs aW51eC5pbnRlbC5jb20+Cj4+Cj4+IFtuZXcgcGF0Y2ggaW4gc2VyaWVzXQo+Pgo+PiBGb3I6IFZJ Wi01MTkwCj4+IFNpZ25lZC1vZmYtYnk6IEpvaG4gSGFycmlzb24gPEpvaG4uQy5IYXJyaXNvbkBJ bnRlbC5jb20+Cj4+IC0tLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAg ICAgICAgICB8ICA2ICsrCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAg ICAgICAgIHwgODQgCj4+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysKPj4gICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMgfCA5MCAKPj4gKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0tCj4+ICAgaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oICAgICAg ICAgICAgICAgIHwgMTYgKysrKystCj4+ICAgNCBmaWxlcyBjaGFuZ2VkLCAxODggaW5zZXJ0aW9u cygrKSwgOCBkZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmggCj4+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+PiBp bmRleCBkN2YxYWE1Li5jZjZiN2NkIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4g QEAgLTIxNjgsNiArMjE2OCw3IEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCB7Cj4+ICAg ICAgIHN0cnVjdCBsaXN0X2hlYWQgZGVsYXlfZnJlZV9saXN0Owo+PiAgICAgICBib29sIGNhbmNl bGxlZDsKPj4gICAgICAgYm9vbCBpcnFfZW5hYmxlZDsKPj4gKyAgICBib29sIGZlbmNlX2V4dGVy bmFsOwo+Pgo+PiAgICAgICAvKiogT24gV2hpY2ggcmluZyB0aGlzIHJlcXVlc3Qgd2FzIGdlbmVy YXRlZCAqLwo+PiAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNTsKPj4gQEAgLTIy NTIsNiArMjI1MywxMSBAQCB2b2lkIGk5MTVfZ2VtX3JlcXVlc3Rfbm90aWZ5KHN0cnVjdCAKPj4g aW50ZWxfZW5naW5lX2NzICpyaW5nKTsKPj4gICBpbnQgaTkxNV9jcmVhdGVfZmVuY2VfdGltZWxp bmUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPj4gICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IGludGVsX2NvbnRleHQgKmN0eCwKPj4gICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGludGVs X2VuZ2luZV9jcyAqcmluZyk7Cj4+ICsjaWZkZWYgQ09ORklHX1NZTkMKPj4gK3N0cnVjdCBzeW5j X2ZlbmNlOwo+PiAraW50IGk5MTVfY3JlYXRlX3N5bmNfZmVuY2Uoc3RydWN0IGRybV9pOTE1X2dl bV9yZXF1ZXN0ICpyZXEsIGludCAKPj4gKmZlbmNlX2ZkKTsKPj4gK2Jvb2wgaTkxNV9zYWZlX3Rv X2lnbm9yZV9mZW5jZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLCBzdHJ1Y3QgCj4+IHN5 bmNfZmVuY2UgKmZlbmNlKTsKPj4gKyNlbmRpZgo+Pgo+PiAgIHN0YXRpYyBpbmxpbmUgYm9vbCBp OTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRlZChzdHJ1Y3QgCj4+IGRybV9pOTE1X2dlbV9yZXF1ZXN0 ICpyZXEpCj4+ICAgewo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW0uYyAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4+IGluZGV4IDNmMjAw ODcuLmRlOTM0MjIgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt LmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+PiBAQCAtMzcsNiAr MzcsOSBAQAo+PiAgICNpbmNsdWRlIDxsaW51eC9zd2FwLmg+Cj4+ICAgI2luY2x1ZGUgPGxpbnV4 L3BjaS5oPgo+PiAgICNpbmNsdWRlIDxsaW51eC9kbWEtYnVmLmg+Cj4+ICsjaWZkZWYgQ09ORklH X1NZTkMKPj4gKyNpbmNsdWRlIDwuLi9kcml2ZXJzL3N0YWdpbmcvYW5kcm9pZC9zeW5jLmg+Cj4+ ICsjZW5kaWYKPj4KPj4gICAjZGVmaW5lIFJRX0JVR19PTihleHByKQo+Pgo+PiBAQCAtMjU0OSw2 ICsyNTUyLDE1IEBAIHZvaWQgX19pOTE1X2FkZF9yZXF1ZXN0KHN0cnVjdCAKPj4gZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKnJlcXVlc3QsCj4+ICAgICAgICAqLwo+PiAgICAgICBpOTE1X2dlbV9yZXF1 ZXN0X3N1Ym1pdChyZXF1ZXN0KTsKPj4KPj4gKyAgICAvKgo+PiArICAgICAqIElmIGFuIGV4dGVy bmFsIHN5bmMgcG9pbnQgaGFzIGJlZW4gcmVxdWVzdGVkIGZvciB0aGlzIHJlcXVlc3QgCj4+IHRo ZW4KPj4gKyAgICAgKiBpdCBjYW4gYmUgd2FpdGVkIG9uIHdpdGhvdXQgdGhlIGRyaXZlcidzIGtu b3dsZWRnZSwgaS5lLiB3aXRob3V0Cj4+ICsgICAgICogY2FsbGluZyBfX2k5MTVfd2FpdF9yZXF1 ZXN0KCkuIFRodXMgaW50ZXJydXB0cyBtdXN0IGJlIGVuYWJsZWQKPj4gKyAgICAgKiBmcm9tIHRo ZSBzdGFydCByYXRoZXIgdGhhbiBvbmx5IG9uIGRlbWFuZC4KPj4gKyAgICAgKi8KPj4gKyAgICBp ZiAocmVxdWVzdC0+ZmVuY2VfZXh0ZXJuYWwpCj4+ICsgICAgICAgIGk5MTVfZ2VtX3JlcXVlc3Rf ZW5hYmxlX2ludGVycnVwdChyZXF1ZXN0KTsKPgo+IE1heWJlIHRoZW4gZmVuY2VfZXhwb3J0ZWQg d291bGQgYmUgY2xlYXJlciwgZmVuY2VfZXh0ZXJuYWwgYXQgZmlyc3QgCj4gc291bmRzIGxpa2Ug aXQgaXMgY29taW5nIGZyb20gYW5vdGhlciBkcml2ZXIgb3Igc29tZXRoaW5nLgpUdXJucyBvdXQg aXQgaXMgbm90IG5lY2Vzc2FyeSBhbnl3YXkgYXMgbWVudGlvbmVkIGJlbG93LgoKPj4gKwo+PiAg ICAgICBpZiAoaTkxNS5lbmFibGVfZXhlY2xpc3RzKQo+PiAgICAgICAgICAgcmV0ID0gcmluZy0+ ZW1pdF9yZXF1ZXN0KHJlcXVlc3QpOwo+PiAgICAgICBlbHNlIHsKPj4gQEAgLTI4NTcsNiArMjg2 OSw3OCBAQCBzdGF0aWMgdWludDMyX3QgCj4+IGk5MTVfZmVuY2VfdGltZWxpbmVfZ2V0X25leHRf c2Vxbm8oc3RydWN0IGk5MTVfZmVuY2VfdGltZWxpbmUgKnQKPj4gICAgICAgcmV0dXJuIHNlcW5v Owo+PiAgIH0KPj4KPj4gKyNpZmRlZiBDT05GSUdfU1lOQwo+PiAraW50IGk5MTVfY3JlYXRlX3N5 bmNfZmVuY2Uoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsIGludCAKPj4gKmZlbmNl X2ZkKQo+PiArewo+PiArICAgIGNoYXIgcmluZ19uYW1lW10gPSAiaTkxNV9yaW5nMCI7Cj4+ICsg ICAgc3RydWN0IHN5bmNfZmVuY2UgKnN5bmNfZmVuY2U7Cj4+ICsgICAgaW50IGZkOwo+PiArCj4+ ICsgICAgZmQgPSBnZXRfdW51c2VkX2ZkX2ZsYWdzKE9fQ0xPRVhFQyk7Cj4+ICsgICAgaWYgKGZk IDwgMCkgewo+PiArICAgICAgICBEUk1fREVCVUcoIk5vIGF2YWlsYWJsZSBmaWxlIGRlc2NyaXB0 b3JzIVxuIik7Cj4+ICsgICAgICAgICpmZW5jZV9mZCA9IC0xOwo+PiArICAgICAgICByZXR1cm4g ZmQ7Cj4+ICsgICAgfQo+PiArCj4+ICsgICAgcmluZ19uYW1lWzldICs9IHJlcS0+cmluZy0+aWQ7 Cj4+ICsgICAgc3luY19mZW5jZSA9IHN5bmNfZmVuY2VfY3JlYXRlX2RtYShyaW5nX25hbWUsICZy ZXEtPmZlbmNlKTsKPgo+IFRoaXMgd2lsbCBjYWxsIC0+ZW5hYmxlX3NpZ25hbGxpbmcgc28gcGVy aGFwcyB5b3UgY291bGQgZW5hYmxlIAo+IGludGVycnVwdHMgaW4gdGhlcmUgZm9yIGV4cG9ydGVk IGZlbmNlcy4gTWF5YmUgaXQgd291bGQgYmUgYSB0aW55IGJpdCAKPiBtb3JlIGxvZ2ljYWxseSBn cm91cGVkLiAoUmF0aGVyIHRoYW4gaGF2ZSBfYWRkX3JlcXVlc3QgZG8gaXQuKQoKWWVhaCwgaGFk bid0IHF1aXRlIHNwb3R0ZWQgdGhpcyBmaXJzdCB0aW1lIGFyb3VuZC4gSXQgbm93IGFsbCBoYXBw ZW5zIAonbWFnaWNhbGx5JyB3aXRob3V0IG5lZWRpbmcgYW55IGV4cGxpY2l0IGNvZGUgLSBqdXN0 IHNvbWUgZXhwbGljaXQgCmNvbW1lbnRzIHRvIHNheSB0aGF0IHRoZSBiZWhpbmQgdGhlIHNjZW5l cyBtYWdpY2sgaXMgYSkgaGFwcGVuaW5nIGFuZCBiKSAKbmVjZXNzYXJ5LgoKPgo+PiArICAgIGlm ICghc3luY19mZW5jZSkgewo+PiArICAgICAgICBwdXRfdW51c2VkX2ZkKGZkKTsKPj4gKyAgICAg ICAgKmZlbmNlX2ZkID0gLTE7Cj4+ICsgICAgICAgIHJldHVybiAtRU5PTUVNOwo+PiArICAgIH0K Pj4gKwo+PiArICAgIHN5bmNfZmVuY2VfaW5zdGFsbChzeW5jX2ZlbmNlLCBmZCk7Cj4+ICsgICAg KmZlbmNlX2ZkID0gZmQ7Cj4+ICsKPj4gKyAgICAvLyBOZWNlc3Nhcnk/Pz8gV2hvIGRvZXMgdGhl IHB1dD8/Pwo+PiArICAgIGZlbmNlX2dldCgmcmVxLT5mZW5jZSk7Cj4KPiBzeW5jX2ZlbmNlX3Jl bGVhc2U/ClllcyBidXQgd2hlcmU/IERvZXMgdGhlIGRyaXZlciBuZWVkIHRvIGNhbGwgdGhpcz8g SXMgaXQgdXNlcmxhbmQncyAKcmVzcG9uc2liaWxpdHk/IERvZXMgaXQgaGFwcGVuIGF1dG9tYXRp Y2FsbHkgd2hlbiB0aGUgZmQgaXMgY2xvc2VkPyBEbyAKd2UgZXZlbiBuZWVkIHRvIGRvIHRoZSBf Z2V0KCkgaW4gdGhlIGZpcnN0IHBsYWNlPyBJdCBzZWVtcyB0byBiZSB3b3JraW5nIAppbiB0aGF0 IEkgZG9uJ3QgZ2V0IGFueSB1bmV4cGVjdGVkIGZyZWUgb2YgdGhlIGZlbmNlIGFuZCBJIGRvbid0 IGdldCAKaHVnZSBudW1iZXJzIG9mIGxlYWtlZCBmZW5jZXMuIEhvd2V2ZXIsIGl0IHdvdWxkIGJl IG5pY2UgdG8ga25vdyBob3cgaXQgCmlzIHdvcmtpbmchCgo+Cj4+ICsKPj4gKyAgICByZXEtPmZl bmNlX2V4dGVybmFsID0gdHJ1ZTsKPj4gKwo+PiArICAgIHJldHVybiAwOwo+PiArfQo+PiArCj4+ ICtib29sIGk5MTVfc2FmZV90b19pZ25vcmVfZmVuY2Uoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq cmluZywgc3RydWN0IAo+PiBzeW5jX2ZlbmNlICpzeW5jX2ZlbmNlKQo+PiArewo+PiArICAgIHN0 cnVjdCBmZW5jZSAqZG1hX2ZlbmNlOwo+PiArICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqcmVxOwo+PiArICAgIGJvb2wgaWdub3JlOwo+PiArICAgIGludCBpOwo+PiArCj4+ICsgICAg aWYgKGF0b21pY19yZWFkKCZzeW5jX2ZlbmNlLT5zdGF0dXMpICE9IDApCj4+ICsgICAgICAgIHJl dHVybiB0cnVlOwo+PiArCj4+ICsgICAgaWdub3JlID0gdHJ1ZTsKPj4gKyAgICBmb3IoaSA9IDA7 IGkgPCBzeW5jX2ZlbmNlLT5udW1fZmVuY2VzOyBpKyspIHsKPj4gKyAgICAgICAgZG1hX2ZlbmNl ID0gc3luY19mZW5jZS0+Y2JzW2ldLnN5bmNfcHQ7Cj4+ICsKPj4gKyAgICAgICAgLyogTm8gbmVl ZCB0byB3b3JyeSBhYm91dCBkZWFkIHBvaW50czogKi8KPj4gKyAgICAgICAgaWYgKGZlbmNlX2lz X3NpZ25hbGVkKGRtYV9mZW5jZSkpCj4+ICsgICAgICAgICAgICBjb250aW51ZTsKPj4gKwo+PiAr ICAgICAgICAvKiBDYW4ndCBpZ25vcmUgb3RoZXIgcGVvcGxlJ3MgcG9pbnRzOiAqLwo+PiArICAg ICAgICBpZihkbWFfZmVuY2UtPm9wcyAhPSAmaTkxNV9nZW1fcmVxdWVzdF9mb3BzKSB7Cj4+ICsg ICAgICAgICAgICBpZ25vcmUgPSBmYWxzZTsKPj4gKyAgICAgICAgICAgIGJyZWFrOwo+Cj4gVGhl IHNhbWUgYXMgcmV0dXJuIGZhbHNlIGFuZCB0aGVuIGRvbid0IG5lZWQgYm9vbCBpZ25vcmUgYXQg YWxsLgpZZWFoLCBsZWZ0IG92ZXIgZnJvbSB3aGVuIHRoZXJlIHdhcyBjbGVhbnVwIHRvIGJlIGRv bmUgYXQgZnVuY3Rpb24gZXhpdCAKdGltZS4gVGhlIGNsZWFudXAgY29kZSByZW1vdmVkIGJ1dCB0 aGUgc2luZ2xlIGV4aXQgcG9pbnQgZGlkIG5vdC4KCj4KPj4gKyAgICAgICAgfQo+PiArCj4+ICsg ICAgICAgIHJlcSA9IGNvbnRhaW5lcl9vZihkbWFfZmVuY2UsIHR5cGVvZigqcmVxKSwgZmVuY2Up Owo+PiArCj4+ICsgICAgICAgIC8qIENhbid0IGlnbm9yZSBwb2ludHMgb24gb3RoZXIgcmluZ3M6 ICovCj4+ICsgICAgICAgIGlmIChyZXEtPnJpbmcgIT0gcmluZykgewo+PiArICAgICAgICAgICAg aWdub3JlID0gZmFsc2U7Cj4+ICsgICAgICAgICAgICBicmVhazsKPj4gKyAgICAgICAgfQo+PiAr Cj4+ICsgICAgICAgIC8qIFNhbWUgcmluZyBtZWFucyBndWFyYW50ZWVkIHRvIGJlIGluIG9yZGVy IHNvIGlnbm9yZSBpdC4gKi8KPj4gKyAgICB9Cj4+ICsKPj4gKyAgICByZXR1cm4gaWdub3JlOwo+ PiArfQo+PiArI2VuZGlmCj4+ICsKPj4gICBpbnQgaTkxNV9nZW1fcmVxdWVzdF9hbGxvYyhzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+PiAgICAgICAgICAgICAgICAgIHN0cnVjdCBpbnRl bF9jb250ZXh0ICpjdHgsCj4+ICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICoqcmVxX291dCkKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2V4ZWNidWZmZXIuYyAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9l eGVjYnVmZmVyLmMKPj4gaW5kZXggOTIzYTNjNC4uYjFhMTY1OSAxMDA2NDQKPj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCj4+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwo+PiBAQCAtMjYsNiArMjYsNyBAQAo+ PiAgICAqCj4+ICAgICovCj4+Cj4+ICsjaW5jbHVkZSA8bGludXgvc3lzY2FsbHMuaD4KPj4gICAj aW5jbHVkZSA8ZHJtL2RybVAuaD4KPj4gICAjaW5jbHVkZSA8ZHJtL2k5MTVfZHJtLmg+Cj4+ICAg I2luY2x1ZGUgImk5MTVfZHJ2LmgiCj4+IEBAIC0zMyw2ICszNCw5IEBACj4+ICAgI2luY2x1ZGUg ImludGVsX2Rydi5oIgo+PiAgICNpbmNsdWRlIDxsaW51eC9kbWFfcmVtYXBwaW5nLmg+Cj4+ICAg I2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KPj4gKyNpZmRlZiBDT05GSUdfU1lOQwo+PiArI2lu Y2x1ZGUgPC4uL2RyaXZlcnMvc3RhZ2luZy9hbmRyb2lkL3N5bmMuaD4KPj4gKyNlbmRpZgo+Pgo+ PiAgICNkZWZpbmUgIF9fRVhFQ19PQkpFQ1RfSEFTX1BJTiAoMTw8MzEpCj4+ICAgI2RlZmluZSAg X19FWEVDX09CSkVDVF9IQVNfRkVOQ0UgKDE8PDMwKQo+PiBAQCAtMTQwMyw2ICsxNDA3LDM1IEBA IGViX2dldF9iYXRjaChzdHJ1Y3QgZWJfdm1hcyAqZWIpCj4+ICAgICAgIHJldHVybiB2bWEtPm9i ajsKPj4gICB9Cj4+Cj4+ICsjaWZkZWYgQ09ORklHX1NZTkMKPgo+IEkgZG9uJ3QgZXhwZWN0IHlv dSdsbCBiZSBhYmxlIHRvIGdldCBhd2F5IHdpdGggaWZkZWYncyBpbiB0aGUgY29kZSAKPiBsaWtl IHRoaXMgc28gZm9yIG5vbi1SRkMgaXQgd2lsbCBoYXZlIHRvIGJlIGNsZWFuZWQgdXAuCgpOb3Qg YSBsb3Qgb2YgY2hvaWNlIGF0IHRoZSBtb21lbnQuIFRoZSBzeW5jXyogY29kZSBpcyBhbGwgI2lm ZGVmIApDT05GSUdfU1lOQyBzbyBhbnkgY29kZSB0aGF0IHJlZmVyZW5jZXMgaXQgbXVzdCBiZSBs aWtld2lzZS4gQXMgdG8gaG93IAp3ZSBnZXQgdGhlIENPTkZJR19TWU5DIHRhZyByZW1vdmVkLCB0 aGF0IGlzIGFub3RoZXIgZGlzY3Vzc2lvbi4uLgoKPgo+PiArc3RhdGljIGludCBpOTE1X2Vhcmx5 X2ZlbmNlX3dhaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywgaW50IAo+PiBmZW5jZV9m ZCkKPj4gK3sKPj4gKyAgICBzdHJ1Y3Qgc3luY19mZW5jZSAqZmVuY2U7Cj4+ICsgICAgaW50IHJl dCA9IDA7Cj4+ICsKPj4gKyAgICBpZiAoZmVuY2VfZmQgPCAwKSB7Cj4+ICsgICAgICAgIERSTV9F UlJPUigiSW52YWxpZCB3YWl0IGZlbmNlIGZkICVkIG9uIHJpbmcgJWRcbiIsIGZlbmNlX2ZkLAo+ PiArICAgICAgICAgICAgICAoaW50KSByaW5nLT5pZCk7Cj4+ICsgICAgICAgIHJldHVybiAxOwo+ PiArICAgIH0KPj4gKwo+PiArICAgIGZlbmNlID0gc3luY19mZW5jZV9mZGdldChmZW5jZV9mZCk7 Cj4+ICsgICAgaWYgKGZlbmNlID09IE5VTEwpIHsKPj4gKyAgICAgICAgRFJNX0VSUk9SKCJJbnZh bGlkIHdhaXQgZmVuY2UgJWQgb24gcmluZyAlZFxuIiwgZmVuY2VfZmQsCj4+ICsgICAgICAgICAg ICAgIChpbnQpIHJpbmctPmlkKTsKPgo+IFRoZXNlIHR3byBzaG91bGQgYmUgRFJNX0RFQlVHIHRv IHByZXZlbnQgdXNlcnNwYWNlIGZyb20gc3BhbW1pbmcgdGhlIAo+IGxvZ3MgdG9vIGVhc2lseS4K Pgo+PiArICAgICAgICByZXR1cm4gMTsKPj4gKyAgICB9Cj4+ICsKPj4gKyAgICBpZiAoYXRvbWlj X3JlYWQoJmZlbmNlLT5zdGF0dXMpID09IDApIHsKPj4gKyAgICAgICAgaWYgKCFpOTE1X3NhZmVf dG9faWdub3JlX2ZlbmNlKHJpbmcsIGZlbmNlKSkKPj4gKyAgICAgICAgICAgIHJldCA9IHN5bmNf ZmVuY2Vfd2FpdChmZW5jZSwgMTAwMCk7Cj4KPiBJIGV4cGVjdCB5b3UgaGF2ZSB0byB3YWl0IGlu ZGVmaW5pdGVseSBoZXJlLCBub3QganVzdCBmb3Igb25lIHNlY29uZC4KQ2F1c2luZyB0aGUgZHJp dmVyIHRvIHdhaXQgaW5kZWZpbml0ZWx5IHVuZGVyIHVzZXJsYW5kIGNvbnRyb2wgaXMgc3VyZWx5 IAphIEJhZCBUaGluZyh0bSk/IE9rYXksIHRoaXMgaXMgZG9uZSBiZWZvcmUgYWNxdWlyaW5nIHRo ZSBtdXRleCBsb2NrIGFuZCAKcHJlc3VtYWJseSB0aGUgd2FpdCBjYW4gYmUgaW50ZXJydXB0ZWQs IGUuZy4gaWYgdGhlIHVzZXIgbGFuZCBwcm9jZXNzIApnZXRzIGEgS0lMTCBzaWduYWwuIEl0IHN0 aWxsIHNlZW1zIGEgYmFkIGlkZWEgdG8gd2FpdCBmb3JldmVyLiBWYXJpb3VzIApiaXRzIG9mIEFu ZHJvaWQgZ2VuZXJhbGx5IHVzZSBhIHRpbWVvdXQgb2YgZWl0aGVyIDFzIG9yIDNzLgoKRGFuaWVs IG9yIGFueW9uZSBlbHNlLCBhbnkgdmlld3Mgb2YgZHJpdmVyIHRpbWUgb3V0cz8KCj4KPj4gKyAg ICB9Cj4+ICsKPj4gKyAgICBzeW5jX2ZlbmNlX3B1dChmZW5jZSk7Cj4+ICsgICAgcmV0dXJuIHJl dDsKPj4gK30KPj4gKyNlbmRpZgo+PiArCj4+ICAgc3RhdGljIGludAo+PiAgIGk5MTVfZ2VtX2Rv X2V4ZWNidWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPj4gICAgICAg ICAgICAgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsCj4+IEBAIC0xNDIyLDYgKzE0NTUsMTgg QEAgaTkxNV9nZW1fZG9fZXhlY2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCAKPj4gdm9p ZCAqZGF0YSwKPj4gICAgICAgdTMyIGRpc3BhdGNoX2ZsYWdzOwo+PiAgICAgICBpbnQgcmV0Owo+ PiAgICAgICBib29sIG5lZWRfcmVsb2NzOwo+PiArICAgIGludCBmZF9mZW5jZV9jb21wbGV0ZSA9 IC0xOwo+PiArI2lmZGVmIENPTkZJR19TWU5DCj4+ICsgICAgaW50IGZkX2ZlbmNlX3dhaXQgPSBs b3dlcl8zMl9iaXRzKGFyZ3MtPnJzdmQyKTsKPj4gKyNlbmRpZgo+PiArCj4+ICsgICAgLyoKPj4g KyAgICAgKiBNYWtlIHN1cmUgYW4gYnJva2VuIGZlbmNlIGhhbmRsZSBpcyBub3QgcmV0dXJuZWQg bm8gbWF0dGVyCj4+ICsgICAgICogaG93IGVhcmx5IGFuIGVycm9yIG1pZ2h0IGJlIGhpdC4gTm90 ZSB0aGF0IHJzdmQyIGhhcyB0byBiZQo+PiArICAgICAqIHNhdmVkIGF3YXkgZmlyc3QgYmVjYXVz ZSBpdCBpcyBhbHNvIGFuIGlucHV0IHBhcmFtZXRlciEKPj4gKyAgICAgKi8KPj4gKyAgICBpZiAo YXJncy0+ZmxhZ3MgJiBJOTE1X0VYRUNfQ1JFQVRFX0ZFTkNFKQo+PiArICAgICAgICBhcmdzLT5y c3ZkMiA9IChfX3U2NCkgLTE7Cj4+Cj4+ICAgICAgIGlmICghaTkxNV9nZW1fY2hlY2tfZXhlY2J1 ZmZlcihhcmdzKSkKPj4gICAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+PiBAQCAtMTUwNSw2ICsx NTUwLDE5IEBAIGk5MTVfZ2VtX2RvX2V4ZWNidWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg Cj4+IHZvaWQgKmRhdGEsCj4+ICAgICAgICAgICBkaXNwYXRjaF9mbGFncyB8PSBJOTE1X0RJU1BB VENIX1JTOwo+PiAgICAgICB9Cj4+Cj4+ICsjaWZkZWYgQ09ORklHX1NZTkMKPj4gKyAgICAvKgo+ PiArICAgICAqIFdpdGhvdXQgYSBHUFUgc2NoZWR1bGVyLCBhbnkgZmVuY2Ugd2FpdHMgbXVzdCBi ZSBkb25lIHVwIGZyb250Lgo+PiArICAgICAqLwo+PiArICAgIGlmIChhcmdzLT5mbGFncyAmIEk5 MTVfRVhFQ19XQUlUX0ZFTkNFKSB7Cj4+ICsgICAgICAgIHJldCA9IGk5MTVfZWFybHlfZmVuY2Vf d2FpdChyaW5nLCBmZF9mZW5jZV93YWl0KTsKPj4gKyAgICAgICAgaWYgKHJldCA8IDApCj4+ICsg ICAgICAgICAgICByZXR1cm4gcmV0Owo+PiArCj4+ICsgICAgICAgIGFyZ3MtPmZsYWdzICY9IH5J OTE1X0VYRUNfV0FJVF9GRU5DRTsKPj4gKyAgICB9Cj4+ICsjZW5kaWYKPj4gKwo+PiAgICAgICBp bnRlbF9ydW50aW1lX3BtX2dldChkZXZfcHJpdik7Cj4+Cj4+ICAgICAgIHJldCA9IGk5MTVfbXV0 ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKGRldik7Cj4+IEBAIC0xNjUyLDYgKzE3MTAsMjcgQEAgaTkx NV9nZW1fZG9fZXhlY2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCAKPj4gdm9pZCAqZGF0 YSwKPj4gICAgICAgcGFyYW1zLT5iYXRjaF9vYmogICAgICAgICAgICAgICA9IGJhdGNoX29iajsK Pj4gICAgICAgcGFyYW1zLT5jdHggICAgICAgICAgICAgICAgICAgICA9IGN0eDsKPj4KPj4gKyNp ZmRlZiBDT05GSUdfU1lOQwo+PiArICAgIGlmIChhcmdzLT5mbGFncyAmIEk5MTVfRVhFQ19DUkVB VEVfRkVOQ0UpIHsKPj4gKyAgICAgICAgLyoKPj4gKyAgICAgICAgICogQ2FsbGVyIGhhcyByZXF1 ZXN0ZWQgYSBzeW5jIGZlbmNlLgo+PiArICAgICAgICAgKiBVc2VyIGludGVycnVwdHMgd2lsbCBi ZSBlbmFibGVkIHRvIG1ha2Ugc3VyZSB0aGF0Cj4+ICsgICAgICAgICAqIHRoZSB0aW1lbGluZSBp cyBzaWduYWxsZWQgb24gY29tcGxldGlvbi4KPj4gKyAgICAgICAgICovCj4+ICsgICAgICAgIHJl dCA9IGk5MTVfY3JlYXRlX3N5bmNfZmVuY2UocGFyYW1zLT5yZXF1ZXN0LAo+PiArICAgICAgICAg ICAgICAgICAgICAgICAgICZmZF9mZW5jZV9jb21wbGV0ZSk7Cj4+ICsgICAgICAgIGlmIChyZXQp IHsKPj4gKyAgICAgICAgICAgIERSTV9FUlJPUigiRmVuY2UgY3JlYXRpb24gZmFpbGVkIGZvciBy aW5nICVkLCBjdHggJXBcbiIsCj4+ICsgICAgICAgICAgICAgICAgICByaW5nLT5pZCwgY3R4KTsK Pj4gKyAgICAgICAgICAgIGFyZ3MtPnJzdmQyID0gKF9fdTY0KSAtMTsKPj4gKyAgICAgICAgICAg IGdvdG8gZXJyOwo+PiArICAgICAgICB9Cj4+ICsKPj4gKyAgICAgICAgLyogUmV0dXJuIHRoZSBm ZW5jZSB0aHJvdWdoIHRoZSByc3ZkMiBmaWVsZCAqLwo+PiArICAgICAgICBhcmdzLT5yc3ZkMiA9 IChfX3U2NCkgZmRfZmVuY2VfY29tcGxldGU7Cj4+ICsgICAgfQo+PiArI2VuZGlmCj4+ICsKPj4g ICAgICAgcmV0ID0gZGV2X3ByaXYtPmd0LmV4ZWNidWZfc3VibWl0KHBhcmFtcywgYXJncywgJmVi LT52bWFzKTsKPj4KPj4gICBlcnJfYmF0Y2hfdW5waW46Cj4+IEBAIC0xNjgzLDYgKzE3NjIsMTIg QEAgcHJlX211dGV4X2VycjoKPj4gICAgICAgLyogaW50ZWxfZ3B1X2J1c3kgc2hvdWxkIGFsc28g Z2V0IGEgcmVmLCBzbyBpdCB3aWxsIGZyZWUgd2hlbiAKPj4gdGhlIGRldmljZQo+PiAgICAgICAg KiBpcyByZWFsbHkgaWRsZS4gKi8KPj4gICAgICAgaW50ZWxfcnVudGltZV9wbV9wdXQoZGV2X3By aXYpOwo+PiArCj4+ICsgICAgaWYgKGZkX2ZlbmNlX2NvbXBsZXRlICE9IC0xKSB7Cj4+ICsgICAg ICAgIHN5c19jbG9zZShmZF9mZW5jZV9jb21wbGV0ZSk7Cj4KPiBJIGFtIG5vdCBzdXJlIGNhbGxp bmcgc3lzdGVtIGNhbGwgZnVuY3Rpb25zIGZyb20gZHJpdmVyIGNvZGUgd2lsbCBiZSAKPiBhbGxv d2VkLiB0aGF0J3Mgd2h5IEkgd2FzIGRvaW5nIGZkX2luc3RhbGwgb25seSB3aGVuIHN1cmUgZXZl cnl0aGluZyAKPiB3ZW50IE9LLgoKRGFuaWVsIG9yIG90aGVycywgYW55IHRob3VnaHRzPyBJcyB0 aGUgY2xlYW4gdXAgYWxsb3dlZCBpbiB0aGUgZHJpdmVyPyAKSXMgdGhlcmUgYW4gYWx0ZXJuYXRp dmUgZHJpdmVyIGZyaWVuZGx5IG9wdGlvbj8gSXQgbWFrZXMgdGhlIHN5bmMgCmNyZWF0aW5nIGNv ZGUgY2xlYW5lciBpZiB3ZSBjYW4gZG8gZXZlcnl0aGluZyBpbiBvbmUgcGxhY2UgcmF0aGVyIHRo YW4gCmRvIHNvbWUgcHJvY2Vzc2luZyB1cCBmcm9udCBhbmQgc29tZSBhdCB0aGUgZW5kLgoKPgo+ IFJlZ2FyZHMsCj4KPiBUdnJ0a28KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==