From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 12/13] drm/i915: Add sync framework support to execbuff IOCTL Date: Fri, 11 Dec 2015 15:29:20 +0000 Message-ID: <566AEBD0.3010207@linux.intel.com> References: <1449839521-21958-1-git-send-email-John.C.Harrison@Intel.com> <1449839521-21958-13-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 4F91689268 for ; Fri, 11 Dec 2015 07:29:22 -0800 (PST) In-Reply-To: <1449839521-21958-13-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 CgpPbiAxMS8xMi8xNSAxMzoxMiwgSm9obi5DLkhhcnJpc29uQEludGVsLmNvbSB3cm90ZToKPiBG cm9tOiBKb2huIEhhcnJpc29uIDxKb2huLkMuSGFycmlzb25ASW50ZWwuY29tPgo+Cj4gVmFyaW91 cyBwcm9qZWN0cyBkZXNpcmUgYSBtZWNoYW5pc20gZm9yIG1hbmFnaW5nIGRlcGVuZGVuY2llcyBi ZXR3ZWVuCj4gd29yayBpdGVtcyBhc3luY2hyb25vdXNseS4gVGhpcyBjYW4gYWxzbyBpbmNsdWRl IHdvcmsgaXRlbXMgYWNyb3NzCj4gY29tcGxldGUgZGlmZmVyZW50IGFuZCBpbmRlcGVuZGVudCBz eXN0ZW1zLiBGb3IgZXhhbXBsZSwgYW4KPiBhcHBsaWNhdGlvbiB3YW50cyB0byByZXRyZWl2ZSBh IGZyYW1lIGZyb20gYSB2aWRlbyBpbiBkZXZpY2UsCj4gdXNpbmcgaXQgZm9yIHJlbmRlcmluZyBv biBhIEdQVSB0aGVuIHNlbmQgaXQgdG8gdGhlIHZpZGVvIG91dCBkZXZpY2UKPiBmb3IgZGlzcGxh eSBhbGwgd2l0aG91dCBoYXZpbmcgdG8gc3RhbGwgd2FpdGluZyBmb3IgY29tcGxldGlvbiBhbG9u Zwo+IHRoZSB3YXkuIFRoZSBzeW5jIGZyYW1ld29yayBhbGxvd3MgdGhpcy4gSXQgZW5jYXBzdWxh dGVzCj4gc3luY2hyb25pc2F0aW9uIGV2ZW50cyBpbiBmaWxlIGRlc2NyaXB0b3JzLiBUaGUgYXBw bGljYXRpb24gY2FuCj4gcmVxdWVzdCBhIHN5bmMgcG9pbnQgZm9yIHRoZSBjb21wbGV0aW9uIG9m IGVhY2ggcGllY2Ugb2Ygd29yay4gRHJpdmVycwo+IHNob3VsZCBhbHNvIHRha2Ugc3luYyBwb2lu dHMgaW4gd2l0aCBlYWNoIG5ldyB3b3JrIHJlcXVlc3QgYW5kIG5vdAo+IHNjaGVkdWxlIHRoZSB3 b3JrIHRvIHN0YXJ0IHVudGlsIHRoZSBzeW5jIGhhcyBiZWVuIHNpZ25hbGxlZC4KPgo+IFRoaXMg cGF0Y2ggYWRkcyBzeW5jIGZyYW1ld29yayBzdXBwb3J0IHRvIHRoZSBleGVjIGJ1ZmZlciBJT0NU TC4gQQo+IHN5bmMgcG9pbnQgY2FuIGJlIHBhc3NlZCBpbiB0byBzdGFsbCBleGVjdXRpb24gb2Yg dGhlIGJhdGNoIGJ1ZmZlcgo+IHVudGlsIHNpZ25hbGxlZC4gQW5kIGEgc3luYyBwb2ludCBjYW4g YmUgcmV0dXJuZWQgYWZ0ZXIgZWFjaCBiYXRjaAo+IGJ1ZmZlciBzdWJtaXNzaW9uIHdoaWNoIHdp bGwgYmUgc2lnbmFsbGVkIHVwb24gdGhhdCBiYXRjaCBidWZmZXIncwo+IGNvbXBsZXRpb24uCj4K PiBBdCBwcmVzZW50LCB0aGUgaW5wdXQgc3luYyBwb2ludCBpcyBzaW1wbHkgd2FpdGVkIG9uIHN5 bmNocm9ub3VzbHkKPiBpbnNpZGUgdGhlIGV4ZWMgYnVmZmVyIElPQ1RMIGNhbGwuIE9uY2UgdGhl IEdQVSBzY2hlZHVsZXIgYXJyaXZlcywKPiB0aGlzIHdpbGwgYmUgaGFuZGxlZCBhc3luY2hyb25v dXNseSBpbnNpZGUgdGhlIHNjaGVkdWxlciBhbmQgdGhlIElPQ1RMCj4gY2FuIHJldHVybiB3aXRo b3V0IGhhdmluZyB0byB3YWl0Lgo+Cj4gTm90ZSBhbHNvIHRoYXQgdGhlIHNjaGVkdWxlciB3aWxs IHJlLW9yZGVyIHRoZSBleGVjdXRpb24gb2YgYmF0Y2gKPiBidWZmZXJzLCBlLmcuIGJlY2F1c2Ug YSBiYXRjaCBidWZmZXIgaXMgc3RhbGxlZCBvbiBhIHN5bmMgcG9pbnQgYW5kCj4gY2Fubm90IGJl IHN1Ym1pdHRlZCB5ZXQgYnV0IG90aGVyLCBpbmRlcGVuZGVudCwgYmF0Y2ggYnVmZmVycyBhcmUK PiBiZWluZyBwcmVzZW50ZWQgdG8gdGhlIGRyaXZlci4gVGhpcyBtZWFucyB0aGF0IHRoZSB0aW1l bGluZSB3aXRoaW4gdGhlCj4gc3luYyBwb2ludHMgcmV0dXJuZWQgY2Fubm90IGJlIGdsb2JhbCB0 byB0aGUgZW5naW5lLiBJbnN0ZWFkIHRoZXkgbXVzdAo+IGJlIGtlcHQgcGVyIGNvbnRleHQgcGVy IGVuZ2luZSAodGhlIHNjaGVkdWxlciBtYXkgbm90IHJlLW9yZGVyIGJhdGNoZXMKPiB3aXRoaW4g YSBjb250ZXh0KS4gSGVuY2UgdGhlIHRpbWVsaW5lIGNhbm5vdCBiZSBiYXNlZCBvbiB0aGUgZXhp c3RpbmcKPiBzZXFubyB2YWx1ZXMgYnV0IG11c3QgYmUgYSBuZXcgaW1wbGVtZW50YXRpb24uCj4K PiBUaGlzIHBhdGNoIGlzIGEgcG9ydCBvZiB3b3JrIGJ5IHNldmVyYWwgcGVvcGxlIHRoYXQgaGFz IGJlZW4gcHVsbGVkCj4gYWNyb3NzIGZyb20gQW5kcm9pZC4gSXQgaGFzIGJlZW4gdXBkYXRlZCBz ZXZlcmFsIHRpbWVzIGFjcm9zcyBzZXZlcmFsCj4gcGF0Y2hlcy4gUmF0aGVyIHRoYW4gYXR0ZW1w dCB0byBwb3J0IGVhY2ggaW5kaXZpZHVhbCBwYXRjaCwgdGhpcwo+IHZlcnNpb24gaXMgdGhlIGZp bmlzaGVkIHByb2R1Y3QgYXMgYSBzaW5nbGUgcGF0Y2guIFRoZSB2YXJpb3VzCj4gY29udHJpYnV0 b3JzL2F1dGhvcnMgYWxvbmcgdGhlIHdheSAoaW4gYWRkaXRpb24gdG8gbXlzZWxmKSB3ZXJlOgo+ ICAgIFNhdHlhbmFudGhhIFJhbWFHb3BhbCBNIDxyYW1hLmdvcGFsLm0uc2F0eWFuYW50aGFAaW50 ZWwuY29tPgo+ICAgIFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Cj4g ICAgTWljaGVsIFRoaWVycnkgPG1pY2hlbC50aGllcnJ5QGludGVsLmNvbT4KPiAgICBBcnVuIFNp bHV2ZXJ5IDxhcnVuLnNpbHV2ZXJ5QGxpbnV4LmludGVsLmNvbT4KPgo+IHYyOiBOZXcgcGF0Y2gg aW4gc2VyaWVzLgo+Cj4gdjM6IFVwZGF0ZWQgdG8gdXNlIHRoZSBuZXcgJ3N5bmNfZmVuY2VfaXNf c2lnbmFsZWQnIEFQSSByYXRoZXIgdGhhbgo+IGhhdmluZyB0byBrbm93IGFib3V0IHRoZSBpbnRl cm5hbCBtZWFuaW5nIG9mIHRoZSAnZmVuY2U6OnN0YXR1cycgZmllbGQKPiAod2hpY2ggcmVjZW50 bHkgZ290IGludmVydGVkISkgW3dvcmsgYnkgUGV0ZXIgTGF3dGhlcnNdLgo+Cj4gVXBkYXRlZCBh ZnRlciByZXZpZXcgY29tbWVudHMgYnkgRGFuaWVsIFZldHRlci4gUmVtb3ZlZCAnI2lmZGVmCj4g Q09ORklHX1NZTkMnIGFuZCBhZGQgJ3NlbGVjdCBTWU5DJyB0byB0aGUgS2NvbmZpZyBpbnN0ZWFk LiBNb3ZlZCB0aGUKPiBmZCBpbnN0YWxsYXRpb24gb2YgZmVuY2VzIHRvIHRoZSBlbmQgb2YgdGhl IGV4ZWNidWZmIGNhbGwgdG8gaW4gb3JkZXIKPiB0byByZW1vdmUgdGhlIG5lZWQgdG8gdXNlICdz eXNfY2xvc2UnIHRvIGNsZWFuIHVwIG9uIGZhaWx1cmUuCj4KPiBVcGRhdGVkIGFmdGVyIHJldmll dyBjb21tZW50cyBieSBUdnJ0a28gVXJzdWxpbi4gUmVtdm9lZCB0aGUKPiAnZmVuY2VfZXh0ZXJu YWwnIGZsYWcgYXMgcmVkdW5kYW50LiBDb3ZuZXJ0ZWQgRFJNX0VSUk9ScyB0bwo+IERSTV9ERUJV R3MuIENoYW5nZWQgb25lIHNlY29uZCB3YWl0IHRvIGEgd2FpdCBmb3JldmVyIHdoZW4gd2FpdGlu ZyBvbgo+IGluY29taW5nIGZlbmNlcy4KPgo+IHY0OiBSZS1pbnN0YXRlZCBtaXNzaW5nIHJldHVy biBvZiBmZCB0byB1c2VyIGxhbmQgdGhhdCBzb21laG93IGdvdAo+IGxvc3QgaW4gdGhlIGFudGkt c3lzX2Nsb3NlKCkgcmUtZmFjdG9yLgo+Cj4gRm9yOiBWSVotNTE5MAo+IFNpZ25lZC1vZmYtYnk6 IEpvaG4gSGFycmlzb24gPEpvaG4uQy5IYXJyaXNvbkBJbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1i eTogUGV0ZXIgTGF3dGhlcnMgPHBldGVyLmxhd3RoZXJzQGludGVsLmNvbT4KPiBDYzogVHZydGtv IFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KPiBDYzogRGFuaWVsIFZldHRlciA8 ZGFuaWVsQGZmd2xsLmNoPgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvS2NvbmZpZyAg ICAgICAgICAgICAgIHwgIDMgKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAg ICAgICAgICAgIHwgIDYgKysKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAg ICAgICAgICB8IDg5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0KPiAgIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyB8IDk1ICsrKysrKysrKysrKysrKysrKysr KysrKysrKystLQo+ICAgaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oICAgICAgICAgICAgICAg IHwgMTYgKysrKy0KPiAgIDUgZmlsZXMgY2hhbmdlZCwgMjAwIGluc2VydGlvbnMoKyksIDkgZGVs ZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvS2NvbmZpZyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L0tjb25maWcKPiBpbmRleCAxZDk2ZmUxLi5jYjVkNWIyIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L0tjb25maWcKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9LY29uZmlnCj4gQEAgLTIyLDYgKzIyLDkgQEAgY29uZmlnIERSTV9JOTE1 Cj4gICAJc2VsZWN0IEFDUElfVklERU8gaWYgQUNQSQo+ICAgCXNlbGVjdCBBQ1BJX0JVVFRPTiBp ZiBBQ1BJCj4gICAJc2VsZWN0IE1NVV9OT1RJRklFUgoKc2VsZWN0IE1NVV9OT1RJRklFUiBpcyBu b3QgdXBzdHJlYW0hIDopCgo+ICsJIyBBTkRST0lEIGlzIHJlcXVpcmVkIGZvciBTWU5DCj4gKwlz ZWxlY3QgQU5EUk9JRAo+ICsJc2VsZWN0IFNZTkMKPiAgIAloZWxwCj4gICAJICBDaG9vc2UgdGhp cyBvcHRpb24gaWYgeW91IGhhdmUgYSBzeXN0ZW0gdGhhdCBoYXMgIkludGVsIEdyYXBoaWNzCj4g ICAJICBNZWRpYSBBY2NlbGVyYXRvciIgb3IgIkhEIEdyYXBoaWNzIiBpbnRlZ3JhdGVkIGdyYXBo aWNzLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IGQwMTNjNmQuLjE5NGJjYTAgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBAQCAtMjI3OCw2ICsyMjc4LDEyIEBAIHZvaWQg aTkxNV9nZW1fcmVxdWVzdF9ub3RpZnkoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywgYm9v bCBmZW5jZV9sb2NrZWQpOwo+ICAgaW50IGk5MTVfY3JlYXRlX2ZlbmNlX3RpbWVsaW5lKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCj4gICAJCQkgICAgICAgc3RydWN0IGludGVsX2NvbnRleHQgKmN0 eCwKPiAgIAkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKTsKPiArc3RydWN0 IHN5bmNfZmVuY2U7Cj4gK2ludCBpOTE1X2NyZWF0ZV9zeW5jX2ZlbmNlKHN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqcmVxLAo+ICsJCQkgICBzdHJ1Y3Qgc3luY19mZW5jZSAqKnN5bmNfZmVu Y2UsIGludCAqZmVuY2VfZmQpOwo+ICt2b2lkIGk5MTVfaW5zdGFsbF9zeW5jX2ZlbmNlX2ZkKHN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ICsJCQkJc3RydWN0IHN5bmNfZmVuY2Ug KnN5bmNfZmVuY2UsIGludCBmZW5jZV9mZCk7Cj4gK2Jvb2wgaTkxNV9zYWZlX3RvX2lnbm9yZV9m ZW5jZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLCBzdHJ1Y3Qgc3luY19mZW5jZSAqZmVu Y2UpOwo+Cj4gICBzdGF0aWMgaW5saW5lIGJvb2wgaTkxNV9nZW1fcmVxdWVzdF9jb21wbGV0ZWQo c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCj4gICB7Cj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbS5jCj4gaW5kZXggNDgxNzAxNS4uMjc5ZDc5ZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW0uYwo+IEBAIC0zNyw2ICszNyw3IEBACj4gICAjaW5jbHVkZSA8bGludXgvc3dhcC5oPgo+ICAg I2luY2x1ZGUgPGxpbnV4L3BjaS5oPgo+ICAgI2luY2x1ZGUgPGxpbnV4L2RtYS1idWYuaD4KPiAr I2luY2x1ZGUgPC4uL2RyaXZlcnMvYW5kcm9pZC9zeW5jLmg+Cj4KPiAgICNkZWZpbmUgUlFfQlVH X09OKGV4cHIpCj4KPiBAQCAtMjU2MCw3ICsyNTYxLDEzIEBAIHZvaWQgX19pOTE1X2FkZF9yZXF1 ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCwKPgo+ICAgCS8qCj4gICAJ ICogQWRkIHRoZSBmZW5jZSB0byB0aGUgcGVuZGluZyBsaXN0IGJlZm9yZSBlbWl0dGluZyB0aGUg Y29tbWFuZHMgdG8KPiAtCSAqIGdlbmVyYXRlIGEgc2Vxbm8gbm90aWZpY2F0aW9uIGludGVycnVw dC4KPiArCSAqIGdlbmVyYXRlIGEgc2Vxbm8gbm90aWZpY2F0aW9uIGludGVycnVwdC4gVGhpcyB3 aWxsIGFsc28gZW5hYmxlCj4gKwkgKiBpbnRlcnJ1cHRzIGlmICdzaWduYWxfcmVxdWVzdGVkJyBo YXMgYmVlbiBzZXQuCj4gKwkgKgo+ICsJICogRm9yIGV4YW1wbGUsIGlmIGFuIGV4cG9ydGVkIHN5 bmMgcG9pbnQgaGFzIGJlZW4gcmVxdWVzdGVkIGZvciB0aGlzCj4gKwkgKiByZXF1ZXN0IHRoZW4g aXQgY2FuIGJlIHdhaXRlZCBvbiB3aXRob3V0IHRoZSBkcml2ZXIncyBrbm93bGVkZ2UsCj4gKwkg KiBpLmUuIHdpdGhvdXQgY2FsbGluZyBfX2k5MTVfd2FpdF9yZXF1ZXN0KCkuIFRodXMgaW50ZXJy dXB0cyBtdXN0Cj4gKwkgKiBiZSBlbmFibGVkIGZyb20gdGhlIHN0YXJ0IHJhdGhlciB0aGFuIG9u bHkgb24gZGVtYW5kLgo+ICAgCSAqLwo+ICAgCWk5MTVfZ2VtX3JlcXVlc3Rfc3VibWl0KHJlcXVl c3QpOwo+Cj4gQEAgLTI5MDEsNiArMjkwOCw4NiBAQCBzdGF0aWMgdW5zaWduZWQgaTkxNV9mZW5j ZV90aW1lbGluZV9nZXRfbmV4dF9zZXFubyhzdHJ1Y3QgaTkxNV9mZW5jZV90aW1lbGluZSAqdAo+ ICAgCXJldHVybiBzZXFubzsKPiAgIH0KPgo+ICtpbnQgaTkxNV9jcmVhdGVfc3luY19mZW5jZShz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPiArCQkJICAgc3RydWN0IHN5bmNfZmVu Y2UgKipzeW5jX2ZlbmNlLCBpbnQgKmZlbmNlX2ZkKQo+ICt7Cj4gKwljaGFyIHJpbmdfbmFtZVtd ID0gImk5MTVfcmluZzAiOwo+ICsJaW50IGZkOwo+ICsKPiArCWZkID0gZ2V0X3VudXNlZF9mZF9m bGFncyhPX0NMT0VYRUMpOwo+ICsJaWYgKGZkIDwgMCkgewo+ICsJCURSTV9ERUJVRygiTm8gYXZh aWxhYmxlIGZpbGUgZGVzY3JpcHRvcnMhXG4iKTsKPiArCQkqZmVuY2VfZmQgPSAtMTsKPiArCQly ZXR1cm4gZmQ7Cj4gKwl9Cj4gKwo+ICsJcmluZ19uYW1lWzldICs9IHJlcS0+cmluZy0+aWQ7CgpJ IHRoaW5rIHRoaXMgd2lsbCBwb3NzaWJseSBibG93IHVwIGlmIENPTkZJR19ERUJVR19ST0RBVEEg aXMgc2V0LCB3aGljaCAKaXMgdGhlIGNhc2Ugb24gbW9zdCBrZXJuZWxzLgoKU28gSSB0aGluayB5 b3UgbmVlZCB0byBtYWtlIGEgbG9jYWwgY29weSB3aXRoIGtzdHJkdXAgYW5kIGZyZWUgaXQgYWZ0 ZXIgCmNhbGxpbmcgc3luY19mZW5jZV9jcmVhdGVfZG1hLgoKPiArCSpzeW5jX2ZlbmNlID0gc3lu Y19mZW5jZV9jcmVhdGVfZG1hKHJpbmdfbmFtZSwgJnJlcS0+ZmVuY2UpOwo+ICsJaWYgKCEqc3lu Y19mZW5jZSkgewo+ICsJCXB1dF91bnVzZWRfZmQoZmQpOwo+ICsJCSpmZW5jZV9mZCA9IC0xOwo+ ICsJCXJldHVybiAtRU5PTUVNOwo+ICsJfQo+ICsKPiArCSpmZW5jZV9mZCA9IGZkOwo+ICsKPiAr CXJldHVybiAwOwo+ICt9Cj4gKwo+ICt2b2lkIGk5MTVfaW5zdGFsbF9zeW5jX2ZlbmNlX2ZkKHN0 cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ICsJCQkJc3RydWN0IHN5bmNfZmVuY2Ug KnN5bmNfZmVuY2UsIGludCBmZW5jZV9mZCkKPiArewo+ICsJc3luY19mZW5jZV9pbnN0YWxsKHN5 bmNfZmVuY2UsIGZlbmNlX2ZkKTsKPiArCj4gKwkvKgo+ICsJICogTkI6IFRoZSBjb3JyZXNwb25k aW5nIHB1dCBoYXBwZW5zIGF1dG9tYXRpY2FsbHkgb24gZmlsZSBjbG9zZQo+ICsJICogZnJvbSBz eW5jX2ZlbmNlX3JlbGVhc2UoKSB2aWEgdGhlIGZvcHMgY2FsbGJhY2suCj4gKwkgKi8KPiArCWZl bmNlX2dldCgmcmVxLT5mZW5jZSk7Cj4gKwo+ICsJLyoKPiArCSAqIFRoZSBzeW5jIGZyYW1ld29y ayBhZGRzIGEgY2FsbGJhY2sgdG8gdGhlIGZlbmNlLiBUaGUgZmVuY2UKPiArCSAqIGZyYW1ld29y ayBjYWxscyAnZW5hYmxlX3NpZ25hbGxpbmcnIHdoZW4gYSBjYWxsYmFjayBpcyBhZGRlZC4KPiAr CSAqIFRodXMgdGhpcyBmbGFnIHNob3VsZCBoYXZlIGJlZW4gc2V0IGJ5IG5vdy4gSWYgbm90IHRo ZW4KPiArCSAqICdlbmFibGVfc2lnbmFsbGluZycgbXVzdCBiZSBjYWxsZWQgZXhwbGljaXRseSBi ZWNhdXNlIGV4cG9ydGluZwo+ICsJICogYSBmZW5jZSB0byB1c2VyIGxhbmQgbWVhbnMgaXQgY2Fu IGJlIHdhaXRlZCBvbiBhc3luY2hyb25vdXNseSBhbmQKPiArCSAqIHRodXMgbXVzdCBiZSBzaWdu YWxsZWQgYXN5bmNocm9ub3VzbHkuCj4gKwkgKi8KPiArCVdBUk5fT04oIXJlcS0+c2lnbmFsX3Jl cXVlc3RlZCk7Cj4gK30KPiArCj4gK2Jvb2wgaTkxNV9zYWZlX3RvX2lnbm9yZV9mZW5jZShzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLCBzdHJ1Y3Qgc3luY19mZW5jZSAqc3luY19mZW5jZSkK PiArewo+ICsJc3RydWN0IGZlbmNlICpkbWFfZmVuY2U7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X3JlcXVlc3QgKnJlcTsKPiArCWludCBpOwo+ICsKPiArCWlmIChzeW5jX2ZlbmNlX2lzX3NpZ25h bGVkKHN5bmNfZmVuY2UpKQo+ICsJCXJldHVybiB0cnVlOwo+ICsKPiArCWZvcihpID0gMDsgaSA8 IHN5bmNfZmVuY2UtPm51bV9mZW5jZXM7IGkrKykgewo+ICsJCWRtYV9mZW5jZSA9IHN5bmNfZmVu Y2UtPmNic1tpXS5zeW5jX3B0Owo+ICsKPiArCQkvKiBObyBuZWVkIHRvIHdvcnJ5IGFib3V0IGRl YWQgcG9pbnRzOiAqLwo+ICsJCWlmIChmZW5jZV9pc19zaWduYWxlZChkbWFfZmVuY2UpKQo+ICsJ CQljb250aW51ZTsKPiArCj4gKwkJLyogQ2FuJ3QgaWdub3JlIG90aGVyIHBlb3BsZSdzIHBvaW50 czogKi8KCk1heWJlIGFkZCAidW5zaWduYWxlZCIgdG8gcXVhbGlmeS4KCj4gKwkJaWYoZG1hX2Zl bmNlLT5vcHMgIT0gJmk5MTVfZ2VtX3JlcXVlc3RfZm9wcykKPiArCQkJcmV0dXJuIGZhbHNlOwo+ ICsKPiArCQlyZXEgPSBjb250YWluZXJfb2YoZG1hX2ZlbmNlLCB0eXBlb2YoKnJlcSksIGZlbmNl KTsKPiArCj4gKwkJLyogQ2FuJ3QgaWdub3JlIHBvaW50cyBvbiBvdGhlciByaW5nczogKi8KPiAr CQlpZiAocmVxLT5yaW5nICE9IHJpbmcpCj4gKwkJCXJldHVybiBmYWxzZTsKPiArCj4gKwkJLyog U2FtZSByaW5nIG1lYW5zIGd1YXJhbnRlZWQgdG8gYmUgaW4gb3JkZXIgc28gaWdub3JlIGl0LiAq Lwo+ICsJfQo+ICsKPiArCXJldHVybiB0cnVlOwo+ICt9Cj4gKwo+ICAgaW50IGk5MTVfZ2VtX3Jl cXVlc3RfYWxsb2Moc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPiAgIAkJCSAgIHN0cnVj dCBpbnRlbF9jb250ZXh0ICpjdHgsCj4gICAJCQkgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QgKipyZXFfb3V0KQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9leGVjYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVy LmMKPiBpbmRleCBiZmM0YzE3Li41ZjYyOWY4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwo+IEBAIC0yNiw2ICsyNiw3IEBACj4gICAgKgo+ICAgICov Cj4KPiArI2luY2x1ZGUgPGxpbnV4L3N5c2NhbGxzLmg+Cj4gICAjaW5jbHVkZSA8ZHJtL2RybVAu aD4KPiAgICNpbmNsdWRlIDxkcm0vaTkxNV9kcm0uaD4KPiAgICNpbmNsdWRlICJpOTE1X2Rydi5o Igo+IEBAIC0zMyw2ICszNCw3IEBACj4gICAjaW5jbHVkZSAiaW50ZWxfZHJ2LmgiCj4gICAjaW5j bHVkZSA8bGludXgvZG1hX3JlbWFwcGluZy5oPgo+ICAgI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3Mu aD4KPiArI2luY2x1ZGUgPC4uL2RyaXZlcnMvYW5kcm9pZC9zeW5jLmg+Cj4KPiAgICNkZWZpbmUg IF9fRVhFQ19PQkpFQ1RfSEFTX1BJTiAoMTw8MzEpCj4gICAjZGVmaW5lICBfX0VYRUNfT0JKRUNU X0hBU19GRU5DRSAoMTw8MzApCj4gQEAgLTEzMjIsNiArMTMyNCwzOCBAQCBlYl9nZXRfYmF0Y2go c3RydWN0IGViX3ZtYXMgKmViKQo+ICAgCXJldHVybiB2bWEtPm9iajsKPiAgIH0KPgo+ICtzdGF0 aWMgaW50IGk5MTVfZWFybHlfZmVuY2Vfd2FpdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5n LCBpbnQgZmVuY2VfZmQpCj4gK3sKPiArCXN0cnVjdCBzeW5jX2ZlbmNlICpmZW5jZTsKPiArCWlu dCByZXQgPSAwOwo+ICsKPiArCWlmIChmZW5jZV9mZCA8IDApIHsKPiArCQlEUk1fREVCVUcoIklu dmFsaWQgd2FpdCBmZW5jZSBmZCAlZCBvbiByaW5nICVkXG4iLCBmZW5jZV9mZCwKPiArCQkJICAo aW50KSByaW5nLT5pZCk7Cj4gKwkJcmV0dXJuIDE7CgpTdWdnZXN0IGFkZGluZyBrZXJuZWxkb2Mg ZGVzY3JpYmluZyByZXR1cm4gdmFsdWVzIGZyb20gdGhpcyBmdW5jdGlvbi4KCkl0IHdhc24ndCBp bW1lZGlhdGVseSBjbGVhciB0byBtZSB3aGF0IG9uZSBtZWFucy4KCkJ1dCBJIGFtIGFsc28gbm90 IHN1cmUgdGhhdCBpbnZhbGlkIGZkIHNob3VsZG4ndCBiZSBhbiBvdXRyaWdodCBlcnJvciAKaW5z dGVhZCBvZiBhbGxvd2luZyBleGVjYnVmIHRvIGNvbnRpdWUuCgo+ICsJfQo+ICsKPiArCWZlbmNl ID0gc3luY19mZW5jZV9mZGdldChmZW5jZV9mZCk7Cj4gKwlpZiAoZmVuY2UgPT0gTlVMTCkgewo+ ICsJCURSTV9ERUJVRygiSW52YWxpZCB3YWl0IGZlbmNlICVkIG9uIHJpbmcgJWRcbiIsIGZlbmNl X2ZkLAo+ICsJCQkgIChpbnQpIHJpbmctPmlkKTsKPiArCQlyZXR1cm4gMTsKPiArCX0KPiArCj4g KwlpZiAoIXN5bmNfZmVuY2VfaXNfc2lnbmFsZWQoZmVuY2UpKSB7CgpNaW5vciBjb21tZW50LCBi dXQgaTkxNV9zYWZlX3RvX2lnbm9yZV9mZW5jZSBjaGVja3MgdGhpcyBhcyB3ZWxsIHNvIHlvdSAK Y291bGQgcmVtb3ZlIGl0IGhlcmUuCgo+ICsJCS8qCj4gKwkJICogV2FpdCBmb3JldmVyIGZvciB0 aGUgZmVuY2UgdG8gYmUgc2lnbmFsbGVkLiBUaGlzIGlzIHNhZmUKPiArCQkgKiBiZWNhdXNlIHRo ZSB0aGUgbXV0ZXggbG9jayBoYXMgbm90IHlldCBiZWVuIGFjcXVpcmVkIGFuZAo+ICsJCSAqIHRo ZSB3YWl0IGlzIGludGVycnVwdGlibGUuCj4gKwkJICovCj4gKwkJaWYgKCFpOTE1X3NhZmVfdG9f aWdub3JlX2ZlbmNlKHJpbmcsIGZlbmNlKSkKPiArCQkJcmV0ID0gc3luY19mZW5jZV93YWl0KGZl bmNlLCAtMSk7Cj4gKwl9Cj4gKwo+ICsJc3luY19mZW5jZV9wdXQoZmVuY2UpOwo+ICsJcmV0dXJu IHJldDsKPiArfQo+ICsKPiAgIHN0YXRpYyBpbnQKPiAgIGk5MTVfZ2VtX2RvX2V4ZWNidWZmZXIo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiAgIAkJICAgICAgIHN0cnVjdCBk cm1fZmlsZSAqZmlsZSwKPiBAQCAtMTM0MSw2ICsxMzc1LDE3IEBAIGk5MTVfZ2VtX2RvX2V4ZWNi dWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiAgIAl1MzIgZGlzcGF0 Y2hfZmxhZ3M7Cj4gICAJaW50IHJldDsKPiAgIAlib29sIG5lZWRfcmVsb2NzOwo+ICsJaW50IGZk X2ZlbmNlX2NvbXBsZXRlID0gLTE7Cj4gKwlpbnQgZmRfZmVuY2Vfd2FpdCA9IGxvd2VyXzMyX2Jp dHMoYXJncy0+cnN2ZDIpOwo+ICsJc3RydWN0IHN5bmNfZmVuY2UgKnN5bmNfZmVuY2U7Cj4gKwo+ ICsJLyoKPiArCSAqIE1ha2Ugc3VyZSBhbiBicm9rZW4gZmVuY2UgaGFuZGxlIGlzIG5vdCByZXR1 cm5lZCBubyBtYXR0ZXIKPiArCSAqIGhvdyBlYXJseSBhbiBlcnJvciBtaWdodCBiZSBoaXQuIE5v dGUgdGhhdCByc3ZkMiBoYXMgdG8gYmUKPiArCSAqIHNhdmVkIGF3YXkgZmlyc3QgYmVjYXVzZSBp dCBpcyBhbHNvIGFuIGlucHV0IHBhcmFtZXRlciEKPiArCSAqLwoKSW5zdGVhZCBvZiB0aGUgMm5k IHNlbnRlbmNlIG1heWJlIHNheSBzb21ldGhpbmcgbGlrZSAiTm90ZSB0aGF0IHdlIGhhdmUgCnNh dmVkIHJzdmQyIGFscmVhZHkgZm9yIGxhdGVyIHVzZSBzaW5jZSBpdCBpcyBhbHNvIGluIGlucHV0 IHBhcmFtZXRlciEiLiAKTGlrZSB3cml0dGVuIEkgd2FzIGV4cGVjdGluZyB0aGUgY29kZSBmb2xs b3dpbmcgdGhlIGNvbW1lbnQgdG8gZG8gdGhhdCwgCmFuZCB0aGVuIHdhcyBjb25mdXNlZCB3aGVu IGl0IGRpZG4ndC4gT3IgbWF5YmUgbXkgYXR0ZW50aW9uIHNwYW4gaXMgdG9vIApzaG9ydC4KCj4g KwlpZiAoYXJncy0+ZmxhZ3MgJiBJOTE1X0VYRUNfQ1JFQVRFX0ZFTkNFKQo+ICsJCWFyZ3MtPnJz dmQyID0gKF9fdTY0KSAtMTsKPgo+ICAgCWlmICghaTkxNV9nZW1fY2hlY2tfZXhlY2J1ZmZlcihh cmdzKSkKPiAgIAkJcmV0dXJuIC1FSU5WQUw7Cj4gQEAgLTE0MjQsNiArMTQ2OSwxNyBAQCBpOTE1 X2dlbV9kb19leGVjYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4g ICAJCWRpc3BhdGNoX2ZsYWdzIHw9IEk5MTVfRElTUEFUQ0hfUlM7Cj4gICAJfQo+Cj4gKwkvKgo+ ICsJICogV2l0aG91dCBhIEdQVSBzY2hlZHVsZXIsIGFueSBmZW5jZSB3YWl0cyBtdXN0IGJlIGRv bmUgdXAgZnJvbnQuCj4gKwkgKi8KPiArCWlmIChhcmdzLT5mbGFncyAmIEk5MTVfRVhFQ19XQUlU X0ZFTkNFKSB7Cj4gKwkJcmV0ID0gaTkxNV9lYXJseV9mZW5jZV93YWl0KHJpbmcsIGZkX2ZlbmNl X3dhaXQpOwo+ICsJCWlmIChyZXQgPCAwKQo+ICsJCQlyZXR1cm4gcmV0Owo+ICsKPiArCQlhcmdz LT5mbGFncyAmPSB+STkxNV9FWEVDX1dBSVRfRkVOQ0U7Cj4gKwl9Cj4gKwo+ICAgCWludGVsX3J1 bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsKPgo+ICAgCXJldCA9IGk5MTVfbXV0ZXhfbG9ja19pbnRl cnJ1cHRpYmxlKGRldik7Cj4gQEAgLTE1NzEsOCArMTYyNyw0MSBAQCBpOTE1X2dlbV9kb19leGVj YnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gICAJcGFyYW1zLT5i YXRjaF9vYmogICAgICAgICAgICAgICA9IGJhdGNoX29iajsKPiAgIAlwYXJhbXMtPmN0eCAgICAg ICAgICAgICAgICAgICAgID0gY3R4Owo+Cj4gKwlpZiAoYXJncy0+ZmxhZ3MgJiBJOTE1X0VYRUNf Q1JFQVRFX0ZFTkNFKSB7Cj4gKwkJLyoKPiArCQkgKiBDYWxsZXIgaGFzIHJlcXVlc3RlZCBhIHN5 bmMgZmVuY2UuCj4gKwkJICogVXNlciBpbnRlcnJ1cHRzIHdpbGwgYmUgZW5hYmxlZCB0byBtYWtl IHN1cmUgdGhhdAo+ICsJCSAqIHRoZSB0aW1lbGluZSBpcyBzaWduYWxsZWQgb24gY29tcGxldGlv bi4KPiArCQkgKi8KCklzIGl0IHNpZ25hbGVkIG9yIHNpZ25hbGxlZD8gVGhlcmUgaXMgYSBsb3Qg b2YgdXNhZ2Ugb2YgYm90aCB0aHJvdWdob3V0IAp0aGUgcGF0Y2hlcyBhbmQgSSBhcyBhIG5vbi1u YXRpdmUgc3BlYWtlciBhbSBhbXVeSF5IXkhjb25mdXNlZC4gOykKCj4gKwkJcmV0ID0gaTkxNV9j cmVhdGVfc3luY19mZW5jZShwYXJhbXMtPnJlcXVlc3QsICZzeW5jX2ZlbmNlLAo+ICsJCQkJCSAg ICAgJmZkX2ZlbmNlX2NvbXBsZXRlKTsKPiArCQlpZiAocmV0KSB7Cj4gKwkJCURSTV9FUlJPUigi RmVuY2UgY3JlYXRpb24gZmFpbGVkIGZvciByaW5nICVkLCBjdHggJXBcbiIsCj4gKwkJCQkgIHJp bmctPmlkLCBjdHgpOwo+ICsJCQlnb3RvIGVycl9iYXRjaF91bnBpbjsKPiArCQl9Cj4gKwl9Cj4g Kwo+ICAgCXJldCA9IGRldl9wcml2LT5ndC5leGVjYnVmX3N1Ym1pdChwYXJhbXMsIGFyZ3MsICZl Yi0+dm1hcyk7Cj4KPiArCWlmIChmZF9mZW5jZV9jb21wbGV0ZSAhPSAtMSkgewo+ICsJCWlmIChy ZXQpIHsKPiArCQkJc3luY19mZW5jZV9wdXQoc3luY19mZW5jZSk7Cj4gKwkJCXB1dF91bnVzZWRf ZmQoZmRfZmVuY2VfY29tcGxldGUpOwo+ICsJCX0gZWxzZSB7Cj4gKwkJCS8qCj4gKwkJCSAqIElu c3RhbGwgdGhlIGZlbmNlIGludG8gdGhlIHByZS1hbGxvY2F0ZWQgZmlsZQo+ICsJCQkgKiBkZXNj cmlwdG9yIHRvIHRoZSBmZW5jZSBvYmplY3Qgc28gdGhhdCB1c2VyIGxhbmQKPiArCQkJICogY2Fu IHdhaXQgb24gaXQuLi4KPiArCQkJICovCj4gKwkJCWk5MTVfaW5zdGFsbF9zeW5jX2ZlbmNlX2Zk KHBhcmFtcy0+cmVxdWVzdCwKPiArCQkJCQkJICAgc3luY19mZW5jZSwgZmRfZmVuY2VfY29tcGxl dGUpOwo+ICsKPiArCQkJLyogUmV0dXJuIHRoZSBmZW5jZSB0aHJvdWdoIHRoZSByc3ZkMiBmaWVs ZCAqLwo+ICsJCQlhcmdzLT5yc3ZkMiA9IChfX3U2NCkgZmRfZmVuY2VfY29tcGxldGU7Cj4gKwkJ fQo+ICsJfQo+ICsKPiAgIGVycl9iYXRjaF91bnBpbjoKPiAgIAkvKgo+ICAgCSAqIEZJWE1FOiBX ZSBjcnVjaWFsbHkgcmVseSB1cG9uIHRoZSBhY3RpdmUgdHJhY2tpbmcgZm9yIHRoZSAocHBndHQp Cj4gQEAgLTE2MDIsNiArMTY5MSw3IEBAIHByZV9tdXRleF9lcnI6Cj4gICAJLyogaW50ZWxfZ3B1 X2J1c3kgc2hvdWxkIGFsc28gZ2V0IGEgcmVmLCBzbyBpdCB3aWxsIGZyZWUgd2hlbiB0aGUgZGV2 aWNlCj4gICAJICogaXMgcmVhbGx5IGlkbGUuICovCj4gICAJaW50ZWxfcnVudGltZV9wbV9wdXQo ZGV2X3ByaXYpOwo+ICsKPiAgIAlyZXR1cm4gcmV0Owo+ICAgfQo+Cj4gQEAgLTE3MDcsMTEgKzE3 OTcsNiBAQCBpOTE1X2dlbV9leGVjYnVmZmVyMihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lk ICpkYXRhLAo+ICAgCQlyZXR1cm4gLUVJTlZBTDsKPiAgIAl9Cj4KPiAtCWlmIChhcmdzLT5yc3Zk MiAhPSAwKSB7Cj4gLQkJRFJNX0RFQlVHKCJkaXJ0eSBydnNkMiBmaWVsZFxuIik7Cj4gLQkJcmV0 dXJuIC1FSU5WQUw7Cj4gLQl9Cj4gLQo+ICAgCWV4ZWMyX2xpc3QgPSBrbWFsbG9jKHNpemVvZigq ZXhlYzJfbGlzdCkqYXJncy0+YnVmZmVyX2NvdW50LAo+ICAgCQkJICAgICBHRlBfVEVNUE9SQVJZ IHwgX19HRlBfTk9XQVJOIHwgX19HRlBfTk9SRVRSWSk7Cj4gICAJaWYgKGV4ZWMyX2xpc3QgPT0g TlVMTCkKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oIGIvaW5jbHVk ZS91YXBpL2RybS9pOTE1X2RybS5oCj4gaW5kZXggNjdjZWJlNi4uODZmNzkyMSAxMDA2NDQKPiAt LS0gYS9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKPiArKysgYi9pbmNsdWRlL3VhcGkvZHJt L2k5MTVfZHJtLmgKPiBAQCAtMjUwLDcgKzI1MCw3IEBAIHR5cGVkZWYgc3RydWN0IF9kcm1faTkx NV9zYXJlYSB7Cj4gICAjZGVmaW5lIERSTV9JT0NUTF9JOTE1X0hXU19BRERSCQlEUk1fSU9XKERS TV9DT01NQU5EX0JBU0UgKyBEUk1fSTkxNV9IV1NfQUREUiwgc3RydWN0IGRybV9pOTE1X2dlbV9p bml0KQo+ICAgI2RlZmluZSBEUk1fSU9DVExfSTkxNV9HRU1fSU5JVAkJRFJNX0lPVyhEUk1fQ09N TUFORF9CQVNFICsgRFJNX0k5MTVfR0VNX0lOSVQsIHN0cnVjdCBkcm1faTkxNV9nZW1faW5pdCkK PiAgICNkZWZpbmUgRFJNX0lPQ1RMX0k5MTVfR0VNX0VYRUNCVUZGRVIJRFJNX0lPVyhEUk1fQ09N TUFORF9CQVNFICsgRFJNX0k5MTVfR0VNX0VYRUNCVUZGRVIsIHN0cnVjdCBkcm1faTkxNV9nZW1f ZXhlY2J1ZmZlcikKPiAtI2RlZmluZSBEUk1fSU9DVExfSTkxNV9HRU1fRVhFQ0JVRkZFUjIJRFJN X0lPVyhEUk1fQ09NTUFORF9CQVNFICsgRFJNX0k5MTVfR0VNX0VYRUNCVUZGRVIyLCBzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyKQo+ICsjZGVmaW5lIERSTV9JT0NUTF9JOTE1X0dFTV9F WEVDQlVGRkVSMglEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX0k5MTVfR0VNX0VYRUNC VUZGRVIyLCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyKQo+ICAgI2RlZmluZSBEUk1f SU9DVExfSTkxNV9HRU1fUElOCQlEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX0k5MTVf R0VNX1BJTiwgc3RydWN0IGRybV9pOTE1X2dlbV9waW4pCj4gICAjZGVmaW5lIERSTV9JT0NUTF9J OTE1X0dFTV9VTlBJTglEUk1fSU9XKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fSTkxNV9HRU1fVU5Q SU4sIHN0cnVjdCBkcm1faTkxNV9nZW1fdW5waW4pCj4gICAjZGVmaW5lIERSTV9JT0NUTF9JOTE1 X0dFTV9CVVNZCQlEUk1fSU9XUihEUk1fQ09NTUFORF9CQVNFICsgRFJNX0k5MTVfR0VNX0JVU1ks IHN0cnVjdCBkcm1faTkxNV9nZW1fYnVzeSkKPiBAQCAtNjk1LDcgKzY5NSw3IEBAIHN0cnVjdCBk cm1faTkxNV9nZW1fZXhlY19vYmplY3QyIHsKPiAgIAlfX3U2NCBmbGFnczsKPgo+ICAgCV9fdTY0 IHJzdmQxOwo+IC0JX191NjQgcnN2ZDI7Cj4gKwlfX3U2NCByc3ZkMjsJLyogVXNlZCBmb3IgZmVu Y2UgZmQgKi8KPiAgIH07Cj4KPiAgIHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIgewo+ IEBAIC03NzYsNyArNzc2LDE3IEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIgewo+ ICAgICovCj4gICAjZGVmaW5lIEk5MTVfRVhFQ19SRVNPVVJDRV9TVFJFQU1FUiAgICAgKDE8PDE1 KQo+Cj4gLSNkZWZpbmUgX19JOTE1X0VYRUNfVU5LTk9XTl9GTEFHUyAtKEk5MTVfRVhFQ19SRVNP VVJDRV9TVFJFQU1FUjw8MSkKPiArLyoqIENhbGxlciBzdXBwbGllcyBhIHN5bmMgZmVuY2UgZmQg aW4gdGhlIHJzdmQyIGZpZWxkLgo+ICsgKiBXYWl0IGZvciBpdCB0byBiZSBzaWduYWxsZWQgYmVm b3JlIHN0YXJ0aW5nIHRoZSB3b3JrCj4gKyAqLwo+ICsjZGVmaW5lIEk5MTVfRVhFQ19XQUlUX0ZF TkNFCQkoMTw8MTYpCj4gKwo+ICsvKiogQ2FsbGVyIHdhbnRzIGEgc3luYyBmZW5jZSBmZCBmb3Ig dGhpcyBleGVjYnVmZmVyLgo+ICsgKiAgSXQgd2lsbCBiZSByZXR1cm5lZCBpbiByc3ZkMgo+ICsg Ki8KPiArI2RlZmluZSBJOTE1X0VYRUNfQ1JFQVRFX0ZFTkNFCQkoMTw8MTcpCj4gKwo+ICsjZGVm aW5lIF9fSTkxNV9FWEVDX1VOS05PV05fRkxBR1MgLShJOTE1X0VYRUNfQ1JFQVRFX0ZFTkNFPDwx KQo+Cj4gICAjZGVmaW5lIEk5MTVfRVhFQ19DT05URVhUX0lEX01BU0sJKDB4ZmZmZmZmZmYpCj4g ICAjZGVmaW5lIGk5MTVfZXhlY2J1ZmZlcjJfc2V0X2NvbnRleHRfaWQoZWIyLCBjb250ZXh0KSBc Cj4KClJlZ2FyZHMsCgpUdnJ0a28KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aW50ZWwtZ2Z4Cg==