From: Andres Rodriguez Subject: Re: [PATCH] drm/amdgpu: introduce AMDGPU_GEM_CREATE_EXPLICIT_SYNC v2 Date: Thu, 21 Sep 2017 10:38:35 -0400 Message-ID: <23e71499-cd99-7016-fb8e-a7029dadee51@gmail.com> References: <20170919125918.4132-1-andresx7@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: Content-Language: en-US List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: christian.koenig-5C7GfCeVMHo@public.gmane.org, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: deathsimple-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org SGkgQ2hyaXN0aWFuLAoKVGhlIHJlZmVyZW5jZSByYWR2IHBhdGNoZXMgYXJlIG9uIHRoZSBsaXN0 LiBUaGUgYmFzaWMgaWRlYSBpcyB0byBvbmx5IApzZXQgdGhlIGV4cGxpY2l0IHN5bmMgZmxhZyBm b3IgYnVmZmVycyBhbGxvY2F0ZWQgZm9yIGRyaSB1c2FnZS4KClJlZ2FyZHMsCkFuZHJlcwoKT24g MjAxNy0wOS0xOSAwOToyNCBBTSwgQ2hyaXN0aWFuIEvDtm5pZyB3cm90ZToKPiBBbSAxOS4wOS4y MDE3IHVtIDE0OjU5IHNjaHJpZWIgQW5kcmVzIFJvZHJpZ3VlejoKPj4gSW50cm9kdWNlIGEgZmxh ZyB0byBzaWduYWwgdGhhdCBhY2Nlc3MgdG8gYSBCTyB3aWxsIGJlIHN5bmNocm9uaXplZAo+PiB0 aHJvdWdoIGFuIGV4dGVybmFsIG1lY2hhbmlzbS4KPj4KPj4gQ3VycmVudGx5IGFsbCBidWZmZXJz IHNoYXJlZCBiZXR3ZWVuIGNvbnRleHRzIGFyZSBzdWJqZWN0IHRvIGltcGxpY2l0Cj4+IHN5bmNo cm9uaXphdGlvbi4gSG93ZXZlciwgdGhpcyBpcyBvbmx5IHJlcXVpcmVkIGZvciBwcm90b2NvbHMg dGhhdAo+PiBjdXJyZW50bHkgZG9uJ3Qgc3VwcG9ydCBhbiBleHBsaWNpdCBzeW5jaHJvbml6YXRp b24gbWVjaGFuaXNtIChEUkkyLzMpLgo+Pgo+PiBUaGlzIHBhdGNoIGludHJvZHVjZXMgdGhlIEFN REdQVV9HRU1fQ1JFQVRFX0VYUExJQ0lUX1NZTkMsIHNvIHRoYXQKPj4gdXNlcnMgY2FuIHNwZWNp Znkgd2hlbiBpdCBpcyBzYWZlIHRvIGRpc2FibGUgaW1wbGljaXQgc3luYy4KPj4KPj4gdjI6IG9u bHkgZGlzYWJsZSBleHBsaWNpdCBzeW5jIGluIGFtZGdwdV9jc19pb2N0bAo+Pgo+PiBTaWduZWQt b2ZmLWJ5OiBBbmRyZXMgUm9kcmlndWV6IDxhbmRyZXN4N0BnbWFpbC5jb20+Cj4+IC0tLQo+Pgo+ PiBIZXkgQ2hyaXN0aWFuLAo+Pgo+PiBJIGtlcHQgdGhlIGFtZGdwdV9ib19leHBsaWNpdF9zeW5j KCkgZnVuY3Rpb24gc2luY2UgaXQgbWFrZXMgaXQgZWFzaWVyCj4+IHRvIG1haW50YWluIGFuIDgw IGxpbmUgd3JhcCBpbiBhbWRncHVfY3Nfc3luY19yaW5ncygpCj4gCj4gTG9va3MgZ29vZCB0byBt ZSwgYnV0IEkgd291bGQgbGlrZSB0byBzZWUgdGhlIG1hdGNoaW5nIHVzZXIgc3BhY2UgY29kZSAK PiBhcyB3ZWxsLgo+IAo+IEVzcGVjaWFsbHkgSSBoYXZlIG5vIGlkZWEgaG93IHlvdSB3YW50IHRv IGhhdmUgRFJJMyBjb21wYXRpYmlsaXR5IHdpdGggCj4gdGhhdD8KPiAKPiBSZWdhcmRzLAo+IENo cmlzdGlhbi4KPiAKPj4KPj4gUmVnYXJkcywKPj4gQW5kcmVzCj4+Cj4+IMKgIGRyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jwqDCoMKgwqAgfCAzICsrLQo+PiDCoCBkcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2VtLmPCoMKgwqAgfCA0ICsrKy0KPj4gwqAgZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5oIHwgOCArKysrKysrKwo+PiDC oCBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfc3luYy5jwqDCoCB8IDcgKysrKyst LQo+PiDCoCBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfc3luYy5owqDCoCB8IDMg KystCj4+IMKgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uY8KgwqDCoCB8 IDUgKysrLS0KPj4gwqAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmPCoMKg wqDCoCB8IDggKysrKy0tLS0KPj4gwqAgaW5jbHVkZS91YXBpL2RybS9hbWRncHVfZHJtLmjCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IDIgKysKPj4gwqAgOCBmaWxlcyBjaGFuZ2VkLCAyOSBp bnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jIAo+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9jcy5jCj4+IGluZGV4IGRiOTdlNzguLmJjOGE0MDMgMTAwNjQ0Cj4+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jCj4+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jCj4+IEBAIC03MDQsNyArNzA0LDggQEAg c3RhdGljIGludCBhbWRncHVfY3Nfc3luY19yaW5ncyhzdHJ1Y3QgCj4+IGFtZGdwdV9jc19wYXJz ZXIgKnApCj4+IMKgwqDCoMKgwqAgbGlzdF9mb3JfZWFjaF9lbnRyeShlLCAmcC0+dmFsaWRhdGVk LCB0di5oZWFkKSB7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgcmVzZXJ2YXRpb25fb2Jq ZWN0ICpyZXN2ID0gZS0+cm9iai0+dGJvLnJlc3Y7Cj4+IC3CoMKgwqDCoMKgwqDCoCByID0gYW1k Z3B1X3N5bmNfcmVzdihwLT5hZGV2LCAmcC0+am9iLT5zeW5jLCByZXN2LCBwLT5maWxwKTsKPj4g K8KgwqDCoMKgwqDCoMKgIHIgPSBhbWRncHVfc3luY19yZXN2KHAtPmFkZXYsICZwLT5qb2ItPnN5 bmMsIHJlc3YsIHAtPmZpbHAsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIGFtZGdwdV9ib19leHBsaWNpdF9zeW5jKGUtPnJvYmopKTsKPj4gwqDCoMKgwqDCoMKg wqDCoMKgIGlmIChyKQo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gcjsKPj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nZW0uYyAKPj4g Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2VtLmMKPj4gaW5kZXggYjBkNDVj OC4uMjFlOTkzNiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X2dlbS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nZW0u Ywo+PiBAQCAtMjEyLDcgKzIxMiw5IEBAIGludCBhbWRncHVfZ2VtX2NyZWF0ZV9pb2N0bChzdHJ1 Y3QgZHJtX2RldmljZSAKPj4gKmRldiwgdm9pZCAqZGF0YSwKPj4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIEFNREdQVV9HRU1fQ1JFQVRFX05PX0NQVV9BQ0NFU1MgfAo+PiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQU1ER1BVX0dFTV9DUkVBVEVfQ1BVX0dUVF9VU1dDIHwK Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEFNREdQVV9HRU1fQ1JFQVRFX1ZSQU1f Q0xFQVJFRCB8Cj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBBTURHUFVfR0VNX0NSRUFU RV9WTV9BTFdBWVNfVkFMSUQpKQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQU1ER1BV X0dFTV9DUkVBVEVfVk1fQUxXQVlTX1ZBTElEIHwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIEFNREdQVV9HRU1fQ1JFQVRFX0VYUExJQ0lUX1NZTkMpKQo+PiArCj4+IMKgwqDCoMKgwqDC oMKgwqDCoCByZXR1cm4gLUVJTlZBTDsKPj4gwqDCoMKgwqDCoCAvKiByZWplY3QgaW52YWxpZCBn ZW0gZG9tYWlucyAqLwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X29iamVjdC5oIAo+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9v YmplY3QuaAo+PiBpbmRleCBjMjZlZjUzLi40MjhhYWUwIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmgKPj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5oCj4+IEBAIC0xOTMsNiArMTkzLDE0IEBAIHN0 YXRpYyBpbmxpbmUgYm9vbCAKPj4gYW1kZ3B1X2JvX2dwdV9hY2Nlc3NpYmxlKHN0cnVjdCBhbWRn cHVfYm8gKmJvKQo+PiDCoMKgwqDCoMKgIH0KPj4gwqAgfQo+PiArLyoqCj4+ICsgKiBhbWRncHVf Ym9fZXhwbGljaXRfc3luYyAtIHJldHVybiB3aGV0aGVyIHRoZSBibyBpcyBleHBsaWNpdGx5IHN5 bmNlZAo+PiArICovCj4+ICtzdGF0aWMgaW5saW5lIGJvb2wgYW1kZ3B1X2JvX2V4cGxpY2l0X3N5 bmMoc3RydWN0IGFtZGdwdV9ibyAqYm8pCj4+ICt7Cj4+ICvCoMKgwqAgcmV0dXJuIGJvLT5mbGFn cyAmIEFNREdQVV9HRU1fQ1JFQVRFX0VYUExJQ0lUX1NZTkM7Cj4+ICt9Cj4+ICsKPj4gwqAgaW50 IGFtZGdwdV9ib19jcmVhdGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdW5zaWduZWQgbG9uZyBzaXplLCBpbnQgYnl0ZV9h bGlnbiwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBib29sIGtlcm5lbCwg dTMyIGRvbWFpbiwgdTY0IGZsYWdzLAo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X3N5bmMuYyAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfc3luYy5jCj4+IGluZGV4IGM1ODZmNDQuLmE0YmYyMWYgMTAwNjQ0Cj4+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9zeW5jLmMKPj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3N5bmMuYwo+PiBAQCAtMTY5LDE0ICsxNjksMTQgQEAg aW50IGFtZGdwdV9zeW5jX2ZlbmNlKHN0cnVjdCBhbWRncHVfZGV2aWNlIAo+PiAqYWRldiwgc3Ry dWN0IGFtZGdwdV9zeW5jICpzeW5jLAo+PiDCoMKgICoKPj4gwqDCoCAqIEBzeW5jOiBzeW5jIG9i amVjdCB0byBhZGQgZmVuY2VzIGZyb20gcmVzZXJ2YXRpb24gb2JqZWN0IHRvCj4+IMKgwqAgKiBA cmVzdjogcmVzZXJ2YXRpb24gb2JqZWN0IHdpdGggZW1iZWRkZWQgZmVuY2UKPj4gLSAqIEBzaGFy ZWQ6IHRydWUgaWYgd2Ugc2hvdWxkIG9ubHkgc3luYyB0byB0aGUgZXhjbHVzaXZlIGZlbmNlCj4+ ICsgKiBAZXhwbGljaXRfc3luYzogdHJ1ZSBpZiB3ZSBzaG91bGQgb25seSBzeW5jIHRvIHRoZSBl eGNsdXNpdmUgZmVuY2UKPj4gwqDCoCAqCj4+IMKgwqAgKiBTeW5jIHRvIHRoZSBmZW5jZQo+PiDC oMKgICovCj4+IMKgIGludCBhbWRncHVfc3luY19yZXN2KHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2LAo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBhbWRncHVfc3luYyAq c3luYywKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgcmVzZXJ2YXRpb25f b2JqZWN0ICpyZXN2LAo+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHZvaWQgKm93bmVyKQo+ PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHZvaWQgKm93bmVyLCBib29sIGV4cGxpY2l0X3N5 bmMpCj4+IMKgIHsKPj4gwqDCoMKgwqDCoCBzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0X2xpc3Qg KmZsaXN0Owo+PiDCoMKgwqDCoMKgIHN0cnVjdCBkbWFfZmVuY2UgKmY7Cj4+IEBAIC0xOTEsNiAr MTkxLDkgQEAgaW50IGFtZGdwdV9zeW5jX3Jlc3Yoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYs Cj4+IMKgwqDCoMKgwqAgZiA9IHJlc2VydmF0aW9uX29iamVjdF9nZXRfZXhjbChyZXN2KTsKPj4g wqDCoMKgwqDCoCByID0gYW1kZ3B1X3N5bmNfZmVuY2UoYWRldiwgc3luYywgZik7Cj4+ICvCoMKg wqAgaWYgKGV4cGxpY2l0X3N5bmMpCj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gcjsKPj4gKwo+ PiDCoMKgwqDCoMKgIGZsaXN0ID0gcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9saXN0KHJlc3YpOwo+ PiDCoMKgwqDCoMKgIGlmICghZmxpc3QgfHwgcikKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVy biByOwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3N5 bmMuaCAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfc3luYy5oCj4+IGlu ZGV4IGRjNzY4NzkuLjcwZDdlM2EgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9zeW5jLmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X3N5bmMuaAo+PiBAQCAtNDUsNyArNDUsOCBAQCBpbnQgYW1kZ3B1X3N5bmNfZmVuY2Uo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIAo+PiBzdHJ1Y3QgYW1kZ3B1X3N5bmMgKnN5bmMs Cj4+IMKgIGludCBhbWRncHVfc3luY19yZXN2KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAo+ PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBhbWRncHVfc3luYyAqc3luYywK Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0 ICpyZXN2LAo+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHZvaWQgKm93bmVyKTsKPj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB2b2lkICpvd25lciwKPj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBib29sIGV4cGxpY2l0X3N5bmMpOwo+PiDCoCBzdHJ1Y3QgZG1hX2ZlbmNlICphbWRn cHVfc3luY19wZWVrX2ZlbmNlKHN0cnVjdCBhbWRncHVfc3luYyAqc3luYywKPj4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGFtZGdwdV9yaW5nICpy aW5nKTsKPj4gwqAgc3RydWN0IGRtYV9mZW5jZSAqYW1kZ3B1X3N5bmNfZ2V0X2ZlbmNlKHN0cnVj dCBhbWRncHVfc3luYyAqc3luYyk7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfdHRtLmMgCj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X3R0bS5jCj4+IGluZGV4IGM5YzA1OWQuLmJkMGIwM2EgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90dG0uYwo+PiArKysgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmMKPj4gQEAgLTE1MTAsNyArMTUxMCw4IEBAIGludCBh bWRncHVfY29weV9idWZmZXIoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCAKPj4gdWludDY0X3Qg c3JjX29mZnNldCwKPj4gwqDCoMKgwqDCoCBqb2ItPnZtX25lZWRzX2ZsdXNoID0gdm1fbmVlZHNf Zmx1c2g7Cj4+IMKgwqDCoMKgwqAgaWYgKHJlc3YpIHsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHIg PSBhbWRncHVfc3luY19yZXN2KGFkZXYsICZqb2ItPnN5bmMsIHJlc3YsCj4+IC3CoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEFNREdQVV9GRU5DRV9PV05FUl9VTkRFRklO RUQpOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBBTURHUFVf RkVOQ0VfT1dORVJfVU5ERUZJTkVELAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBmYWxzZSk7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAocikgewo+PiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBEUk1fRVJST1IoInN5bmMgZmFpbGVkICglZCkuXG4iLCBy KTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byBlcnJvcl9mcmVlOwo+PiBAQCAt MTYwMiw3ICsxNjAzLDcgQEAgaW50IGFtZGdwdV9maWxsX2J1ZmZlcihzdHJ1Y3QgYW1kZ3B1X2Jv ICpibywKPj4gwqDCoMKgwqDCoCBpZiAocmVzdikgewo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgciA9 IGFtZGdwdV9zeW5jX3Jlc3YoYWRldiwgJmpvYi0+c3luYywgcmVzdiwKPj4gLcKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQU1ER1BVX0ZFTkNFX09XTkVSX1VOREVGSU5F RCk7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEFNREdQVV9G RU5DRV9PV05FUl9VTkRFRklORUQsIGZhbHNlKTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChy KSB7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIERSTV9FUlJPUigic3luYyBmYWlsZWQg KCVkKS5cbiIsIHIpOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBnb3RvIGVycm9yX2Zy ZWU7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0u YyAKPj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYwo+PiBpbmRleCAy ZGYyNTRjLi45OTY1ZDY4IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfdm0uYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf dm0uYwo+PiBAQCAtOTg3LDcgKzk4Nyw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X3ZtX3dhaXRfcGQo c3RydWN0IGFtZGdwdV9kZXZpY2UgCj4+ICphZGV2LCBzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSwKPj4g wqDCoMKgwqDCoCBpbnQgcjsKPj4gwqDCoMKgwqDCoCBhbWRncHVfc3luY19jcmVhdGUoJnN5bmMp Owo+PiAtwqDCoMKgIGFtZGdwdV9zeW5jX3Jlc3YoYWRldiwgJnN5bmMsIHZtLT5yb290LmJhc2Uu Ym8tPnRiby5yZXN2LCBvd25lcik7Cj4+ICvCoMKgwqAgYW1kZ3B1X3N5bmNfcmVzdihhZGV2LCAm c3luYywgdm0tPnJvb3QuYmFzZS5iby0+dGJvLnJlc3YsIG93bmVyLCAKPj4gZmFsc2UpOwo+PiDC oMKgwqDCoMKgIHIgPSBhbWRncHVfc3luY193YWl0KCZzeW5jLCB0cnVlKTsKPj4gwqDCoMKgwqDC oCBhbWRncHVfc3luY19mcmVlKCZzeW5jKTsKPj4gQEAgLTExMjgsMTEgKzExMjgsMTEgQEAgc3Rh dGljIGludCBhbWRncHVfdm1fdXBkYXRlX2xldmVsKHN0cnVjdCAKPj4gYW1kZ3B1X2RldmljZSAq YWRldiwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYW1kZ3B1X3JpbmdfcGFkX2liKHJp bmcsIHBhcmFtcy5pYik7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGFtZGdwdV9zeW5j X3Jlc3YoYWRldiwgJmpvYi0+c3luYywKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgcGFyZW50LT5iYXNlLmJvLT50Ym8ucmVzdiwKPj4gLcKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQU1ER1BVX0ZFTkNFX09XTkVSX1ZNKTsKPj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQU1ER1BVX0ZFTkNFX09X TkVSX1ZNLCBmYWxzZSk7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChzaGFkb3cp Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYW1kZ3B1X3N5bmNfcmVzdihh ZGV2LCAmam9iLT5zeW5jLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIHNoYWRvdy0+dGJvLnJlc3YsCj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgQU1ER1BVX0ZFTkNFX09XTkVSX1ZNKTsKPj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBBTURHUFVf RkVOQ0VfT1dORVJfVk0sIGZhbHNlKTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgV0FS Tl9PTihwYXJhbXMuaWItPmxlbmd0aF9kdyA+IG5kdyk7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIHIgPSBhbWRncHVfam9iX3N1Ym1pdChqb2IsIHJpbmcsICZ2bS0+ZW50aXR5LAo+PiBA QCAtMTU5NSw3ICsxNTk1LDcgQEAgc3RhdGljIGludCBhbWRncHVfdm1fYm9fdXBkYXRlX21hcHBp bmcoc3RydWN0IAo+PiBhbWRncHVfZGV2aWNlICphZGV2LAo+PiDCoMKgwqDCoMKgwqDCoMKgwqAg Z290byBlcnJvcl9mcmVlOwo+PiDCoMKgwqDCoMKgIHIgPSBhbWRncHVfc3luY19yZXN2KGFkZXYs ICZqb2ItPnN5bmMsIHZtLT5yb290LmJhc2UuYm8tPnRiby5yZXN2LAo+PiAtwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgb3duZXIpOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgb3duZXIsIGZhbHNlKTsKPj4gwqDCoMKgwqDCoCBpZiAocikKPj4gwqDCoMKgwqDC oMKgwqDCoMKgIGdvdG8gZXJyb3JfZnJlZTsKPj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9k cm0vYW1kZ3B1X2RybS5oIAo+PiBiL2luY2x1ZGUvdWFwaS9kcm0vYW1kZ3B1X2RybS5oCj4+IGlu ZGV4IDY5ZDY0ZTUuLjk2ZmNkZTggMTAwNjQ0Cj4+IC0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vYW1k Z3B1X2RybS5oCj4+ICsrKyBiL2luY2x1ZGUvdWFwaS9kcm0vYW1kZ3B1X2RybS5oCj4+IEBAIC05 MSw2ICs5MSw4IEBAIGV4dGVybiAiQyIgewo+PiDCoCAjZGVmaW5lIEFNREdQVV9HRU1fQ1JFQVRF X1ZSQU1fQ09OVElHVU9VU8KgwqDCoCAoMSA8PCA1KQo+PiDCoCAvKiBGbGFnIHRoYXQgQk8gaXMg YWx3YXlzIHZhbGlkIGluIHRoaXMgVk0gKi8KPj4gwqAgI2RlZmluZSBBTURHUFVfR0VNX0NSRUFU RV9WTV9BTFdBWVNfVkFMSUTCoMKgwqAgKDEgPDwgNikKPj4gKy8qIEZsYWcgdGhhdCBCTyBzaGFy aW5nIHdpbGwgYmUgZXhwbGljaXRseSBzeW5jaHJvbml6ZWQgKi8KPj4gKyNkZWZpbmUgQU1ER1BV X0dFTV9DUkVBVEVfRVhQTElDSVRfU1lOQ8KgwqDCoMKgwqDCoMKgICgxIDw8IDcpCj4+IMKgIHN0 cnVjdCBkcm1fYW1kZ3B1X2dlbV9jcmVhdGVfaW7CoCB7Cj4+IMKgwqDCoMKgwqAgLyoqIHRoZSBy ZXF1ZXN0ZWQgbWVtb3J5IHNpemUgKi8KPiAKPiAKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9hbWQtZ2Z4Cg==