From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Liu, Monk" Subject: RE: [PATCH 3/4] drm/amdgpu: don't return when ring not ready for fill_buffer Date: Thu, 1 Mar 2018 10:11:58 +0000 Message-ID: References: <1519802463-9090-1-git-send-email-Monk.Liu@amd.com> <1519802463-9090-3-git-send-email-Monk.Liu@amd.com> <01879d0d-edea-680e-c9f2-1005d94f1dfd@gmail.com> <3a8945f9-848e-dd19-373d-5dddc69f76cb@amd.com> <7af9b6fb-28e8-4e25-5d4a-5b566a00cbea@gmail.com> <6dedfc7f-cf69-676f-463d-be52cda1b1bb@amd.com> <26eb2e4c-33dd-2160-5b83-a7ff9e3a2558@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <26eb2e4c-33dd-2160-5b83-a7ff9e3a2558-5C7GfCeVMHo@public.gmane.org> 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: "Koenig, Christian" , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" T2ggeWVhaCwgSSBncmVwICJyaW5nLT5yZWFkeSA9IGZhbHNlIiBhbmQgbG9zdCBvdGhlcnMgLi4u DQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBLb2VuaWcsIENocmlzdGlhbiAN ClNlbnQ6IDIwMTjlubQz5pyIMeaXpSAxNzo1MQ0KVG86IExpdSwgTW9uayA8TW9uay5MaXVAYW1k LmNvbT47IGFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnDQpTdWJqZWN0OiBSZTogW1BBVENI IDMvNF0gZHJtL2FtZGdwdTogZG9uJ3QgcmV0dXJuIHdoZW4gcmluZyBub3QgcmVhZHkgZm9yIGZp bGxfYnVmZmVyDQoNCkxvb2sgZm9yIGFtZGdwdV90dG1fc2V0X2FjdGl2ZV92cmFtX3NpemUoKSwg c2V0dGluZyByaW5nLT5yZWFkeSB0byBmYWxzZSBpcyBkaXJlY3RseSBiZW5lYXRoIGl0Lg0KDQpD aHJpc3RpYW4uDQoNCkFtIDAxLjAzLjIwMTggdW0gMTA6NDEgc2NocmllYiBMaXUsIE1vbms6DQo+ IE9vcHMsIGxvb2tzIG9ubHkgc2kgd2lsbCBjYWxsIHRoaXMgZG1hX3N0b3AoKSBkdXJpbmcgaHdf ZmluaSwgSSANCj4gY2hlY2tlZCBmb3Igc2RtYTQuMC8zLjAvMi40LCBubyBzdWNoIGxvZ2ljDQo+ DQo+DQo+DQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IENocmlzdGlhbiBL w7ZuaWcgW21haWx0bzpja29lbmlnLmxlaWNodHp1bWVya2VuQGdtYWlsLmNvbV0NCj4gU2VudDog MjAxOOW5tDPmnIgx5pelIDE3OjM5DQo+IFRvOiBMaXUsIE1vbmsgPE1vbmsuTGl1QGFtZC5jb20+ OyBLb2VuaWcsIENocmlzdGlhbiANCj4gPENocmlzdGlhbi5Lb2VuaWdAYW1kLmNvbT47IGFtZC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnDQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggMy80XSBkcm0v YW1kZ3B1OiBkb24ndCByZXR1cm4gd2hlbiByaW5nIG5vdCByZWFkeSANCj4gZm9yIGZpbGxfYnVm ZmVyDQo+DQo+IEhpIE1vbmssDQo+DQo+IGxvb2sgYXQgc2lfZG1hX3N0b3AoKSBhbmQvb3Igb3Ro ZXIgU0RNQSBnZW5lcmF0aW9uIGNvZGUuDQo+DQo+IFJlZ2FyZHMsDQo+IENocmlzdGlhbi4NCj4N Cj4gQW0gMDEuMDMuMjAxOCB1bSAxMDozNyBzY2hyaWViIExpdSwgTW9uazoNCj4+IEhpIENocmlz dGlhbg0KPj4NCj4+IER1cmluZyBzdXNwZW5kL3Jlc3VtZSwgd2hpY2ggc3RhZ2Ugd2lsbCBzZXQg c2RtYSdzIHJpbmctPnJlYWR5IHRvIA0KPj4gZmFsc2UgPz8gSSBjYW4gb25seSBmaW5kIGl0IGlu IGFtZGdwdV9yaW5nX2ZpbmkoKSBCdXQgSSBzYXcgdGhhdCBpdCANCj4+IGlzIG9ubHkgaW52b2tl ZCBpbiB1bmxvYWRfa21zKCksIGxvb2tzIGRldmljZV9zdXNwbmQoKSB3aWxsIG5vdCBzZXQNCj4+ IHJpbmctPnJlYWR5IHRvIGZhbHNlDQo+Pg0KPj4gL01vbmsNCj4+DQo+PiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KPj4gRnJvbTogYW1kLWdmeCBbbWFpbHRvOmFtZC1nZngtYm91bmNlc0Bs aXN0cy5mcmVlZGVza3RvcC5vcmddIE9uIA0KPj4gQmVoYWxmIE9mIExpdSwgTW9uaw0KPj4gU2Vu dDogMjAxOOW5tDPmnIgx5pelIDE2OjUyDQo+PiBUbzogS29lbmlnLCBDaHJpc3RpYW4gPENocmlz dGlhbi5Lb2VuaWdAYW1kLmNvbT47IA0KPj4gYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcN Cj4+IFN1YmplY3Q6IFJFOiBbUEFUQ0ggMy80XSBkcm0vYW1kZ3B1OiBkb24ndCByZXR1cm4gd2hl biByaW5nIG5vdCByZWFkeSANCj4+IGZvciBmaWxsX2J1ZmZlcg0KPj4NCj4+PiBhbWRncHVfZXZp Y3RfZmxhZ3MoKSBhbmQgYW1kZ3B1X2JvX21vdmUoKSBuZWVkcyB0byBrbm93IGlmIHRoZSBTRE1B IHJpbmcgaXMgYXZhaWxhYmxlIGR1cmluZyBzdXNwZW5kL3Jlc3VtZS4NCj4+IEFzIGxvbmcgYXMg d2UgYXJlIGluIGdwdSByZXNldCwgd2UgZG9uJ3QgcmV0dXJuIGVycm9yIHdoZW4gcmluZyBub3Qg cmVhZHksIGN1eiBldmVudHVhbGx5IGl0IGVpdGhlciBzdWNjZXNzIG9yIGZhaWxlZCBhbmQgcmVz Y2hlZHVsZWQgYnkgc2NoZWR1bGVyIHNpbmNlIGl0IGlzIGtlcm5lbCBqb2IgV2hhdCdzIHlvdXIg Y29uY2VybiA/DQo+Pg0KPj4gL01vbmsNCj4+DQo+Pg0KPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCj4+IEZyb206IEtvZW5pZywgQ2hyaXN0aWFuDQo+PiBTZW50OiAyMDE45bm0M+aciDHm l6UgMTY6NDENCj4+IFRvOiBMaXUsIE1vbmsgPE1vbmsuTGl1QGFtZC5jb20+OyBhbWQtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZw0KPj4gU3ViamVjdDogUmU6IFtQQVRDSCAzLzRdIGRybS9hbWRn cHU6IGRvbid0IHJldHVybiB3aGVuIHJpbmcgbm90IHJlYWR5IA0KPj4gZm9yIGZpbGxfYnVmZmVy DQo+Pg0KPj4+IElmIHdlIGFyZSBpbiBncHUgcmVzdCBzdGFnZSwgd2UgY2FuIGxldCBTRE1BIGpv YiBsaXZlIHdpdGggdGhlIGNhc2Ugb2YgcmluZyBub3QgcmVhZHksICBjYW4geW91IHBvaW50IG91 dCB3aGVyZSBpcyB0aGUgcHJvYmxlbSA/DQo+PiBhbWRncHVfZXZpY3RfZmxhZ3MoKSBhbmQgYW1k Z3B1X2JvX21vdmUoKSBuZWVkcyB0byBrbm93IGlmIHRoZSBTRE1BIHJpbmcgaXMgYXZhaWxhYmxl IGR1cmluZyBzdXNwZW5kL3Jlc3VtZS4NCj4+DQo+PiBFLmcuIHN1c3BlbmQgd29ya3MgYXMgdGhp czoNCj4+IDEuIEV2aWN0IGFsbCBub3JtYWwgQk9zIGZyb20gVlJBTSB1c2luZyB0aGUgU0RNQS4N Cj4+IDIuIERpc2FibGUgU0RNQSwgR0FSVCwgUFNQIGV0Yy4uLiBlLmcuIGRpc2FibGUgdGhlIGhh cmR3YXJlLg0KPj4gMy4gVW5waW4gYWxsIEJPcyBpbiBWUkFNIHVzZWQgYnkgaGFyZHdhcmUgZW5n aW5lcywgZS5nLiB0aGUgR0FSVCB0YWJsZSwgZmlybXdhcmUgZXRjLi4uDQo+PiA0LiBFdmljdCBh bGwgcmVtYWluaW5nIEJPcyBmcm9tIFZSQU0gdXNpbmcgQ1BVIGNvcGllcy4NCj4+DQo+PiBSZXN1 bWUgd29ya3MgdGhlIG90aGVyIHdheSBhcm91bmQ6DQo+PiAxLiBNb3ZlIGFsbCBCT3MgZm9yIEdB UlQgdGFibGUgYW5kIGZpcm13YXJlIGJhY2sgaW50byBWUkFNIHVzaW5nIENQVSBjb3BpZXMuDQo+ PiAyLiBQaW4gdGhvc2UgQk9zIGluIFZSQU0gYW5kIGVuYWJsZSB0aGUgaGFyZHdhcmUuDQo+PiAz LiBVc2UgdGhlIFNETUEgdG8gbW92ZSBiYWNrIGFsbCBvdGhlciBCT3MgaW50byBWUkFNLg0KPj4N Cj4+IFRvIGZpZ3VyZSBvdXQgaWYgd2Ugc2hvdWxkIHVzZSB0aGUgQ1BVIGNvcHkgb3IgdGhlIFNE TUEgdGhlIHJpbmctPnJlYWR5IGZsYWcgaXMgdXNlZC4gU28gcmVtb3ZpbmcgdGhpcyBjaGVjayBp cyByZWFsbHkgYSBuby1nbyBiZWNhdXNlIGl0IHdvdWxkIGJyZWFrIHN1c3BlbmQvcmVzdW1lLg0K Pj4NCj4+IFRoZSBvbmx5IG90aGVyIGFsdGVybmF0aXZlIEkgY2FuIHNlZSBpcyB0byBhZGQgYSBz ZXBhcmF0ZSBmbGFnIGluIGFtZGdwdV9tbWFuIGlmIGJ1ZmZlcl9mdW5jcyBzaG91bGQgYmUgdXNl ZCBvciBub3QuIFNlZSBhbGwgdGhlIGNhbGxlcnMgb2YgYW1kZ3B1X3R0bV9zZXRfYWN0aXZlX3Zy YW1fc2l6ZSgpIGFzIHdlbGwuDQo+Pg0KPj4gU29tZXRoaW5nIGxpa2UgcmVuYW1pbmcgYW1kZ3B1 X3R0bV9zZXRfYWN0aXZlX3ZyYW1fc2l6ZSgpIGludG8NCj4+IGFtZGdwdV90dG1fc2V0X2J1ZmZl cl9mdW5jc19yZWFkKCkgYW5kIGlnbm9yaW5nIGFueSBjaGFuZ2UgaWYgZ3B1X3Jlc2V0IGlzIHNl dC4NCj4+DQo+PiBCVFc6IENoYW5naW5nIHRoZSBhY3RpdmUgVlJBTSBzaXplIGluIEdQVSByZXNl dCBpcyBxdWl0ZSBhIGJ1ZyB5b3Ugc3R1bWJsZWQgb3ZlciBoZXJlLCBzbyB0aGlzIHJlYWxseSBu ZWVkcyBmaXhpbmcgYW55d2F5Lg0KPj4NCj4+IFJlZ2FyZHMsDQo+PiBDaHJpc3RpYW4uDQo+Pg0K Pj4gQW0gMDEuMDMuMjAxOCB1bSAwOToyMyBzY2hyaWViIExpdSwgTW9uazoNCj4+PiBBY2NlbF93 b3JraW5nIGlzIG9ubHkgZm9yIEdGWCByaW5nLCBJIGRvbid0IHRoaW5rIHRlc3QgaXQgaXMgYXBw cm9wcmlhdGUgZm9yIFNETUEgam9icyAuLi4uDQo+Pj4NCj4+PiBJZiB3ZSBhcmUgaW4gZ3B1IHJl c3Qgc3RhZ2UsIHdlIGNhbiBsZXQgU0RNQSBqb2IgbGl2ZSB3aXRoIHRoZSBjYXNlIG9mIHJpbmcg bm90IHJlYWR5LCAgY2FuIHlvdSBwb2ludCBvdXQgd2hlcmUgaXMgdGhlIHByb2JsZW0gPw0KPj4+ DQo+Pj4gSW4gZmFjdCB3ZSBkaWQgc3RyZXNzIFREUiB0ZXN0IHdpdGggdGhpcyBwYXRjaCBhbmQg aXQgY2FuIHJlYWxseSBmaXggDQo+Pj4gY291cGxlIG92ZXIga2lsbCBpc3N1ZXMNCj4+Pg0KPj4+ DQo+Pj4gL01vbmsNCj4+Pg0KPj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+Pj4gRnJv bTogQ2hyaXN0aWFuIEvDtm5pZyBbbWFpbHRvOmNrb2VuaWcubGVpY2h0enVtZXJrZW5AZ21haWwu Y29tXQ0KPj4+IFNlbnQ6IDIwMTjlubQz5pyIMeaXpSAxNjoxNg0KPj4+IFRvOiBMaXUsIE1vbmsg PE1vbmsuTGl1QGFtZC5jb20+OyBLb2VuaWcsIENocmlzdGlhbiANCj4+PiA8Q2hyaXN0aWFuLktv ZW5pZ0BhbWQuY29tPjsgYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcNCj4+PiBTdWJqZWN0 OiBSZTogW1BBVENIIDMvNF0gZHJtL2FtZGdwdTogZG9uJ3QgcmV0dXJuIHdoZW4gcmluZyBub3Qg DQo+Pj4gcmVhZHkgZm9yIGZpbGxfYnVmZmVyDQo+Pj4NCj4+PiBBaCwgY3JhcCB5ZWFoIHRoYXQg d29uJ3Qgd29yayBzaW5jZSB3ZSBkb24ndCBmcmVlIHRoZSByaW5nLg0KPj4+DQo+Pj4gS2V5IHBv aW50IGlzIHdlIG5lZWQgdG8gZGlzdGluY3QgYmV0d2VlbiB0aGUgcmluZyBkb2Vzbid0IHdvcmsg dGVtcG9yYXJ5IGJlY2F1c2Ugd2UgYXJlIGluIGEgR1BVIHJlc2V0IGFuZCBpdCBkb2Vzbid0IHdv cmsgYXQgYWxsIGJlY2F1c2Ugd2UgYXJlIG1pc3NpbmcgZmlybXdhcmUgb3Igc3R1ZmYgbGlrZSB0 aGF0Lg0KPj4+DQo+Pj4gQW5kIG5vLCBjaGVja2luZyB0aGUgZ3B1X3Jlc2V0IGZsYWcgaXMgdG90 YWxseSByYWN5IGFuZCBjYW4ndCBiZSBkb25lIGVpdGhlci4gSG93IGFib3V0IGNoZWNraW5nIGFj Y2VsX3dvcmtpbmcgaW5zdGVhZD8NCj4+Pg0KPj4+IENocmlzdGlhbi4NCj4+Pg0KPj4+IEFtIDAx LjAzLjIwMTggdW0gMDc6MDEgc2NocmllYiBMaXUsIE1vbms6DQo+Pj4+PiBQbGVhc2UgY2hhbmdl IHRoZSB0ZXN0IHRvIHVzZSByaW5nLT5yaW5nX29iaiBpbnN0ZWFkLCB0aGlzIHdheSB3ZSBzdGls bCBiYWlsIG91dCBpZiBzb21lYm9keSB0cmllcyB0byBzdWJtaXQgY29tbWFuZHMgYmVmb3JlIHRo ZSByaW5nIGlzIGV2ZW4gYWxsb2NhdGVkLg0KPj4+PiBJIGRvbid0IHVuZGVyc3RhbmQgaG93IGNv dWxkIGZpbGxfYnVmZmVyKCkgZ2V0IHJ1biB1bmRlciB0aGUgY2FzZSB0aGF0IHJpbmctPnJpbmdf b2JqIGlzIG5vdCBldmVuIGFsbG9jYXRlZCAuLi4gd2hlcmUgaXMgc3VjaCBjYXNlID8NCj4+Pj4N Cj4+Pj4NCj4+Pj4gL01vbmsNCj4+Pj4NCj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N Cj4+Pj4gRnJvbTogS29lbmlnLCBDaHJpc3RpYW4NCj4+Pj4gU2VudDogMjAxOOW5tDLmnIgyOOaX pSAyMDo0Ng0KPj4+PiBUbzogTGl1LCBNb25rIDxNb25rLkxpdUBhbWQuY29tPjsgYW1kLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcNCj4+Pj4gU3ViamVjdDogUmU6IFtQQVRDSCAzLzRdIGRybS9h bWRncHU6IGRvbid0IHJldHVybiB3aGVuIHJpbmcgbm90IA0KPj4+PiByZWFkeSBmb3IgZmlsbF9i dWZmZXINCj4+Pj4NCj4+Pj4gR29vZCBwb2ludCwgYnV0IGluIHRoaXMgY2FzZSB3ZSBuZWVkIHNv bWUgb3RoZXIgaGFuZGxpbmcuDQo+Pj4+DQo+Pj4+IFBsZWFzZSBjaGFuZ2UgdGhlIHRlc3QgdG8g dXNlIHJpbmctPnJpbmdfb2JqIGluc3RlYWQsIHRoaXMgd2F5IHdlIHN0aWxsIGJhaWwgb3V0IGlm IHNvbWVib2R5IHRyaWVzIHRvIHN1Ym1pdCBjb21tYW5kcyBiZWZvcmUgdGhlIHJpbmcgaXMgZXZl biBhbGxvY2F0ZWQuDQo+Pj4+DQo+Pj4+IEFuZCB5b3UgYWxzbyBuZWVkIHRvIGZpeCBhIGNvdXBs ZSBvZiBvdGhlciBwbGFjZXMgaW4gYW1kZ3B1X3R0bS5jLg0KPj4+Pg0KPj4+PiBSZWdhcmRzLA0K Pj4+PiBDaHJpc3RpYW4uDQo+Pj4+DQo+Pj4+IEFtIDI4LjAyLjIwMTggdW0gMTM6MzQgc2Nocmll YiBMaXUsIE1vbms6DQo+Pj4+PiBCZWNhdXNlIHdoZW4gU0RNQSB3YXMgaGFuZyBieSBsaWtlIHBy b2Nlc3MgQSwgYW5kIG1lYW53aGlsZSANCj4+Pj4+IGFub3RoZXIgcHJvY2VzcyBCIGlzIGFscmVh ZHkgcnVubmluZyBpbnRvIHRoZSBjb2RlIG9mIGZpbGxfYnVmZmVyKCkgU28ganVzdCBsZXQgcHJv Y2VzcyBCIGNvbnRpbnVlLCBkb24ndCBibG9jayBpdCBvdGhlcndpc2UgcHJvY2VzcyBCIHdvdWxk IGZhaWwgYnkgc29mdHdhcmUgcmVhc29uIC4NCj4+Pj4+DQo+Pj4+PiBMZXQgaXQgcnVuIGFuZCBm aW5hbGx5IHByb2Nlc3MgQidzIGpvYiB3b3VsZCBmYWlsIGFuZCBHUFUgcmVjb3ZlciANCj4+Pj4+ IHdpbGwgcmVwZWF0IGl0IGFnYWluIChzaW5jZSBpdCBpcyBhIGtlcm5lbCBqb2IpDQo+Pj4+Pg0K Pj4+Pj4gV2l0aG91dCB0aGlzIHNvbHV0aW9uIG90aGVyIHByb2Nlc3Mgd2lsbCBiZSBncmVhdGx5 IGhhcm1lZCBieSBvbmUgDQo+Pj4+PiBibGFjayBzaGVlcCB0aGF0IHRyaWdnZXJpbmcgR1BVIHJl Y292ZXINCj4+Pj4+DQo+Pj4+PiAvTW9uaw0KPj4+Pj4NCj4+Pj4+DQo+Pj4+Pg0KPj4+Pj4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+Pj4+IEZyb206IENocmlzdGlhbiBLw7ZuaWcgW21h aWx0bzpja29lbmlnLmxlaWNodHp1bWVya2VuQGdtYWlsLmNvbV0NCj4+Pj4+IFNlbnQ6IDIwMTjl ubQy5pyIMjjml6UgMjA6MjQNCj4+Pj4+IFRvOiBMaXUsIE1vbmsgPE1vbmsuTGl1QGFtZC5jb20+ OyBhbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZw0KPj4+Pj4gU3ViamVjdDogUmU6IFtQQVRD SCAzLzRdIGRybS9hbWRncHU6IGRvbid0IHJldHVybiB3aGVuIHJpbmcgbm90IA0KPj4+Pj4gcmVh ZHkgZm9yIGZpbGxfYnVmZmVyDQo+Pj4+Pg0KPj4+Pj4gQW0gMjguMDIuMjAxOCB1bSAwODoyMSBz Y2hyaWViIE1vbmsgTGl1Og0KPj4+Pj4+IGJlY2F1c2UgdGhpcyB0aW1lIFNETUEgbWF5IHVuZGVy IEdQVSBSRVNFVCBzbyBpdHMgcmluZy0+cmVhZHkgbWF5IA0KPj4+Pj4+IG5vdCB0cnVlLCBrZWVw IGdvaW5nIGFuZCBHUFUgc2NoZWR1bGVyIHdpbGwgcmVzY2hlZHVsZSB0aGlzIGpvYiANCj4+Pj4+ PiBpZiBpdCBmYWlsZWQuDQo+Pj4+Pj4NCj4+Pj4+PiBnaXZlIGEgd2FybmluZyBvbiBjb3B5X2J1 ZmZlciB3aGVuIGdvIHRocm91Z2ggZGlyZWN0X3N1Ym1pdCB3aGlsZQ0KPj4+Pj4+IHJpbmctPnJl YWR5IGlzIGZhbHNlDQo+Pj4+PiBOQUssIHRoYXQgdGVzdCBoYXMgYWxyZWFkeSBzYXZlZCB1cyBx dWl0ZSBhIGJ1bmNoIG9mIHRyb3VibGUgd2l0aCB0aGUgZmIgbGF5ZXIuDQo+Pj4+Pg0KPj4+Pj4g V2h5IGV4YWN0bHkgYXJlIHlvdSBydW5uaW5nIGludG8gaXNzdWVzIHdpdGggdGhhdD8NCj4+Pj4+ DQo+Pj4+PiBDaHJpc3RpYW4uDQo+Pj4+Pg0KPj4+Pj4+IENoYW5nZS1JZDogSWZlNmNkNTVlMGU4 NDNkOTk5MDBlNWJlZDU0MTg0OTllODg2MzM2ODUNCj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBNb25r IExpdSA8TW9uay5MaXVAYW1kLmNvbT4NCj4+Pj4+PiAtLS0NCj4+Pj4+PiAgICAgICAgZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5jIHwgNiArLS0tLS0NCj4+Pj4+PiAgICAg ICAgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCA1IGRlbGV0aW9ucygtKQ0KPj4+Pj4+ DQo+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV90 dG0uYw0KPj4+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5jDQo+ Pj4+Pj4gaW5kZXggZTM4ZTZkYi4uN2I3NWFjOSAxMDA2NDQNCj4+Pj4+PiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmMNCj4+Pj4+PiArKysgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmMNCj4+Pj4+PiBAQCAtMTY1Niw2ICsxNjU2LDcg QEAgaW50IGFtZGdwdV9jb3B5X2J1ZmZlcihzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVpbnQ2 NF90IHNyY19vZmZzZXQsDQo+Pj4+Pj4gICAgICAgIAlhbWRncHVfcmluZ19wYWRfaWIocmluZywg JmpvYi0+aWJzWzBdKTsNCj4+Pj4+PiAgICAgICAgCVdBUk5fT04oam9iLT5pYnNbMF0ubGVuZ3Ro X2R3ID4gbnVtX2R3KTsNCj4+Pj4+PiAgICAgICAgCWlmIChkaXJlY3Rfc3VibWl0KSB7DQo+Pj4+ Pj4gKwkJV0FSTl9PTighcmluZy0+cmVhZHkpOw0KPj4+Pj4+ICAgICAgICAJCXIgPSBhbWRncHVf aWJfc2NoZWR1bGUocmluZywgam9iLT5udW1faWJzLCBqb2ItPmlicywNCj4+Pj4+PiAgICAgICAg CQkJCSAgICAgICBOVUxMLCBmZW5jZSk7DQo+Pj4+Pj4gICAgICAgIAkJam9iLT5mZW5jZSA9IGRt YV9mZW5jZV9nZXQoKmZlbmNlKTsgQEAgLTE2OTIsMTEgKzE2OTMsNiANCj4+Pj4+PiBAQCBpbnQg YW1kZ3B1X2ZpbGxfYnVmZmVyKHN0cnVjdCBhbWRncHVfYm8gKmJvLA0KPj4+Pj4+ICAgICAgICAJ c3RydWN0IGFtZGdwdV9qb2IgKmpvYjsNCj4+Pj4+PiAgICAgICAgCWludCByOw0KPj4+Pj4+ICAg ICAgICANCj4+Pj4+PiAtCWlmICghcmluZy0+cmVhZHkpIHsNCj4+Pj4+PiAtCQlEUk1fRVJST1Io IlRyeWluZyB0byBjbGVhciBtZW1vcnkgd2l0aCByaW5nIHR1cm5lZCBvZmYuXG4iKTsNCj4+Pj4+ PiAtCQlyZXR1cm4gLUVJTlZBTDsNCj4+Pj4+PiAtCX0NCj4+Pj4+PiAtDQo+Pj4+Pj4gICAgICAg IAlpZiAoYm8tPnRiby5tZW0ubWVtX3R5cGUgPT0gVFRNX1BMX1RUKSB7DQo+Pj4+Pj4gICAgICAg IAkJciA9IGFtZGdwdV90dG1fYWxsb2NfZ2FydCgmYm8tPnRibyk7DQo+Pj4+Pj4gICAgICAgIAkJ aWYgKHIpDQo+Pj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fDQo+Pj4+IGFtZC1nZnggbWFpbGluZyBsaXN0DQo+Pj4+IGFtZC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnDQo+Pj4+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vYW1kLWdmeA0KPj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18NCj4+IGFtZC1nZnggbWFpbGluZyBsaXN0DQo+PiBhbWQtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZw0KPj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9hbWQtZ2Z4DQo+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXw0KPj4gYW1kLWdmeCBtYWlsaW5nIGxpc3QNCj4+IGFtZC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnDQo+PiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2FtZC1nZngNCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==