From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [PATCH v2 5/5] drm/msm: subclass work object for vblank events Date: Fri, 30 Nov 2018 15:07:11 -0500 Message-ID: <20181130200711.GK154160@art_vandelay> References: <1541543790-748-1-git-send-email-jsanka@codeaurora.org> <1541543790-748-5-git-send-email-jsanka@codeaurora.org> <20181107155551.GZ154160@art_vandelay> <86c75419b86da1a3f538638ef0004203@codeaurora.org> <20181129221511.GI154160@art_vandelay> <126d5b3a93c1827aaf10cd64486d4967@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <126d5b3a93c1827aaf10cd64486d4967-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Jeykumar Sankaran Cc: Sean Paul , robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, hoegsberg-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org T24gRnJpLCBOb3YgMzAsIDIwMTggYXQgMTE6NDU6NTVBTSAtMDgwMCwgSmV5a3VtYXIgU2Fua2Fy YW4gd3JvdGU6Cj4gT24gMjAxOC0xMS0yOSAxNDoxNSwgU2VhbiBQYXVsIHdyb3RlOgo+ID4gT24g VHVlLCBOb3YgMjAsIDIwMTggYXQgMDI6MDQ6MTRQTSAtMDgwMCwgSmV5a3VtYXIgU2Fua2FyYW4g d3JvdGU6Cj4gPiA+IE9uIDIwMTgtMTEtMDcgMDc6NTUsIFNlYW4gUGF1bCB3cm90ZToKPiA+ID4g PiBPbiBUdWUsIE5vdiAwNiwgMjAxOCBhdCAwMjozNjozMFBNIC0wODAwLCBKZXlrdW1hciBTYW5r YXJhbiB3cm90ZToKPiA+ID4gPiA+IG1zbSBtYWludGFpbnMgYSBzZXBhcmF0ZSBzdHJ1Y3R1cmUg dG8gZGVmaW5lIHZibGFuawo+ID4gPiA+ID4gd29yayBkZWZpbml0aW9ucyBhbmQgYSBsaXN0IHRv IHRyYWNrIGV2ZW50cyBzdWJtaXR0ZWQKPiA+ID4gPiA+IHRvIHRoZSB3b3JrcXVldWUuIFdlIGNh biBhdm9pZCB0aGlzIHJlZHVuZGFudCBsaXN0Cj4gPiA+ID4gPiBhbmQgaXRzIHByb3RlY3Rpb24g bWVjaGFuaXNtLCBpZiB3ZSBzdWJjbGFzcyB0aGUKPiA+ID4gPiA+IHdvcmsgb2JqZWN0IHRvIGVu Y2Fwc3VsYXRlIHZibGFuayBldmVudCBwYXJhbWV0ZXJzLgo+ID4gPiA+ID4KPiA+ID4gPiA+IGNo YW5nZXMgaW4gdjI6Cj4gPiA+ID4gPiAJLSBzdWJjbGFzcyBvcHRpbWl6YXRpb24gb24gc3lzdGVt IHdxIChTZWFuIFBhdWwpCj4gPiA+ID4KPiA+ID4gPiBJIHdvdWxkbid0IGRvIGl0IGxpa2UgdGhp cywgdGJoLiBPbmUgcHJvYmxlbSBpcyB0aGF0IHlvdSd2ZSBsb3N0IHlvdXIKPiA+ID4gPiBmbHVz aCgpIG9uCj4gPiA+ID4gdW5iaW5kLCBzbyB0aGVyZSdzIG5vIHdheSB0byBrbm93IGlmIHlvdSBo YXZlIHdvcmtlcnMgaW4gdGhlIHdpbGQKPiA+ID4gPiB3YWl0aW5nCj4gPiA+ID4gdG8KPiA+ID4g PiBlbmFibGUvZGlzYWJsZSB2YmxhbmsuCj4gPiA+ID4KPiA+ID4gPiBBbm90aGVyIGlzc3VlcyBp cyB0aGF0IEFGQUlDVCwgd2UgZG9uJ3QgbmVlZCBhIHF1ZXVlIG9mCj4gPiA+ID4gZW5hYmxlcy9k aXNhYmxlcywKPiA+ID4gPiBidXQKPiA+ID4gPiByYXRoZXIganVzdCB0aGUgbGFzdCByZXF1ZXN0 ZWQgc3RhdGUgKGllOiBzaG91bGQgd2UgYmUgb24gb3Igb2ZmKS4gU28KPiA+ID4gPiB0aGluZ3MK PiA+ID4gPiBkb24ndCBuZWVkIHRvIGJlIHRoaXMgY29tcGxpY2F0ZWQgKGFuZCB3ZSdyZSBwb3Nz aWJseSB0aHJhc2hpbmcgdmJsYW5rCj4gPiA+ID4gb24vb2ZmCj4gPiA+ID4gZm9yIG5vIHJlYXNv bikuCj4gPiA+ID4KPiA+ID4gPiBJJ20gc3RpbGwgb2YgdGhlIG1pbmQgdGhhdCB5b3Ugc2hvdWxk IGp1c3QgbWFrZSB0aGlzIHN5bmNocm9ub3VzIGFuZAo+ID4gYmUKPiA+ID4gPiBkb25lCj4gPiA+ ID4gd2l0aCB0aGUgdGhyZWFkcyAoZXNwZWNpYWxseSBzaW5jZSB3ZSdyZSBzdGlsbCB1bmNvdmVy aW5nL2ludHJvZHVjaW5nCj4gPiA+ID4gcmFjZXMhKS4KPiA+ID4gPgo+ID4gPiBXaGlsZSBzY29w aW5nIG91dCB0aGUgZWZmb3J0IHRvIG1ha2UgdmJsYW5rIGV2ZW50cyBzeW5jaHJvbm91cywgSQo+ ID4gPiBmb3VuZAo+ID4gPiB0aGF0IHRoZSBzcGlubG9jayBsb2NraW5nIG9yZGVyIG9mIHZibGFu ayByZXF1ZXN0IHNlcXVlbmNlIGFuZCB2YmxhbmsKPiA+ID4gY2FsbGJhY2sKPiA+ID4gc2VxdWVu Y2VzIGFyZSB0aGUgb3Bwb3NpdGUuCj4gPiA+IAo+ID4gPiBJbiBEUFUsIGRybV92YmxhbmtfZW5h YmxlIGFjcXVpcmVzIHZibGFua190aW1lX2xvY2sgYmVmb3JlIHJlZ2lzdGVyaW5nCj4gPiA+IHRo ZSBjcnRjIHRvIGVuY29kZXIgd2hpY2ggaGFwcGVucyBhZnRlciBhY3F1aXJpbmcgZW5jb2Rlcl9z cGlubG9jay4KPiA+ID4gQnV0Cj4gPiA+IHRoZSB2YmxhbmtfY2FsbGJhY2sgYWNxdWlyZXMgZW5j b2Rlcl9zcGlubG9jayBiZWZvcmUgYWNjZXNzaW5nIHRoZQo+ID4gPiByZWdpc3RlcmVkCj4gPiA+ IGNydGMgYW5kIGNhbGxpbmcgaW50byBkcm1fdmJsYW5rX2hhbmRsZXIgd2hpY2ggdHJpZXMgdG8g YWNxdWlyZQo+ID4gPiB2YmxhbmtfdGltZV9sb2NrLgo+ID4gPiBBY3F1aXJpbmcgYm90aCB2Ymxh bmtfdGltZV9sb2NrIGFuZCBlbmNvZGVyX3NwaW5sb2NrIGluIHRoZSBzYW1lCj4gPiA+IHRocmVh ZAo+ID4gPiBpcyBsZWFkaW5nIHRvIGRlYWRsb2NrLgo+ID4gCj4gPiBIbW0sIEknbSBub3Qgc3Vy ZSBJIGZvbGxvdy4gQXJlIHlvdSBzZWVpbmcgaXNzdWVzIHdoZXJlIGlycSBvdmVybGFwcwo+ID4g d2l0aAo+ID4gZW5hYmxlL2Rpc2FibGU/IEkgaGFja2VkIGluIHN5bmMgdmJsYW5rIGVuYWJsZS9k aXNhYmxlIHF1aWNrbHkgdG8gc2VlIGlmCj4gPiBJCj4gPiBjb3VsZAo+ID4gcmVwcm9kdWNlIHdo YXQgeW91J3JlIHNlZWluZywgYnV0IHRoaW5ncyBzZWVtZWQgd2VsbCBiZWhhdmVkLgo+ID4gCj4g Cj4gVGhlIHJhY2UgaXMgYmV0d2VlbiBkcm1fdmJsYW5rX2dldC9wdXQgYW5kIHZibGFua19oYW5k bGVyIGNvbnRleHRzLgo+IAo+IFdoZW4gbWFkZSBzeW5jaHJvbm91czoKPiAKPiB3aGlsZSBjYWxs aW5nIGRybV92YmxhbmtfZ2V0LCB0aGUgY2FsbHN0YWNrIGxvb2tzIGxpa2UgYmVsb3c6Cj4gZHJt X3ZibGFua19nZXQgLT4gZHJtX3ZibGFua19lbmFibGUgKGFjcXVpcmVzIHZibGFua190aW1lX2xv Y2spIC0+Cj4gX19lbmFibGVfdmJsYW5rIC0+IGRwdV9jcnRjX3ZibGFuayAtPiBkcHVfZW5jb2Rl cl90b2dnbGVfdmJsYW5rX2Zvcl9jcnRjCj4gKHRyaWVzIHRvIGFjcXVpcmUgZW5jX3NwaW5sb2Nr KQo+IAo+IEluIHZibGFuayBoYW5kbGVyLCB0aGUgY2FsbCBzdGFjayB3aWxsIGJlOgo+IGRwdV9l bmNvZGVyX3BoeXNfdmlkX3ZibGFua19pcnEgLT4gZHB1X2VuY29kZXJfdmJsYW5rX2NhbGxiYWNr IChhY3F1aXJlcwo+IGVuY19zcGlubG9jaykgLT4gZHB1X2NydGNfdmJsYW5rX2NhbGxiYWNrIC0+ IGRybV9oYW5kbGVfdmJsYW5rICh0cmllcyB0bwo+IGFjcXVpcmUgdmJsYW5rX3RpbWVfbG9jaykK CkhtbSwgSSdtIG5vdCBzdXJlIGhvdyB0aGlzIGNhbiBoYXBwZW4uIFdlIGFjcXVpcmUgYW5kIHJl bGVhc2UgdGhlIGVuY19zcGlubG9jawpiZWZvcmUgZW5hYmxpbmcgdGhlIGlycSwgeWVzIHdlIHdp bGwgaG9sZCBvbiB0byB0aGUgdmJsX3RpbWVfbG9jaywgYnV0IHdlCnNob3VsZG4ndCBiZSB0cnlp bmcgdG8gcmVhY3F1aXJlIGFuIGVuY29kZXIncyBzcGlubG9jayBhZnRlciB3ZSd2ZSBlbmFibGVk IGl0LgpJIGRvbid0IGtub3cgaG93IHRoYXQgY2FuIGRlYWRsb2NrLCBzaW5jZSB3ZSBzaG91bGQg bmV2ZXIgYmUgcnVubmluZyBlbmFibGUgYW5kCnRoZSBoYW5kbGVyIGNvbmN1cnJlbnRseS4KClRo ZSBvbmx5IHRoaW5nIEkgY2FuIHRoaW5rIG9mIGlzIHRoYXQgdGhlIHZibGFuayBpbnRlcnJ1cHRz IGFyZSBmaXJpbmcgYWZ0ZXIKdmJsYW5rIGhhcyBiZWVuIGRpc2FibGVkPyBJbiB0aGF0IGNhc2Us IGl0IHNlZW1zIGxpa2Ugd2Ugc2hvdWxkIHByb3Blcmx5IGZsdXNoCnRoZW0uCgpTZWFuCgoKPiAK PiAKPiA+IEkgZG8gc2VlIHRoYXQgdGhlcmUgaXMgYSBjaGFuY2UgdG8gY2FsbCBkcm1faGFuZGxl X3ZibGFuaygpIHdoaWxlCj4gPiBob2xkaW5nCj4gPiBlbmNfc3BpbmxvY2ssIGJ1dCBjb3VsZG4n dCBmaW5kIGFueSBvYnZpb3VzIGxvY2sgcmVjdXJzaW9uIHRoZXJlLgo+ID4gCj4gPiBNYXliZSBh IGNhbGxzdGFjayBvciBsb2NrZGVwIHNwbGF0IHdvdWxkIGhlbHA/Cj4gPiAKPiA+IFNlYW4KPiA+ IAo+ID4gCj4gPiBIZXJlJ3MgbXkgaGFjayB0byBieXBhc3MgdGhlIGRpc3BsYXkgdGhyZWFkOgo+ ID4gCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmMKPiA+IGIv ZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmMKPiA+IGluZGV4IDljOWY3ZmY2OTYwYjM4Li41 YTNjYWM1ODI1MzE5ZSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Ry di5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuYwo+ID4gQEAgLTI0Miwy NCArMjQyLDE5IEBAIHN0YXRpYyB2b2lkIHZibGFua19jdHJsX3dvcmtlcihzdHJ1Y3Qga3RocmVh ZF93b3JrCj4gPiAqd29yaykKPiA+ICBzdGF0aWMgaW50IHZibGFua19jdHJsX3F1ZXVlX3dvcmso c3RydWN0IG1zbV9kcm1fcHJpdmF0ZSAqcHJpdiwKPiA+ICAJCQkJCWludCBjcnRjX2lkLCBib29s IGVuYWJsZSkKPiA+ICB7Cj4gPiArCXN0cnVjdCBtc21fa21zICprbXMgPSBwcml2LT5rbXM7Cj4g PiAgCXN0cnVjdCBtc21fdmJsYW5rX2N0cmwgKnZibF9jdHJsID0gJnByaXYtPnZibGFua19jdHJs Owo+ID4gLQlzdHJ1Y3QgdmJsYW5rX2V2ZW50ICp2YmxfZXY7Cj4gPiAgCXVuc2lnbmVkIGxvbmcg ZmxhZ3M7Cj4gPiAKPiA+IC0JdmJsX2V2ID0ga3phbGxvYyhzaXplb2YoKnZibF9ldiksIEdGUF9B VE9NSUMpOwo+ID4gLQlpZiAoIXZibF9ldikKPiA+IC0JCXJldHVybiAtRU5PTUVNOwo+ID4gKwlz cGluX2xvY2tfaXJxc2F2ZSgmdmJsX2N0cmwtPmxvY2ssIGZsYWdzKTsKPiA+IAo+ID4gLQl2Ymxf ZXYtPmNydGNfaWQgPSBjcnRjX2lkOwo+ID4gLQl2YmxfZXYtPmVuYWJsZSA9IGVuYWJsZTsKPiA+ ICsJaWYgKGVuYWJsZSkKPiA+ICsJCWttcy0+ZnVuY3MtPmVuYWJsZV92Ymxhbmsoa21zLCBwcml2 LT5jcnRjc1tjcnRjX2lkXSk7Cj4gPiArCWVsc2UKPiA+ICsJCWttcy0+ZnVuY3MtPmRpc2FibGVf dmJsYW5rKGttcywgcHJpdi0+Y3J0Y3NbY3J0Y19pZF0pOwo+ID4gCj4gPiAtCXNwaW5fbG9ja19p cnFzYXZlKCZ2YmxfY3RybC0+bG9jaywgZmxhZ3MpOwo+ID4gLQlsaXN0X2FkZF90YWlsKCZ2Ymxf ZXYtPm5vZGUsICZ2YmxfY3RybC0+ZXZlbnRfbGlzdCk7Cj4gPiAgCXNwaW5fdW5sb2NrX2lycXJl c3RvcmUoJnZibF9jdHJsLT5sb2NrLCBmbGFncyk7Cj4gPiAKPiA+IC0Ja3RocmVhZF9xdWV1ZV93 b3JrKCZwcml2LT5kaXNwX3RocmVhZFtjcnRjX2lkXS53b3JrZXIsCj4gPiAtCQkJJnZibF9jdHJs LT53b3JrKTsKPiA+IC0KPiA+ICAJcmV0dXJuIDA7Cj4gPiAgfQo+ID4gCj4gRXZlbiB3aXRoIHlv dXIgcGF0Y2ggYWJvdmUsIEkgc2VlIGZyYW1lIGlzIGdldHRpbmcgc3R1Y2sgYnV0IGl0IHJlY292 ZXJzIGluCj4gYSB3aGlsZS4KPiBUaGUgcGF0Y2ggSSB0cmllZCB3YXMgYXNzaWduaW5nIGNydGMt PmZ1bmNzLT5lbmFibGVfdmJsYW5rL2Rpc2FibGVfdmJsYW5rIHNvCj4gdGhhdAo+IF9fZW5hYmxl X3ZibGFuayBjYW4gY2FsbCBjcnRjIGRpcmVjdGx5LiBCdXQgdGhlIGFib3ZlIGNhbGxzdGFjayBp cyBzdGlsbAo+IHZhbGlkIGZvciB5b3VyIHBhdGNoLgo+IAo+IFRoYW5rcywKPiBKZXlrdW1hciBT Lgo+ID4gCj4gPiAKPiA+ID4gCj4gPiA+IEluIE1EUDUsIEkgc2VlIHRoZSBzYW1lIHBhdHRlcm4g YmV0d2VlbiB2YmxhbmtfdGltZV9sb2NrIGFuZCBsaXN0X2xvY2sKPiA+IHdoaWNoCj4gPiA+IGlz IHVzZWQgdG8gdHJhY2sgdGhlIGlycSBoYW5kbGVycy4KPiA+ID4gCj4gPiA+IEkgYmVsaWV2ZSB0 aGF0IGV4cGxhaW5zIHdoeSBtc21fZHJ2IGlzIHF1ZXVpbmcgdGhlIHZibGFuawo+ID4gPiBlbmFi bGUvZGlzYWJsZQo+ID4gPiB3b3JrcyB0byBXUSBhZnRlciBhY3F1aXJpbmcgdmJsYW5rX3RpbWVf bG9jay4KPiA+ID4gCj4gPiA+IFRoYW5rcywKPiA+ID4gSmV5a3VtYXIgUy4KPiA+ID4gCj4gPiA+ ID4gU2Vhbgo+ID4gPiA+Cj4gPiA+ID4gPgo+ID4gPiA+ID4gU2lnbmVkLW9mZi1ieTogSmV5a3Vt YXIgU2Fua2FyYW4gPGpzYW5rYUBjb2RlYXVyb3JhLm9yZz4KPiA+ID4gPiA+IC0tLQo+ID4gPiA+ ID4gIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5jIHwgNjcKPiA+ID4gPiArKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+ID4gPiAgZHJpdmVycy9ncHUv ZHJtL21zbS9tc21fZHJ2LmggfCAgNyAtLS0tLQo+ID4gPiA+ID4gIDIgZmlsZXMgY2hhbmdlZCwg MjAgaW5zZXJ0aW9ucygrKSwgNTQgZGVsZXRpb25zKC0pCj4gPiA+ID4gPgo+ID4gPiA+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5jCj4gPiA+ID4gYi9kcml2ZXJz L2dwdS9kcm0vbXNtL21zbV9kcnYuYwo+ID4gPiA+ID4gaW5kZXggNmQ2YzczYi4uOGRhNWJlMiAx MDA2NDQKPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5jCj4gPiA+ ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuYwo+ID4gPiA+ID4gQEAgLTIw Myw2MSArMjAzLDQ0IEBAIHUzMiBtc21fcmVhZGwoY29uc3Qgdm9pZCBfX2lvbWVtICphZGRyKQo+ ID4gPiA+ID4gIAlyZXR1cm4gdmFsOwo+ID4gPiA+ID4gIH0KPiA+ID4gPiA+Cj4gPiA+ID4gPiAt c3RydWN0IHZibGFua19ldmVudCB7Cj4gPiA+ID4gPiAtCXN0cnVjdCBsaXN0X2hlYWQgbm9kZTsK PiA+ID4gPiA+ICtzdHJ1Y3QgbXNtX3ZibGFua193b3JrIHsKPiA+ID4gPiA+ICsJc3RydWN0IHdv cmtfc3RydWN0IHdvcms7Cj4gPiA+ID4gPiAgCWludCBjcnRjX2lkOwo+ID4gPiA+ID4gIAlib29s IGVuYWJsZTsKPiA+ID4gPiA+ICsJc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSAqcHJpdjsKPiA+ID4g PiA+ICB9Owo+ID4gPiA+ID4KPiA+ID4gPiA+ICBzdGF0aWMgdm9pZCB2YmxhbmtfY3RybF93b3Jr ZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+ID4gPiA+ID4gIHsKPiA+ID4gPiA+IC0Jc3Ry dWN0IG1zbV92YmxhbmtfY3RybCAqdmJsX2N0cmwgPSBjb250YWluZXJfb2Yod29yaywKPiA+ID4g PiA+IC0JCQkJCQlzdHJ1Y3QgbXNtX3ZibGFua19jdHJsLAo+ID4gPiA+IHdvcmspOwo+ID4gPiA+ ID4gLQlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2ID0gY29udGFpbmVyX29mKHZibF9jdHJs LAo+ID4gPiA+ID4gLQkJCQkJc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSwKPiA+ID4gPiB2Ymxhbmtf Y3RybCk7Cj4gPiA+ID4gPiArCXN0cnVjdCBtc21fdmJsYW5rX3dvcmsgKnZibF93b3JrID0gY29u dGFpbmVyX29mKHdvcmssCj4gPiA+ID4gPiArCQkJCQkJc3RydWN0IG1zbV92Ymxhbmtfd29yaywK PiA+ID4gPiB3b3JrKTsKPiA+ID4gPiA+ICsJc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSAqcHJpdiA9 IHZibF93b3JrLT5wcml2Owo+ID4gPiA+ID4gIAlzdHJ1Y3QgbXNtX2ttcyAqa21zID0gcHJpdi0+ a21zOwo+ID4gPiA+ID4gLQlzdHJ1Y3QgdmJsYW5rX2V2ZW50ICp2YmxfZXYsICp0bXA7Cj4gPiA+ ID4gPiAtCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4gPiA+ID4gPiAtCj4gPiA+ID4gPiAtCXNwaW5f bG9ja19pcnFzYXZlKCZ2YmxfY3RybC0+bG9jaywgZmxhZ3MpOwo+ID4gPiA+ID4gLQlsaXN0X2Zv cl9lYWNoX2VudHJ5X3NhZmUodmJsX2V2LCB0bXAsICZ2YmxfY3RybC0+ZXZlbnRfbGlzdCwgbm9k ZSkKPiA+ID4gPiB7Cj4gPiA+ID4gPiAtCQlsaXN0X2RlbCgmdmJsX2V2LT5ub2RlKTsKPiA+ID4g PiA+IC0JCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnZibF9jdHJsLT5sb2NrLCBmbGFncyk7Cj4g PiA+ID4gPiAtCj4gPiA+ID4gPiAtCQlpZiAodmJsX2V2LT5lbmFibGUpCj4gPiA+ID4gPiAtCQkJ a21zLT5mdW5jcy0+ZW5hYmxlX3ZibGFuayhrbXMsCj4gPiA+ID4gPiAtCj4gPiA+ID4gcHJpdi0+ Y3J0Y3NbdmJsX2V2LT5jcnRjX2lkXSk7Cj4gPiA+ID4gPiAtCQllbHNlCj4gPiA+ID4gPiAtCQkJ a21zLT5mdW5jcy0+ZGlzYWJsZV92Ymxhbmsoa21zLAo+ID4gPiA+ID4gLQo+ID4gPiA+IHByaXYt PmNydGNzW3ZibF9ldi0+Y3J0Y19pZF0pOwo+ID4gPiA+ID4KPiA+ID4gPiA+IC0JCWtmcmVlKHZi bF9ldik7Cj4gPiA+ID4gPiAtCj4gPiA+ID4gPiAtCQlzcGluX2xvY2tfaXJxc2F2ZSgmdmJsX2N0 cmwtPmxvY2ssIGZsYWdzKTsKPiA+ID4gPiA+IC0JfQo+ID4gPiA+ID4gKwlpZiAodmJsX3dvcmst PmVuYWJsZSkKPiA+ID4gPiA+ICsJCWttcy0+ZnVuY3MtPmVuYWJsZV92Ymxhbmsoa21zLAo+ID4g PiA+IHByaXYtPmNydGNzW3ZibF93b3JrLT5jcnRjX2lkXSk7Cj4gPiA+ID4gPiArCWVsc2UKPiA+ ID4gPiA+ICsJCWttcy0+ZnVuY3MtPmRpc2FibGVfdmJsYW5rKGttcywKPiA+ID4gPiBwcml2LT5j cnRjc1t2Ymxfd29yay0+Y3J0Y19pZF0pOwo+ID4gPiA+ID4KPiA+ID4gPiA+IC0Jc3Bpbl91bmxv Y2tfaXJxcmVzdG9yZSgmdmJsX2N0cmwtPmxvY2ssIGZsYWdzKTsKPiA+ID4gPiA+ICsJa2ZyZWUo dmJsX3dvcmspOwo+ID4gPiA+ID4gIH0KPiA+ID4gPiA+Cj4gPiA+ID4gPiAgc3RhdGljIGludCB2 YmxhbmtfY3RybF9xdWV1ZV93b3JrKHN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXYsCj4gPiA+ ID4gPiAgCQkJCQlpbnQgY3J0Y19pZCwgYm9vbCBlbmFibGUpCj4gPiA+ID4gPiAgewo+ID4gPiA+ ID4gLQlzdHJ1Y3QgbXNtX3ZibGFua19jdHJsICp2YmxfY3RybCA9ICZwcml2LT52YmxhbmtfY3Ry bDsKPiA+ID4gPiA+IC0Jc3RydWN0IHZibGFua19ldmVudCAqdmJsX2V2Owo+ID4gPiA+ID4gLQl1 bnNpZ25lZCBsb25nIGZsYWdzOwo+ID4gPiA+ID4gKwlzdHJ1Y3QgbXNtX3ZibGFua193b3JrICp2 Ymxfd29yazsKPiA+ID4gPiA+Cj4gPiA+ID4gPiAtCXZibF9ldiA9IGt6YWxsb2Moc2l6ZW9mKCp2 YmxfZXYpLCBHRlBfQVRPTUlDKTsKPiA+ID4gPiA+IC0JaWYgKCF2YmxfZXYpCj4gPiA+ID4gPiAr CXZibF93b3JrID0ga3phbGxvYyhzaXplb2YoKnZibF93b3JrKSwgR0ZQX0FUT01JQyk7Cj4gPiA+ ID4gPiArCWlmICghdmJsX3dvcmspCj4gPiA+ID4gPiAgCQlyZXR1cm4gLUVOT01FTTsKPiA+ID4g PiA+Cj4gPiA+ID4gPiAtCXZibF9ldi0+Y3J0Y19pZCA9IGNydGNfaWQ7Cj4gPiA+ID4gPiAtCXZi bF9ldi0+ZW5hYmxlID0gZW5hYmxlOwo+ID4gPiA+ID4gKwlJTklUX1dPUksoJnZibF93b3JrLT53 b3JrLCB2YmxhbmtfY3RybF93b3JrZXIpOwo+ID4gPiA+ID4KPiA+ID4gPiA+IC0Jc3Bpbl9sb2Nr X2lycXNhdmUoJnZibF9jdHJsLT5sb2NrLCBmbGFncyk7Cj4gPiA+ID4gPiAtCWxpc3RfYWRkX3Rh aWwoJnZibF9ldi0+bm9kZSwgJnZibF9jdHJsLT5ldmVudF9saXN0KTsKPiA+ID4gPiA+IC0Jc3Bp bl91bmxvY2tfaXJxcmVzdG9yZSgmdmJsX2N0cmwtPmxvY2ssIGZsYWdzKTsKPiA+ID4gPiA+ICsJ dmJsX3dvcmstPmNydGNfaWQgPSBjcnRjX2lkOwo+ID4gPiA+ID4gKwl2Ymxfd29yay0+ZW5hYmxl ID0gZW5hYmxlOwo+ID4gPiA+ID4gKwl2Ymxfd29yay0+cHJpdiA9IHByaXY7Cj4gPiA+ID4gPgo+ ID4gPiA+ID4gLQlzY2hlZHVsZV93b3JrKCZ2YmxfY3RybC0+d29yayk7Cj4gPiA+ID4gPiArCXNj aGVkdWxlX3dvcmsoJnZibF93b3JrLT53b3JrKTsKPiA+ID4gPiA+Cj4gPiA+ID4gPiAgCXJldHVy biAwOwo+ID4gPiA+ID4gIH0KPiA+ID4gPiA+IEBAIC0yNjksMTQgKzI1MiwxMyBAQCBzdGF0aWMg aW50IG1zbV9kcm1fdW5pbml0KHN0cnVjdCBkZXZpY2UgKmRldikKPiA+ID4gPiA+ICAJc3RydWN0 IG1zbV9kcm1fcHJpdmF0ZSAqcHJpdiA9IGRkZXYtPmRldl9wcml2YXRlOwo+ID4gPiA+ID4gIAlz dHJ1Y3QgbXNtX2ttcyAqa21zID0gcHJpdi0+a21zOwo+ID4gPiA+ID4gIAlzdHJ1Y3QgbXNtX21k c3MgKm1kc3MgPSBwcml2LT5tZHNzOwo+ID4gPiA+ID4gLQlzdHJ1Y3QgbXNtX3ZibGFua19jdHJs ICp2YmxfY3RybCA9ICZwcml2LT52YmxhbmtfY3RybDsKPiA+ID4gPiA+IC0Jc3RydWN0IHZibGFu a19ldmVudCAqdmJsX2V2LCAqdG1wOwo+ID4gPiA+ID4gIAlpbnQgaTsKPiA+ID4gPiA+Cj4gPiA+ ID4gPiAgCS8qIFdlIG11c3QgY2FuY2VsIGFuZCBjbGVhbnVwIGFueSBwZW5kaW5nIHZibGFuayBl bmFibGUvZGlzYWJsZQo+ID4gPiA+ID4gIAkgKiB3b3JrIGJlZm9yZSBkcm1faXJxX3VuaW5zdGFs bCgpIHRvIGF2b2lkIHdvcmsgcmUtZW5hYmxpbmcgYW4KPiA+ID4gPiA+ICAJICogaXJxIGFmdGVy IHVuaW5zdGFsbCBoYXMgZGlzYWJsZWQgaXQuCj4gPiA+ID4gPiAgCSAqLwo+ID4gPiA+ID4gKwo+ ID4gPiA+ID4gIAltc21fZ2VtX3Nocmlua2VyX2NsZWFudXAoZGRldik7Cj4gPiA+ID4gPgo+ID4g PiA+ID4gIAlkcm1fa21zX2hlbHBlcl9wb2xsX2ZpbmkoZGRldik7Cj4gPiA+ID4gPiBAQCAtMjky LDEyICsyNzQsNiBAQCBzdGF0aWMgaW50IG1zbV9kcm1fdW5pbml0KHN0cnVjdCBkZXZpY2UgKmRl dikKPiA+ID4gPiA+ICAjZW5kaWYKPiA+ID4gPiA+ICAJZHJtX21vZGVfY29uZmlnX2NsZWFudXAo ZGRldik7Cj4gPiA+ID4gPgo+ID4gPiA+ID4gLQlmbHVzaF93b3JrKCZ2YmxfY3RybC0+d29yayk7 Cj4gPiA+ID4gPiAtCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZSh2YmxfZXYsIHRtcCwgJnZibF9j dHJsLT5ldmVudF9saXN0LCBub2RlKQo+ID4gPiA+IHsKPiA+ID4gPiA+IC0JCWxpc3RfZGVsKCZ2 YmxfZXYtPm5vZGUpOwo+ID4gPiA+ID4gLQkJa2ZyZWUodmJsX2V2KTsKPiA+ID4gPiA+IC0JfQo+ ID4gPiA+ID4gLQo+ID4gPiA+ID4gIAkvKiBjbGVhbiB1cCBldmVudCB3b3JrZXIgdGhyZWFkcyAq Lwo+ID4gPiA+ID4gIAlmb3IgKGkgPSAwOyBpIDwgcHJpdi0+bnVtX2NydGNzOyBpKyspIHsKPiA+ ID4gPiA+ICAJCWlmIChwcml2LT5ldmVudF90aHJlYWRbaV0udGhyZWFkKSB7Cj4gPiA+ID4gPiBA QCAtNDY5LDkgKzQ0NSw2IEBAIHN0YXRpYyBpbnQgbXNtX2RybV9pbml0KHN0cnVjdCBkZXZpY2Ug KmRldiwKPiA+IHN0cnVjdAo+ID4gPiA+IGRybV9kcml2ZXIgKmRydikKPiA+ID4gPiA+ICAJcHJp di0+d3EgPSBhbGxvY19vcmRlcmVkX3dvcmtxdWV1ZSgibXNtIiwgMCk7Cj4gPiA+ID4gPgo+ID4g PiA+ID4gIAlJTklUX0xJU1RfSEVBRCgmcHJpdi0+aW5hY3RpdmVfbGlzdCk7Cj4gPiA+ID4gPiAt CUlOSVRfTElTVF9IRUFEKCZwcml2LT52YmxhbmtfY3RybC5ldmVudF9saXN0KTsKPiA+ID4gPiA+ IC0JSU5JVF9XT1JLKCZwcml2LT52YmxhbmtfY3RybC53b3JrLCB2YmxhbmtfY3RybF93b3JrZXIp Owo+ID4gPiA+ID4gLQlzcGluX2xvY2tfaW5pdCgmcHJpdi0+dmJsYW5rX2N0cmwubG9jayk7Cj4g PiA+ID4gPgo+ID4gPiA+ID4gIAlkcm1fbW9kZV9jb25maWdfaW5pdChkZGV2KTsKPiA+ID4gPiA+ Cj4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmgKPiA+ ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5oCj4gPiA+ID4gPiBpbmRleCAwNWQz M2E3Li5kNGNiZGUyIDEwMDY0NAo+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9t c21fZHJ2LmgKPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5oCj4g PiA+ID4gPiBAQCAtNzcsMTIgKzc3LDYgQEAgZW51bSBtc21fbWRwX3BsYW5lX3Byb3BlcnR5IHsK PiA+ID4gPiA+ICAJUExBTkVfUFJPUF9NQVhfTlVNCj4gPiA+ID4gPiAgfTsKPiA+ID4gPiA+Cj4g PiA+ID4gPiAtc3RydWN0IG1zbV92YmxhbmtfY3RybCB7Cj4gPiA+ID4gPiAtCXN0cnVjdCB3b3Jr X3N0cnVjdCB3b3JrOwo+ID4gPiA+ID4gLQlzdHJ1Y3QgbGlzdF9oZWFkIGV2ZW50X2xpc3Q7Cj4g PiA+ID4gPiAtCXNwaW5sb2NrX3QgbG9jazsKPiA+ID4gPiA+IC19Owo+ID4gPiA+ID4gLQo+ID4g PiA+ID4gICNkZWZpbmUgTVNNX0dQVV9NQVhfUklOR1MgNAo+ID4gPiA+ID4gICNkZWZpbmUgTUFY X0hfVElMRVNfUEVSX0RJU1BMQVkgMgo+ID4gPiA+ID4KPiA+ID4gPiA+IEBAIC0yMjUsNyArMjE5 LDYgQEAgc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSB7Cj4gPiA+ID4gPiAgCXN0cnVjdCBub3RpZmll cl9ibG9jayB2bWFwX25vdGlmaWVyOwo+ID4gPiA+ID4gIAlzdHJ1Y3Qgc2hyaW5rZXIgc2hyaW5r ZXI7Cj4gPiA+ID4gPgo+ID4gPiA+ID4gLQlzdHJ1Y3QgbXNtX3ZibGFua19jdHJsIHZibGFua19j dHJsOwo+ID4gPiA+ID4gIAlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqcG1fc3RhdGU7Cj4gPiA+ ID4gPiAgfTsKPiA+ID4gPiA+Cj4gPiA+ID4gPiAtLQo+ID4gPiA+ID4gVGhlIFF1YWxjb21tIElu bm92YXRpb24gQ2VudGVyLCBJbmMuIGlzIGEgbWVtYmVyIG9mIHRoZSBDb2RlIEF1cm9yYQo+ID4g PiA+IEZvcnVtLAo+ID4gPiA+ID4gYSBMaW51eCBGb3VuZGF0aW9uIENvbGxhYm9yYXRpdmUgUHJv amVjdAo+ID4gPiA+ID4KPiA+ID4gPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCj4gPiA+ID4gPiBGcmVlZHJlbm8gbWFpbGluZyBsaXN0Cj4gPiA+ID4g PiBGcmVlZHJlbm9AbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiA+ID4gPiBodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWVkcmVubwo+ID4gPiAKPiA+ID4g LS0KPiA+ID4gSmV5a3VtYXIgUwo+IAo+IC0tIAo+IEpleWt1bWFyIFMKCi0tIApTZWFuIFBhdWws IFNvZnR3YXJlIEVuZ2luZWVyLCBHb29nbGUgLyBDaHJvbWl1bSBPUwpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpGcmVlZHJlbm8gbWFpbGluZyBsaXN0CkZy ZWVkcmVub0BsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9mcmVlZHJlbm8K