From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [RFC 9/9] drm/i915: Add sync framework support to execbuff IOCTL Date: Mon, 27 Jul 2015 14:00:18 +0100 Message-ID: <55B62B62.20300@linux.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> 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 DE1FB6E93B for ; Mon, 27 Jul 2015 06:00:22 -0700 (PDT) In-Reply-To: <1437143483-6234-10-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 CgpPbiAwNy8xNy8yMDE1IDAzOjMxIFBNLCBKb2huLkMuSGFycmlzb25ASW50ZWwuY29tIHdyb3Rl Ogo+IEZyb206IEpvaG4gSGFycmlzb24gPEpvaG4uQy5IYXJyaXNvbkBJbnRlbC5jb20+Cj4KPiBW YXJpb3VzIHByb2plY3RzIGRlc2lyZSBhIG1lY2hhbmlzbSBmb3IgbWFuYWdpbmcgZGVwZW5kZW5j aWVzIGJldHdlZW4KPiB3b3JrIGl0ZW1zIGFzeW5jaHJvbm91c2x5LiBUaGlzIGNhbiBhbHNvIGlu Y2x1ZGUgd29yayBpdGVtcyBhY3Jvc3MKPiBjb21wbGV0ZSBkaWZmZXJlbnQgYW5kIGluZGVwZW5k ZW50IHN5c3RlbXMuIEZvciBleGFtcGxlLCBhbgo+IGFwcGxpY2F0aW9uIHdhbnRzIHRvIHJldHJl aXZlIGEgZnJhbWUgZnJvbSBhIHZpZGVvIGluIGRldmljZSwKPiB1c2luZyBpdCBmb3IgcmVuZGVy aW5nIG9uIGEgR1BVIHRoZW4gc2VuZCBpdCB0byB0aGUgdmlkZW8gb3V0IGRldmljZQo+IGZvciBk aXNwbGF5IGFsbCB3aXRob3V0IGhhdmluZyB0byBzdGFsbCB3YWl0aW5nIGZvciBjb21wbGV0aW9u IGFsb25nCj4gdGhlIHdheS4gVGhlIHN5bmMgZnJhbWV3b3JrIGFsbG93cyB0aGlzLiBJdCBlbmNh cHN1bGF0ZXMKPiBzeW5jaHJvbmlzYXRpb24gZXZlbnRzIGluIGZpbGUgZGVzY3JpcHRvcnMuIFRo ZSBhcHBsaWNhdGlvbiBjYW4KPiByZXF1ZXN0IGEgc3luYyBwb2ludCBmb3IgdGhlIGNvbXBsZXRp b24gb2YgZWFjaCBwaWVjZSBvZiB3b3JrLiBEcml2ZXJzCj4gc2hvdWxkIGFsc28gdGFrZSBzeW5j IHBvaW50cyBpbiB3aXRoIGVhY2ggbmV3IHdvcmsgcmVxdWVzdCBhbmQgbm90Cj4gc2NoZWR1bGUg dGhlIHdvcmsgdG8gc3RhcnQgdW50aWwgdGhlIHN5bmMgaGFzIGJlZW4gc2lnbmFsbGVkLgo+Cj4g VGhpcyBwYXRjaCBhZGRzIHN5bmMgZnJhbWV3b3JrIHN1cHBvcnQgdG8gdGhlIGV4ZWMgYnVmZmVy IElPQ1RMLiBBCj4gc3luYyBwb2ludCBjYW4gYmUgcGFzc2VkIGluIHRvIHN0YWxsIGV4ZWN1dGlv biBvZiB0aGUgYmF0Y2ggYnVmZmVyCj4gdW50aWwgc2lnbmFsbGVkLiBBbmQgYSBzeW5jIHBvaW50 IGNhbiBiZSByZXR1cm5lZCBhZnRlciBlYWNoIGJhdGNoCj4gYnVmZmVyIHN1Ym1pc3Npb24gd2hp Y2ggd2lsbCBiZSBzaWduYWxsZWQgdXBvbiB0aGF0IGJhdGNoIGJ1ZmZlcidzCj4gY29tcGxldGlv bi4KPgo+IEF0IHByZXNlbnQsIHRoZSBpbnB1dCBzeW5jIHBvaW50IGlzIHNpbXBseSB3YWl0ZWQg b24gc3luY2hyb25vdXNseQo+IGluc2lkZSB0aGUgZXhlYyBidWZmZXIgSU9DVEwgY2FsbC4gT25j ZSB0aGUgR1BVIHNjaGVkdWxlciBhcnJpdmVzLAo+IHRoaXMgd2lsbCBiZSBoYW5kbGVkIGFzeW5j aHJvbm91c2x5IGluc2lkZSB0aGUgc2NoZWR1bGVyIGFuZCB0aGUgSU9DVEwKPiBjYW4gcmV0dXJu IHdpdGhvdXQgaGF2aW5nIHRvIHdhaXQuCj4KPiBOb3RlIGFsc28gdGhhdCB0aGUgc2NoZWR1bGVy IHdpbGwgcmUtb3JkZXIgdGhlIGV4ZWN1dGlvbiBvZiBiYXRjaAo+IGJ1ZmZlcnMsIGUuZy4gYmVj YXVzZSBhIGJhdGNoIGJ1ZmZlciBpcyBzdGFsbGVkIG9uIGEgc3luYyBwb2ludCBhbmQKPiBjYW5u b3QgYmUgc3VibWl0dGVkIHlldCBidXQgb3RoZXIsIGluZGVwZW5kZW50LCBiYXRjaCBidWZmZXJz IGFyZQo+IGJlaW5nIHByZXNlbnRlZCB0byB0aGUgZHJpdmVyLiBUaGlzIG1lYW5zIHRoYXQgdGhl IHRpbWVsaW5lIHdpdGhpbiB0aGUKPiBzeW5jIHBvaW50cyByZXR1cm5lZCBjYW5ub3QgYmUgZ2xv YmFsIHRvIHRoZSBlbmdpbmUuIEluc3RlYWQgdGhleSBtdXN0Cj4gYmUga2VwdCBwZXIgY29udGV4 dCBwZXIgZW5naW5lICh0aGUgc2NoZWR1bGVyIG1heSBub3QgcmUtb3JkZXIgYmF0Y2hlcwo+IHdp dGhpbiBhIGNvbnRleHQpLiBIZW5jZSB0aGUgdGltZWxpbmUgY2Fubm90IGJlIGJhc2VkIG9uIHRo ZSBleGlzdGluZwo+IHNlcW5vIHZhbHVlcyBidXQgbXVzdCBiZSBhIG5ldyBpbXBsZW1lbnRhdGlv bi4KPgo+IFRoaXMgcGF0Y2ggaXMgYSBwb3J0IG9mIHdvcmsgYnkgc2V2ZXJhbCBwZW9wbGUgdGhh dCBoYXMgYmVlbiBwdWxsZWQKPiBhY3Jvc3MgZnJvbSBBbmRyb2lkLiBJdCBoYXMgYmVlbiB1cGRh dGVkIHNldmVyYWwgdGltZXMgYWNyb3NzIHNldmVyYWwKPiBwYXRjaGVzLiBSYXRoZXIgdGhhbiBh dHRlbXB0IHRvIHBvcnQgZWFjaCBpbmRpdmlkdWFsIHBhdGNoLCB0aGlzCj4gdmVyc2lvbiBpcyB0 aGUgZmluaXNoZWQgcHJvZHVjdCBhcyBhIHNpbmdsZSBwYXRjaC4gVGhlIHZhcmlvdXMKPiBjb250 cmlidXRvcnMvYXV0aG9ycyBhbG9uZyB0aGUgd2F5IChpbiBhZGRpdGlvbiB0byBteXNlbGYpIHdl cmU6Cj4gICAgU2F0eWFuYW50aGEgUmFtYUdvcGFsIE0gPHJhbWEuZ29wYWwubS5zYXR5YW5hbnRo YUBpbnRlbC5jb20+Cj4gICAgVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNv bT4KPiAgICBNaWNoZWwgVGhpZXJyeSA8bWljaGVsLnRoaWVycnlAaW50ZWwuY29tPgo+ICAgIEFy dW4gU2lsdXZlcnkgPGFydW4uc2lsdXZlcnlAbGludXguaW50ZWwuY29tPgo+Cj4gW25ldyBwYXRj aCBpbiBzZXJpZXNdCj4KPiBGb3I6IFZJWi01MTkwCj4gU2lnbmVkLW9mZi1ieTogSm9obiBIYXJy aXNvbiA8Sm9obi5DLkhhcnJpc29uQEludGVsLmNvbT4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgICB8ICA2ICsrCj4gICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbS5jICAgICAgICAgICAgfCA4NCArKysrKysrKysrKysrKysrKysrKysrKysr KysrCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMgfCA5MCAr KysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KPiAgIGluY2x1ZGUvdWFwaS9kcm0vaTkxNV9k cm0uaCAgICAgICAgICAgICAgICB8IDE2ICsrKysrLQo+ICAgNCBmaWxlcyBjaGFuZ2VkLCAxODgg aW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ IGluZGV4IGQ3ZjFhYTUuLmNmNmI3Y2QgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBA QCAtMjE2OCw2ICsyMTY4LDcgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0IHsKPiAgIAlz dHJ1Y3QgbGlzdF9oZWFkIGRlbGF5X2ZyZWVfbGlzdDsKPiAgIAlib29sIGNhbmNlbGxlZDsKPiAg IAlib29sIGlycV9lbmFibGVkOwo+ICsJYm9vbCBmZW5jZV9leHRlcm5hbDsKPgo+ICAgCS8qKiBP biBXaGljaCByaW5nIHRoaXMgcmVxdWVzdCB3YXMgZ2VuZXJhdGVkICovCj4gICAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmk5MTU7Cj4gQEAgLTIyNTIsNiArMjI1MywxMSBAQCB2b2lkIGk5MTVf Z2VtX3JlcXVlc3Rfbm90aWZ5KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpOwo+ICAgaW50 IGk5MTVfY3JlYXRlX2ZlbmNlX3RpbWVsaW5lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICAJ CQkgICAgICAgc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKPiAgIAkJCSAgICAgICBzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICpyaW5nKTsKPiArI2lmZGVmIENPTkZJR19TWU5DCj4gK3N0cnVjdCBz eW5jX2ZlbmNlOwo+ICtpbnQgaTkxNV9jcmVhdGVfc3luY19mZW5jZShzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKnJlcSwgaW50ICpmZW5jZV9mZCk7Cj4gK2Jvb2wgaTkxNV9zYWZlX3RvX2ln bm9yZV9mZW5jZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLCBzdHJ1Y3Qgc3luY19mZW5j ZSAqZmVuY2UpOwo+ICsjZW5kaWYKPgo+ICAgc3RhdGljIGlubGluZSBib29sIGk5MTVfZ2VtX3Jl cXVlc3RfY29tcGxldGVkKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQo+ICAgewo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IGluZGV4IDNmMjAwODcuLmRlOTM0MjIgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBAQCAtMzcsNiArMzcsOSBAQAo+ICAgI2luY2x1ZGUgPGxp bnV4L3N3YXAuaD4KPiAgICNpbmNsdWRlIDxsaW51eC9wY2kuaD4KPiAgICNpbmNsdWRlIDxsaW51 eC9kbWEtYnVmLmg+Cj4gKyNpZmRlZiBDT05GSUdfU1lOQwo+ICsjaW5jbHVkZSA8Li4vZHJpdmVy cy9zdGFnaW5nL2FuZHJvaWQvc3luYy5oPgo+ICsjZW5kaWYKPgo+ICAgI2RlZmluZSBSUV9CVUdf T04oZXhwcikKPgo+IEBAIC0yNTQ5LDYgKzI1NTIsMTUgQEAgdm9pZCBfX2k5MTVfYWRkX3JlcXVl c3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0LAo+ICAgCSAqLwo+ICAgCWk5 MTVfZ2VtX3JlcXVlc3Rfc3VibWl0KHJlcXVlc3QpOwo+Cj4gKwkvKgo+ICsJICogSWYgYW4gZXh0 ZXJuYWwgc3luYyBwb2ludCBoYXMgYmVlbiByZXF1ZXN0ZWQgZm9yIHRoaXMgcmVxdWVzdCB0aGVu Cj4gKwkgKiBpdCBjYW4gYmUgd2FpdGVkIG9uIHdpdGhvdXQgdGhlIGRyaXZlcidzIGtub3dsZWRn ZSwgaS5lLiB3aXRob3V0Cj4gKwkgKiBjYWxsaW5nIF9faTkxNV93YWl0X3JlcXVlc3QoKS4gVGh1 cyBpbnRlcnJ1cHRzIG11c3QgYmUgZW5hYmxlZAo+ICsJICogZnJvbSB0aGUgc3RhcnQgcmF0aGVy IHRoYW4gb25seSBvbiBkZW1hbmQuCj4gKwkgKi8KPiArCWlmIChyZXF1ZXN0LT5mZW5jZV9leHRl cm5hbCkKPiArCQlpOTE1X2dlbV9yZXF1ZXN0X2VuYWJsZV9pbnRlcnJ1cHQocmVxdWVzdCk7CgpN YXliZSB0aGVuIGZlbmNlX2V4cG9ydGVkIHdvdWxkIGJlIGNsZWFyZXIsIGZlbmNlX2V4dGVybmFs IGF0IGZpcnN0IApzb3VuZHMgbGlrZSBpdCBpcyBjb21pbmcgZnJvbSBhbm90aGVyIGRyaXZlciBv ciBzb21ldGhpbmcuCgo+ICsKPiAgIAlpZiAoaTkxNS5lbmFibGVfZXhlY2xpc3RzKQo+ICAgCQly ZXQgPSByaW5nLT5lbWl0X3JlcXVlc3QocmVxdWVzdCk7Cj4gICAJZWxzZSB7Cj4gQEAgLTI4NTcs NiArMjg2OSw3OCBAQCBzdGF0aWMgdWludDMyX3QgaTkxNV9mZW5jZV90aW1lbGluZV9nZXRfbmV4 dF9zZXFubyhzdHJ1Y3QgaTkxNV9mZW5jZV90aW1lbGluZSAqdAo+ICAgCXJldHVybiBzZXFubzsK PiAgIH0KPgo+ICsjaWZkZWYgQ09ORklHX1NZTkMKPiAraW50IGk5MTVfY3JlYXRlX3N5bmNfZmVu Y2Uoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsIGludCAqZmVuY2VfZmQpCj4gK3sK PiArCWNoYXIgcmluZ19uYW1lW10gPSAiaTkxNV9yaW5nMCI7Cj4gKwlzdHJ1Y3Qgc3luY19mZW5j ZSAqc3luY19mZW5jZTsKPiArCWludCBmZDsKPiArCj4gKwlmZCA9IGdldF91bnVzZWRfZmRfZmxh Z3MoT19DTE9FWEVDKTsKPiArCWlmIChmZCA8IDApIHsKPiArCQlEUk1fREVCVUcoIk5vIGF2YWls YWJsZSBmaWxlIGRlc2NyaXB0b3JzIVxuIik7Cj4gKwkJKmZlbmNlX2ZkID0gLTE7Cj4gKwkJcmV0 dXJuIGZkOwo+ICsJfQo+ICsKPiArCXJpbmdfbmFtZVs5XSArPSByZXEtPnJpbmctPmlkOwo+ICsJ c3luY19mZW5jZSA9IHN5bmNfZmVuY2VfY3JlYXRlX2RtYShyaW5nX25hbWUsICZyZXEtPmZlbmNl KTsKClRoaXMgd2lsbCBjYWxsIC0+ZW5hYmxlX3NpZ25hbGxpbmcgc28gcGVyaGFwcyB5b3UgY291 bGQgZW5hYmxlIAppbnRlcnJ1cHRzIGluIHRoZXJlIGZvciBleHBvcnRlZCBmZW5jZXMuIE1heWJl IGl0IHdvdWxkIGJlIGEgdGlueSBiaXQgCm1vcmUgbG9naWNhbGx5IGdyb3VwZWQuIChSYXRoZXIg dGhhbiBoYXZlIF9hZGRfcmVxdWVzdCBkbyBpdC4pCgo+ICsJaWYgKCFzeW5jX2ZlbmNlKSB7Cj4g KwkJcHV0X3VudXNlZF9mZChmZCk7Cj4gKwkJKmZlbmNlX2ZkID0gLTE7Cj4gKwkJcmV0dXJuIC1F Tk9NRU07Cj4gKwl9Cj4gKwo+ICsJc3luY19mZW5jZV9pbnN0YWxsKHN5bmNfZmVuY2UsIGZkKTsK PiArCSpmZW5jZV9mZCA9IGZkOwo+ICsKPiArCS8vIE5lY2Vzc2FyeT8/PyBXaG8gZG9lcyB0aGUg cHV0Pz8/Cj4gKwlmZW5jZV9nZXQoJnJlcS0+ZmVuY2UpOwoKc3luY19mZW5jZV9yZWxlYXNlPwoK PiArCj4gKwlyZXEtPmZlbmNlX2V4dGVybmFsID0gdHJ1ZTsKPiArCj4gKwlyZXR1cm4gMDsKPiAr fQo+ICsKPiArYm9vbCBpOTE1X3NhZmVfdG9faWdub3JlX2ZlbmNlKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKnJpbmcsIHN0cnVjdCBzeW5jX2ZlbmNlICpzeW5jX2ZlbmNlKQo+ICt7Cj4gKwlzdHJ1 Y3QgZmVuY2UgKmRtYV9mZW5jZTsKPiArCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx Owo+ICsJYm9vbCBpZ25vcmU7Cj4gKwlpbnQgaTsKPiArCj4gKwlpZiAoYXRvbWljX3JlYWQoJnN5 bmNfZmVuY2UtPnN0YXR1cykgIT0gMCkKPiArCQlyZXR1cm4gdHJ1ZTsKPiArCj4gKwlpZ25vcmUg PSB0cnVlOwo+ICsJZm9yKGkgPSAwOyBpIDwgc3luY19mZW5jZS0+bnVtX2ZlbmNlczsgaSsrKSB7 Cj4gKwkJZG1hX2ZlbmNlID0gc3luY19mZW5jZS0+Y2JzW2ldLnN5bmNfcHQ7Cj4gKwo+ICsJCS8q IE5vIG5lZWQgdG8gd29ycnkgYWJvdXQgZGVhZCBwb2ludHM6ICovCj4gKwkJaWYgKGZlbmNlX2lz X3NpZ25hbGVkKGRtYV9mZW5jZSkpCj4gKwkJCWNvbnRpbnVlOwo+ICsKPiArCQkvKiBDYW4ndCBp Z25vcmUgb3RoZXIgcGVvcGxlJ3MgcG9pbnRzOiAqLwo+ICsJCWlmKGRtYV9mZW5jZS0+b3BzICE9 ICZpOTE1X2dlbV9yZXF1ZXN0X2ZvcHMpIHsKPiArCQkJaWdub3JlID0gZmFsc2U7Cj4gKwkJCWJy ZWFrOwoKVGhlIHNhbWUgYXMgcmV0dXJuIGZhbHNlIGFuZCB0aGVuIGRvbid0IG5lZWQgYm9vbCBp Z25vcmUgYXQgYWxsLgoKPiArCQl9Cj4gKwo+ICsJCXJlcSA9IGNvbnRhaW5lcl9vZihkbWFfZmVu Y2UsIHR5cGVvZigqcmVxKSwgZmVuY2UpOwo+ICsKPiArCQkvKiBDYW4ndCBpZ25vcmUgcG9pbnRz IG9uIG90aGVyIHJpbmdzOiAqLwo+ICsJCWlmIChyZXEtPnJpbmcgIT0gcmluZykgewo+ICsJCQlp Z25vcmUgPSBmYWxzZTsKPiArCQkJYnJlYWs7Cj4gKwkJfQo+ICsKPiArCQkvKiBTYW1lIHJpbmcg bWVhbnMgZ3VhcmFudGVlZCB0byBiZSBpbiBvcmRlciBzbyBpZ25vcmUgaXQuICovCj4gKwl9Cj4g Kwo+ICsJcmV0dXJuIGlnbm9yZTsKPiArfQo+ICsjZW5kaWYKPiArCj4gICBpbnQgaTkxNV9nZW1f cmVxdWVzdF9hbGxvYyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+ICAgCQkJICAgc3Ry dWN0IGludGVsX2NvbnRleHQgKmN0eCwKPiAgIAkJCSAgIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqKnJlcV9vdXQpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX2V4ZWNidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZm ZXIuYwo+IGluZGV4IDkyM2EzYzQuLmIxYTE2NTkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCj4gQEAgLTI2LDYgKzI2LDcgQEAKPiAgICAqCj4gICAg Ki8KPgo+ICsjaW5jbHVkZSA8bGludXgvc3lzY2FsbHMuaD4KPiAgICNpbmNsdWRlIDxkcm0vZHJt UC5oPgo+ICAgI2luY2x1ZGUgPGRybS9pOTE1X2RybS5oPgo+ICAgI2luY2x1ZGUgImk5MTVfZHJ2 LmgiCj4gQEAgLTMzLDYgKzM0LDkgQEAKPiAgICNpbmNsdWRlICJpbnRlbF9kcnYuaCIKPiAgICNp bmNsdWRlIDxsaW51eC9kbWFfcmVtYXBwaW5nLmg+Cj4gICAjaW5jbHVkZSA8bGludXgvdWFjY2Vz cy5oPgo+ICsjaWZkZWYgQ09ORklHX1NZTkMKPiArI2luY2x1ZGUgPC4uL2RyaXZlcnMvc3RhZ2lu Zy9hbmRyb2lkL3N5bmMuaD4KPiArI2VuZGlmCj4KPiAgICNkZWZpbmUgIF9fRVhFQ19PQkpFQ1Rf SEFTX1BJTiAoMTw8MzEpCj4gICAjZGVmaW5lICBfX0VYRUNfT0JKRUNUX0hBU19GRU5DRSAoMTw8 MzApCj4gQEAgLTE0MDMsNiArMTQwNywzNSBAQCBlYl9nZXRfYmF0Y2goc3RydWN0IGViX3ZtYXMg KmViKQo+ICAgCXJldHVybiB2bWEtPm9iajsKPiAgIH0KPgo+ICsjaWZkZWYgQ09ORklHX1NZTkMK CkkgZG9uJ3QgZXhwZWN0IHlvdSdsbCBiZSBhYmxlIHRvIGdldCBhd2F5IHdpdGggaWZkZWYncyBp biB0aGUgY29kZSBsaWtlIAp0aGlzIHNvIGZvciBub24tUkZDIGl0IHdpbGwgaGF2ZSB0byBiZSBj bGVhbmVkIHVwLgoKPiArc3RhdGljIGludCBpOTE1X2Vhcmx5X2ZlbmNlX3dhaXQoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqcmluZywgaW50IGZlbmNlX2ZkKQo+ICt7Cj4gKwlzdHJ1Y3Qgc3luY19m ZW5jZSAqZmVuY2U7Cj4gKwlpbnQgcmV0ID0gMDsKPiArCj4gKwlpZiAoZmVuY2VfZmQgPCAwKSB7 Cj4gKwkJRFJNX0VSUk9SKCJJbnZhbGlkIHdhaXQgZmVuY2UgZmQgJWQgb24gcmluZyAlZFxuIiwg ZmVuY2VfZmQsCj4gKwkJCSAgKGludCkgcmluZy0+aWQpOwo+ICsJCXJldHVybiAxOwo+ICsJfQo+ ICsKPiArCWZlbmNlID0gc3luY19mZW5jZV9mZGdldChmZW5jZV9mZCk7Cj4gKwlpZiAoZmVuY2Ug PT0gTlVMTCkgewo+ICsJCURSTV9FUlJPUigiSW52YWxpZCB3YWl0IGZlbmNlICVkIG9uIHJpbmcg JWRcbiIsIGZlbmNlX2ZkLAo+ICsJCQkgIChpbnQpIHJpbmctPmlkKTsKClRoZXNlIHR3byBzaG91 bGQgYmUgRFJNX0RFQlVHIHRvIHByZXZlbnQgdXNlcnNwYWNlIGZyb20gc3BhbW1pbmcgdGhlIAps b2dzIHRvbyBlYXNpbHkuCgo+ICsJCXJldHVybiAxOwo+ICsJfQo+ICsKPiArCWlmIChhdG9taWNf cmVhZCgmZmVuY2UtPnN0YXR1cykgPT0gMCkgewo+ICsJCWlmICghaTkxNV9zYWZlX3RvX2lnbm9y ZV9mZW5jZShyaW5nLCBmZW5jZSkpCj4gKwkJCXJldCA9IHN5bmNfZmVuY2Vfd2FpdChmZW5jZSwg MTAwMCk7CgpJIGV4cGVjdCB5b3UgaGF2ZSB0byB3YWl0IGluZGVmaW5pdGVseSBoZXJlLCBub3Qg anVzdCBmb3Igb25lIHNlY29uZC4KCj4gKwl9Cj4gKwo+ICsJc3luY19mZW5jZV9wdXQoZmVuY2Up Owo+ICsJcmV0dXJuIHJldDsKPiArfQo+ICsjZW5kaWYKPiArCj4gICBzdGF0aWMgaW50Cj4gICBp OTE1X2dlbV9kb19leGVjYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEs Cj4gICAJCSAgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsCj4gQEAgLTE0MjIsNiArMTQ1NSwx OCBAQCBpOTE1X2dlbV9kb19leGVjYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQg KmRhdGEsCj4gICAJdTMyIGRpc3BhdGNoX2ZsYWdzOwo+ICAgCWludCByZXQ7Cj4gICAJYm9vbCBu ZWVkX3JlbG9jczsKPiArCWludCBmZF9mZW5jZV9jb21wbGV0ZSA9IC0xOwo+ICsjaWZkZWYgQ09O RklHX1NZTkMKPiArCWludCBmZF9mZW5jZV93YWl0ID0gbG93ZXJfMzJfYml0cyhhcmdzLT5yc3Zk Mik7Cj4gKyNlbmRpZgo+ICsKPiArCS8qCj4gKwkgKiBNYWtlIHN1cmUgYW4gYnJva2VuIGZlbmNl IGhhbmRsZSBpcyBub3QgcmV0dXJuZWQgbm8gbWF0dGVyCj4gKwkgKiBob3cgZWFybHkgYW4gZXJy b3IgbWlnaHQgYmUgaGl0LiBOb3RlIHRoYXQgcnN2ZDIgaGFzIHRvIGJlCj4gKwkgKiBzYXZlZCBh d2F5IGZpcnN0IGJlY2F1c2UgaXQgaXMgYWxzbyBhbiBpbnB1dCBwYXJhbWV0ZXIhCj4gKwkgKi8K PiArCWlmIChhcmdzLT5mbGFncyAmIEk5MTVfRVhFQ19DUkVBVEVfRkVOQ0UpCj4gKwkJYXJncy0+ cnN2ZDIgPSAoX191NjQpIC0xOwo+Cj4gICAJaWYgKCFpOTE1X2dlbV9jaGVja19leGVjYnVmZmVy KGFyZ3MpKQo+ICAgCQlyZXR1cm4gLUVJTlZBTDsKPiBAQCAtMTUwNSw2ICsxNTUwLDE5IEBAIGk5 MTVfZ2VtX2RvX2V4ZWNidWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwK PiAgIAkJZGlzcGF0Y2hfZmxhZ3MgfD0gSTkxNV9ESVNQQVRDSF9SUzsKPiAgIAl9Cj4KPiArI2lm ZGVmIENPTkZJR19TWU5DCj4gKwkvKgo+ICsJICogV2l0aG91dCBhIEdQVSBzY2hlZHVsZXIsIGFu eSBmZW5jZSB3YWl0cyBtdXN0IGJlIGRvbmUgdXAgZnJvbnQuCj4gKwkgKi8KPiArCWlmIChhcmdz LT5mbGFncyAmIEk5MTVfRVhFQ19XQUlUX0ZFTkNFKSB7Cj4gKwkJcmV0ID0gaTkxNV9lYXJseV9m ZW5jZV93YWl0KHJpbmcsIGZkX2ZlbmNlX3dhaXQpOwo+ICsJCWlmIChyZXQgPCAwKQo+ICsJCQly ZXR1cm4gcmV0Owo+ICsKPiArCQlhcmdzLT5mbGFncyAmPSB+STkxNV9FWEVDX1dBSVRfRkVOQ0U7 Cj4gKwl9Cj4gKyNlbmRpZgo+ICsKPiAgIAlpbnRlbF9ydW50aW1lX3BtX2dldChkZXZfcHJpdik7 Cj4KPiAgIAlyZXQgPSBpOTE1X211dGV4X2xvY2tfaW50ZXJydXB0aWJsZShkZXYpOwo+IEBAIC0x NjUyLDYgKzE3MTAsMjcgQEAgaTkxNV9nZW1fZG9fZXhlY2J1ZmZlcihzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCB2b2lkICpkYXRhLAo+ICAgCXBhcmFtcy0+YmF0Y2hfb2JqICAgICAgICAgICAgICAg PSBiYXRjaF9vYmo7Cj4gICAJcGFyYW1zLT5jdHggICAgICAgICAgICAgICAgICAgICA9IGN0eDsK Pgo+ICsjaWZkZWYgQ09ORklHX1NZTkMKPiArCWlmIChhcmdzLT5mbGFncyAmIEk5MTVfRVhFQ19D UkVBVEVfRkVOQ0UpIHsKPiArCQkvKgo+ICsJCSAqIENhbGxlciBoYXMgcmVxdWVzdGVkIGEgc3lu YyBmZW5jZS4KPiArCQkgKiBVc2VyIGludGVycnVwdHMgd2lsbCBiZSBlbmFibGVkIHRvIG1ha2Ug c3VyZSB0aGF0Cj4gKwkJICogdGhlIHRpbWVsaW5lIGlzIHNpZ25hbGxlZCBvbiBjb21wbGV0aW9u Lgo+ICsJCSAqLwo+ICsJCXJldCA9IGk5MTVfY3JlYXRlX3N5bmNfZmVuY2UocGFyYW1zLT5yZXF1 ZXN0LAo+ICsJCQkJCSAgICAgJmZkX2ZlbmNlX2NvbXBsZXRlKTsKPiArCQlpZiAocmV0KSB7Cj4g KwkJCURSTV9FUlJPUigiRmVuY2UgY3JlYXRpb24gZmFpbGVkIGZvciByaW5nICVkLCBjdHggJXBc biIsCj4gKwkJCQkgIHJpbmctPmlkLCBjdHgpOwo+ICsJCQlhcmdzLT5yc3ZkMiA9IChfX3U2NCkg LTE7Cj4gKwkJCWdvdG8gZXJyOwo+ICsJCX0KPiArCj4gKwkJLyogUmV0dXJuIHRoZSBmZW5jZSB0 aHJvdWdoIHRoZSByc3ZkMiBmaWVsZCAqLwo+ICsJCWFyZ3MtPnJzdmQyID0gKF9fdTY0KSBmZF9m ZW5jZV9jb21wbGV0ZTsKPiArCX0KPiArI2VuZGlmCj4gKwo+ICAgCXJldCA9IGRldl9wcml2LT5n dC5leGVjYnVmX3N1Ym1pdChwYXJhbXMsIGFyZ3MsICZlYi0+dm1hcyk7Cj4KPiAgIGVycl9iYXRj aF91bnBpbjoKPiBAQCAtMTY4Myw2ICsxNzYyLDEyIEBAIHByZV9tdXRleF9lcnI6Cj4gICAJLyog aW50ZWxfZ3B1X2J1c3kgc2hvdWxkIGFsc28gZ2V0IGEgcmVmLCBzbyBpdCB3aWxsIGZyZWUgd2hl biB0aGUgZGV2aWNlCj4gICAJICogaXMgcmVhbGx5IGlkbGUuICovCj4gICAJaW50ZWxfcnVudGlt ZV9wbV9wdXQoZGV2X3ByaXYpOwo+ICsKPiArCWlmIChmZF9mZW5jZV9jb21wbGV0ZSAhPSAtMSkg ewo+ICsJCXN5c19jbG9zZShmZF9mZW5jZV9jb21wbGV0ZSk7CgpJIGFtIG5vdCBzdXJlIGNhbGxp bmcgc3lzdGVtIGNhbGwgZnVuY3Rpb25zIGZyb20gZHJpdmVyIGNvZGUgd2lsbCBiZSAKYWxsb3dl ZC4gdGhhdCdzIHdoeSBJIHdhcyBkb2luZyBmZF9pbnN0YWxsIG9ubHkgd2hlbiBzdXJlIGV2ZXJ5 dGhpbmcgCndlbnQgT0suCgpSZWdhcmRzLAoKVHZydGtvCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==