From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zhang, Jerry(Junwei)" Subject: Re: [PATCH 1/8] dma-buf: remove shared fence staging in reservation object Date: Wed, 24 Oct 2018 13:25:31 +0800 Message-ID: <5053a4d8-692c-6193-aefa-5985f73b0800@amd.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: =?UTF-8?Q?Christian_K=c3=b6nig?= , amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: dri-devel@lists.freedesktop.org UGF0Y2ggMywgNSBpcwpBY2tlZC1ieTogSnVud2VpIFpoYW5nIDxKZXJyeS5aaGFuZ0BhbWQuY29t PgoKT3RoZXJzIGFyZQpSZXZpZXdlZC1ieTogSnVud2VpIFpoYW5nIDxKZXJyeS5aaGFuZ0BhbWQu Y29tPgoKT24gMTAvNC8xOCA5OjEyIFBNLCBDaHJpc3RpYW4gS8O2bmlnIHdyb3RlOgo+IE5vIG5l ZWQgZm9yIHRoYXQgYW55IG1vcmUuIEp1c3QgcmVwbGFjZSB0aGUgbGlzdCB3aGVuIHRoZXJlIGlz bid0IGVub3VnaAo+IHJvb20gYW55IG1vcmUgZm9yIHRoZSBhZGRpdGlvbmFsIGZlbmNlLgo+Cj4g U2lnbmVkLW9mZi1ieTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29t Pgo+IC0tLQo+ICAgZHJpdmVycy9kbWEtYnVmL3Jlc2VydmF0aW9uLmMgfCAxNzggKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gICBpbmNsdWRlL2xpbnV4L3Jlc2Vy dmF0aW9uLmggICB8ICAgNCAtCj4gICAyIGZpbGVzIGNoYW5nZWQsIDU4IGluc2VydGlvbnMoKyks IDEyNCBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS1idWYvcmVzZXJ2 YXRpb24uYyBiL2RyaXZlcnMvZG1hLWJ1Zi9yZXNlcnZhdGlvbi5jCj4gaW5kZXggNmM5NWY2MWEz MmU3Li41ODI1ZmMzMzZhMTMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9kbWEtYnVmL3Jlc2VydmF0 aW9uLmMKPiArKysgYi9kcml2ZXJzL2RtYS1idWYvcmVzZXJ2YXRpb24uYwo+IEBAIC02OCwxMDUg KzY4LDIzIEBAIEVYUE9SVF9TWU1CT0wocmVzZXJ2YXRpb25fc2VxY291bnRfc3RyaW5nKTsKPiAg ICAqLwo+ICAgaW50IHJlc2VydmF0aW9uX29iamVjdF9yZXNlcnZlX3NoYXJlZChzdHJ1Y3QgcmVz ZXJ2YXRpb25fb2JqZWN0ICpvYmopCj4gICB7Cj4gLQlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0 X2xpc3QgKmZvYmosICpvbGQ7Cj4gLQl1MzIgbWF4Owo+ICsJc3RydWN0IHJlc2VydmF0aW9uX29i amVjdF9saXN0ICpvbGQsICpuZXc7Cj4gKwl1bnNpZ25lZCBpbnQgaSwgaiwgaywgbWF4Owo+ICAg Cj4gICAJb2xkID0gcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9saXN0KG9iaik7Cj4gICAKPiAgIAlp ZiAob2xkICYmIG9sZC0+c2hhcmVkX21heCkgewo+IC0JCWlmIChvbGQtPnNoYXJlZF9jb3VudCA8 IG9sZC0+c2hhcmVkX21heCkgewo+IC0JCQkvKiBwZXJmb3JtIGFuIGluLXBsYWNlIHVwZGF0ZSAq Lwo+IC0JCQlrZnJlZShvYmotPnN0YWdlZCk7Cj4gLQkJCW9iai0+c3RhZ2VkID0gTlVMTDsKPiAr CQlpZiAob2xkLT5zaGFyZWRfY291bnQgPCBvbGQtPnNoYXJlZF9tYXgpCj4gICAJCQlyZXR1cm4g MDsKPiAtCQl9IGVsc2UKPiArCQllbHNlCj4gICAJCQltYXggPSBvbGQtPnNoYXJlZF9tYXggKiAy Owo+IC0JfSBlbHNlCj4gLQkJbWF4ID0gNDsKPiAtCj4gLQkvKgo+IC0JICogcmVzaXplIG9iai0+ c3RhZ2VkIG9yIGFsbG9jYXRlIGlmIGl0IGRvZXNuJ3QgZXhpc3QsCj4gLQkgKiBub29wIGlmIGFs cmVhZHkgY29ycmVjdCBzaXplCj4gLQkgKi8KPiAtCWZvYmogPSBrcmVhbGxvYyhvYmotPnN0YWdl ZCwgb2Zmc2V0b2YodHlwZW9mKCpmb2JqKSwgc2hhcmVkW21heF0pLAo+IC0JCQlHRlBfS0VSTkVM KTsKPiAtCWlmICghZm9iaikKPiAtCQlyZXR1cm4gLUVOT01FTTsKPiAtCj4gLQlvYmotPnN0YWdl ZCA9IGZvYmo7Cj4gLQlmb2JqLT5zaGFyZWRfbWF4ID0gbWF4Owo+IC0JcmV0dXJuIDA7Cj4gLX0K PiAtRVhQT1JUX1NZTUJPTChyZXNlcnZhdGlvbl9vYmplY3RfcmVzZXJ2ZV9zaGFyZWQpOwo+IC0K PiAtc3RhdGljIHZvaWQKPiAtcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9zaGFyZWRfaW5wbGFjZShz dHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmosCj4gLQkJCQkgICAgICBzdHJ1Y3QgcmVzZXJ2 YXRpb25fb2JqZWN0X2xpc3QgKmZvYmosCj4gLQkJCQkgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICpm ZW5jZSkKPiAtewo+IC0Jc3RydWN0IGRtYV9mZW5jZSAqc2lnbmFsZWQgPSBOVUxMOwo+IC0JdTMy IGksIHNpZ25hbGVkX2lkeDsKPiAtCj4gLQlkbWFfZmVuY2VfZ2V0KGZlbmNlKTsKPiAtCj4gLQlw cmVlbXB0X2Rpc2FibGUoKTsKPiAtCXdyaXRlX3NlcWNvdW50X2JlZ2luKCZvYmotPnNlcSk7Cj4g LQo+IC0JZm9yIChpID0gMDsgaSA8IGZvYmotPnNoYXJlZF9jb3VudDsgKytpKSB7Cj4gLQkJc3Ry dWN0IGRtYV9mZW5jZSAqb2xkX2ZlbmNlOwo+IC0KPiAtCQlvbGRfZmVuY2UgPSByY3VfZGVyZWZl cmVuY2VfcHJvdGVjdGVkKGZvYmotPnNoYXJlZFtpXSwKPiAtCQkJCQkJcmVzZXJ2YXRpb25fb2Jq ZWN0X2hlbGQob2JqKSk7Cj4gLQo+IC0JCWlmIChvbGRfZmVuY2UtPmNvbnRleHQgPT0gZmVuY2Ut PmNvbnRleHQpIHsKPiAtCQkJLyogbWVtb3J5IGJhcnJpZXIgaXMgYWRkZWQgYnkgd3JpdGVfc2Vx Y291bnRfYmVnaW4gKi8KPiAtCQkJUkNVX0lOSVRfUE9JTlRFUihmb2JqLT5zaGFyZWRbaV0sIGZl bmNlKTsKPiAtCQkJd3JpdGVfc2VxY291bnRfZW5kKCZvYmotPnNlcSk7Cj4gLQkJCXByZWVtcHRf ZW5hYmxlKCk7Cj4gLQo+IC0JCQlkbWFfZmVuY2VfcHV0KG9sZF9mZW5jZSk7Cj4gLQkJCXJldHVy bjsKPiAtCQl9Cj4gLQo+IC0JCWlmICghc2lnbmFsZWQgJiYgZG1hX2ZlbmNlX2lzX3NpZ25hbGVk KG9sZF9mZW5jZSkpIHsKPiAtCQkJc2lnbmFsZWQgPSBvbGRfZmVuY2U7Cj4gLQkJCXNpZ25hbGVk X2lkeCA9IGk7Cj4gLQkJfQo+IC0JfQo+IC0KPiAtCS8qCj4gLQkgKiBtZW1vcnkgYmFycmllciBp cyBhZGRlZCBieSB3cml0ZV9zZXFjb3VudF9iZWdpbiwKPiAtCSAqIGZvYmotPnNoYXJlZF9jb3Vu dCBpcyBwcm90ZWN0ZWQgYnkgdGhpcyBsb2NrIHRvbwo+IC0JICovCj4gLQlpZiAoc2lnbmFsZWQp IHsKPiAtCQlSQ1VfSU5JVF9QT0lOVEVSKGZvYmotPnNoYXJlZFtzaWduYWxlZF9pZHhdLCBmZW5j ZSk7Cj4gICAJfSBlbHNlIHsKPiAtCQlCVUdfT04oZm9iai0+c2hhcmVkX2NvdW50ID49IGZvYmot PnNoYXJlZF9tYXgpOwo+IC0JCVJDVV9JTklUX1BPSU5URVIoZm9iai0+c2hhcmVkW2ZvYmotPnNo YXJlZF9jb3VudF0sIGZlbmNlKTsKPiAtCQlmb2JqLT5zaGFyZWRfY291bnQrKzsKPiArCQltYXgg PSA0Owo+ICAgCX0KPiAgIAo+IC0Jd3JpdGVfc2VxY291bnRfZW5kKCZvYmotPnNlcSk7Cj4gLQlw cmVlbXB0X2VuYWJsZSgpOwo+IC0KPiAtCWRtYV9mZW5jZV9wdXQoc2lnbmFsZWQpOwo+IC19Cj4g LQo+IC1zdGF0aWMgdm9pZAo+IC1yZXNlcnZhdGlvbl9vYmplY3RfYWRkX3NoYXJlZF9yZXBsYWNl KHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKm9iaiwKPiAtCQkJCSAgICAgIHN0cnVjdCByZXNl cnZhdGlvbl9vYmplY3RfbGlzdCAqb2xkLAo+IC0JCQkJICAgICAgc3RydWN0IHJlc2VydmF0aW9u X29iamVjdF9saXN0ICpmb2JqLAo+IC0JCQkJICAgICAgc3RydWN0IGRtYV9mZW5jZSAqZmVuY2Up Cj4gLXsKPiAtCXVuc2lnbmVkIGksIGosIGs7Cj4gLQo+IC0JZG1hX2ZlbmNlX2dldChmZW5jZSk7 Cj4gLQo+IC0JaWYgKCFvbGQpIHsKPiAtCQlSQ1VfSU5JVF9QT0lOVEVSKGZvYmotPnNoYXJlZFsw XSwgZmVuY2UpOwo+IC0JCWZvYmotPnNoYXJlZF9jb3VudCA9IDE7Cj4gLQkJZ290byBkb25lOwo+ IC0JfQo+ICsJbmV3ID0ga21hbGxvYyhvZmZzZXRvZih0eXBlb2YoKm5ldyksIHNoYXJlZFttYXhd KSwgR0ZQX0tFUk5FTCk7Cj4gKwlpZiAoIW5ldykKPiArCQlyZXR1cm4gLUVOT01FTTsKPiAgIAo+ ICAgCS8qCj4gICAJICogbm8gbmVlZCB0byBidW1wIGZlbmNlIHJlZmNvdW50cywgcmN1X3JlYWQg YWNjZXNzCj4gQEAgLTE3NCw0NiArOTIsNDUgQEAgcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9zaGFy ZWRfcmVwbGFjZShzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmosCj4gICAJICogcmVmZXJl bmNlcyBmcm9tIHRoZSBvbGQgc3RydWN0IGFyZSBjYXJyaWVkIG92ZXIgdG8KPiAgIAkgKiB0aGUg bmV3Lgo+ICAgCSAqLwo+IC0JZm9yIChpID0gMCwgaiA9IDAsIGsgPSBmb2JqLT5zaGFyZWRfbWF4 OyBpIDwgb2xkLT5zaGFyZWRfY291bnQ7ICsraSkgewo+IC0JCXN0cnVjdCBkbWFfZmVuY2UgKmNo ZWNrOwo+ICsJZm9yIChpID0gMCwgaiA9IDAsIGsgPSBtYXg7IGkgPCAob2xkID8gb2xkLT5zaGFy ZWRfY291bnQgOiAwKTsgKytpKSB7Cj4gKwkJc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7Cj4gICAK PiAtCQljaGVjayA9IHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQob2xkLT5zaGFyZWRbaV0sCj4g LQkJCQkJCXJlc2VydmF0aW9uX29iamVjdF9oZWxkKG9iaikpOwo+IC0KPiAtCQlpZiAoY2hlY2st PmNvbnRleHQgPT0gZmVuY2UtPmNvbnRleHQgfHwKPiAtCQkgICAgZG1hX2ZlbmNlX2lzX3NpZ25h bGVkKGNoZWNrKSkKPiAtCQkJUkNVX0lOSVRfUE9JTlRFUihmb2JqLT5zaGFyZWRbLS1rXSwgY2hl Y2spOwo+ICsJCWZlbmNlID0gcmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZChvbGQtPnNoYXJlZFtp XSwKPiArCQkJCQkJICByZXNlcnZhdGlvbl9vYmplY3RfaGVsZChvYmopKTsKPiArCQlpZiAoZG1h X2ZlbmNlX2lzX3NpZ25hbGVkKGZlbmNlKSkKPiArCQkJUkNVX0lOSVRfUE9JTlRFUihuZXctPnNo YXJlZFstLWtdLCBmZW5jZSk7Cj4gICAJCWVsc2UKPiAtCQkJUkNVX0lOSVRfUE9JTlRFUihmb2Jq LT5zaGFyZWRbaisrXSwgY2hlY2spOwo+ICsJCQlSQ1VfSU5JVF9QT0lOVEVSKG5ldy0+c2hhcmVk W2orK10sIGZlbmNlKTsKPiAgIAl9Cj4gLQlmb2JqLT5zaGFyZWRfY291bnQgPSBqOwo+IC0JUkNV X0lOSVRfUE9JTlRFUihmb2JqLT5zaGFyZWRbZm9iai0+c2hhcmVkX2NvdW50XSwgZmVuY2UpOwo+ IC0JZm9iai0+c2hhcmVkX2NvdW50Kys7Cj4gKwluZXctPnNoYXJlZF9jb3VudCA9IGo7Cj4gKwlu ZXctPnNoYXJlZF9tYXggPSBtYXg7Cj4gICAKPiAtZG9uZToKPiAgIAlwcmVlbXB0X2Rpc2FibGUo KTsKPiAgIAl3cml0ZV9zZXFjb3VudF9iZWdpbigmb2JqLT5zZXEpOwo+ICAgCS8qCj4gICAJICog UkNVX0lOSVRfUE9JTlRFUiBjYW4gYmUgdXNlZCBoZXJlLAo+ICAgCSAqIHNlcWNvdW50IHByb3Zp ZGVzIHRoZSBuZWNlc3NhcnkgYmFycmllcnMKPiAgIAkgKi8KPiAtCVJDVV9JTklUX1BPSU5URVIo b2JqLT5mZW5jZSwgZm9iaik7Cj4gKwlSQ1VfSU5JVF9QT0lOVEVSKG9iai0+ZmVuY2UsIG5ldyk7 Cj4gICAJd3JpdGVfc2VxY291bnRfZW5kKCZvYmotPnNlcSk7Cj4gICAJcHJlZW1wdF9lbmFibGUo KTsKPiAgIAo+ICAgCWlmICghb2xkKQo+IC0JCXJldHVybjsKPiArCQlyZXR1cm4gMDsKPiAgIAo+ ICAgCS8qIERyb3AgdGhlIHJlZmVyZW5jZXMgdG8gdGhlIHNpZ25hbGVkIGZlbmNlcyAqLwo+IC0J Zm9yIChpID0gazsgaSA8IGZvYmotPnNoYXJlZF9tYXg7ICsraSkgewo+IC0JCXN0cnVjdCBkbWFf ZmVuY2UgKmY7Cj4gKwlmb3IgKGkgPSBrOyBpIDwgbmV3LT5zaGFyZWRfbWF4OyArK2kpIHsKPiAr CQlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKPiAgIAo+IC0JCWYgPSByY3VfZGVyZWZlcmVuY2Vf cHJvdGVjdGVkKGZvYmotPnNoYXJlZFtpXSwKPiAtCQkJCQkgICAgICByZXNlcnZhdGlvbl9vYmpl Y3RfaGVsZChvYmopKTsKPiAtCQlkbWFfZmVuY2VfcHV0KGYpOwo+ICsJCWZlbmNlID0gcmN1X2Rl cmVmZXJlbmNlX3Byb3RlY3RlZChuZXctPnNoYXJlZFtpXSwKPiArCQkJCQkJICByZXNlcnZhdGlv bl9vYmplY3RfaGVsZChvYmopKTsKPiArCQlkbWFfZmVuY2VfcHV0KGZlbmNlKTsKPiAgIAl9Cj4g ICAJa2ZyZWVfcmN1KG9sZCwgcmN1KTsKPiArCj4gKwlyZXR1cm4gMDsKPiAgIH0KPiArRVhQT1JU X1NZTUJPTChyZXNlcnZhdGlvbl9vYmplY3RfcmVzZXJ2ZV9zaGFyZWQpOwo+ICAgCj4gICAvKioK PiAgICAqIHJlc2VydmF0aW9uX29iamVjdF9hZGRfc2hhcmVkX2ZlbmNlIC0gQWRkIGEgZmVuY2Ug dG8gYSBzaGFyZWQgc2xvdAo+IEBAIC0yMjYsMTUgKzE0MywzOSBAQCByZXNlcnZhdGlvbl9vYmpl Y3RfYWRkX3NoYXJlZF9yZXBsYWNlKHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QgKm9iaiwKPiAg IHZvaWQgcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9zaGFyZWRfZmVuY2Uoc3RydWN0IHJlc2VydmF0 aW9uX29iamVjdCAqb2JqLAo+ICAgCQkJCQkgc3RydWN0IGRtYV9mZW5jZSAqZmVuY2UpCj4gICB7 Cj4gLQlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0X2xpc3QgKm9sZCwgKmZvYmogPSBvYmotPnN0 YWdlZDsKPiArCXN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3RfbGlzdCAqZm9iajsKPiArCXVuc2ln bmVkIGludCBpOwo+ICAgCj4gLQlvbGQgPSByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2xpc3Qob2Jq KTsKPiAtCW9iai0+c3RhZ2VkID0gTlVMTDsKPiArCWRtYV9mZW5jZV9nZXQoZmVuY2UpOwo+ICsK PiArCWZvYmogPSByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2xpc3Qob2JqKTsKPiAgIAo+IC0JaWYg KCFmb2JqKQo+IC0JCXJlc2VydmF0aW9uX29iamVjdF9hZGRfc2hhcmVkX2lucGxhY2Uob2JqLCBv bGQsIGZlbmNlKTsKPiAtCWVsc2UKPiAtCQlyZXNlcnZhdGlvbl9vYmplY3RfYWRkX3NoYXJlZF9y ZXBsYWNlKG9iaiwgb2xkLCBmb2JqLCBmZW5jZSk7Cj4gKwlwcmVlbXB0X2Rpc2FibGUoKTsKPiAr CXdyaXRlX3NlcWNvdW50X2JlZ2luKCZvYmotPnNlcSk7Cj4gKwo+ICsJZm9yIChpID0gMDsgaSA8 IGZvYmotPnNoYXJlZF9jb3VudDsgKytpKSB7Cj4gKwkJc3RydWN0IGRtYV9mZW5jZSAqb2xkX2Zl bmNlOwo+ICsKPiArCQlvbGRfZmVuY2UgPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKGZvYmot PnNoYXJlZFtpXSwKPiArCQkJCQkJICAgICAgcmVzZXJ2YXRpb25fb2JqZWN0X2hlbGQob2JqKSk7 Cj4gKwkJaWYgKG9sZF9mZW5jZS0+Y29udGV4dCA9PSBmZW5jZS0+Y29udGV4dCB8fAo+ICsJCSAg ICBkbWFfZmVuY2VfaXNfc2lnbmFsZWQob2xkX2ZlbmNlKSkgewo+ICsJCQlkbWFfZmVuY2VfcHV0 KG9sZF9mZW5jZSk7Cj4gKwkJCWdvdG8gcmVwbGFjZTsKPiArCQl9Cj4gKwl9Cj4gKwo+ICsJQlVH X09OKGZvYmotPnNoYXJlZF9jb3VudCA+PSBmb2JqLT5zaGFyZWRfbWF4KTsKPiArCWZvYmotPnNo YXJlZF9jb3VudCsrOwo+ICsKPiArcmVwbGFjZToKPiArCS8qCj4gKwkgKiBtZW1vcnkgYmFycmll ciBpcyBhZGRlZCBieSB3cml0ZV9zZXFjb3VudF9iZWdpbiwKPiArCSAqIGZvYmotPnNoYXJlZF9j b3VudCBpcyBwcm90ZWN0ZWQgYnkgdGhpcyBsb2NrIHRvbwo+ICsJICovCj4gKwlSQ1VfSU5JVF9Q T0lOVEVSKGZvYmotPnNoYXJlZFtpXSwgZmVuY2UpOwo+ICsJd3JpdGVfc2VxY291bnRfZW5kKCZv YmotPnNlcSk7Cj4gKwlwcmVlbXB0X2VuYWJsZSgpOwo+ICAgfQo+ICAgRVhQT1JUX1NZTUJPTChy ZXNlcnZhdGlvbl9vYmplY3RfYWRkX3NoYXJlZF9mZW5jZSk7Cj4gICAKPiBAQCAtMzQzLDkgKzI4 NCw2IEBAIGludCByZXNlcnZhdGlvbl9vYmplY3RfY29weV9mZW5jZXMoc3RydWN0IHJlc2VydmF0 aW9uX29iamVjdCAqZHN0LAo+ICAgCW5ldyA9IGRtYV9mZW5jZV9nZXRfcmN1X3NhZmUoJnNyYy0+ ZmVuY2VfZXhjbCk7Cj4gICAJcmN1X3JlYWRfdW5sb2NrKCk7Cj4gICAKPiAtCWtmcmVlKGRzdC0+ c3RhZ2VkKTsKPiAtCWRzdC0+c3RhZ2VkID0gTlVMTDsKPiAtCj4gICAJc3JjX2xpc3QgPSByZXNl cnZhdGlvbl9vYmplY3RfZ2V0X2xpc3QoZHN0KTsKPiAgIAlvbGQgPSByZXNlcnZhdGlvbl9vYmpl Y3RfZ2V0X2V4Y2woZHN0KTsKPiAgIAo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3Jlc2Vy dmF0aW9uLmggYi9pbmNsdWRlL2xpbnV4L3Jlc2VydmF0aW9uLmgKPiBpbmRleCAwMjE2NmU4MTVh ZmIuLjU0Y2Y2NzczYTE0YyAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2xpbnV4L3Jlc2VydmF0aW9u LmgKPiArKysgYi9pbmNsdWRlL2xpbnV4L3Jlc2VydmF0aW9uLmgKPiBAQCAtNjgsNyArNjgsNiBA QCBzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0X2xpc3Qgewo+ICAgICogQHNlcTogc2VxdWVuY2Ug Y291bnQgZm9yIG1hbmFnaW5nIFJDVSByZWFkLXNpZGUgc3luY2hyb25pemF0aW9uCj4gICAgKiBA ZmVuY2VfZXhjbDogdGhlIGV4Y2x1c2l2ZSBmZW5jZSwgaWYgdGhlcmUgaXMgb25lIGN1cnJlbnRs eQo+ICAgICogQGZlbmNlOiBsaXN0IG9mIGN1cnJlbnQgc2hhcmVkIGZlbmNlcwo+IC0gKiBAc3Rh Z2VkOiBzdGFnZWQgY29weSBvZiBzaGFyZWQgZmVuY2VzIGZvciBSQ1UgdXBkYXRlcwo+ICAgICov Cj4gICBzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0IHsKPiAgIAlzdHJ1Y3Qgd3dfbXV0ZXggbG9j azsKPiBAQCAtNzYsNyArNzUsNiBAQCBzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0IHsKPiAgIAo+ ICAgCXN0cnVjdCBkbWFfZmVuY2UgX19yY3UgKmZlbmNlX2V4Y2w7Cj4gICAJc3RydWN0IHJlc2Vy dmF0aW9uX29iamVjdF9saXN0IF9fcmN1ICpmZW5jZTsKPiAtCXN0cnVjdCByZXNlcnZhdGlvbl9v YmplY3RfbGlzdCAqc3RhZ2VkOwo+ICAgfTsKPiAgIAo+ICAgI2RlZmluZSByZXNlcnZhdGlvbl9v YmplY3RfaGVsZChvYmopIGxvY2tkZXBfaXNfaGVsZCgmKG9iaiktPmxvY2suYmFzZSkKPiBAQCAt OTUsNyArOTMsNiBAQCByZXNlcnZhdGlvbl9vYmplY3RfaW5pdChzdHJ1Y3QgcmVzZXJ2YXRpb25f b2JqZWN0ICpvYmopCj4gICAJX19zZXFjb3VudF9pbml0KCZvYmotPnNlcSwgcmVzZXJ2YXRpb25f c2VxY291bnRfc3RyaW5nLCAmcmVzZXJ2YXRpb25fc2VxY291bnRfY2xhc3MpOwo+ICAgCVJDVV9J TklUX1BPSU5URVIob2JqLT5mZW5jZSwgTlVMTCk7Cj4gICAJUkNVX0lOSVRfUE9JTlRFUihvYmot PmZlbmNlX2V4Y2wsIE5VTEwpOwo+IC0Jb2JqLT5zdGFnZWQgPSBOVUxMOwo+ICAgfQo+ICAgCj4g ICAvKioKPiBAQCAtMTI0LDcgKzEyMSw2IEBAIHJlc2VydmF0aW9uX29iamVjdF9maW5pKHN0cnVj dCByZXNlcnZhdGlvbl9vYmplY3QgKm9iaikKPiAgIAo+ICAgCQlrZnJlZShmb2JqKTsKPiAgIAl9 Cj4gLQlrZnJlZShvYmotPnN0YWdlZCk7Cj4gICAKPiAgIAl3d19tdXRleF9kZXN0cm95KCZvYmot PmxvY2spOwo+ICAgfQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==