From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sharat Masetty Subject: Re: [PATCH] drm/scheduler: Add drm_sched_suspend/resume timeout functions Date: Thu, 15 Nov 2018 15:06:10 +0530 Message-ID: References: <1541684554-17115-1-git-send-email-smasetty@codeaurora.org> <75831be1-c6b1-80d7-d594-651712f05b00@amd.com> <4421f247-d90f-b2d1-0148-d2067a40fb09@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <4421f247-d90f-b2d1-0148-d2067a40fb09@amd.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: "Koenig, Christian" , "freedreno@lists.freedesktop.org" Cc: "linux-arm-msm@vger.kernel.org" , "dri-devel@lists.freedesktop.org" List-Id: linux-arm-msm@vger.kernel.org CgpPbiAxMS8xNS8yMDE4IDEyOjMzIEFNLCBLb2VuaWcsIENocmlzdGlhbiB3cm90ZToKPiBBbSAx NC4xMS4xOCB1bSAxODoyOSBzY2hyaWViIFNoYXJhdCBNYXNldHR5Ogo+Pgo+Pgo+PiBPbiAxMS84 LzIwMTggODoxMSBQTSwgS29lbmlnLCBDaHJpc3RpYW4gd3JvdGU6Cj4+PiBBbSAwOC4xMS4xOCB1 bSAxNDo0MiBzY2hyaWViIFNoYXJhdCBNYXNldHR5Ogo+Pj4+IEhpIENocmlzdGlhbiwKPj4+Pgo+ Pj4+IENhbiB5b3UgcGxlYXNlIHJldmlldyB0aGlzIHBhdGNoPyBJdCBpcyBhIGNvbnRpbnVhdGlv biBvZiB0aGUKPj4+PiBkaXNjdXNzaW9uIGF0IFsxXS4KPj4+PiBBdCBmaXJzdCBJIHdhcyB0aGlu a2luZyBvZiB1c2luZyBhIGNhbmNlbCBmb3Igc3VzcGVuZCBpbnN0ZWFkIG9mIGEKPj4+PiBtb2Qo dG8gYW4KPj4+PiBhcmJpdHJhcmlseSBsYXJnZSB2YWx1ZSksIGJ1dCBJIGNvdWxkbid0IGdldCBp dCB0byBmaXQgaW4gYXMgSSBoYXZlCj4+Pj4gYW4gYWRkaXRpb25hbAo+Pj4+IGNvbnN0cmFpbnQg b2YgYmVpbmcgYWJsZSB0byBjYWxsIHRoZXNlIGZ1bmN0aW9ucyBmcm9tIGFuIElSUSBjb250ZXh0 Lgo+Pj4+Cj4+Pj4gVGhlc2UgbmV3IGZ1bmN0aW9ucyByYWNlIHdpdGggb3RoZXIgY29udGV4dHMs IHByaW1hcmlseSBmaW5pc2hfam9iKCksCj4+Pj4gdGltZWRvdXRfam9iKCkgYW5kIHJlY292ZXJ5 KCksIGJ1dCBJIGRpZCBnbyB0aHJvdWdoIHRoZSBwb3NzaWJsZQo+Pj4+IHJhY2VzIGJldHdlZW4K Pj4+PiB0aGVzZShJIHRoaW5rKS4gUGxlYXNlIGxldCBtZSBrbm93IHdoYXQgeW91IHRoaW5rIG9m IHRoaXM/IEkgaGF2ZQo+Pj4+IG5vdCB0ZXN0ZWQKPj4+PiB0aGlzIHlldCBhbmQgaWYgdGhpcyBp cyBzb21ldGhpbmcgaW4gdGhlIHJpZ2h0IGRpcmVjdGlvbiwgSSB3aWxsIHB1dAo+Pj4+IHRoaXMK Pj4+PiB0aHJvdWdoIG15IHRlc3RpbmcgZHJpbGwgYW5kIHBvbGlzaCBpdC4KPj4+Pgo+Pj4+IElN TyBJIHRoaW5rIEkgcHJlZmVyIHRoZSBjYWxsYmFjayBhcHByb2FjaCBhcyBpdCBhcHBlYXJzIHRv IGJlCj4+Pj4gc2ltcGxlLCBsZXNzCj4+Pj4gZXJyb3IgcHJvbmUgZm9yIGJvdGggdGhlIHNjaGVk dWxlciBhbmQgdGhlIGRyaXZlcnMuCj4+Pgo+Pj4gV2VsbCBJIGFncmVlIHRoYXQgdGhpcyBpcyB3 YXkgdG8gY29tcGxpY2F0ZWQgYW5kIGxvb2tzIHJhY3kgdG8gbWUgYXMKPj4+IHdlbGwuIEJ1dCB0 aGlzIGlzIGJlY2F1c2UgeW91IG1vdmVkIGF3YXkgZnJvbSBteSBpbml0aWFsIHN1Z2dlc3Rpb24u Cj4+Pgo+Pj4gU28gaGVyZSBpcyBvbmNlIG1vcmUgaG93IHRvIGRvIGl0IHdpdGhvdXQgYW55IGFk ZGl0aW9uYWwgbG9ja3Mgb3IgcmFjZXM6Cj4+Pgo+Pj4gLyoqCj4+PiAgwqAgwqAqIGRybV9zY2hl ZF9zdXNwZW5kX3RpbWVvdXQgLSBzdXNwZW5kIHRpbWVvdXQgZm9yIHJlc2V0IHdvcmtlcgo+Pj4g IMKgIMKgKgo+Pj4gIMKgIMKgKiBAc2NoZWQ6IHNjaGVkdWxlciBpbnN0YW5jZSBmb3Igd2hpY2gg dG8gc3VzcGVuZCB0aGUgdGltZW91dAo+Pj4gIMKgIMKgKgo+Pj4gIMKgIMKgKiBTdXNwZW5kIHRo ZSBkZWxheWVkIHdvcmsgdGltZW91dCBmb3IgdGhlIHNjaGVkdWxlci4gTm90ZSB0aGF0Cj4+PiAg wqAgwqAqIHRoaXMgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZCBmcm9tIGFuIElSUSBjb250ZXh0LiBJ dCByZXR1cm5zIHRoZQo+Pj4gdGltZW91dCByZW1haW5pbmcuCj4+PiAgwqAgwqAqLwo+Pj4gdW5z aWduZWQgbG9uZyBkcm1fc2NoZWRfc3VzcGVuZF90aW1lb3V0KHN0cnVjdCBkcm1fZ3B1X3NjaGVk dWxlciAqc2NoZWQpCj4+PiB7Cj4+Pgo+Pj4gIMKgwqDCoMKgdW5zaWduZWQgbG9uZyB0aW1lb3V0 LCBjdXJyZW50ID0gamlmZmllcwo+Pj4KPj4+ICDCoMKgwqDCoHRpbWVvdXQgPSBzY2hlZC0+d29y a190ZHIudGltZXIuZXhwaXJlczsKPj4+Cj4+PiAgwqDCoMKgwqAvKgo+Pj4gIMKgwqDCoMKgICog U2V0IHRpbWVvdXQgdG8gYW4gYXJiaXRyYXJpbHkgbGFyZ2UgdmFsdWUsIHRoaXMgYWxzbyBwcmV2 ZW50cwo+Pj4gdGhlIHRpbWVyIHRvIGJlCj4+PiAgwqDCoMKgwqAgKiBzdGFydGVkIHdoZW4gbmV3 IHN1Ym1pc3Npb25zIGFycml2ZS4KPj4+ICDCoMKgwqDCoCAqLwo+Pj4gIMKgwqDCoMKgaWYgKG1v ZF9kZWxheWVkX3dvcmsoc3lzdGVtX3dxLCAmc2NoZWQtPndvcmtfdGRyLCBzY2hlZC0+dGltZW91 dAo+Pj4gKiAxMCkgJiYKPj4+ICDCoMKgwqDCoMKgwqDCoCB0aW1lX2FmdGVyKHRpbWVvdXQsIGN1 cnJlbnQpKQo+Pj4gIMKgwqDCoMKgwqDCoMKgIHJldHVybiB0aW1lb3V0IC0gY3VycmVudDsKPj4+ ICDCoMKgwqDCoGVsc2UKPj4+ICDCoMKgwqDCoMKgwqDCoCByZXR1cm4gc2NoZWQtPnRpbWVvdXQ7 Cj4+PiB9Cj4+Pgo+Pj4gLyoqCj4+PiAgwqDCoCAqIGRybV9zY2hlZF9yZXN1bWVfdGltZW91dCAt IHJlc3VtZSB0aW1lb3V0IGZvciByZXNldCB3b3JrZXIKPj4+ICDCoMKgICoKPj4+ICDCoMKgICog QHNjaGVkOiBzY2hlZHVsZXIgaW5zdGFuY2UgZm9yIHdoaWNoIHRvIHJlc3VtZSB0aGUgdGltZW91 dAo+Pj4gIMKgwqAgKiBAcmVtYWluaW5nOiByZW1haW5pbmcgdGltZW91dAo+Pj4gIMKgIMKgKgo+ Pj4gIMKgwqAgKiBSZXN1bWUgdGhlIGRlbGF5ZWQgd29yayB0aW1lb3V0IGZvciB0aGUgc2NoZWR1 bGVyLiBOb3RlIHRoYXQKPj4+ICDCoMKgICogdGhpcyBmdW5jdGlvbiBjYW4gYmUgY2FsbGVkIGZy b20gYW4gSVJRIGNvbnRleHQuCj4+PiAgwqDCoCAqLwo+Pj4gdm9pZCBkcm1fc2NoZWRfcmVzdW1l X3RpbWVvdXQoc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCwKPj4+IHVuc2lnbmVkIGxv bmcgcmVtYWluaW5nKQo+Pj4gewo+Pj4gIMKgwqDCoMKgaWYgKGxpc3RfZW1wdHkoJnNjaGVkLT5y aW5nX21pcnJvcl9saXN0KSkKPj4+ICDCoMKgwqDCoMKgwqDCoCBjYW5jZWxfZGVsYXllZF93b3Jr KCZzY2hlZC0+d29ya190ZHIpOwo+Pj4gIMKgwqDCoMKgZWxzZQo+Pj4gIMKgwqDCoMKgwqDCoMKg IG1vZF9kZWxheWVkX3dvcmsoc3lzdGVtX3dxLCAmc2NoZWQtPndvcmtfdGRyLCByZW1haW5pbmcp Owo+Pj4gfQo+PiBIaSBDaHJpc3RpYW4sCj4+Cj4+IFRoYW5rIHlvdSBmb3IgdGhlIHN1Z2dlc3Rp b25zIC0gSSB3YXMgYWJsZSB0byB0cnkgdGhpcyBvdXQgdGhpcyB3ZWVrLgo+PiBJdCB3b3JrcyBm b3IgdGhlIG1vc3QgcGFydCwgYnV0IHRoZXJlIGFyZSBhIGNvdXBsZSBvZiByYWNlcyB3aGljaCBu ZWVkCj4+IGZ1cnRoZXIgY29uc2lkZXJhdGlvbnMuCj4+Cj4+IDEpIFRoZSBkcm1fc2NoZWRfcmVz dW1lX3RpbWVvdXQoKSBjYW4gcmFjZSB3aXRoIGJvdGggdGhlCj4+IGRybV9zY2hlZF9qb2JfZmlu aXNoKCkgYW5kIGFsc28gbmV3IGpvYiBzdWJtaXNzaW9ucy4gSW4gdGhlIGRyaXZlciB0aGUKPj4g am9iIHN1Ym1pc3Npb24gd2hpY2ggdHJpZ2dlcmVkIHRoZSBwcmVlbXB0aW9uIGNhbiBiZSBjb21w bGV0ZSBhcyBzb29uCj4+IGFzIHRoZSBzd2l0Y2ggaGFwcGVucyBhbmQgaXQgaXMgcXVpdGUgcG9z c2libGUgdGhhdCBJIGdldCB0aGUKPj4gcHJlZW1wdGlvbiBjb21wbGV0ZSBhbmQgdGhlIGpvYiBk b25lIGludGVycnVwdCBhdCB0aGUgc2FtZSB0aW1lLiBTbwo+PiB0aGlzIG1lYW5zIHRoYXQgZHJt X3NjaGVkX3Jlc3VtZV90aW1lb3V0KCkgaW4gSVJRIGNvbnRleHQgY2FuIHJhY2UKPj4gd2l0aCBk cm1fc2NoZWRfam9iX2ZpbmlzaCgpIGluIHdvcmtlciB0aHJlYWQgY29udGV4dCBvbiBhbm90aGVy IENQVS4KPj4gQWxzbyBpbiBwYXJhbGxlbCBuZXcgam9icyBjYW4gYmUgc3VibWl0dGVkLCB3aGlj aCB3aWxsIGFsc28gdXBkYXRlIHRoZQo+PiByaW5nIG1pcnJvciBsaXN0IC4gVGhlc2UgcmFjZXMg Y2FuIGJlIGFkZHJlc3NlZCBob3dldmVyIHdpdGggbG9ja2luZwo+PiB0aGUgam9iX2xpc3RfbG9j ayBpbnNpZGUgdGhlIGRybV9zY2hlZF9yZXN1bWVfdGltZW91dCgpLgo+IAo+IFllYWggSSBrbm93 LCBidXQgSSBjb25zaWRlcmVkIHRoaXMgcmFjZSBoYXJtbGVzcy4gT2ssIHRoaW5raW5nIG1vcmUK PiBhYm91dCB0aGF0IEkgcmVhbGl6ZWQgdGhhdCB0aGlzIHByb2JhYmx5IG1lYW5zIHRoYXQgd2Ug Y291bGQgdGltZW91dCBhCj4gam9iIHdheSB0byBlYXJseS4KPiAKPiBIb3cgYWJvdXQgY2FuY2Vs aW5nIHRoZSB0aW1lciBmaXJzdCBhbmQgdGhlbiB1c2luZyBtb2RfZGVsYXllZF93b3JrIHRvCj4g c2V0IGl0IHRvIHRoZSByZW1haW5pbmcgamlmZmllcyBpZiB0aGVyZSBpcyBhIGpvYiBydW5uaW5n PwpEbyB5b3UgbWVhbiBzb21ldGhpbmcgbGlrZSB0aGlzPwoKdm9pZCBkcm1fc2NoZWRfcmVzdW1l X3RpbWVvdXQoc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCwKICAgICAgICAgICAgICAg ICB1bnNpZ25lZCBsb25nIHJlbWFpbmluZykKewogICAgICAgICBjYW5jZWxfZGVsYXllZF93b3Jr KCZzY2hlZC0+d29ya190ZHIpOwoKICAgICAgICAgaWYgKCFsaXN0X2VtcHR5KCZzY2hlZC0+cmlu Z19taXJyb3JfbGlzdCkpCiAgICAgICAgICAgICAgICAgbW9kX2RlbGF5ZWRfd29yayhzeXN0ZW1f d3EsICZzY2hlZC0+d29ya190ZHIsIHJlbWFpbmluZyk7Cn0KCkkgdGhpbmsgdGhhdCB0aGUgYWJv dmUgY2FuIHN0aWxsIGJlIHJhY3kgYW5kIEknZCBwcmVmZXIgbG9ja2luZyB3aXRoIHRoZSAKam9i X2xpc3RfbG9jay4uLgo+IAo+IE90aGVyd2lzZSBhcyB5b3Ugbm90ZWQgYXMgd2VsbCB0aGUgYWx0 ZXJuYXRpdmUgaXMgcmVhbGx5IHRvIG1ha2UgdGhlCj4gam9iX2xpc3RfbG9jayBpcnEgc2FmZS4K PiAKPj4KPj4gMikgVGhpcyBvbmUgaXMgYSBsaXR0bGUgbW9yZSB0cmlja3kgLSBJbiB0aGUgZHJp dmVyIEkgc3RhcnQgb2ZmIHdpdGgKPj4gYWxsIHRoZSB0aW1lb3V0cyBzdXNwZW5kZWQoZXhjZXB0 IHRoZSBvbmUgZm9yIHRoZSBkZWZhdWx0IHJpbmcpLCB0aGVuCj4+IG9uIGV2ZXJ5IHByZWVtcHRp b24gaW50ZXJydXB0IEkgc3VzcGVuZCB0aGUgb3V0Z29pbmcgcmluZyBhbmQgcmVzdW1lCj4+IHRo ZSBpbmNvbWluZyByaW5nLiBJIGNhbiBvbmx5IHJlc3VtZSBpZiBpdCB3YXMgcHJldmlvdXNseSBz dXNwZW5kZWQuCj4+IFRoaXMgaXMgaG93IGl0IGlzIHNldCB1cC4gVGhlIHByb2JsZW0gdGhhdCBi ZWNvbWVzIGFwcGFyZW50IHdpdGggdGhpcwo+PiBhcHByb2FjaCBpcyB0aGF0IGZvciB0aGUgc3Vz cGVuZGVkIHJpbmdzIHRoaXMgYXJiaXRyYXJpbHkgbGFyZ2UKPj4gdGltZW91dCBjYW4gZmlyZSBh dCBzb21lIHBvaW50KGJlY2F1c2Ugb2Ygbm8gd29yaykgYW5kIGp1c3QgYmVmb3JlCj4+IGRybV9z Y2hlZF90aW1lZG91dF9qb2IoKSBydW5zIGEgbmV3IGpvYiBjYW4gYmUgaW5zZXJ0ZWQgaW50byB0 aGUKPj4gbWlycm9yIGxpc3QuIFNvIGluIHRoaXMgY2FzZSB3ZSBnZXQgYW4gaW5jb3JyZWN0IHRp bWVvdXQuCj4+Cj4+IFdoYXQgYXJlIHlvdXIgdGhvdWdodHMgb24gdXNpbmcgY2FuY2VsX2RlbGF5 ZWRfd29yaygpIGluc3RlYWQgb2YgbW9kCj4+IGluIHN1c3BlbmRfdGltZW91dC4gWWVzIHdlIHdp bGwgbG9zZSB0aGUgYmVuZWZpdHMgb2YgbW9kLCBidXQgd2UKPj4gc2hvdWxkIGJlIGFibGUgdG8g c3luY2hyb25pemUgZHJtX3NjaGVkX3N1c3BlbmRfdGltZW91dCgpIGFuZAo+PiBkcm1fc2NoZWRf c3RhcnRfdGltZW91dCgpIHdpdGggc29tZSBiYXNpYyBzdGF0ZS4gSSBoYXZlIG5vdCB0aG91Z2h0 Cj4+IHRoaXMgY29tcGxldGVseSB0aHJvdWdoIHNvIEkgbWF5IGJlIG1pc3Npbmcgc29tZXRoaW5n IGhlcmUuCj4gCj4gU291bmRzIHNpbXBseSBsaWtlIHlvdXIgYXJiaXRyYXJ5IGxhcmdlIHRpbWVv dXQgaXMgbm90IGxhcmdlIGVub3VnaCBvcgo+IGRvIEkgbWlzcyB0aGUgcHJvYmxlbSBoZXJlPwo+ IAo+IEkganVzdCBzdWdnZXN0ZWQgcmVndWxhciB0aW1lb3V0KjEwIGJlY2F1c2UgYXQgbGVhc3Qg b24gb3VyIGhhcmR3YXJlIHdlCj4gc3RpbGwgd2FudCB0byBoYXZlIHNvbWUgdGltZW91dCBldmVu IGlmIHRoZSByaW5nIGlzIHByZWVtcHRlZCwgYnV0IHlvdQo+IGNvdWxkIGFsc28gdXNlIE1BWF9T Q0hFRFVMRV9USU1FT1VUIGFzIHdlbGwuCk9rYXksIHllYWggdXNpbmcgTUFYX1NDSEVEVUxFX1RJ TUVPVVQgaXMgYSBnb29kIGlkZWEuCgpJIHRoaW5rIEkgd2lsbCBjb252ZXJnZSBvbiB0aGlzIGJ5 IGFkZGluZyB0aGUgam9iX2xpc3RfbG9jayB0byByZXN1bWUgCmFuZCB1c2luZyBNQVhfU0NIRURV TEVfVElNRU9VVCBmb3IgbW9kX2RlbGF5ZWRfd29yaygpIGluIApkcm1fc2NoZWRfc3VzcGVuZF90 aW1lb3V0KCkuIEkgd2lsbCB0cnkgdGhpcyBvdXQuCgpTaGFyYXQKPiAKPiBDaHJpc3RpYW4uCj4g Cj4+Cj4+IFBsZWFzZSBzaGFyZSB5b3VyIHRob3VnaHRzIG9uIHRoaXMKPj4KPj4gVGhhbmsgeW91 Cj4+Cj4+IFNoYXJhdAo+Pj4KPj4+Cj4+PiBSZWdhcmRzLAo+Pj4gQ2hyaXN0aWFuLgo+Pj4KPj4+ Pgo+Pj4+IFsxXcKgIGh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9wYXRjaC8yNTk5 MTQvCj4+Pj4KPj4+PiBTaWduZWQtb2ZmLWJ5OiBTaGFyYXQgTWFzZXR0eSA8c21hc2V0dHlAY29k ZWF1cm9yYS5vcmc+Cj4+Pj4gLS0tCj4+Pj4gIMKgwqAgZHJpdmVycy9ncHUvZHJtL3NjaGVkdWxl ci9zY2hlZF9tYWluLmMgfCA4MQo+Pj4+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0KPj4+PiAgwqDCoCBpbmNsdWRlL2RybS9ncHVfc2NoZWR1bGVyLmjCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIHzCoCA1ICsrKwo+Pj4+ICDCoMKgIDIgZmlsZXMgY2hhbmdlZCwgODUgaW5zZXJ0aW9u cygrKSwgMSBkZWxldGlvbigtKQo+Pj4+Cj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9zY2hlZHVsZXIvc2NoZWRfbWFpbi5jCj4+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vc2NoZWR1bGVy L3NjaGVkX21haW4uYwo+Pj4+IGluZGV4IGM5OTNkMTAuLjk2NDU3ODkgMTAwNjQ0Cj4+Pj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL3NjaGVkdWxlci9zY2hlZF9tYWluLmMKPj4+PiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vc2NoZWR1bGVyL3NjaGVkX21haW4uYwo+Pj4+IEBAIC0xOTEsMTEgKzE5MSw4 NCBAQCBib29sIGRybV9zY2hlZF9kZXBlbmRlbmN5X29wdGltaXplZChzdHJ1Y3QKPj4+PiBkbWFf ZmVuY2UqIGZlbmNlLAo+Pj4+ICDCoMKgwqAgKi8KPj4+PiAgwqDCoCBzdGF0aWMgdm9pZCBkcm1f c2NoZWRfc3RhcnRfdGltZW91dChzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIgKnNjaGVkKQo+Pj4+ ICDCoMKgIHsKPj4+PiArwqDCoMKgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4+Pj4gKwo+Pj4+ICvC oMKgwqAgc3Bpbl9sb2NrX2lycXNhdmUoJnNjaGVkLT50ZHJfc3VzcGVuZF9sb2NrLCBmbGFncyk7 Cj4+Pj4gKwo+Pj4+ICvCoMKgwqAgc2NoZWQtPnRpbWVvdXRfcmVtYWluaW5nID0gc2NoZWQtPnRp bWVvdXQ7Cj4+Pj4gKwo+Pj4+ICDCoMKgwqDCoMKgwqAgaWYgKHNjaGVkLT50aW1lb3V0ICE9IE1B WF9TQ0hFRFVMRV9USU1FT1VUICYmCj4+Pj4gLcKgwqDCoMKgwqDCoMKgICFsaXN0X2VtcHR5KCZz Y2hlZC0+cmluZ19taXJyb3JfbGlzdCkpCj4+Pj4gK8KgwqDCoMKgwqDCoMKgICFsaXN0X2VtcHR5 KCZzY2hlZC0+cmluZ19taXJyb3JfbGlzdCkgJiYKPj4+PiAhc2NoZWQtPndvcmtfdGRyX3N1c3Bl bmRlZCkKPj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2NoZWR1bGVfZGVsYXllZF93b3JrKCZz Y2hlZC0+d29ya190ZHIsIHNjaGVkLT50aW1lb3V0KTsKPj4+PiArCj4+Pj4gK8KgwqDCoCBzcGlu X3VubG9ja19pcnFyZXN0b3JlKCZzY2hlZC0+dGRyX3N1c3BlbmRfbG9jaywgZmxhZ3MpOwo+Pj4+ ICDCoMKgIH0KPj4+Pgo+Pj4+ICsvKioKPj4+PiArICogZHJtX3NjaGVkX3N1c3BlbmRfdGltZW91 dCAtIHN1c3BlbmQgdGltZW91dCBmb3IgcmVzZXQgd29ya2VyCj4+Pj4gKyAqCj4+Pj4gKyAqIEBz Y2hlZDogc2NoZWR1bGVyIGluc3RhbmNlIGZvciB3aGljaCB0byBzdXNwZW5kIHRoZSB0aW1lb3V0 Cj4+Pj4gKyAqCj4+Pj4gKyAqIFN1c3BlbmQgdGhlIGRlbGF5ZWQgd29yayB0aW1lb3V0IGZvciB0 aGUgc2NoZWR1bGVyLiBOb3RlIHRoYXQKPj4+PiArICogdGhpcyBmdW5jdGlvbiBjYW4gYmUgY2Fs bGVkIGZyb20gYW4gSVJRIGNvbnRleHQuCj4+Pj4gKyAqLwo+Pj4+ICt2b2lkIGRybV9zY2hlZF9z dXNwZW5kX3RpbWVvdXQoc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCkKPj4+PiArewo+ Pj4+ICvCoMKgwqAgdW5zaWduZWQgbG9uZyBmbGFncywgdGltZW91dDsKPj4+PiArCj4+Pj4gK8Kg wqDCoCBzcGluX2xvY2tfaXJxc2F2ZSgmc2NoZWQtPnRkcl9zdXNwZW5kX2xvY2ssIGZsYWdzKTsK Pj4+PiArCj4+Pj4gK8KgwqDCoCBpZiAoc2NoZWQtPndvcmtfdGRyX3N1c3BlbmRlZCB8fAo+Pj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNjaGVkLT50aW1lb3V0ID09IE1BWF9TQ0hFRFVMRV9U SU1FT1VUIHx8Cj4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbGlzdF9lbXB0eSgmc2NoZWQt PnJpbmdfbWlycm9yX2xpc3QpKQo+Pj4+ICvCoMKgwqDCoMKgwqDCoCBnb3RvIGRvbmU7Cj4+Pj4g Kwo+Pj4+ICvCoMKgwqAgdGltZW91dCA9IHNjaGVkLT53b3JrX3Rkci50aW1lci5leHBpcmVzOwo+ Pj4+ICsKPj4+PiArwqDCoMKgIC8qCj4+Pj4gK8KgwqDCoMKgICogUmVzZXQgdGltZW91dCB0byBh biBhcmJpdHJhcmlseSBsYXJnZSB2YWx1ZQo+Pj4+ICvCoMKgwqDCoCAqLwo+Pj4+ICvCoMKgwqAg bW9kX2RlbGF5ZWRfd29yayhzeXN0ZW1fd3EsICZzY2hlZC0+d29ya190ZHIsIHNjaGVkLT50aW1l b3V0ICoKPj4+PiAxMCk7Cj4+Pj4gKwo+Pj4+ICvCoMKgwqAgdGltZW91dCAtPSBqaWZmaWVzOwo+ Pj4+ICsKPj4+PiArwqDCoMKgIC8qIEZJWE1FOiBDYW4gamlmZmllcyBiZSBhZnRlciB0aW1lb3V0 PyAqLwo+Pj4+ICvCoMKgwqAgc2NoZWQtPnRpbWVvdXRfcmVtYWluaW5nID0gdGltZV9hZnRlcihq aWZmaWVzLCB0aW1lb3V0KT8gMDoKPj4+PiB0aW1lb3V0Owo+Pj4+ICvCoMKgwqAgc2NoZWQtPndv cmtfdGRyX3N1c3BlbmRlZCA9IHRydWU7Cj4+Pj4gKwo+Pj4+ICtkb25lOgo+Pj4+ICvCoMKgwqAg c3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmc2NoZWQtPnRkcl9zdXNwZW5kX2xvY2ssIGZsYWdzKTsK Pj4+PiArfQo+Pj4+ICtFWFBPUlRfU1lNQk9MKGRybV9zY2hlZF9zdXNwZW5kX3RpbWVvdXQpOwo+ Pj4+ICsKPj4+PiArLyoqCj4+Pj4gKyAqIGRybV9zY2hlZF9yZXN1bWVfdGltZW91dCAtIHJlc3Vt ZSB0aW1lb3V0IGZvciByZXNldCB3b3JrZXIKPj4+PiArICoKPj4+PiArICogQHNjaGVkOiBzY2hl ZHVsZXIgaW5zdGFuY2UgZm9yIHdoaWNoIHRvIHJlc3VtZSB0aGUgdGltZW91dAo+Pj4+ICsgKgo+ Pj4+ICsgKiBSZXN1bWUgdGhlIGRlbGF5ZWQgd29yayB0aW1lb3V0IGZvciB0aGUgc2NoZWR1bGVy LiBOb3RlIHRoYXQKPj4+PiArICogdGhpcyBmdW5jdGlvbiBjYW4gYmUgY2FsbGVkIGZyb20gYW4g SVJRIGNvbnRleHQuCj4+Pj4gKyAqLwo+Pj4+ICt2b2lkIGRybV9zY2hlZF9yZXN1bWVfdGltZW91 dChzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIgKnNjaGVkKQo+Pj4+ICt7Cj4+Pj4gK8KgwqDCoCB1 bnNpZ25lZCBsb25nIGZsYWdzOwo+Pj4+ICsKPj4+PiArwqDCoMKgIHNwaW5fbG9ja19pcnFzYXZl KCZzY2hlZC0+dGRyX3N1c3BlbmRfbG9jaywgZmxhZ3MpOwo+Pj4+ICsKPj4+PiArwqDCoMKgIGlm ICghc2NoZWQtPndvcmtfdGRyX3N1c3BlbmRlZCB8fAo+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHNjaGVkLT50aW1lb3V0ID09IE1BWF9TQ0hFRFVMRV9USU1FT1VUKSB7Cj4+Pj4gKyBzcGlu X3VubG9ja19pcnFyZXN0b3JlKCZzY2hlZC0+dGRyX3N1c3BlbmRfbG9jaywgZmxhZ3MpOwo+Pj4+ ICvCoMKgwqDCoMKgwqDCoCByZXR1cm47Cj4+Pj4gK8KgwqDCoCB9Cj4+Pj4gKwo+Pj4+ICvCoMKg wqAgbW9kX2RlbGF5ZWRfd29yayhzeXN0ZW1fd3EsICZzY2hlZC0+d29ya190ZHIsCj4+Pj4gc2No ZWQtPnRpbWVvdXRfcmVtYWluaW5nKTsKPj4+PiArCj4+Pj4gK8KgwqDCoCBzY2hlZC0+d29ya190 ZHJfc3VzcGVuZGVkID0gZmFsc2U7Cj4+Pj4gKwo+Pj4+ICvCoMKgwqAgc3Bpbl91bmxvY2tfaXJx cmVzdG9yZSgmc2NoZWQtPnRkcl9zdXNwZW5kX2xvY2ssIGZsYWdzKTsKPj4+PiArfQo+Pj4+ICtF WFBPUlRfU1lNQk9MKGRybV9zY2hlZF9yZXN1bWVfdGltZW91dCk7Cj4+Pj4gKwo+Pj4+ICDCoMKg IC8qIGpvYl9maW5pc2ggaXMgY2FsbGVkIGFmdGVyIGh3IGZlbmNlIHNpZ25hbGVkCj4+Pj4gIMKg wqDCoCAqLwo+Pj4+ICDCoMKgIHN0YXRpYyB2b2lkIGRybV9zY2hlZF9qb2JfZmluaXNoKHN0cnVj dCB3b3JrX3N0cnVjdCAqd29yaykKPj4+PiBAQCAtMzQ4LDYgKzQyMSwxMSBAQCB2b2lkIGRybV9z Y2hlZF9qb2JfcmVjb3Zlcnkoc3RydWN0Cj4+Pj4gZHJtX2dwdV9zY2hlZHVsZXIgKnNjaGVkKQo+ Pj4+ICDCoMKgwqDCoMKgwqAgc3RydWN0IGRybV9zY2hlZF9qb2IgKnNfam9iLCAqdG1wOwo+Pj4+ ICDCoMKgwqDCoMKgwqAgYm9vbCBmb3VuZF9ndWlsdHkgPSBmYWxzZTsKPj4+PiAgwqDCoMKgwqDC oMKgIGludCByOwo+Pj4+ICvCoMKgwqAgdW5zaWduZWQgbG9uZyBmbGFnczsKPj4+PiArCj4+Pj4g K8KgwqDCoCBzcGluX2xvY2tfaXJxc2F2ZSgmc2NoZWQtPnRkcl9zdXNwZW5kX2xvY2ssIGZsYWdz KTsKPj4+PiArwqDCoMKgIHNjaGVkLT53b3JrX3Rkcl9zdXNwZW5kZWQgPSBmYWxzZTsKPj4+PiAr wqDCoMKgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnNjaGVkLT50ZHJfc3VzcGVuZF9sb2NrLCBm bGFncyk7Cj4+Pj4KPj4+PiAgwqDCoMKgwqDCoMKgIHNwaW5fbG9jaygmc2NoZWQtPmpvYl9saXN0 X2xvY2spOwo+Pj4+ICDCoMKgwqDCoMKgwqAgbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHNfam9i LCB0bXAsCj4+Pj4gJnNjaGVkLT5yaW5nX21pcnJvcl9saXN0LCBub2RlKSB7Cj4+Pj4gQEAgLTYw Nyw2ICs2ODUsNyBAQCBpbnQgZHJtX3NjaGVkX2luaXQoc3RydWN0IGRybV9ncHVfc2NoZWR1bGVy ICpzY2hlZCwKPj4+PiAgwqDCoMKgwqDCoMKgIGluaXRfd2FpdHF1ZXVlX2hlYWQoJnNjaGVkLT5q b2Jfc2NoZWR1bGVkKTsKPj4+PiAgwqDCoMKgwqDCoMKgIElOSVRfTElTVF9IRUFEKCZzY2hlZC0+ cmluZ19taXJyb3JfbGlzdCk7Cj4+Pj4gIMKgwqDCoMKgwqDCoCBzcGluX2xvY2tfaW5pdCgmc2No ZWQtPmpvYl9saXN0X2xvY2spOwo+Pj4+ICvCoMKgwqAgc3Bpbl9sb2NrX2luaXQoJnNjaGVkLT50 ZHJfc3VzcGVuZF9sb2NrKTsKPj4+PiAgwqDCoMKgwqDCoMKgIGF0b21pY19zZXQoJnNjaGVkLT5o d19ycV9jb3VudCwgMCk7Cj4+Pj4gIMKgwqDCoMKgwqDCoCBJTklUX0RFTEFZRURfV09SSygmc2No ZWQtPndvcmtfdGRyLCBkcm1fc2NoZWRfam9iX3RpbWVkb3V0KTsKPj4+PiAgwqDCoMKgwqDCoMKg IGF0b21pY19zZXQoJnNjaGVkLT5udW1fam9icywgMCk7Cj4+Pj4gZGlmZiAtLWdpdCBhL2luY2x1 ZGUvZHJtL2dwdV9zY2hlZHVsZXIuaCBiL2luY2x1ZGUvZHJtL2dwdV9zY2hlZHVsZXIuaAo+Pj4+ IGluZGV4IGQ4N2IyNjguLjVkMzk1NzIgMTAwNjQ0Cj4+Pj4gLS0tIGEvaW5jbHVkZS9kcm0vZ3B1 X3NjaGVkdWxlci5oCj4+Pj4gKysrIGIvaW5jbHVkZS9kcm0vZ3B1X3NjaGVkdWxlci5oCj4+Pj4g QEAgLTI3OCw2ICsyNzgsOSBAQCBzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIgewo+Pj4+ICDCoMKg wqDCoMKgwqAgYXRvbWljX3TCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGh3X3JxX2NvdW50Owo+Pj4+ ICDCoMKgwqDCoMKgwqAgYXRvbWljNjRfdMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgam9iX2lkX2Nv dW50Owo+Pj4+ICDCoMKgwqDCoMKgwqAgc3RydWN0IGRlbGF5ZWRfd29ya8KgwqDCoMKgwqDCoMKg IHdvcmtfdGRyOwo+Pj4+ICvCoMKgwqAgdW5zaWduZWQgbG9uZ8KgwqDCoMKgwqDCoMKgwqDCoMKg wqAgdGltZW91dF9yZW1haW5pbmc7Cj4+Pj4gK8KgwqDCoCBib29swqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHdvcmtfdGRyX3N1c3BlbmRlZDsKPj4+PiArwqDCoMKgIHNwaW5sb2NrX3TC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHRkcl9zdXNwZW5kX2xvY2s7Cj4+Pj4gIMKgwqDCoMKgwqDC oCBzdHJ1Y3QgdGFza19zdHJ1Y3TCoMKgwqDCoMKgwqDCoCAqdGhyZWFkOwo+Pj4+ICDCoMKgwqDC oMKgwqAgc3RydWN0IGxpc3RfaGVhZMKgwqDCoMKgwqDCoMKgIHJpbmdfbWlycm9yX2xpc3Q7Cj4+ Pj4gIMKgwqDCoMKgwqDCoCBzcGlubG9ja190wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBqb2JfbGlz dF9sb2NrOwo+Pj4+IEBAIC0zMDAsNiArMzAzLDggQEAgdm9pZCBkcm1fc2NoZWRfaHdfam9iX3Jl c2V0KHN0cnVjdAo+Pj4+IGRybV9ncHVfc2NoZWR1bGVyICpzY2hlZCwKPj4+PiAgwqDCoCBib29s IGRybV9zY2hlZF9kZXBlbmRlbmN5X29wdGltaXplZChzdHJ1Y3QgZG1hX2ZlbmNlKiBmZW5jZSwK Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0 IGRybV9zY2hlZF9lbnRpdHkgKmVudGl0eSk7Cj4+Pj4gIMKgwqAgdm9pZCBkcm1fc2NoZWRfam9i X2tpY2tvdXQoc3RydWN0IGRybV9zY2hlZF9qb2IgKnNfam9iKTsKPj4+PiArdm9pZCBkcm1fc2No ZWRfc3VzcGVuZF90aW1lb3V0KHN0cnVjdCBkcm1fZ3B1X3NjaGVkdWxlciAqc2NoZWQpOwo+Pj4+ ICt2b2lkIGRybV9zY2hlZF9yZXN1bWVfdGltZW91dChzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIg KnNjaGVkKTsKPj4+Pgo+Pj4+ICDCoMKgIHZvaWQgZHJtX3NjaGVkX3JxX2FkZF9lbnRpdHkoc3Ry dWN0IGRybV9zY2hlZF9ycSAqcnEsCj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHN0cnVjdCBkcm1fc2NoZWRfZW50aXR5ICplbnRpdHkpOwo+Pj4+IC0tIAo+Pj4+ IDEuOS4xCj4+Pj4KPj4+Cj4+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwo+Pj4gRnJlZWRyZW5vIG1haWxpbmcgbGlzdAo+Pj4gRnJlZWRyZW5vQGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwo+Pj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9mcmVlZHJlbm8KPj4+Cj4+Cj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KPiBGcmVlZHJlbm8gbWFpbGluZyBsaXN0Cj4gRnJlZWRy ZW5vQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vZnJlZWRyZW5vCj4gCgotLSAKVGhlIFF1YWxjb21tIElubm92YXRp b24gQ2VudGVyLCBJbmMuIGlzIGEgbWVtYmVyIG9mIHRoZSBDb2RlIEF1cm9yYSBGb3J1bSwKTGlu dXggRm91bmRhdGlvbiBDb2xsYWJvcmF0aXZlIFByb2plY3QKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2 ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==