From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH 1/8] dma-buf: remove shared fence staging in reservation object Date: Fri, 12 Oct 2018 10:22:00 +0200 Message-ID: <30ba1fc8-58d5-1c75-406e-d10e68ec4b18@gmail.com> References: <20181004131250.2373-1-christian.koenig@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181004131250.2373-1-christian.koenig-5C7GfCeVMHo@public.gmane.org> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, "linux-media-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" , "linaro-mm-sig-cunTk1MwBs8s++Sfvej+rw@public.gmane.org" Cc: Daniel Vetter , Chris Wilson List-Id: dri-devel@lists.freedesktop.org UGluZyEgQWRkaW5nIGEgZmV3IHBlb3BsZSBkaXJlY3RseSBhbmQgbW9yZSBtYWlsaW5nIGxpc3Rz LgoKQ2FuIEkgZ2V0IGFuIGFja2VkLWJ5L3JiIGZvciB0aGlzPyBJdCdzIG9ubHkgYSBjbGVhbnVw IGFuZCBub3QgbXVjaCAKZnVuY3Rpb25hbCBjaGFuZ2UuCgpSZWdhcmRzLApDaHJpc3RpYW4uCgpB bSAwNC4xMC4yMDE4IHVtIDE1OjEyIHNjaHJpZWIgQ2hyaXN0aWFuIEvDtm5pZzoKPiBObyBuZWVk IGZvciB0aGF0IGFueSBtb3JlLiBKdXN0IHJlcGxhY2UgdGhlIGxpc3Qgd2hlbiB0aGVyZSBpc24n dCBlbm91Z2gKPiByb29tIGFueSBtb3JlIGZvciB0aGUgYWRkaXRpb25hbCBmZW5jZS4KPgo+IFNp Z25lZC1vZmYtYnk6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4K PiAtLS0KPiAgIGRyaXZlcnMvZG1hLWJ1Zi9yZXNlcnZhdGlvbi5jIHwgMTc4ICsrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAgaW5jbHVkZS9saW51eC9yZXNlcnZh dGlvbi5oICAgfCAgIDQgLQo+ICAgMiBmaWxlcyBjaGFuZ2VkLCA1OCBpbnNlcnRpb25zKCspLCAx MjQgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEtYnVmL3Jlc2VydmF0 aW9uLmMgYi9kcml2ZXJzL2RtYS1idWYvcmVzZXJ2YXRpb24uYwo+IGluZGV4IDZjOTVmNjFhMzJl Ny4uNTgyNWZjMzM2YTEzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZG1hLWJ1Zi9yZXNlcnZhdGlv bi5jCj4gKysrIGIvZHJpdmVycy9kbWEtYnVmL3Jlc2VydmF0aW9uLmMKPiBAQCAtNjgsMTA1ICs2 OCwyMyBAQCBFWFBPUlRfU1lNQk9MKHJlc2VydmF0aW9uX3NlcWNvdW50X3N0cmluZyk7Cj4gICAg Ki8KPiAgIGludCByZXNlcnZhdGlvbl9vYmplY3RfcmVzZXJ2ZV9zaGFyZWQoc3RydWN0IHJlc2Vy dmF0aW9uX29iamVjdCAqb2JqKQo+ICAgewo+IC0Jc3RydWN0IHJlc2VydmF0aW9uX29iamVjdF9s aXN0ICpmb2JqLCAqb2xkOwo+IC0JdTMyIG1heDsKPiArCXN0cnVjdCByZXNlcnZhdGlvbl9vYmpl Y3RfbGlzdCAqb2xkLCAqbmV3Owo+ICsJdW5zaWduZWQgaW50IGksIGosIGssIG1heDsKPiAgIAo+ ICAgCW9sZCA9IHJlc2VydmF0aW9uX29iamVjdF9nZXRfbGlzdChvYmopOwo+ICAgCj4gICAJaWYg KG9sZCAmJiBvbGQtPnNoYXJlZF9tYXgpIHsKPiAtCQlpZiAob2xkLT5zaGFyZWRfY291bnQgPCBv bGQtPnNoYXJlZF9tYXgpIHsKPiAtCQkJLyogcGVyZm9ybSBhbiBpbi1wbGFjZSB1cGRhdGUgKi8K PiAtCQkJa2ZyZWUob2JqLT5zdGFnZWQpOwo+IC0JCQlvYmotPnN0YWdlZCA9IE5VTEw7Cj4gKwkJ aWYgKG9sZC0+c2hhcmVkX2NvdW50IDwgb2xkLT5zaGFyZWRfbWF4KQo+ICAgCQkJcmV0dXJuIDA7 Cj4gLQkJfSBlbHNlCj4gKwkJZWxzZQo+ICAgCQkJbWF4ID0gb2xkLT5zaGFyZWRfbWF4ICogMjsK PiAtCX0gZWxzZQo+IC0JCW1heCA9IDQ7Cj4gLQo+IC0JLyoKPiAtCSAqIHJlc2l6ZSBvYmotPnN0 YWdlZCBvciBhbGxvY2F0ZSBpZiBpdCBkb2Vzbid0IGV4aXN0LAo+IC0JICogbm9vcCBpZiBhbHJl YWR5IGNvcnJlY3Qgc2l6ZQo+IC0JICovCj4gLQlmb2JqID0ga3JlYWxsb2Mob2JqLT5zdGFnZWQs IG9mZnNldG9mKHR5cGVvZigqZm9iaiksIHNoYXJlZFttYXhdKSwKPiAtCQkJR0ZQX0tFUk5FTCk7 Cj4gLQlpZiAoIWZvYmopCj4gLQkJcmV0dXJuIC1FTk9NRU07Cj4gLQo+IC0Jb2JqLT5zdGFnZWQg PSBmb2JqOwo+IC0JZm9iai0+c2hhcmVkX21heCA9IG1heDsKPiAtCXJldHVybiAwOwo+IC19Cj4g LUVYUE9SVF9TWU1CT0wocmVzZXJ2YXRpb25fb2JqZWN0X3Jlc2VydmVfc2hhcmVkKTsKPiAtCj4g LXN0YXRpYyB2b2lkCj4gLXJlc2VydmF0aW9uX29iamVjdF9hZGRfc2hhcmVkX2lucGxhY2Uoc3Ry dWN0IHJlc2VydmF0aW9uX29iamVjdCAqb2JqLAo+IC0JCQkJICAgICAgc3RydWN0IHJlc2VydmF0 aW9uX29iamVjdF9saXN0ICpmb2JqLAo+IC0JCQkJICAgICAgc3RydWN0IGRtYV9mZW5jZSAqZmVu Y2UpCj4gLXsKPiAtCXN0cnVjdCBkbWFfZmVuY2UgKnNpZ25hbGVkID0gTlVMTDsKPiAtCXUzMiBp LCBzaWduYWxlZF9pZHg7Cj4gLQo+IC0JZG1hX2ZlbmNlX2dldChmZW5jZSk7Cj4gLQo+IC0JcHJl ZW1wdF9kaXNhYmxlKCk7Cj4gLQl3cml0ZV9zZXFjb3VudF9iZWdpbigmb2JqLT5zZXEpOwo+IC0K PiAtCWZvciAoaSA9IDA7IGkgPCBmb2JqLT5zaGFyZWRfY291bnQ7ICsraSkgewo+IC0JCXN0cnVj dCBkbWFfZmVuY2UgKm9sZF9mZW5jZTsKPiAtCj4gLQkJb2xkX2ZlbmNlID0gcmN1X2RlcmVmZXJl bmNlX3Byb3RlY3RlZChmb2JqLT5zaGFyZWRbaV0sCj4gLQkJCQkJCXJlc2VydmF0aW9uX29iamVj dF9oZWxkKG9iaikpOwo+IC0KPiAtCQlpZiAob2xkX2ZlbmNlLT5jb250ZXh0ID09IGZlbmNlLT5j b250ZXh0KSB7Cj4gLQkJCS8qIG1lbW9yeSBiYXJyaWVyIGlzIGFkZGVkIGJ5IHdyaXRlX3NlcWNv dW50X2JlZ2luICovCj4gLQkJCVJDVV9JTklUX1BPSU5URVIoZm9iai0+c2hhcmVkW2ldLCBmZW5j ZSk7Cj4gLQkJCXdyaXRlX3NlcWNvdW50X2VuZCgmb2JqLT5zZXEpOwo+IC0JCQlwcmVlbXB0X2Vu YWJsZSgpOwo+IC0KPiAtCQkJZG1hX2ZlbmNlX3B1dChvbGRfZmVuY2UpOwo+IC0JCQlyZXR1cm47 Cj4gLQkJfQo+IC0KPiAtCQlpZiAoIXNpZ25hbGVkICYmIGRtYV9mZW5jZV9pc19zaWduYWxlZChv bGRfZmVuY2UpKSB7Cj4gLQkJCXNpZ25hbGVkID0gb2xkX2ZlbmNlOwo+IC0JCQlzaWduYWxlZF9p ZHggPSBpOwo+IC0JCX0KPiAtCX0KPiAtCj4gLQkvKgo+IC0JICogbWVtb3J5IGJhcnJpZXIgaXMg YWRkZWQgYnkgd3JpdGVfc2VxY291bnRfYmVnaW4sCj4gLQkgKiBmb2JqLT5zaGFyZWRfY291bnQg aXMgcHJvdGVjdGVkIGJ5IHRoaXMgbG9jayB0b28KPiAtCSAqLwo+IC0JaWYgKHNpZ25hbGVkKSB7 Cj4gLQkJUkNVX0lOSVRfUE9JTlRFUihmb2JqLT5zaGFyZWRbc2lnbmFsZWRfaWR4XSwgZmVuY2Up Owo+ICAgCX0gZWxzZSB7Cj4gLQkJQlVHX09OKGZvYmotPnNoYXJlZF9jb3VudCA+PSBmb2JqLT5z aGFyZWRfbWF4KTsKPiAtCQlSQ1VfSU5JVF9QT0lOVEVSKGZvYmotPnNoYXJlZFtmb2JqLT5zaGFy ZWRfY291bnRdLCBmZW5jZSk7Cj4gLQkJZm9iai0+c2hhcmVkX2NvdW50Kys7Cj4gKwkJbWF4ID0g NDsKPiAgIAl9Cj4gICAKPiAtCXdyaXRlX3NlcWNvdW50X2VuZCgmb2JqLT5zZXEpOwo+IC0JcHJl ZW1wdF9lbmFibGUoKTsKPiAtCj4gLQlkbWFfZmVuY2VfcHV0KHNpZ25hbGVkKTsKPiAtfQo+IC0K PiAtc3RhdGljIHZvaWQKPiAtcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9zaGFyZWRfcmVwbGFjZShz dHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmosCj4gLQkJCQkgICAgICBzdHJ1Y3QgcmVzZXJ2 YXRpb25fb2JqZWN0X2xpc3QgKm9sZCwKPiAtCQkJCSAgICAgIHN0cnVjdCByZXNlcnZhdGlvbl9v YmplY3RfbGlzdCAqZm9iaiwKPiAtCQkJCSAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQo+ IC17Cj4gLQl1bnNpZ25lZCBpLCBqLCBrOwo+IC0KPiAtCWRtYV9mZW5jZV9nZXQoZmVuY2UpOwo+ IC0KPiAtCWlmICghb2xkKSB7Cj4gLQkJUkNVX0lOSVRfUE9JTlRFUihmb2JqLT5zaGFyZWRbMF0s IGZlbmNlKTsKPiAtCQlmb2JqLT5zaGFyZWRfY291bnQgPSAxOwo+IC0JCWdvdG8gZG9uZTsKPiAt CX0KPiArCW5ldyA9IGttYWxsb2Mob2Zmc2V0b2YodHlwZW9mKCpuZXcpLCBzaGFyZWRbbWF4XSks IEdGUF9LRVJORUwpOwo+ICsJaWYgKCFuZXcpCj4gKwkJcmV0dXJuIC1FTk9NRU07Cj4gICAKPiAg IAkvKgo+ICAgCSAqIG5vIG5lZWQgdG8gYnVtcCBmZW5jZSByZWZjb3VudHMsIHJjdV9yZWFkIGFj Y2Vzcwo+IEBAIC0xNzQsNDYgKzkyLDQ1IEBAIHJlc2VydmF0aW9uX29iamVjdF9hZGRfc2hhcmVk X3JlcGxhY2Uoc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqb2JqLAo+ICAgCSAqIHJlZmVyZW5j ZXMgZnJvbSB0aGUgb2xkIHN0cnVjdCBhcmUgY2FycmllZCBvdmVyIHRvCj4gICAJICogdGhlIG5l dy4KPiAgIAkgKi8KPiAtCWZvciAoaSA9IDAsIGogPSAwLCBrID0gZm9iai0+c2hhcmVkX21heDsg aSA8IG9sZC0+c2hhcmVkX2NvdW50OyArK2kpIHsKPiAtCQlzdHJ1Y3QgZG1hX2ZlbmNlICpjaGVj azsKPiArCWZvciAoaSA9IDAsIGogPSAwLCBrID0gbWF4OyBpIDwgKG9sZCA/IG9sZC0+c2hhcmVk X2NvdW50IDogMCk7ICsraSkgewo+ICsJCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwo+ICAgCj4g LQkJY2hlY2sgPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKG9sZC0+c2hhcmVkW2ldLAo+IC0J CQkJCQlyZXNlcnZhdGlvbl9vYmplY3RfaGVsZChvYmopKTsKPiAtCj4gLQkJaWYgKGNoZWNrLT5j b250ZXh0ID09IGZlbmNlLT5jb250ZXh0IHx8Cj4gLQkJICAgIGRtYV9mZW5jZV9pc19zaWduYWxl ZChjaGVjaykpCj4gLQkJCVJDVV9JTklUX1BPSU5URVIoZm9iai0+c2hhcmVkWy0ta10sIGNoZWNr KTsKPiArCQlmZW5jZSA9IHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQob2xkLT5zaGFyZWRbaV0s Cj4gKwkJCQkJCSAgcmVzZXJ2YXRpb25fb2JqZWN0X2hlbGQob2JqKSk7Cj4gKwkJaWYgKGRtYV9m ZW5jZV9pc19zaWduYWxlZChmZW5jZSkpCj4gKwkJCVJDVV9JTklUX1BPSU5URVIobmV3LT5zaGFy ZWRbLS1rXSwgZmVuY2UpOwo+ICAgCQllbHNlCj4gLQkJCVJDVV9JTklUX1BPSU5URVIoZm9iai0+ c2hhcmVkW2orK10sIGNoZWNrKTsKPiArCQkJUkNVX0lOSVRfUE9JTlRFUihuZXctPnNoYXJlZFtq KytdLCBmZW5jZSk7Cj4gICAJfQo+IC0JZm9iai0+c2hhcmVkX2NvdW50ID0gajsKPiAtCVJDVV9J TklUX1BPSU5URVIoZm9iai0+c2hhcmVkW2ZvYmotPnNoYXJlZF9jb3VudF0sIGZlbmNlKTsKPiAt CWZvYmotPnNoYXJlZF9jb3VudCsrOwo+ICsJbmV3LT5zaGFyZWRfY291bnQgPSBqOwo+ICsJbmV3 LT5zaGFyZWRfbWF4ID0gbWF4Owo+ICAgCj4gLWRvbmU6Cj4gICAJcHJlZW1wdF9kaXNhYmxlKCk7 Cj4gICAJd3JpdGVfc2VxY291bnRfYmVnaW4oJm9iai0+c2VxKTsKPiAgIAkvKgo+ICAgCSAqIFJD VV9JTklUX1BPSU5URVIgY2FuIGJlIHVzZWQgaGVyZSwKPiAgIAkgKiBzZXFjb3VudCBwcm92aWRl cyB0aGUgbmVjZXNzYXJ5IGJhcnJpZXJzCj4gICAJICovCj4gLQlSQ1VfSU5JVF9QT0lOVEVSKG9i ai0+ZmVuY2UsIGZvYmopOwo+ICsJUkNVX0lOSVRfUE9JTlRFUihvYmotPmZlbmNlLCBuZXcpOwo+ ICAgCXdyaXRlX3NlcWNvdW50X2VuZCgmb2JqLT5zZXEpOwo+ICAgCXByZWVtcHRfZW5hYmxlKCk7 Cj4gICAKPiAgIAlpZiAoIW9sZCkKPiAtCQlyZXR1cm47Cj4gKwkJcmV0dXJuIDA7Cj4gICAKPiAg IAkvKiBEcm9wIHRoZSByZWZlcmVuY2VzIHRvIHRoZSBzaWduYWxlZCBmZW5jZXMgKi8KPiAtCWZv ciAoaSA9IGs7IGkgPCBmb2JqLT5zaGFyZWRfbWF4OyArK2kpIHsKPiAtCQlzdHJ1Y3QgZG1hX2Zl bmNlICpmOwo+ICsJZm9yIChpID0gazsgaSA8IG5ldy0+c2hhcmVkX21heDsgKytpKSB7Cj4gKwkJ c3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7Cj4gICAKPiAtCQlmID0gcmN1X2RlcmVmZXJlbmNlX3By b3RlY3RlZChmb2JqLT5zaGFyZWRbaV0sCj4gLQkJCQkJICAgICAgcmVzZXJ2YXRpb25fb2JqZWN0 X2hlbGQob2JqKSk7Cj4gLQkJZG1hX2ZlbmNlX3B1dChmKTsKPiArCQlmZW5jZSA9IHJjdV9kZXJl ZmVyZW5jZV9wcm90ZWN0ZWQobmV3LT5zaGFyZWRbaV0sCj4gKwkJCQkJCSAgcmVzZXJ2YXRpb25f b2JqZWN0X2hlbGQob2JqKSk7Cj4gKwkJZG1hX2ZlbmNlX3B1dChmZW5jZSk7Cj4gICAJfQo+ICAg CWtmcmVlX3JjdShvbGQsIHJjdSk7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gICB9Cj4gK0VYUE9SVF9T WU1CT0wocmVzZXJ2YXRpb25fb2JqZWN0X3Jlc2VydmVfc2hhcmVkKTsKPiAgIAo+ICAgLyoqCj4g ICAgKiByZXNlcnZhdGlvbl9vYmplY3RfYWRkX3NoYXJlZF9mZW5jZSAtIEFkZCBhIGZlbmNlIHRv IGEgc2hhcmVkIHNsb3QKPiBAQCAtMjI2LDE1ICsxNDMsMzkgQEAgcmVzZXJ2YXRpb25fb2JqZWN0 X2FkZF9zaGFyZWRfcmVwbGFjZShzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmosCj4gICB2 b2lkIHJlc2VydmF0aW9uX29iamVjdF9hZGRfc2hhcmVkX2ZlbmNlKHN0cnVjdCByZXNlcnZhdGlv bl9vYmplY3QgKm9iaiwKPiAgIAkJCQkJIHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlKQo+ICAgewo+ IC0Jc3RydWN0IHJlc2VydmF0aW9uX29iamVjdF9saXN0ICpvbGQsICpmb2JqID0gb2JqLT5zdGFn ZWQ7Cj4gKwlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0X2xpc3QgKmZvYmo7Cj4gKwl1bnNpZ25l ZCBpbnQgaTsKPiAgIAo+IC0Jb2xkID0gcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9saXN0KG9iaik7 Cj4gLQlvYmotPnN0YWdlZCA9IE5VTEw7Cj4gKwlkbWFfZmVuY2VfZ2V0KGZlbmNlKTsKPiArCj4g Kwlmb2JqID0gcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9saXN0KG9iaik7Cj4gICAKPiAtCWlmICgh Zm9iaikKPiAtCQlyZXNlcnZhdGlvbl9vYmplY3RfYWRkX3NoYXJlZF9pbnBsYWNlKG9iaiwgb2xk LCBmZW5jZSk7Cj4gLQllbHNlCj4gLQkJcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9zaGFyZWRfcmVw bGFjZShvYmosIG9sZCwgZm9iaiwgZmVuY2UpOwo+ICsJcHJlZW1wdF9kaXNhYmxlKCk7Cj4gKwl3 cml0ZV9zZXFjb3VudF9iZWdpbigmb2JqLT5zZXEpOwo+ICsKPiArCWZvciAoaSA9IDA7IGkgPCBm b2JqLT5zaGFyZWRfY291bnQ7ICsraSkgewo+ICsJCXN0cnVjdCBkbWFfZmVuY2UgKm9sZF9mZW5j ZTsKPiArCj4gKwkJb2xkX2ZlbmNlID0gcmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZChmb2JqLT5z aGFyZWRbaV0sCj4gKwkJCQkJCSAgICAgIHJlc2VydmF0aW9uX29iamVjdF9oZWxkKG9iaikpOwo+ ICsJCWlmIChvbGRfZmVuY2UtPmNvbnRleHQgPT0gZmVuY2UtPmNvbnRleHQgfHwKPiArCQkgICAg ZG1hX2ZlbmNlX2lzX3NpZ25hbGVkKG9sZF9mZW5jZSkpIHsKPiArCQkJZG1hX2ZlbmNlX3B1dChv bGRfZmVuY2UpOwo+ICsJCQlnb3RvIHJlcGxhY2U7Cj4gKwkJfQo+ICsJfQo+ICsKPiArCUJVR19P Tihmb2JqLT5zaGFyZWRfY291bnQgPj0gZm9iai0+c2hhcmVkX21heCk7Cj4gKwlmb2JqLT5zaGFy ZWRfY291bnQrKzsKPiArCj4gK3JlcGxhY2U6Cj4gKwkvKgo+ICsJICogbWVtb3J5IGJhcnJpZXIg aXMgYWRkZWQgYnkgd3JpdGVfc2VxY291bnRfYmVnaW4sCj4gKwkgKiBmb2JqLT5zaGFyZWRfY291 bnQgaXMgcHJvdGVjdGVkIGJ5IHRoaXMgbG9jayB0b28KPiArCSAqLwo+ICsJUkNVX0lOSVRfUE9J TlRFUihmb2JqLT5zaGFyZWRbaV0sIGZlbmNlKTsKPiArCXdyaXRlX3NlcWNvdW50X2VuZCgmb2Jq LT5zZXEpOwo+ICsJcHJlZW1wdF9lbmFibGUoKTsKPiAgIH0KPiAgIEVYUE9SVF9TWU1CT0wocmVz ZXJ2YXRpb25fb2JqZWN0X2FkZF9zaGFyZWRfZmVuY2UpOwo+ICAgCj4gQEAgLTM0Myw5ICsyODQs NiBAQCBpbnQgcmVzZXJ2YXRpb25fb2JqZWN0X2NvcHlfZmVuY2VzKHN0cnVjdCByZXNlcnZhdGlv bl9vYmplY3QgKmRzdCwKPiAgIAluZXcgPSBkbWFfZmVuY2VfZ2V0X3JjdV9zYWZlKCZzcmMtPmZl bmNlX2V4Y2wpOwo+ICAgCXJjdV9yZWFkX3VubG9jaygpOwo+ICAgCj4gLQlrZnJlZShkc3QtPnN0 YWdlZCk7Cj4gLQlkc3QtPnN0YWdlZCA9IE5VTEw7Cj4gLQo+ICAgCXNyY19saXN0ID0gcmVzZXJ2 YXRpb25fb2JqZWN0X2dldF9saXN0KGRzdCk7Cj4gICAJb2xkID0gcmVzZXJ2YXRpb25fb2JqZWN0 X2dldF9leGNsKGRzdCk7Cj4gICAKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9yZXNlcnZh dGlvbi5oIGIvaW5jbHVkZS9saW51eC9yZXNlcnZhdGlvbi5oCj4gaW5kZXggMDIxNjZlODE1YWZi Li41NGNmNjc3M2ExNGMgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9saW51eC9yZXNlcnZhdGlvbi5o Cj4gKysrIGIvaW5jbHVkZS9saW51eC9yZXNlcnZhdGlvbi5oCj4gQEAgLTY4LDcgKzY4LDYgQEAg c3RydWN0IHJlc2VydmF0aW9uX29iamVjdF9saXN0IHsKPiAgICAqIEBzZXE6IHNlcXVlbmNlIGNv dW50IGZvciBtYW5hZ2luZyBSQ1UgcmVhZC1zaWRlIHN5bmNocm9uaXphdGlvbgo+ICAgICogQGZl bmNlX2V4Y2w6IHRoZSBleGNsdXNpdmUgZmVuY2UsIGlmIHRoZXJlIGlzIG9uZSBjdXJyZW50bHkK PiAgICAqIEBmZW5jZTogbGlzdCBvZiBjdXJyZW50IHNoYXJlZCBmZW5jZXMKPiAtICogQHN0YWdl ZDogc3RhZ2VkIGNvcHkgb2Ygc2hhcmVkIGZlbmNlcyBmb3IgUkNVIHVwZGF0ZXMKPiAgICAqLwo+ ICAgc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCB7Cj4gICAJc3RydWN0IHd3X211dGV4IGxvY2s7 Cj4gQEAgLTc2LDcgKzc1LDYgQEAgc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCB7Cj4gICAKPiAg IAlzdHJ1Y3QgZG1hX2ZlbmNlIF9fcmN1ICpmZW5jZV9leGNsOwo+ICAgCXN0cnVjdCByZXNlcnZh dGlvbl9vYmplY3RfbGlzdCBfX3JjdSAqZmVuY2U7Cj4gLQlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2Jq ZWN0X2xpc3QgKnN0YWdlZDsKPiAgIH07Cj4gICAKPiAgICNkZWZpbmUgcmVzZXJ2YXRpb25fb2Jq ZWN0X2hlbGQob2JqKSBsb2NrZGVwX2lzX2hlbGQoJihvYmopLT5sb2NrLmJhc2UpCj4gQEAgLTk1 LDcgKzkzLDYgQEAgcmVzZXJ2YXRpb25fb2JqZWN0X2luaXQoc3RydWN0IHJlc2VydmF0aW9uX29i amVjdCAqb2JqKQo+ICAgCV9fc2VxY291bnRfaW5pdCgmb2JqLT5zZXEsIHJlc2VydmF0aW9uX3Nl cWNvdW50X3N0cmluZywgJnJlc2VydmF0aW9uX3NlcWNvdW50X2NsYXNzKTsKPiAgIAlSQ1VfSU5J VF9QT0lOVEVSKG9iai0+ZmVuY2UsIE5VTEwpOwo+ICAgCVJDVV9JTklUX1BPSU5URVIob2JqLT5m ZW5jZV9leGNsLCBOVUxMKTsKPiAtCW9iai0+c3RhZ2VkID0gTlVMTDsKPiAgIH0KPiAgIAo+ICAg LyoqCj4gQEAgLTEyNCw3ICsxMjEsNiBAQCByZXNlcnZhdGlvbl9vYmplY3RfZmluaShzdHJ1Y3Qg cmVzZXJ2YXRpb25fb2JqZWN0ICpvYmopCj4gICAKPiAgIAkJa2ZyZWUoZm9iaik7Cj4gICAJfQo+ IC0Ja2ZyZWUob2JqLT5zdGFnZWQpOwo+ICAgCj4gICAJd3dfbXV0ZXhfZGVzdHJveSgmb2JqLT5s b2NrKTsKPiAgIH0KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=