From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: Re: [PATCH] Idleness DRRS: Date: Tue, 19 Sep 2017 15:44:06 +0530 Message-ID: <60bbf6be-759f-8333-0bd5-131168204dfa@intel.com> References: <1505724732-17529-1-git-send-email-lohith.bs@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id ED2B16E546 for ; Tue, 19 Sep 2017 10:15:51 +0000 (UTC) In-Reply-To: <1505724732-17529-1-git-send-email-lohith.bs@intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Lohith BS <"lohith.bs@"@intel.com>, intel-gfx@lists.freedesktop.org, daniel.vetter@ffwll.ch, chris@chris-wilson.co.uk, rodrigo.vivi@intel.com Cc: ankit.k.nautiyal@intel.com, paulo.r.zanoni@intel.com List-Id: intel-gfx@lists.freedesktop.org CgpPbiBNb25kYXkgMTggU2VwdGVtYmVyIDIwMTcgMDI6MjIgUE0sIExvaGl0aCBCUyB3cm90ZToK PiBGcm9tOiBMb2hpdGggQlMgPGxvaGl0aC5ic0BpbnRlbC5jb20+Cj4KPiAJQnkgZGVmYXVsdCB0 aGUgRFJSUyBzdGF0ZSB3aWxsIGJlIGF0IERSUlNfSElHSF9SUi4gV2hlbiBhIERpc3BsYXkKPiAJ Y29udGVudCBpcyBJZGxlIGZvciBtb3JlIHRoYW4gMVNlYyBJZGxlbmVzcyB3aWxsIGJlIGRlY2xh cmVkIGFuZAo+IAlEUlJTX0xPV19SUiB3aWxsIGJlIGludm9rZWQsIGNoYW5naW5nIHRoZSByZWZy ZXNoIHJhdGUgdG8gdGhlCj4gCWxvd2VyIG1vc3QgcmVmcmVzaCByYXRlIHN1cHBvcnRlZCBieSB0 aGUgcGFuZWwuIEFzIHNvb24gYXMgdGhlcmUKPiAJaXMgYSBkaXNwbGF5IGNvbnRlbnQgY2hhbmdl IHRoZXJlIHdpbGwgYmUgYSBEUlJTIHN0YXRlIHRyYW5zaXRpb24KPiAJYXMgRFJSU19MT1dfUlIt LT4gRFJSU19ISUdIX1JSLCBjaGFuZ2luZyB0aGUgcmVmcmVzaCByYXRlIHRvIHRoZQo+IAloaWdo ZXN0IHJlZnJlc2ggcmF0ZSBzdXBwb3J0ZWQgYnkgdGhlIHBhbmVsLgo+Cj4gVG8gdGVzdCB0aGlz LCBJZGxlbmVzcyBEUlJTIElHVCB3aWxsIHByb2JlIHRoZSBEUlJTIHN0YXRlIGF0IGJlbG93Cj4g aW5zdGFuY2VzIGFuZCBjb21wYXJlIHdpdGggdGhlIGV4cGVjdGVkIHN0YXRlLgo+Cj4gCUluc3Rh bmNlCQkJCQlFeHBlY3RlZCBTdGF0ZQo+IDEuIEltbWVkaWF0ZWx5IGFmdGVyIHJlbmRlcmluZyB0 aGUgc3RpbGwgaW1hZ2UJCURSUlNfSElHSF9SUgo+IDIuIEFmdGVyIGEgZGVsYXkgb2YgMS4yU2Vj CQkJCURSUlNfTE9XX1JSCj4gMy4gQWZ0ZXIgY2hhbmdpbmcgdGhlIGZyYW1lIGJ1ZmZlcgkJCURS UlNfSElHSF9SUgo+IDQuIEFmdGVyIGEgZGVsYXkgb2YgMS4yU2VjCQkJCURSUlNfTE9XX1JSCj4g NS4gQWZ0ZXIgY2hhbmdpbmcgdGhlIGZyYW1lIGJ1ZmZlcgkJCURSUlNfSElHSF9SUgo+IDYuIEFm dGVyIGEgZGVsYXkgb2YgMS4yU2VjCQkJCURSUlNfTE9XX1JSCj4KPiBUaGUgdGVzdCBjaGVja3Mg dGhlIGRyaXZlciBEUlJTIHN0YXRlIGZyb20gdGhlIGRlYnVnZnMgZW50cnkuIFRvIGNoZWNrIHRo ZQo+IGFjdHVhbCByZWZyZXNoLXJhdGUsIHRoZSBudW1iZXIgb2YgdmJsYW5rcyByZWNlaXZlZCBw ZXIgc2VjLgo+IFRoZSByZWZyZXNoLXJhdGUgY2FsY3VsYXRlZCBpcyBjaGVja2VkIGFnYWluc3Qg dGhlIGV4cGVjdGVkIHJlZnJlc2gtcmF0ZQo+IHdpdGggYSB0b2xlcmFuY2UgdmFsdWUgb2YgMi4K Pgo+IFRoaXMgcGF0Y2ggaXMgYSBjb250aW51YXRpb24gb2YgdGhlIGVhcmxpZXIgd29yawo+IGh0 dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9wYXRjaC80NTQ3Mi8gdG93YXJkcyBpZ3Qg Zm9yIGlkbGVuZXNzCj4KPiBEUlJTLiBUaGUgY29kZSBpcyB0ZXN0ZWQgb24gQnJveHRvbiBCWFRf VCBwbGF0Zm9ybS4KPgo+IHYyOiBBZGRyZXNzZWQgdGhlIGNvbW1lbnRzIGFuZCBzdWdnZXN0aW9u cyBmcm9tIFZsYWQsIE1hcml1cy4KPiBUaGUgc2lnbm9mZiBkZXRhaWxzIGZyb20gdGhlIGVhcmxp ZXIgd29yayBhcmUgYWxzbyBpbmNsdWRlZC4KPgo+IHYzOiBNb2RpZmllZCB2YmxhbmsgcmF0ZSBj YWxjdWxhdGlvbiBieSB1c2luZyByZXBseS1zZXF1ZW5jZSwgcHJvdmlkZWQgYnkKPiBkcm1XYWl0 VkJsYW5rLCBhcyBzdWdnZXN0ZWQgYnkgQ2hyaXMgV2lsc29uLgo+Cj4gdjQ6IEFzIHN1Z2dlc3Rl ZCBmcm9tIENocmlzIFdpbHNvbiBhbmQgRGFuaWVsIFZldHRlcgo+IAkxKSBBdm9pZGVkIHVzaW5n IHB0aHJlYWQgZm9yIGNhbGN1bGF0aW5nIHZibGFuayByZWZyZXNoIHJhdGUsCj4gCSAgIGluc3Rl YWQgdXNlZCBkcm1XYWl0VkJsYW5rIHJlcGx5IHNlcXVlbmNlLgo+IAkyKSBBdm9pZGVkIHVzaW5n IGtlcm5lbC1zcGVjaWZpYyBpbmZvIGxpa2UgdHJhbnNpdGlvbmFsIGRlbGF5cywKPiAJICAgaW5z dGVhZCBwb2xsaW5nIG1lY2hhbmlzbSB3aXRoIHRpbWVvdXQgaXMgdXNlZC4KPiAJMykgSW5jbHVk ZWQgZWRwLURSUlMgYXMgYSBzdWJ0ZXN0IGluIGttc19mcm9udGJ1ZmZlcl90cmFja2luZy5jLAo+ IAkgICBpbnN0ZWFkIG9mIGhhdmluZyBhIHNlcGFyYXRlIHRlc3QuCj4KPiB2NTogVGhpcyBwYXRj aCBhZGRzIERSUlMgYXMgYSBuZXcgZmVhdHVyZSBpbiB0aGUga21zX2Zyb250YnVmZmVyX3RyYWNr aW5nIElHVC4KPiAgICAgIERSUlMgc3dpdGNoIHRvIGxvd2VyIHZyZWZyZXNoIHJhdGUgaXMgdGVz dGVkIGF0IHNsb3ctZHJhdyBzdWJ0ZXN0Lgo+Cj4gCU5vdGU6Cj4gCTEpIEN1cnJlbnRseSBrZXJu ZWwgZG9lc24ndCBoYXZlIHN1cHBvcnQgdG8gZW5hYmxlIGFuZCBkaXNhYmxlIHRoZSBEUlJTCj4g CSAgIGZlYXR1cmUgZHluYW1pY2FsbHkoYXMgaW4gY2FzZSBvZiBQU1IpLiBIZW5jZSBpZiB0aGUg cGFuZWwgc3VwcG9ydHMKPiAJICAgRFJSUyBpdCB3aWxsIGJlIGVuYWJsZWQgYnkgZGVmYXVsdC4K Pgo+IAlUaGlzIGlzIGluIGNvbnRpbnVhdGlvbiBvZiBsYXN0IHBhdGNoICJodHRwczovL3BhdGNo d29yay5mcmVlZGVza3RvcC5vcmcvcGF0Y2gvMTYyNzI2LyIKPgo+IFNpZ25lZC1vZmYtYnk6IExv aGl0aCBCUyA8bG9oaXRoLmJzQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBSYW1hbGluZ2Ft IEMgPHJhbWFsaW5nYW0uY0BpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogVmFuZGFuYSBLYW5u YW4gPHZhbmRhbmEua2FubmFuQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBha25hdXRpeSA8 YW5raXQuay5uYXV0aXlhbEBpbnRlbC5jb20+Cj4gLS0tCj4gICB0ZXN0cy9rbXNfZnJvbnRidWZm ZXJfdHJhY2tpbmcuYyB8IDE2MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKyst LS0KPiAgIDEgZmlsZSBjaGFuZ2VkLCAxNTIgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkK Pgo+IGRpZmYgLS1naXQgYS90ZXN0cy9rbXNfZnJvbnRidWZmZXJfdHJhY2tpbmcuYyBiL3Rlc3Rz L2ttc19mcm9udGJ1ZmZlcl90cmFja2luZy5jCj4gaW5kZXggYTA2OGM4YS4uNGY0NDEwOSAxMDA2 NDQKPiAtLS0gYS90ZXN0cy9rbXNfZnJvbnRidWZmZXJfdHJhY2tpbmcuYwo+ICsrKyBiL3Rlc3Rz L2ttc19mcm9udGJ1ZmZlcl90cmFja2luZy5jCj4gQEAgLTM0LDcgKzM0LDcgQEAKPiAgIAo+ICAg Cj4gICBJR1RfVEVTVF9ERVNDUklQVElPTigiVGVzdCB0aGUgS2VybmVsJ3MgZnJvbnRidWZmZXIg dHJhY2tpbmcgbWVjaGFuaXNtIGFuZCAiCj4gLQkJICAgICAiaXRzIHJlbGF0ZWQgZmVhdHVyZXM6 IEZCQyBhbmQgUFNSIik7Cj4gKwkJICAgICAiaXRzIHJlbGF0ZWQgZmVhdHVyZXM6IEZCQyBEUlJT IGFuZCBQU1IiKTsKQXMgRFJSUyBhbmQgUFNSIGNhbnQgYmUgdGVzdGVkIHRvZ2V0aGVyIGl0IHdp bGwgYmUgbW9yZSBtZWFuaW5nZnVsIHRvIAp3cml0ZSBhcwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIml0cyByZWxhdGVkIGZlYXR1cmVzOiBGQkMgYW5kIApQU1IvRFJSUyIp Owo+ICAgCj4gICAvKgo+ICAgICogT25lIG9mIHRoZSBhc3BlY3RzIG9mIHRoaXMgdGVzdCBpcyB0 aGF0LCBmb3IgZXZlcnkgc3VidGVzdCwgd2UgdHJ5IGRpZmZlcmVudAo+IEBAIC0xMDUsOCArMTA1 LDkgQEAgc3RydWN0IHRlc3RfbW9kZSB7Cj4gICAJCUZFQVRVUkVfTk9ORSAgPSAwLAo+ICAgCQlG RUFUVVJFX0ZCQyAgID0gMSwKPiAgIAkJRkVBVFVSRV9QU1IgICA9IDIsCj4gLQkJRkVBVFVSRV9D T1VOVCA9IDQsCj4gLQkJRkVBVFVSRV9ERUZBVUxUID0gNCwKPiArCQlGRUFUVVJFX0RSUlMgID0g NCwKPiArCQlGRUFUVVJFX0NPVU5UID0gNiwKPiArCQlGRUFUVVJFX0RFRkFVTFQgPSA2LAo+ICAg CX0gZmVhdHVyZTsKPiAgIAo+ICAgCS8qIFBvc3NpYmxlIHBpeGVsIGZvcm1hdHMuIFdlIGp1c3Qg dXNlIEZPUk1BVF9ERUZBVUxUIGZvciBtb3N0IHRlc3RzIGFuZAo+IEBAIC0xODAsNiArMTgxLDkg QEAgc3RydWN0IHsKPiAgIAlib29sIGNhbl90ZXN0Owo+ICAgfSBwc3IgPSB7Cj4gICAJLmNhbl90 ZXN0ID0gZmFsc2UsCj4gK30sCj4gK2RycnMgID0gewo+ICsJLmNhbl90ZXN0ID0gZmFsc2UsCj4g ICB9Owo+ICAgCj4gICAKPiBAQCAtODIyLDYgKzgyNiw1MiBAQCBzdGF0aWMgdm9pZCBwc3JfcHJp bnRfc3RhdHVzKHZvaWQpCj4gICAJaWd0X2luZm8oIlBTUiBzdGF0dXM6XG4lc1xuIiwgYnVmKTsK PiAgIH0KPiAgIAo+ICtzdGF0aWMgYm9vbCBpc19kcnJzX2hpZ2godm9pZCkKPiArewo+ICsJY2hh ciBidWZbMjU2XTsKPiArCj4gKwlkZWJ1Z2ZzX3JlYWQoImk5MTVfZHJyc19zdGF0dXMiLCBidWYp Owo+ICsJcmV0dXJuIHN0cnN0cihidWYsICJEUlJTX0hJR0hfUlIiKTsKPiArfQo+ICsKPiArc3Rh dGljIGJvb2wgaXNfZHJyc19sb3codm9pZCkKPiArewo+ICsJY2hhciBidWZbMjU2XTsKPiArCj4g KwlkZWJ1Z2ZzX3JlYWQoImk5MTVfZHJyc19zdGF0dXMiLCBidWYpOwo+ICsJcmV0dXJuIHN0cnN0 cihidWYsICJEUlJTX0xPV19SUiIpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgYm9vbCBpc19kcnJzX2Vu YWJsZWQodm9pZCkKPiArewo+ICsJY2hhciBidWZbMjU2XTsKPiArCj4gKwlkZWJ1Z2ZzX3JlYWQo Imk5MTVfZHJyc19zdGF0dXMiLCBidWYpOwo+ICsJcmV0dXJuIHN0cnN0cihidWYsICJEUlJTIFN1 cHBvcnRlZDogWWVzIik7Cj4gK30KPiArCj4gK3N0YXRpYyBib29sIGlzX2RycnNfaW5hY3RpdmUo dm9pZCkKPiArewo+ICsJY2hhciBidWZbMjU2XTsKPiArCj4gKwlkZWJ1Z2ZzX3JlYWQoImk5MTVf ZHJyc19zdGF0dXMiLCBidWYpOwo+ICsJcmV0dXJuIHN0cnN0cihidWYsICJObyBhY3RpdmUgY3J0 YyBmb3VuZCIpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBkcnJzX3ByaW50X3N0YXR1cyh2b2lk KQo+ICt7Cj4gKwljaGFyIGJ1ZlsyNTZdOwo+ICsKPiArCWlmIChpc19kcnJzX2hpZ2goKSkKPiAr CQlpZ3RfaW5mbygiRFJSUyBTVEFUVVMgOiBEUlJTIEhJR0hcbiIpOwo+ICsKPiArCWlmIChpc19k cnJzX2xvdygpKQo+ICsJCWlndF9pbmZvKCJEUlJTX1NUQVRVUyA6IERSUlMgTE9XXG4iKTsKPiAr Cj4gKwlpZiAoaXNfZHJyc19pbmFjdGl2ZSgpKQo+ICsJCWlndF9pbmZvKCJEUlJTX1NUQVRVUyA6 IERSUlMgRElTQUJMRURcbiIpOwo+ICt9Cj4gKwo+ICAgc3RhdGljIHN0cnVjdCB0aW1lc3BlYyBm YmNfZ2V0X2xhc3RfYWN0aW9uKHZvaWQpCj4gICB7Cj4gICAJc3RydWN0IHRpbWVzcGVjIHJldCA9 IHsgMCwgMCB9Owo+IEBAIC0xNTc1LDYgKzE2MjUsMjUgQEAgc3RhdGljIHZvaWQgdGVhcmRvd25f cHNyKHZvaWQpCj4gICB7Cj4gICB9Cj4gICAKPiArc3RhdGljIHZvaWQgc2V0dXBfZHJycyh2b2lk KQo+ICt7Cj4gKwlpZiAoZ2V0X2Nvbm5lY3RvcihwcmltX21vZGVfcGFyYW1zLmNvbm5lY3Rvcl9p ZCktPmNvbm5lY3Rvcl90eXBlICE9Cj4gKwkJCURSTV9NT0RFX0NPTk5FQ1RPUl9lRFApIHsKPiAr CQlpZ3RfaW5mbygiQ2FuJ3QgdGVzdCBEUlJTOiBubyB1c2FibGUgZURQIHNjcmVlbi5cbiIpOwo+ ICsJCXJldHVybjsKPiArCX0KPiArCj4gKwlpZiAoIWlzX2RycnNfZW5hYmxlZCgpKSB7Cj4gKwkJ aWd0X2luZm8oIkNhbid0IHRlc3QgRFJSUzogbm90IHN1cHBvcnRlZCBpbiB0aGUgZHJpdmVyLlxu Iik7Cj4gKwkJcmV0dXJuOwo+ICsJfQo+ICsJZHJycy5jYW5fdGVzdCA9IHRydWU7CkFzIFBTUiBp cyBjYXBhYmxlIG9uIGEgc2luayBhbmQgc3JjLCBEUlJTIHdvbnQgYmUgdXNlZC4gU28gZHJycy5j YW5fdGVzdCAKaXMgZmFsc2UgaWYgcHNyLmNhbl90ZXN0ICBpcyB0cnVlLgo+ICt9Cj4gKwo+ICtz dGF0aWMgdm9pZCB0ZWFyZG93bl9kcnJzKHZvaWQpCj4gK3sKPiArfQo+ICsKV2UgY2FuIGFkZCB0 aGlzIGlmIHdlIGhhdmUgbWVhbnMgb2YgZGlzYWJsaW5nIHRoZSBEUlJTIGluIHJ1biB0aW1lLiBX ZSAKc2hvdWxkIHJlbW92ZSB0aGlzLgo+ICAgc3RhdGljIHZvaWQgc2V0dXBfZW52aXJvbm1lbnQo dm9pZCkKPiAgIHsKPiAgIAlzZXR1cF9kcm0oKTsKPiBAQCAtMTU4Miw3ICsxNjUxLDcgQEAgc3Rh dGljIHZvaWQgc2V0dXBfZW52aXJvbm1lbnQodm9pZCkKPiAgIAo+ICAgCXNldHVwX2ZiYygpOwo+ ICAgCXNldHVwX3BzcigpOwo+IC0KPiArCXNldHVwX2RycnMoKTsKPiAgIAlzZXR1cF9jcmNzKCk7 Cj4gICB9Cj4gICAKPiBAQCAtMTU5Miw2ICsxNjYxLDcgQEAgc3RhdGljIHZvaWQgdGVhcmRvd25f ZW52aXJvbm1lbnQodm9pZCkKPiAgIAo+ICAgCXRlYXJkb3duX2NyY3MoKTsKPiAgIAl0ZWFyZG93 bl9wc3IoKTsKPiArCXRlYXJkb3duX2RycnMoKTsKSSBkb250IHRoaW5rIHdlIG5lZWQgdGhpcyBm dW5jdGlvbiBjYWxsLgoKLS1SYW0KPiAgIAl0ZWFyZG93bl9mYmMoKTsKPiAgIAl0ZWFyZG93bl9t b2Rlc2V0KCk7Cj4gICAJdGVhcmRvd25fZHJtKCk7Cj4gQEAgLTE2NjAsNiArMTczMCwxMSBAQCBz dGF0aWMgdm9pZCBkb19mbHVzaChjb25zdCBzdHJ1Y3QgdGVzdF9tb2RlICp0KQo+ICAgI2RlZmlu ZSBBU1NFUlRfUFNSX0VOQUJMRUQJCSgxIDw8IDYpCj4gICAjZGVmaW5lIEFTU0VSVF9QU1JfRElT QUJMRUQJCSgxIDw8IDcpCj4gICAKPiArI2RlZmluZSBEUlJTX0FTU0VSVF9GTEFHUyAgICAgICAg ICAgICAgICg3IDw8IDgpCj4gKyNkZWZpbmUgQVNTRVJUX0RSUlNfSElHSCAgICAgICAgICAgICAg ICAoMSA8PCA4KQo+ICsjZGVmaW5lIEFTU0VSVF9EUlJTX0xPVyAgICAgICAgICAgICAgICAgKDEg PDwgOSkKPiArI2RlZmluZSBBU1NFUlRfRFJSU19JTkFDVElWRSAgICAgICAgICAgICgxIDw8IDEw KQo+ICsKPiAgIHN0YXRpYyBpbnQgYWRqdXN0X2Fzc2VydGlvbl9mbGFncyhjb25zdCBzdHJ1Y3Qg dGVzdF9tb2RlICp0LCBpbnQgZmxhZ3MpCj4gICB7Cj4gICAJaWYgKCEoZmxhZ3MgJiBET05UX0FT U0VSVF9GRUFUVVJFX1NUQVRVUykpIHsKPiBAQCAtMTY2NywxMiArMTc0MiwxNyBAQCBzdGF0aWMg aW50IGFkanVzdF9hc3NlcnRpb25fZmxhZ3MoY29uc3Qgc3RydWN0IHRlc3RfbW9kZSAqdCwgaW50 IGZsYWdzKQo+ICAgCQkJZmxhZ3MgfD0gQVNTRVJUX0ZCQ19FTkFCTEVEOwo+ICAgCQlpZiAoIShm bGFncyAmIEFTU0VSVF9QU1JfRElTQUJMRUQpKQo+ICAgCQkJZmxhZ3MgfD0gQVNTRVJUX1BTUl9F TkFCTEVEOwo+ICsJCWlmICghKChmbGFncyAmIEFTU0VSVF9EUlJTX0xPVykgfHwgKGZsYWdzICYg QVNTRVJUX0RSUlNfSU5BQ1RJVkUpKSkgewo+ICsJCQlmbGFncyB8PSBBU1NFUlRfRFJSU19ISUdI Owo+ICsJCX0KPiAgIAl9Cj4gICAKPiAgIAlpZiAoKHQtPmZlYXR1cmUgJiBGRUFUVVJFX0ZCQykg PT0gMCkKPiAgIAkJZmxhZ3MgJj0gfkZCQ19BU1NFUlRfRkxBR1M7Cj4gICAJaWYgKCh0LT5mZWF0 dXJlICYgRkVBVFVSRV9QU1IpID09IDApCj4gICAJCWZsYWdzICY9IH5QU1JfQVNTRVJUX0ZMQUdT Owo+ICsJaWYgKCh0LT5mZWF0dXJlICYgRkVBVFVSRV9EUlJTKSA9PSAwKQo+ICsJCWZsYWdzICY9 IH5EUlJTX0FTU0VSVF9GTEFHUzsKPiAgIAo+ICAgCXJldHVybiBmbGFnczsKPiAgIH0KPiBAQCAt MTcwNCw2ICsxNzg0LDIzIEBAIHN0YXRpYyB2b2lkIGRvX3N0YXR1c19hc3NlcnRpb25zKGludCBm bGFncykKPiAgIAkJcmV0dXJuOwo+ICAgCX0KPiAgIAo+ICsJaWYgKGZsYWdzICYgQVNTRVJUX0RS UlNfSElHSCkgewo+ICsJCWlmICghaXNfZHJyc19oaWdoKCkpIHsKPiArCQkJZHJyc19wcmludF9z dGF0dXMoKTsKPiArCQkJaWd0X2Fzc2VydF9mKGZhbHNlLCAiRFJSUyBISUdIXG4iKTsKPiArCQl9 Cj4gKwl9IGVsc2UgaWYgKGZsYWdzICYgQVNTRVJUX0RSUlNfTE9XKSB7Cj4gKwkJaWYgKCFpc19k cnJzX2xvdygpKSB7Cj4gKwkJCWRycnNfcHJpbnRfc3RhdHVzKCk7Cj4gKwkJCWlndF9hc3NlcnRf ZihmYWxzZSwgIkRSUlMgTE9XXG4iKTsKPiArCQl9Cj4gKwl9IGVsc2UgaWYgKGZsYWdzICYgQVNT RVJUX0RSUlNfSU5BQ1RJVkUpIHsKPiArCQlpZiAoIWlzX2RycnNfaW5hY3RpdmUoKSkgewo+ICsJ CQlkcnJzX3ByaW50X3N0YXR1cygpOwo+ICsJCQlpZ3RfYXNzZXJ0X2YoZmFsc2UsICJEUlJTIERJ U0FCTEVEXG4iKTsKPiArCQl9Cj4gKwl9Cj4gKwo+ICAgCWlmIChmbGFncyAmIEFTU0VSVF9GQkNf RU5BQkxFRCkgewo+ICAgCQlpZ3RfcmVxdWlyZSghZmJjX25vdF9lbm91Z2hfc3RvbGVuKCkpOwo+ ICAgCQlpZ3RfcmVxdWlyZSghZmJjX3N0cmlkZV9ub3Rfc3VwcG9ydGVkKCkpOwo+IEBAIC0xODUw LDYgKzE5NDcsMTAgQEAgc3RhdGljIHZvaWQgY2hlY2tfdGVzdF9yZXF1aXJlbWVudHMoY29uc3Qg c3RydWN0IHRlc3RfbW9kZSAqdCkKPiAgIAkJCSAgICAgICJDYW4ndCB0ZXN0IFBTUiB3aXRob3V0 IHNpbmsgQ1JDc1xuIik7Cj4gICAJfQo+ICAgCj4gKwlpZiAodC0+ZmVhdHVyZSAmIEZFQVRVUkVf RFJSUykKPiArCQlpZ3RfcmVxdWlyZV9mKGRycnMuY2FuX3Rlc3QsCj4gKwkJCQkiQ2FuJ3QgdGVz dCBEUlJTIHdpdGggdGhlIGN1cnJlbnQgb3V0cHV0c1xuIik7Cj4gKwo+ICAgCWlmIChvcHQub25s eV9waXBlcyAhPSBQSVBFX0NPVU5UKQo+ICAgCQlpZ3RfcmVxdWlyZSh0LT5waXBlcyA9PSBvcHQu b25seV9waXBlcyk7Cj4gICB9Cj4gQEAgLTE5NzEsNyArMjA3Miw3IEBAIHN0YXRpYyB2b2lkIHJ0 ZV9zdWJ0ZXN0KGNvbnN0IHN0cnVjdCB0ZXN0X21vZGUgKnQpCj4gICAKPiAgIAl1bnNldF9hbGxf Y3J0Y3MoKTsKPiAgIAlkb19hc3NlcnRpb25zKEFTU0VSVF9GQkNfRElTQUJMRUQgfCBBU1NFUlRf UFNSX0RJU0FCTEVEIHwKPiAtCQkgICAgICBET05UX0FTU0VSVF9DUkMpOwo+ICsJCSAgICAgIERP TlRfQVNTRVJUX0NSQyB8IEFTU0VSVF9EUlJTX0lOQUNUSVZFKTsKPiAgIAo+ICAgCWVuYWJsZV9w cmltX3NjcmVlbl9hbmRfd2FpdCh0KTsKPiAgIAlzZXRfY3Vyc29yX2Zvcl90ZXN0KHQsICZwcmlt X21vZGVfcGFyYW1zKTsKPiBAQCAtMjAwOCw2ICsyMTA5LDI0IEBAIHN0YXRpYyBib29sIG9wX2Rp c2FibGVzX3Bzcihjb25zdCBzdHJ1Y3QgdGVzdF9tb2RlICp0LAo+ICAgCXJldHVybiBmYWxzZTsK PiAgIH0KPiAgIAo+ICtzdGF0aWMgYm9vbCBvcF9zZXRzX2RycnNfaGlnaChjb25zdCBzdHJ1Y3Qg dGVzdF9tb2RlICp0LAo+ICsJCQkJZW51bSBpZ3RfZHJhd19tZXRob2QgbWV0aG9kKQo+ICt7Cj4g KwlpZiAobWV0aG9kICE9IElHVF9EUkFXX01NQVBfR1RUKQo+ICsJCXJldHVybiBmYWxzZTsKPiAr CWlmICh0LT5zY3JlZW4gPT0gU0NSRUVOX1BSSU0pCj4gKwkJcmV0dXJuIHRydWU7Cj4gKwkvKiBP biBGQlNfU0hBUkVELCBldmVuIGlmIHRoZSB0YXJnZXQgaXMgbm90IHRoZSBEUlJTIHNjcmVlbgo+ ICsJICogKFNDUkVFTl9QUklNKSwgYWxsIHByaW1hcnkgcGxhbmVzIHNoYXJlIHRoZSBzYW1lIGZy b250YnVmZmVyLCBzbyBhCj4gKwkgKiB3cml0ZSB0byB0aGUgc2Vjb25kIHNjcmVlbiBwcmltYXJ5 IHBsYW5lIC0gb3Igb2Zmc2NyZWVuIHBsYW5lIC0gd2lsbAo+ICsJICogdG91Y2ggdGhlIGZyYW1l YnVmZmVyIHRoYXQncyBhbHNvIHVzZWQgYnkgdGhlIHByaW1hcnkgc2NyZWVuIGFuZCBtYWtpbmcK PiArCSAqIERSUlMgc3RhdGUgYXMgaGlnaAo+ICsJICovCj4gKwlpZiAodC0+ZmJzID09IEZCU19T SEFSRUQgJiYgdC0+cGxhbmUgPT0gUExBTkVfUFJJKQo+ICsJCXJldHVybiB0cnVlOwo+ICsJcmV0 dXJuIGZhbHNlOwo+ICt9Cj4gKwo+ICAgLyoKPiAgICAqIGRyYXcgLSBkcmF3IGEgc2V0IG9mIHJl Y3RhbmdsZXMgb24gdGhlIHNjcmVlbiB1c2luZyB0aGUgcHJvdmlkZWQgbWV0aG9kCj4gICAgKgo+ IEBAIC0yMDYzLDYgKzIxODIsOSBAQCBzdGF0aWMgdm9pZCBkcmF3X3N1YnRlc3QoY29uc3Qgc3Ry dWN0IHRlc3RfbW9kZSAqdCkKPiAgIAlpZiAob3BfZGlzYWJsZXNfcHNyKHQsIHQtPm1ldGhvZCkp Cj4gICAJCWFzc2VydGlvbnMgfD0gQVNTRVJUX1BTUl9ESVNBQkxFRDsKPiAgIAo+ICsJaWYgKG9w X3NldHNfZHJyc19oaWdoKHQsIHQtPm1ldGhvZCkpCj4gKwkJYXNzZXJ0aW9ucyB8PSBBU1NFUlRf RFJSU19ISUdIOwo+ICsKPiAgIAlwcmVwYXJlX3N1YnRlc3QodCwgcGF0dGVybik7Cj4gICAJdGFy Z2V0ID0gcGlja190YXJnZXQodCwgcGFyYW1zKTsKPiAgIAo+IEBAIC0yMTUyLDYgKzIyNzQsMTAg QEAgc3RhdGljIHZvaWQgbXVsdGlkcmF3X3N1YnRlc3QoY29uc3Qgc3RydWN0IHRlc3RfbW9kZSAq dCkKPiAgIAkJCQkgICAgIXdjX3VzZWQpCj4gICAJCQkJCWFzc2VydGlvbnMgfD0gQVNTRVJUX1BT Ul9ESVNBQkxFRDsKPiAgIAo+ICsJCQkJaWYgKG9wX3NldHNfZHJyc19oaWdoKHQsIHVzZWRfbWV0 aG9kKSAmJgo+ICsJCQkJCSF3Y191c2VkKQo+ICsJCQkJCWFzc2VydGlvbnMgfD0gQVNTRVJUX0RS UlNfSElHSDsKPiArCj4gICAJCQkJZG9fYXNzZXJ0aW9ucyhhc3NlcnRpb25zKTsKPiAgIAkJCX0K PiAgIAo+IEBAIC0yMjA2LDYgKzIzMzIsNyBAQCBzdGF0aWMgdm9pZCBiYWRmb3JtYXRfc3VidGVz dChjb25zdCBzdHJ1Y3QgdGVzdF9tb2RlICp0KQo+ICAgewo+ICAgCWJvb2wgZmJjX3ZhbGlkID0g Zm9ybWF0X2lzX3ZhbGlkKEZFQVRVUkVfRkJDLCB0LT5mb3JtYXQpOwo+ICAgCWJvb2wgcHNyX3Zh bGlkID0gZm9ybWF0X2lzX3ZhbGlkKEZFQVRVUkVfUFNSLCB0LT5mb3JtYXQpOwo+ICsJYm9vbCBk cnJzX3ZhbGlkID0gZm9ybWF0X2lzX3ZhbGlkKEZFQVRVUkVfRFJSUywgdC0+Zm9ybWF0KTsKPiAg IAlpbnQgYXNzZXJ0aW9ucyA9IEFTU0VSVF9OT19BQ1RJT05fQ0hBTkdFOwo+ICAgCj4gICAJcHJl cGFyZV9zdWJ0ZXN0X2RhdGEodCwgTlVMTCk7Cj4gQEAgLTIyMTksNiArMjM0Niw5IEBAIHN0YXRp YyB2b2lkIGJhZGZvcm1hdF9zdWJ0ZXN0KGNvbnN0IHN0cnVjdCB0ZXN0X21vZGUgKnQpCj4gICAJ CWFzc2VydGlvbnMgfD0gQVNTRVJUX0ZCQ19ESVNBQkxFRDsKPiAgIAlpZiAoIXBzcl92YWxpZCkK PiAgIAkJYXNzZXJ0aW9ucyB8PSBBU1NFUlRfUFNSX0RJU0FCTEVEOwo+ICsJaWYgKCFkcnJzX3Zh bGlkKQo+ICsJCWFzc2VydGlvbnMgfD0gQVNTRVJUX0RSUlNfSElHSDsKPiArCj4gICAJZG9fYXNz ZXJ0aW9ucyhhc3NlcnRpb25zKTsKPiAgIH0KPiAgIAo+IEBAIC0yMjc3LDcgKzI0MDcsMTUgQEAg c3RhdGljIHZvaWQgc2xvd19kcmF3X3N1YnRlc3QoY29uc3Qgc3RydWN0IHRlc3RfbW9kZSAqdCkK PiAgIAkJc2xlZXAoMik7Cj4gICAKPiAgIAkJdXBkYXRlX3dhbnRlZF9jcmModCwgJnBhdHRlcm4t PmNyY3NbdC0+Zm9ybWF0XVtyXSk7Cj4gLQkJZG9fYXNzZXJ0aW9ucygwKTsKPiArCQlpZiAodC0+ ZmVhdHVyZSAmIEZFQVRVUkVfUFNSKSB7Cj4gKwkJCWRvX2Fzc2VydGlvbnMoMCk7Cj4gKwkJfQo+ ICsKPiArCQlpZiAodC0+ZmVhdHVyZSAmIEZFQVRVUkVfRFJSUykgewo+ICsJCQlzbGVlcCgxKTsK PiArCQkJZG9fYXNzZXJ0aW9ucyhBU1NFUlRfRFJSU19MT1cpOwo+ICsJCX0KPiArCj4gICAJfQo+ ICAgfQo+ICAgCj4gQEAgLTI0NjQsNiArMjYwMiw3IEBAIHN0YXRpYyB2b2lkIGZsaXB0cmFja19z dWJ0ZXN0KGNvbnN0IHN0cnVjdCB0ZXN0X21vZGUgKnQsIGVudW0gZmxpcF90eXBlIHR5cGUpCj4g ICAJCXVwZGF0ZV93YW50ZWRfY3JjKHQsICZwYXR0ZXJuLT5jcmNzW3QtPmZvcm1hdF1bcl0pOwo+ ICAgCj4gICAJCWRvX2Fzc2VydGlvbnMoQVNTRVJUX1BTUl9ESVNBQkxFRCk7Cj4gKwkJZG9fYXNz ZXJ0aW9ucyhBU1NFUlRfRFJSU19ISUdIKTsKPiAgIAl9Cj4gICAKPiAgIAlpZ3RfcmVtb3ZlX2Zi KGRybS5mZCwgJmZiMik7Cj4gQEAgLTI4OTIsNyArMzAzMSw3IEBAIHN0YXRpYyB2b2lkIHN1c3Bl bmRfc3VidGVzdChjb25zdCBzdHJ1Y3QgdGVzdF9tb2RlICp0KQo+ICAgCXNsZWVwKDUpOwo+ICAg CWlndF9zeXN0ZW1fc3VzcGVuZF9hdXRvcmVzdW1lKFNVU1BFTkRfU1RBVEVfTUVNLCBTVVNQRU5E X1RFU1RfTk9ORSk7Cj4gICAJc2xlZXAoNSk7Cj4gLQlkb19hc3NlcnRpb25zKEFTU0VSVF9GQkNf RElTQUJMRUQgfCBBU1NFUlRfUFNSX0RJU0FCTEVEIHwKPiArCWRvX2Fzc2VydGlvbnMoQVNTRVJU X0ZCQ19ESVNBQkxFRCB8IEFTU0VSVF9QU1JfRElTQUJMRUQgfCBBU1NFUlRfRFJSU19ISUdIIHwK PiAgIAkJICAgICAgRE9OVF9BU1NFUlRfQ1JDKTsKPiAgIAo+ICAgCXNldF9tb2RlX2Zvcl9wYXJh bXMocGFyYW1zKTsKPiBAQCAtMjk2Niw3ICszMTA1LDcgQEAgc3RhdGljIHZvaWQgZmFyZnJvbWZl bmNlX3N1YnRlc3QoY29uc3Qgc3RydWN0IHRlc3RfbW9kZSAqdCkKPiAgIAkJdXBkYXRlX3dhbnRl ZF9jcmModCwgJnBhdHRlcm4tPmNyY3NbdC0+Zm9ybWF0XVtyXSk7Cj4gICAKPiAgIAkJLyogR1RU IGRyYXdzIGRpc2FibGUgUFNSLiAqLwo+IC0JCWRvX2Fzc2VydGlvbnMoYXNzZXJ0aW9ucyB8IEFT U0VSVF9QU1JfRElTQUJMRUQpOwo+ICsJCWRvX2Fzc2VydGlvbnMoYXNzZXJ0aW9ucyB8IEFTU0VS VF9QU1JfRElTQUJMRUQgfCBBU1NFUlRfRFJSU19ISUdIKTsKPiAgIAl9Cj4gICAKPiAgIAlpZ3Rf cmVtb3ZlX2ZiKGRybS5mZCwgJnRhbGxfZmIpOwo+IEBAIC0zMzc1LDYgKzM1MTQsMTAgQEAgc3Rh dGljIGNvbnN0IGNoYXIgKmZlYXR1cmVfc3RyKGludCBmZWF0dXJlKQo+ICAgCQlyZXR1cm4gInBz ciI7Cj4gICAJY2FzZSBGRUFUVVJFX0ZCQyB8IEZFQVRVUkVfUFNSOgo+ICAgCQlyZXR1cm4gImZi Y3BzciI7Cj4gKwljYXNlIEZFQVRVUkVfRFJSUzoKPiArCQlyZXR1cm4gImRycnMiOwo+ICsJY2Fz ZSBGRUFUVVJFX0ZCQyB8IEZFQVRVUkVfRFJSUzoKPiArCQlyZXR1cm4gImZiY2RycnMiOwo+ICAg CWRlZmF1bHQ6Cj4gICAJCWlndF9hc3NlcnQoZmFsc2UpOwo+ICAgCX0KPiBAQCAtMzYzOSw3ICsz NzgyLDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKPiAgIAkJCQl0aWxpbmdj aGFuZ2Vfc3VidGVzdCgmdCk7Cj4gICAJCX0KPiAgIAo+IC0JCWlmICh0LmZlYXR1cmUgJiBGRUFU VVJFX1BTUikKPiArCQlpZiAoKHQuZmVhdHVyZSAmIEZFQVRVUkVfUFNSKSB8fCAodC5mZWF0dXJl ICYgRkVBVFVSRV9EUlJTKSkKPiAgIAkJCWlndF9zdWJ0ZXN0X2YoIiVzLXNsb3dkcmF3IiwgZmVh dHVyZV9zdHIodC5mZWF0dXJlKSkKPiAgIAkJCQlzbG93X2RyYXdfc3VidGVzdCgmdCk7Cj4gICAK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdm eCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=