From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Koenig, Christian" Subject: Re: [PATCH 2/2] dma-buf: cleanup shared fence removal Date: Thu, 27 Jun 2019 15:48:06 +0000 Message-ID: <5e182e5d-efcb-00bd-fa31-6e8bc9571ce6@amd.com> References: <20190627101813.61430-1-christian.koenig@amd.com> <20190627101813.61430-2-christian.koenig@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: Content-Language: en-US Content-ID: <143A36E4AF323A4286C8343FA7A0FEDA-asWib9pRmPqcE4WynfumptQqCkab/8FMAL8bYrjMMd8@public.gmane.org> 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: Daniel Vetter Cc: dri-devel , amd-gfx list QW0gMjcuMDYuMTkgdW0gMTc6MzQgc2NocmllYiBEYW5pZWwgVmV0dGVyOg0KPiBPbiBUaHUsIEp1 biAyNywgMjAxOSBhdCAzOjE5IFBNIENocmlzdGlhbiBLw7ZuaWcNCj4gPGNrb2VuaWcubGVpY2h0 enVtZXJrZW5AZ21haWwuY29tPiB3cm90ZToNCj4+IEFtIDI3LjA2LjE5IHVtIDEyOjQzIHNjaHJp ZWIgRGFuaWVsIFZldHRlcjoNCj4+PiBPbiBUaHUsIEp1biAyNywgMjAxOSBhdCAxMjoxOCBQTSBD aHJpc3RpYW4gS8O2bmlnDQo+Pj4gPGNrb2VuaWcubGVpY2h0enVtZXJrZW5AZ21haWwuY29tPiB3 cm90ZToNCj4+Pj4gV2hpbGUgZnJlZWluZyB1cCBtZW1vcnkgaXQgaXMgZWFzaWVyIHRvIHJlbW92 ZSBhIGZlbmNlIGZyb20gYSByZXNlcnZhdGlvbg0KPj4+PiBvYmplY3QgaW5zdGVhZCBvZiBzaWdu YWxpbmcgaXQgYW5kIGluc3RhbGxpbmcgYSBuZXcgb25lIGluIGFsbCBvdGhlciBvYmplY3RzLg0K Pj4+Pg0KPj4+PiBDbGVhbiB0aGlzIHVwIGJ5IGFkZGluZyB0aGUgcmVtb3ZhbCBmdW5jdGlvbiB0 byB0aGUgY29yZSByZXNlcnZhdGlvbiBvYmplY3QNCj4+Pj4gY29kZSBpbnN0ZWFkIG9mIG1lc3Np bmcgd2l0aCB0aGUgaW50ZXJuYWwgaW4gYW1kZ3B1Lg0KPj4+Pg0KPj4+PiBObyBmdW5jdGlvbmFs IGNoYW5nZS4NCj4+Pj4NCj4+Pj4gU2lnbmVkLW9mZi1ieTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hy aXN0aWFuLmtvZW5pZ0BhbWQuY29tPg0KPj4+PiAtLS0NCj4+Pj4gICAgZHJpdmVycy9kbWEtYnVm L3Jlc2VydmF0aW9uLmMgICAgICAgICAgICAgICAgIHwgNjIgKysrKysrKysrKysrKysrKysrKw0K Pj4+PiAgICAuLi4vZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ3B1dm0uYyAgfCA0 NSArLS0tLS0tLS0tLS0tLQ0KPj4+PiAgICBpbmNsdWRlL2xpbnV4L3Jlc2VydmF0aW9uLmggICAg ICAgICAgICAgICAgICAgfCAgMyArLQ0KPj4+PiAgICAzIGZpbGVzIGNoYW5nZWQsIDY1IGluc2Vy dGlvbnMoKyksIDQ1IGRlbGV0aW9ucygtKQ0KPj4+Pg0KPj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9kbWEtYnVmL3Jlc2VydmF0aW9uLmMgYi9kcml2ZXJzL2RtYS1idWYvcmVzZXJ2YXRpb24uYw0K Pj4+PiBpbmRleCBlZjcxMGVmZmVkZmEuLmU0M2EzMTZhMDA1ZCAxMDA2NDQNCj4+Pj4gLS0tIGEv ZHJpdmVycy9kbWEtYnVmL3Jlc2VydmF0aW9uLmMNCj4+Pj4gKysrIGIvZHJpdmVycy9kbWEtYnVm L3Jlc2VydmF0aW9uLmMNCj4+Pj4gQEAgLTIzMSw2ICsyMzEsNjggQEAgdm9pZCByZXNlcnZhdGlv bl9vYmplY3RfYWRkX3NoYXJlZF9mZW5jZShzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpvYmos DQo+Pj4+ICAgIH0NCj4+Pj4gICAgRVhQT1JUX1NZTUJPTChyZXNlcnZhdGlvbl9vYmplY3RfYWRk X3NoYXJlZF9mZW5jZSk7DQo+Pj4+DQo+Pj4+ICsvKioNCj4+Pj4gKyAqIHJlc2VydmF0aW9uX29i amVjdF9yZW1vdmVfc2hhcmVkX2ZlbmNlIC0gcmVtb3ZlIHNoYXJlZCBmZW5jZXMNCj4+Pj4gKyAq IEBvYmo6IHRoZSByZXNlcnZhdGlvbiBvYmplY3QNCj4+Pj4gKyAqIEBjb250ZXh0OiB0aGUgY29u dGV4dCBvZiB0aGUgZmVuY2VzIHRvIHJlbW92ZQ0KPj4+PiArICoNCj4+Pj4gKyAqIFJlbW92ZSBz aGFyZWQgZmVuY2VzIGJhc2VkIG9uIHRoZWlyIGZlbmNlIGNvbnRleHQuDQo+Pj4+ICsgKi8NCj4+ PiBUaGlzIG5lZWRzIGEgc2VyaW91cyBleHBsYW5hdGlvbiBvZiAid2h5PyIuIFJlbW92aW5nIGZl bmNlcyB3aXRob3V0DQo+Pj4gZ3VhcmFudGVlaW5nIHRoZXkncmUgYWxsIHNpZ25hbGVkIGlzIGEg Z29vZCB3YXkgdG8gY3JlYXRlIGhhdm9jLiBZb3VyDQo+Pj4gY29tbWl0IG1lc3NhZ2UgaGFzIGEg ZmV3IHdvcmRzIGFib3V0IHdoYXQgeW91J3JlIGRvaW5nIGhlcmUsIGJ1dCBpdA0KPj4+IHN0aWxs IGRvZXNuJ3QgZXhwbGFpbiB3aHkgdGhpcyBpcyBzYWZlIGFuZCB3aGVuIGV4YWN0bHkgaXQgc2hv dWxkIGJlDQo+Pj4gdXNlZC4NCj4+IFllYWgsIEknbSBub3QgdmVyeSBrZWVuIGFib3V0IHRoaXMg ZWl0aGVyLg0KPj4NCj4+IFRoZSBrZXkgcG9pbnQgaXMgdGhlIG1lbW9yeSBpcyBub3QgYWNjZXNz aWJsZSBieSB0aGUgaGFyZHdhcmUgYW55IG1vcmUNCj4+IGJlY2F1c2UgaXQgaXMgZnJlZWQgYW5k IHJlbW92ZWQgZnJvbSB0aGUgcGFnZSB0YWJsZXMuDQo+Pg0KPj4gU28gZnVydGhlciBhY2Nlc3Mg aXMgcHJldmVudGVkIGFuZCBpbiB0aGlzIHNwZWNpYWwgY2FzZSBpdCBpcyBhY3R1YWxseQ0KPj4g dmFsaWQgdG8gZG8gdGhpcyBldmVuIGlmIHRoZSBvcGVyYXRpb24gcmVwcmVzZW50ZWQgYnkgdGhl IGZlbmNlIGlzIHN0aWxsDQo+PiBvbmdvaW5nLg0KPiBIbSwgd2h5IGRvIHlvdSBoYXZlIHRvIHJl bW92ZSB0aGVzZSBmZW5jZXMgdGhlbj8gQ2FuJ3QgeW91IGp1c3QgbGV0DQo+IHRoZW0gc2lnbmFs IGFuZCBnZXQgY29sbGVjdGVkIGFzIHVzdWFsPyBBcyBzb29uIGFzIHlvdSBzaGFyZSBidWZmZXJz DQo+IHRoZXNlIGZlbmNlcyBjYW4gZ2V0IGFueXdoZXJlLCBzbyB5b3UgbmVlZCB0byBjb3JyZWN0 bHkgdW53aW5kIHRoZW0gbm8NCj4gbWF0dGVyIHdoYXQuDQo+DQo+IFlvdSdyZSBraW5kYSBzdGls bCBqdXN0IGRlc2NyaWJpbmcgd2hhdCB5b3UncmUgZG9pbmcsIG5vdCB3aHkuDQoNCkl0IGlzIHNp bXBseSBtb3JlIGVmZmljaWVudCB0byByZW1vdmUgdGhlIGZlbmNlIGZyb20gb25lIHJlc2VydmF0 aW9uIA0Kb2JqZWN0IHRoYW4gdG8gYWRkIGEgbmV3IGZlbmNlIHRvIGFsbCBvdGhlciByZXNlcnZh dGlvbiBvYmplY3RzIGluIHRoZSANCnNhbWUgcHJvY2Vzcy4NCg0KSXQncyBqdXN0IGFuIG9wdGlt aXphdGlvbiwNCkNocmlzdGlhbi4NCg0KPg0KPj4gSG93IHNob3VsZCB3ZSB3b3JkIHRoaXM/IFNv bWV0aGluZyBsaWtlOg0KPj4NCj4+ICAgICogUmVtb3ZlIHNoYXJlZCBmZW5jZXMgYmFzZWQgb24g dGhlaXIgZmVuY2UgY29udGV4dC4gUmVtb3ZpbmcgYSBmZW5jZQ0KPj4gYmVmb3JlIGl0IGlzIHNp Z25hbGVkIGlzIG9ubHkgdmFsaWQgaWYgaGFyZHdhcmUgYWNjZXNzIGlzIHByZXZlbnRlZCBieQ0K Pj4gc29tZSBvdGhlciBtZWFucyBsaWtlIElPTU1VIG9yIHNpbWlsYXIgdmlydHVhbCBtZW1vcnkg cHJvdGVjdGlvbi4NCj4gVGhlIHBhcnQgdGhhdCBmcmVha3MgbWUgb3V0IGlzIHdoZXRoZXIgd2Ug YnJlYWsgdGhlIGZlbmNlIGNoYWluZw0KPiBhbnl3aGVyZSBieSByZW1vdmluZyBmZW5jZXMuIEJ1 dCBJIGd1ZXNzIGlmIHlvdSdyZSBvbmx5IHJlbW92aW5nIHRoZQ0KPiBzaGFyZWQgZmVuY2VzIHRo YXQgc2hvdWRsIGJlIGZpbmUgLi4uDQo+DQo+Pj4gQWxzbyBJJ20gbm90IHN1cmUgKGRlcGVuZGlu ZyB1cG9uIHdoYXQgeW91IHVzZSB0aGlzIGZvcikgdGhpcyBpcw0KPj4+IGFjdHVhbGx5IGNvcnJl Y3Qgb3V0c2lkZSBvZiBhbWRncHUgYW5kIGl0J3MgaWdub3JhbmNlIG9mIHRoZSBleGNsdXNpdmUN Cj4+PiBmZW5jZS4NCj4+IE5vLCB0aGF0IGlzIGNvbXBsZXRlbHkgdW5yZWxhdGVkLiBCdXQgSSB0 aG91Z2h0IHRoYXQgSSBjbGVhbiB0aGlzIHVwDQo+PiBiZWZvcmUgSSBzdGFydCB0byB0YWNrbGUg dGhlIGV4Y2x1c2l2ZSBmZW5jZSBpc3N1ZS4NCj4gLi4uIGV4Y2VwdCBhbWRncHUgaGFzIGludGVy bmFsbHkgYSB2ZXJ5IHN0cmFuZ2UgaWRlYSBvZiBzaGFyZWQgZmVuY2VzDQo+IHdpdGggYXV0by1l eGNsdXNpdmUgcHJvbW90aW9uLiBBbmQgSSB0aGluayByZW1vdmluZyBleGNsdXNpdmUgZmVuY2Vz DQo+IHdpbGwgYnJlYWsgdGhlIGZlbmNlIGRlcGVuZGVuY2llcyBvZiBvdGhlciAoZWFybGllcikg ZG1hIGRyaXZlcnMgYnkNCj4gb3RoZXIgb3BlcmF0aW9ucy4gT3IgaXMgdGhhdCB3aHkgeW91IGZp bHRlciBvbiB0aGUgY29udGV4dCwNCj4gZXNzZW50aWFsbHkgYW1kJ3Mgd2F5IG9mIHNheWluZyAi cmVtb3ZlIGFsbCBzaGFyZWQgZmVuY2VzIGZvciB0aGlzDQo+IHRoaW5nLCBrZWVwIG9ubHkgdGhl IGV4Y2x1c2l2ZSBvbmVzIi4NCj4NCj4gSSBndWVzcyBJIG5lZWQgdG8gcmVhZCB3aGF0IHRoaXMg YWN0dWFsbHkgZG9lcyBpbiB0aGUgY29kZSwgc2luY2UgSQ0KPiBzdGlsbCBoYXZlIG5vIGlkZWEg d2h5IHlvdSBuZWVkIHRvIGRvIHRoaXMuDQo+IC1EYW5pZWwNCj4NCj4+IENocmlzdGlhbi4NCj4+ DQo+Pj4gLURhbmllbA0KPj4+DQo+Pj4+ICtpbnQgcmVzZXJ2YXRpb25fb2JqZWN0X3JlbW92ZV9z aGFyZWRfZmVuY2Uoc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqb2JqLA0KPj4+PiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgY29udGV4dCkNCj4+ Pj4gK3sNCj4+Pj4gKyAgICAgICBzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0X2xpc3QgKm9sZCwg Km5ldzsNCj4+Pj4gKyAgICAgICB1bnNpZ25lZCBpbnQgaSwgaiwgazsNCj4+Pj4gKw0KPj4+PiAr ICAgICAgIHJlc2VydmF0aW9uX29iamVjdF9hc3NlcnRfaGVsZChvYmopOw0KPj4+PiArDQo+Pj4+ ICsgICAgICAgb2xkID0gcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9saXN0KG9iaik7DQo+Pj4+ICsg ICAgICAgaWYgKCFvbGQpDQo+Pj4+ICsgICAgICAgICAgICAgICByZXR1cm4gMDsNCj4+Pj4gKw0K Pj4+PiArICAgICAgIG5ldyA9IGttYWxsb2Mob2Zmc2V0b2YodHlwZW9mKCpuZXcpLCBzaGFyZWRb b2xkLT5zaGFyZWRfbWF4XSksDQo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICBHRlBfS0VSTkVM KTsNCj4+Pj4gKyAgICAgICBpZiAoIW5ldykNCj4+Pj4gKyAgICAgICAgICAgICAgIHJldHVybiAt RU5PTUVNOw0KPj4+PiArDQo+Pj4+ICsgICAgICAgLyogR28gdGhyb3VnaCBhbGwgdGhlIHNoYXJl ZCBmZW5jZXMgaW4gdGhlIHJlc2V2YXRpb24gb2JqZWN0IGFuZCBzb3J0DQo+Pj4+ICsgICAgICAg ICogdGhlIGludGVyZXN0aW5nIG9uZXMgdG8gdGhlIGVuZCBvZiB0aGUgbmV3IGxpc3QuDQo+Pj4+ ICsgICAgICAgICovDQo+Pj4+ICsgICAgICAgZm9yIChpID0gMCwgaiA9IG9sZC0+c2hhcmVkX2Nv dW50LCBrID0gMDsgaSA8IG9sZC0+c2hhcmVkX2NvdW50OyArK2kpIHsNCj4+Pj4gKyAgICAgICAg ICAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKmY7DQo+Pj4+ICsNCj4+Pj4gKyAgICAgICAgICAgICAg IGYgPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKG9sZC0+c2hhcmVkW2ldLA0KPj4+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2YXRpb25fb2Jq ZWN0X2hlbGQob2JqKSk7DQo+Pj4+ICsNCj4+Pj4gKyAgICAgICAgICAgICAgIGlmIChmLT5jb250 ZXh0ID09IGNvbnRleHQpDQo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgIFJDVV9JTklUX1BP SU5URVIobmV3LT5zaGFyZWRbLS1qXSwgZik7DQo+Pj4+ICsgICAgICAgICAgICAgICBlbHNlDQo+ Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgIFJDVV9JTklUX1BPSU5URVIobmV3LT5zaGFyZWRb aysrXSwgZik7DQo+Pj4+ICsgICAgICAgfQ0KPj4+PiArICAgICAgIG5ldy0+c2hhcmVkX21heCA9 IG9sZC0+c2hhcmVkX21heDsNCj4+Pj4gKyAgICAgICBuZXctPnNoYXJlZF9jb3VudCA9IGs7DQo+ Pj4+ICsNCj4+Pj4gKyAgICAgICAvKiBJbnN0YWxsIHRoZSBuZXcgZmVuY2UgbGlzdCwgc2VxY291 bnQgcHJvdmlkZXMgdGhlIGJhcnJpZXJzICovDQo+Pj4+ICsgICAgICAgcHJlZW1wdF9kaXNhYmxl KCk7DQo+Pj4+ICsgICAgICAgd3JpdGVfc2VxY291bnRfYmVnaW4oJm9iai0+c2VxKTsNCj4+Pj4g KyAgICAgICBSQ1VfSU5JVF9QT0lOVEVSKG9iai0+ZmVuY2UsIG5ldyk7DQo+Pj4+ICsgICAgICAg d3JpdGVfc2VxY291bnRfZW5kKCZvYmotPnNlcSk7DQo+Pj4+ICsgICAgICAgcHJlZW1wdF9lbmFi bGUoKTsNCj4+Pj4gKw0KPj4+PiArICAgICAgIC8qIERyb3AgdGhlIHJlZmVyZW5jZXMgdG8gdGhl IHJlbW92ZWQgZmVuY2VzICovDQo+Pj4+ICsgICAgICAgZm9yIChpID0gaiwgayA9IDA7IGkgPCBv bGQtPnNoYXJlZF9jb3VudDsgKytpKSB7DQo+Pj4+ICsgICAgICAgICAgICAgICBzdHJ1Y3QgZG1h X2ZlbmNlICpmOw0KPj4+PiArDQo+Pj4+ICsgICAgICAgICAgICAgICBmID0gcmN1X2RlcmVmZXJl bmNlX3Byb3RlY3RlZChuZXctPnNoYXJlZFtpXSwNCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmF0aW9uX29iamVjdF9oZWxkKG9iaikpOw0K Pj4+PiArICAgICAgICAgICAgICAgZG1hX2ZlbmNlX3B1dChmKTsNCj4+Pj4gKyAgICAgICB9DQo+ Pj4+ICsgICAgICAga2ZyZWVfcmN1KG9sZCwgcmN1KTsNCj4+Pj4gKw0KPj4+PiArICAgICAgIHJl dHVybiAwOw0KPj4+PiArfQ0KPj4+PiArRVhQT1JUX1NZTUJPTChyZXNlcnZhdGlvbl9vYmplY3Rf cmVtb3ZlX3NoYXJlZF9mZW5jZSk7DQo+Pj4+ICsNCj4+Pj4gICAgLyoqDQo+Pj4+ICAgICAqIHJl c2VydmF0aW9uX29iamVjdF9hZGRfZXhjbF9mZW5jZSAtIEFkZCBhbiBleGNsdXNpdmUgZmVuY2Uu DQo+Pj4+ICAgICAqIEBvYmo6IHRoZSByZXNlcnZhdGlvbiBvYmplY3QNCj4+Pj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ3B1dm0uYyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ3B1dm0uYw0KPj4+PiBpbmRl eCAxMGFiYWUzOThlNTEuLjliMjVhZDNkMDAzZSAxMDA2NDQNCj4+Pj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9ncHV2bS5jDQo+Pj4+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ3B1dm0uYw0KPj4+PiBAQCAtMjI0 LDUwICsyMjQsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV9hbWRrZmRfcmVtb3ZlX2V2aWN0aW9uX2Zl bmNlKHN0cnVjdCBhbWRncHVfYm8gKmJvLA0KPj4+PiAgICAgICAgICAgaWYgKCFlZikNCj4+Pj4g ICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+Pj4+DQo+Pj4+IC0gICAgICAgb2xk ID0gcmVzZXJ2YXRpb25fb2JqZWN0X2dldF9saXN0KHJlc3YpOw0KPj4+PiAtICAgICAgIGlmICgh b2xkKQ0KPj4+PiAtICAgICAgICAgICAgICAgcmV0dXJuIDA7DQo+Pj4+IC0NCj4+Pj4gLSAgICAg ICBuZXcgPSBrbWFsbG9jKG9mZnNldG9mKHR5cGVvZigqbmV3KSwgc2hhcmVkW29sZC0+c2hhcmVk X21heF0pLA0KPj4+PiAtICAgICAgICAgICAgICAgICAgICAgR0ZQX0tFUk5FTCk7DQo+Pj4+IC0g ICAgICAgaWYgKCFuZXcpDQo+Pj4+IC0gICAgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsNCj4+ Pj4gLQ0KPj4+PiAtICAgICAgIC8qIEdvIHRocm91Z2ggYWxsIHRoZSBzaGFyZWQgZmVuY2VzIGlu IHRoZSByZXNldmF0aW9uIG9iamVjdCBhbmQgc29ydA0KPj4+PiAtICAgICAgICAqIHRoZSBpbnRl cmVzdGluZyBvbmVzIHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QuDQo+Pj4+IC0gICAgICAgICovDQo+ Pj4+IC0gICAgICAgZm9yIChpID0gMCwgaiA9IG9sZC0+c2hhcmVkX2NvdW50LCBrID0gMDsgaSA8 IG9sZC0+c2hhcmVkX2NvdW50OyArK2kpIHsNCj4+Pj4gLSAgICAgICAgICAgICAgIHN0cnVjdCBk bWFfZmVuY2UgKmY7DQo+Pj4+IC0NCj4+Pj4gLSAgICAgICAgICAgICAgIGYgPSByY3VfZGVyZWZl cmVuY2VfcHJvdGVjdGVkKG9sZC0+c2hhcmVkW2ldLA0KPj4+PiAtICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2YXRpb25fb2JqZWN0X2hlbGQocmVzdikp Ow0KPj4+PiAtDQo+Pj4+IC0gICAgICAgICAgICAgICBpZiAoZi0+Y29udGV4dCA9PSBlZi0+YmFz ZS5jb250ZXh0KQ0KPj4+PiAtICAgICAgICAgICAgICAgICAgICAgICBSQ1VfSU5JVF9QT0lOVEVS KG5ldy0+c2hhcmVkWy0tal0sIGYpOw0KPj4+PiAtICAgICAgICAgICAgICAgZWxzZQ0KPj4+PiAt ICAgICAgICAgICAgICAgICAgICAgICBSQ1VfSU5JVF9QT0lOVEVSKG5ldy0+c2hhcmVkW2srK10s IGYpOw0KPj4+PiAtICAgICAgIH0NCj4+Pj4gLSAgICAgICBuZXctPnNoYXJlZF9tYXggPSBvbGQt PnNoYXJlZF9tYXg7DQo+Pj4+IC0gICAgICAgbmV3LT5zaGFyZWRfY291bnQgPSBrOw0KPj4+PiAt DQo+Pj4+IC0gICAgICAgLyogSW5zdGFsbCB0aGUgbmV3IGZlbmNlIGxpc3QsIHNlcWNvdW50IHBy b3ZpZGVzIHRoZSBiYXJyaWVycyAqLw0KPj4+PiAtICAgICAgIHByZWVtcHRfZGlzYWJsZSgpOw0K Pj4+PiAtICAgICAgIHdyaXRlX3NlcWNvdW50X2JlZ2luKCZyZXN2LT5zZXEpOw0KPj4+PiAtICAg ICAgIFJDVV9JTklUX1BPSU5URVIocmVzdi0+ZmVuY2UsIG5ldyk7DQo+Pj4+IC0gICAgICAgd3Jp dGVfc2VxY291bnRfZW5kKCZyZXN2LT5zZXEpOw0KPj4+PiAtICAgICAgIHByZWVtcHRfZW5hYmxl KCk7DQo+Pj4+IC0NCj4+Pj4gLSAgICAgICAvKiBEcm9wIHRoZSByZWZlcmVuY2VzIHRvIHRoZSBy ZW1vdmVkIGZlbmNlcyBvciBtb3ZlIHRoZW0gdG8gZWZfbGlzdCAqLw0KPj4+PiAtICAgICAgIGZv ciAoaSA9IGosIGsgPSAwOyBpIDwgb2xkLT5zaGFyZWRfY291bnQ7ICsraSkgew0KPj4+PiAtICAg ICAgICAgICAgICAgc3RydWN0IGRtYV9mZW5jZSAqZjsNCj4+Pj4gLQ0KPj4+PiAtICAgICAgICAg ICAgICAgZiA9IHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQobmV3LT5zaGFyZWRbaV0sDQo+Pj4+ IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNlcnZhdGlv bl9vYmplY3RfaGVsZChyZXN2KSk7DQo+Pj4+IC0gICAgICAgICAgICAgICBkbWFfZmVuY2VfcHV0 KGYpOw0KPj4+PiAtICAgICAgIH0NCj4+Pj4gLSAgICAgICBrZnJlZV9yY3Uob2xkLCByY3UpOw0K Pj4+PiAtDQo+Pj4+IC0gICAgICAgcmV0dXJuIDA7DQo+Pj4+ICsgICAgICAgcmV0dXJuIHJlc2Vy dmF0aW9uX29iamVjdF9yZW1vdmVfc2hhcmVkX2ZlbmNlKHJlc3YsIGVmLT5iYXNlLmNvbnRleHQp Ow0KPj4+PiAgICB9DQo+Pj4+DQo+Pj4+ICAgIHN0YXRpYyBpbnQgYW1kZ3B1X2FtZGtmZF9ib192 YWxpZGF0ZShzdHJ1Y3QgYW1kZ3B1X2JvICpibywgdWludDMyX3QgZG9tYWluLA0KPj4+PiBkaWZm IC0tZ2l0IGEvaW5jbHVkZS9saW51eC9yZXNlcnZhdGlvbi5oIGIvaW5jbHVkZS9saW51eC9yZXNl cnZhdGlvbi5oDQo+Pj4+IGluZGV4IGY0N2U4MTk2ZDAzOS4uMWM4MzNhNTZiNjc4IDEwMDY0NA0K Pj4+PiAtLS0gYS9pbmNsdWRlL2xpbnV4L3Jlc2VydmF0aW9uLmgNCj4+Pj4gKysrIGIvaW5jbHVk ZS9saW51eC9yZXNlcnZhdGlvbi5oDQo+Pj4+IEBAIC0yMjksNyArMjI5LDggQEAgaW50IHJlc2Vy dmF0aW9uX29iamVjdF9yZXNlcnZlX3NoYXJlZChzdHJ1Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICpv YmosDQo+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l ZCBpbnQgbnVtX2ZlbmNlcyk7DQo+Pj4+ICAgIHZvaWQgcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9z aGFyZWRfZmVuY2Uoc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqb2JqLA0KPj4+PiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRtYV9mZW5jZSAqZmVu Y2UpOw0KPj4+PiAtDQo+Pj4+ICtpbnQgcmVzZXJ2YXRpb25fb2JqZWN0X3JlbW92ZV9zaGFyZWRf ZmVuY2Uoc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqb2JqLA0KPj4+PiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgY29udGV4dCk7DQo+Pj4+ICAg IHZvaWQgcmVzZXJ2YXRpb25fb2JqZWN0X2FkZF9leGNsX2ZlbmNlKHN0cnVjdCByZXNlcnZhdGlv bl9vYmplY3QgKm9iaiwNCj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSk7DQo+Pj4+DQo+Pj4+IC0tDQo+Pj4+IDIuMTcu MQ0KPj4+Pg0KPj4+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXw0KPj4+PiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0DQo+Pj4+IGRyaS1kZXZlbEBsaXN0cy5m cmVlZGVza3RvcC5vcmcNCj4+Pj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9kcmktZGV2ZWwNCj4+Pg0KPg0KDQpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2FtZC1nZng=