From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [RFC v5] drm/i915/psr: Kill scheduled work for Core platforms. Date: Wed, 14 Mar 2018 13:47:53 -0700 Message-ID: <20180314204753.GP3945@intel.com> References: <1520893121.4958.48.camel@dk-H97M-D3H> <20180313222319.2721-1-rodrigo.vivi@intel.com> <1521060493.4958.86.camel@dk-H97M-D3H> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 68F796E73F for ; Wed, 14 Mar 2018 20:47:58 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1521060493.4958.86.camel@dk-H97M-D3H> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Pandiyan, Dhinakaran" Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBNYXIgMTQsIDIwMTggYXQgMDE6MjQ6MTNQTSAtMDcwMCwgUGFuZGl5YW4sIERoaW5h a2FyYW4gd3JvdGU6Cj4gT24gVHVlLCAyMDE4LTAzLTEzIGF0IDE1OjIzIC0wNzAwLCBSb2RyaWdv IFZpdmkgd3JvdGU6Cj4gPiBUaGUgaW1tZWRpYXRlIGVuYWJsaW5nIGlzIGFjdHVhbGx5IG5vdCBh biBpc3N1ZSBmb3IgdGhlCj4gPiBIVyBwZXJzcGVjdGl2ZSBmb3IgY29yZSBwbGF0Zm9ybXMgdGhh dCBoYXZlIEhXIHRyYWNraW5nLgo+ID4gSFcgd2lsbCB3YWl0IGZldyBpZGVudGljYWwgaWRsZSBm cmFtZXMgYmVmb3JlIHRyYW5zaXRpb25pbmcKPiA+IHRvIGFjdHVhbCBwc3IgYWN0aXZlIGFueXdh eXMuCj4gPiAKPiA+IE5vdGUgdGhhdCB0aGlzIHBhdGNoIGFsc28gcmVtb3ZlIHRoZSBkZWxheWVk IGFjdGl2YXRpb24KPiA+IG9uIEhTVyBhbmQgQkRXIGludHJvZHVjZWQgYnkgY29tbWl0ICdkMGFj ODk2YTQ3N2QKPiA+ICgiZHJtL2k5MTU6IERlbGF5IGZpcnN0IFBTUiBhY3RpdmF0aW9uLiIpJy4g VGhpcyB3YXMKPiA+IGludHJvZHVjZWQgdG8gZml4IGEgYmxhbmsgc2NyZWVuIG9uIFZMVi9DSFYg YW5kIGFsc28KPiA+IG1hc2tlZCBzb21lIGZyb3plbiBzY3JlZW5zIG9uIG90aGVyIGNvcmUgcGxh dGZvcm1zLgo+ID4gUHJvYmFibHkgdGhlIHNhbWUgdGhhdCB3ZSBhcmUgbm93IHByb3Blcmx5IGh1 bnRpbmcgYW5kIGZpeGluZy4KPiA+IAo+ID4gRnVydGhlcm1vcmUsIGlmIHdlIHN0b3AgdXNpbmcg ZGVsYXllZCBhY3RpdmF0aW9uIG9uIGNvcmUKPiA+IHBsYXRmb3JtcyB3ZSB3aWxsIGJlIGFibGUs IG9uIGZvbGxvd2luZyB1cCBwYXRjaGVzLAo+ID4gdG8gdXNlIGF2YWlsYWJsZSB3b3JrYXJvdW5k cyB0byBtYWtlIEhXIHRyYWNraW5nIHByb3Blcmx5Cj4gPiBleGl0IFBTUiBpbnN0ZWFkIG9mIHRo ZSBiaWcgbnVrZSBvZiBkaXNhYmxpbmcgcHNyIGFuZAo+ID4gcmUtZW5hYmxlIG9uIGV4aXQgYW5k IGFjdGl2YXRlIHJlc3BlY3RpdmVseS4KPiA+IEF0IGxlYXN0IG9uIGZldyByZWxpYWJsZSBjYXNl cy4KPiA+IAo+ID4gdjI6KERLKTogUmVtb3ZlIHVubmVjZXNzYXJ5IFdBUk5fT05zIGFuZCBtYWtl IHNvbWUgb3RoZXIKPiA+IAkgVkxWIHwgQ0hWIG1vcmUgcmVhZGFibGUuCj4gPiB2MzogRG8gaXQg cmVnYXJkbGVzcyB0aGUgdGltZXIgcmV3b3JrLgo+ID4gdjQ6IChESy9DSSk6IEFkZCBWTFYgfHwg Q0hWIGNoZWNrIG9uIGNhbmNlbCB3b3JrIGF0IHBzcl9kaXNhYmxlLgo+ID4gdjU6IEtpbGwgcmVt YWluaW5nIGl0ZW1zIGFuZCBmdWxseSByZXdvcmsgYWN0aXZhdGlvbiBmdW5jdGlvbnMuCj4gPiAK PiA+IENjOiBEaGluYWthcmFuIFBhbmRpeWFuIDxkaGluYWthcmFuLnBhbmRpeWFuQGludGVsLmNv bT4KPiA+IFNpZ25lZC1vZmYtYnk6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNv bT4KPiA+IC0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIHwgIDIw ICsrKy0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgIHwgICAzICst Cj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMgICAgfCAxMzQgKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiAgMyBmaWxlcyBjaGFuZ2VkLCA2NSBpbnNl cnRpb25zKCspLCA5MiBkZWxldGlvbnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k ZWJ1Z2ZzLmMKPiA+IGluZGV4IDk3MjAxNGIyNDk3ZC4uN2RmYWRhODYzZjljIDEwMDY0NAo+ID4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiA+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gPiBAQCAtMjU2NywxNSArMjU2NywxNCBA QCBzdGF0aWMgaW50IGk5MTVfZWRwX3Bzcl9zdGF0dXMoc3RydWN0IHNlcV9maWxlICptLCB2b2lk ICpkYXRhKQo+ID4gIAlzZXFfcHJpbnRmKG0sICJFbmFibGVkOiAlc1xuIiwgeWVzbm8oKGJvb2wp ZGV2X3ByaXYtPnBzci5lbmFibGVkKSk7Cj4gPiAgCXNlcV9wcmludGYobSwgIkJ1c3kgZnJvbnRi dWZmZXIgYml0czogMHglMDN4XG4iLAo+ID4gIAkJICAgZGV2X3ByaXYtPnBzci5idXN5X2Zyb250 YnVmZmVyX2JpdHMpOwo+ID4gLQlzZXFfcHJpbnRmKG0sICJSZS1lbmFibGUgd29yayBzY2hlZHVs ZWQ6ICVzXG4iLAo+ID4gLQkJICAgeWVzbm8od29ya19idXN5KCZkZXZfcHJpdi0+cHNyLndvcmsu d29yaykpKTsKPiA+ICAKPiA+IC0JaWYgKEhBU19EREkoZGV2X3ByaXYpKSB7Cj4gPiAtCQlpZiAo ZGV2X3ByaXYtPnBzci5wc3IyX3N1cHBvcnQpCj4gPiAtCQkJZW5hYmxlZCA9IEk5MTVfUkVBRChF RFBfUFNSMl9DVEwpICYgRURQX1BTUjJfRU5BQkxFOwo+ID4gLQkJZWxzZQo+ID4gLQkJCWVuYWJs ZWQgPSBJOTE1X1JFQUQoRURQX1BTUl9DVEwpICYgRURQX1BTUl9FTkFCTEU7Cj4gPiAtCX0gZWxz ZSB7Cj4gPiArCWlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2KSB8fCBJU19DSEVSUllWSUVXKGRl dl9wcml2KSkgewo+ID4gKwkJYm9vbCBzY2hlZHVsZWQ7Cj4gPiArCj4gPiArCQlzY2hlZHVsZWQg PSB3b3JrX2J1c3koJmRldl9wcml2LT5wc3Iudmx2X2FjdGl2YXRlX3dvcmsud29yayk7Cj4gPiAr CQlzZXFfcHJpbnRmKG0sICJSZS1lbmFibGUgd29yayBzY2hlZHVsZWQ6ICVzXG4iLAo+ID4gKwkJ CSAgIHllc25vKHNjaGVkdWxlZCkpOwo+ID4gKwo+ID4gIAkJZm9yX2VhY2hfcGlwZShkZXZfcHJp diwgcGlwZSkgewo+ID4gIAkJCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlciA9Cj4gPiAg CQkJCWludGVsX3BpcGVfdG9fY3B1X3RyYW5zY29kZXIoZGV2X3ByaXYsIHBpcGUpOwo+ID4gQEAg LTI1OTQsNiArMjU5MywxMSBAQCBzdGF0aWMgaW50IGk5MTVfZWRwX3Bzcl9zdGF0dXMoc3RydWN0 IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQo+ID4gIAo+ID4gIAkJCWludGVsX2Rpc3BsYXlfcG93 ZXJfcHV0KGRldl9wcml2LCBwb3dlcl9kb21haW4pOwo+ID4gIAkJfQo+ID4gKwl9IGVsc2Ugewo+ ID4gKwkJaWYgKGRldl9wcml2LT5wc3IucHNyMl9zdXBwb3J0KQo+ID4gKwkJCWVuYWJsZWQgPSBJ OTE1X1JFQUQoRURQX1BTUjJfQ1RMKSAmIEVEUF9QU1IyX0VOQUJMRTsKPiA+ICsJCWVsc2UKPiA+ ICsJCQllbmFibGVkID0gSTkxNV9SRUFEKEVEUF9QU1JfQ1RMKSAmIEVEUF9QU1JfRU5BQkxFOwo+ ID4gIAl9Cj4gPiAgCj4gPiAgCXNlcV9wcmludGYobSwgIk1haW4gbGluayBpbiBzdGFuZGJ5IG1v ZGU6ICVzXG4iLAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiBpbmRleCA3NGIwZTlkOGZm NjIuLjQwOTk5N2YyOWUwNyAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+IEBA IC01OTgsNyArNTk4LDcgQEAgc3RydWN0IGk5MTVfcHNyIHsKPiA+ICAJYm9vbCBzaW5rX3N1cHBv cnQ7Cj4gPiAgCXN0cnVjdCBpbnRlbF9kcCAqZW5hYmxlZDsKPiA+ICAJYm9vbCBhY3RpdmU7Cj4g PiAtCXN0cnVjdCBkZWxheWVkX3dvcmsgd29yazsKPiA+ICsJc3RydWN0IGRlbGF5ZWRfd29yayB2 bHZfYWN0aXZhdGVfd29yazsKPiA+ICAJdW5zaWduZWQgYnVzeV9mcm9udGJ1ZmZlcl9iaXRzOwo+ ID4gIAlib29sIHBzcjJfc3VwcG9ydDsKPiA+ICAJYm9vbCBhdXhfZnJhbWVfc3luYzsKPiA+IEBA IC02MTMsNyArNjEzLDYgQEAgc3RydWN0IGk5MTVfcHNyIHsKPiA+ICAJdm9pZCAoKmRpc2FibGVf c291cmNlKShzdHJ1Y3QgaW50ZWxfZHAgKiwKPiA+ICAJCQkgICAgICAgY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKik7Cj4gPiAgCXZvaWQgKCplbmFibGVfc2luaykoc3RydWN0IGludGVs X2RwICopOwo+ID4gLQl2b2lkICgqYWN0aXZhdGUpKHN0cnVjdCBpbnRlbF9kcCAqKTsKPiA+ICAJ dm9pZCAoKnNldHVwX3ZzYykoc3RydWN0IGludGVsX2RwICosIGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICopOwo+ID4gIH07Cj4gPiAgCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcHNyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYwo+ ID4gaW5kZXggMzE3Y2I0YTEyNjkzLi5iYzdiOTRhMDY0MTcgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcHNyLmMKPiA+IEBAIC0zMTEsMjQgKzMxMSw2IEBAIHN0YXRpYyB2b2lkIHZsdl9w c3JfZW5hYmxlX3NvdXJjZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4gIAkJICAgVkxW X0VEUF9QU1JfRU5BQkxFKTsKPiA+ICB9Cj4gPiAgCj4gPiAtc3RhdGljIHZvaWQgdmx2X3Bzcl9h Y3RpdmF0ZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ID4gLXsKPiA+IC0Jc3RydWN0IGlu dGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7Cj4g PiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkaWdfcG9ydC0+YmFzZS5iYXNlLmRldjsKPiA+ IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ID4g LQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBkaWdfcG9ydC0+YmFzZS5iYXNlLmNydGM7Cj4gPiAt CWVudW0gcGlwZSBwaXBlID0gdG9faW50ZWxfY3J0YyhjcnRjKS0+cGlwZTsKPiA+IC0KPiA+IC0J LyoKPiA+IC0JICogTGV0J3MgZG8gdGhlIHRyYW5zaXRpb24gZnJvbSBQU1Jfc3RhdGUgMSAoaW5h Y3RpdmUpIHRvCj4gPiAtCSAqIFBTUl9zdGF0ZSAyICh0cmFuc2l0aW9uIHRvIGFjdGl2ZSAtIHN0 YXRpYyBmcmFtZSB0cmFuc21pc3Npb24pLgo+ID4gLQkgKiBUaGVuIEhhcmR3YXJlIGlzIHJlc3Bv bnNpYmxlIGZvciB0aGUgdHJhbnNpdGlvbiB0bwo+ID4gLQkgKiBQU1Jfc3RhdGUgMyAoYWN0aXZl IC0gbm8gUmVtb3RlIEZyYW1lIEJ1ZmZlciAoUkZCKSB1cGRhdGUpLgo+ID4gLQkgKi8KPiA+IC0J STkxNV9XUklURShWTFZfUFNSQ1RMKHBpcGUpLCBJOTE1X1JFQUQoVkxWX1BTUkNUTChwaXBlKSkg fAo+ID4gLQkJICAgVkxWX0VEUF9QU1JfQUNUSVZFX0VOVFJZKTsKPiA+IC19Cj4gPiAtCj4gPiAg c3RhdGljIHZvaWQgaHN3X2FjdGl2YXRlX3BzcjEoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkK PiA+ICB7Cj4gPiAgCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gZHBfdG9f ZGlnX3BvcnQoaW50ZWxfZHApOwo+ID4gQEAgLTQzNCwxNiArNDE2LDI1IEBAIHN0YXRpYyB2b2lk IGhzd19wc3JfYWN0aXZhdGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ICAJc3RydWN0 IGRybV9kZXZpY2UgKmRldiA9IGRpZ19wb3J0LT5iYXNlLmJhc2UuZGV2Owo+ID4gIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gPiAgCj4gPiArCVdB Uk5fT04oZGV2X3ByaXYtPnBzci5hY3RpdmUpOwo+ID4gKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZk ZXZfcHJpdi0+cHNyLmxvY2spOwo+ID4gKwo+ID4gIAkvKiBPbiBIU1crIGFmdGVyIHdlIGVuYWJs ZSBQU1Igb24gc291cmNlIGl0IHdpbGwgYWN0aXZhdGUgaXQKPiA+ICAJICogYXMgc29vbiBhcyBp dCBtYXRjaCBjb25maWd1cmUgaWRsZV9mcmFtZSBjb3VudC4gU28KPiA+ICAJICogd2UganVzdCBh Y3R1YWxseSBlbmFibGUgaXQgaGVyZSBvbiBhY3RpdmF0aW9uIHRpbWUuCj4gPiAgCSAqLwo+ID4g KwlpZiAoZGV2X3ByaXYtPnBzci5wc3IyX3N1cHBvcnQpCj4gPiArCQlXQVJOX09OKEk5MTVfUkVB RChFRFBfUFNSMl9DVEwpICYgRURQX1BTUjJfRU5BQkxFKTsKPiA+ICsJZWxzZQo+ID4gKwkJV0FS Tl9PTihJOTE1X1JFQUQoRURQX1BTUl9DVEwpICYgRURQX1BTUl9FTkFCTEUpOwo+ID4gIAo+ID4g IAkvKiBwc3IxIGFuZCBwc3IyIGFyZSBtdXR1YWxseSBleGNsdXNpdmUuKi8KPiA+ICAJaWYgKGRl dl9wcml2LT5wc3IucHNyMl9zdXBwb3J0KQo+ID4gIAkJaHN3X2FjdGl2YXRlX3BzcjIoaW50ZWxf ZHApOwo+ID4gIAllbHNlCj4gPiAgCQloc3dfYWN0aXZhdGVfcHNyMShpbnRlbF9kcCk7Cj4gCj4g bml0OiBUaGUgYnJhbmNoZXMgY2FuIGJlIGdyb3VwZWQgdG9nZXRoZXIuCj4gCj4gPiArCj4gPiAr CWRldl9wcml2LT5wc3IuYWN0aXZlID0gdHJ1ZTsKPiA+ICB9Cj4gPiAgCj4gPiAgc3RhdGljIGJv b2wgaW50ZWxfcHNyMl9jb25maWdfdmFsaWQoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiA+ IEBAIC01NjgsMTUgKzU1OSwyMCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wc3JfYWN0aXZhdGUoc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGlu dGVsX2RpZ19wb3J0LT5iYXNlLmJhc2UuZGV2Owo+ID4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gPiAgCj4gPiAtCWlmIChkZXZfcHJpdi0+cHNy LnBzcjJfc3VwcG9ydCkKPiA+IC0JCVdBUk5fT04oSTkxNV9SRUFEKEVEUF9QU1IyX0NUTCkgJiBF RFBfUFNSMl9FTkFCTEUpOwo+ID4gLQllbHNlCj4gPiAtCQlXQVJOX09OKEk5MTVfUkVBRChFRFBf UFNSX0NUTCkgJiBFRFBfUFNSX0VOQUJMRSk7Cj4gPiAtCVdBUk5fT04oZGV2X3ByaXYtPnBzci5h Y3RpdmUpOwo+ID4gLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZkZXZfcHJpdi0+cHNyLmxvY2spOwo+ ID4gKwlpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJp dikpIHsKPiA+ICsJCS8qCj4gPiArCQkgKiBGSVhNRTogVkxWL0NIViBoYXMgbWFueSBwcm9ibGVt cywgYnV0IHdvcnN0IGJlaW5nIGJsYW5rCj4gPiArCQkgKiBzY3JlZW5zIG9uIGZpcnN0IGFjdGl2 YXRpb24uIExldCdzIHBpY2sgdGhlIHdvcnN0IGNhc2UKPiA+ICsJCSAqIGRlbGF5IGZvciBub3cu Cj4gPiArCQkgKi8KPiA+ICsJCWludCBkZWxheSA9IDE1MDA7Cj4gPiAgCj4gPiAtCWRldl9wcml2 LT5wc3IuYWN0aXZhdGUoaW50ZWxfZHApOwo+ID4gLQlkZXZfcHJpdi0+cHNyLmFjdGl2ZSA9IHRy dWU7Cj4gPiArCQlpZiAoIXdvcmtfYnVzeSgmZGV2X3ByaXYtPnBzci52bHZfYWN0aXZhdGVfd29y ay53b3JrKSkKPiAKPiBTaW5jZSB0aGUgd29yayBpcyBhbHJlYWR5IGNhbmNlbGxlZCwgZG8gd2Ug bmVlZCB0aGlzPwoKaWYgd2UgYXJlIGZvciBzdXJlIGNhbmNlbGluZyBldmVyeXdoZXJlIHlvdSBh cmUgcmlnaHQuIHdlIGNvdWxkIHJlbW92ZSB0aGlzLgo+IAo+IFRoZSBwYXRjaCBsb29rcyBnb29k IHRvIG1lLCBmZXdlciBpbmRpcmVjdCBjYWxscyBhbmQgZWFzaWVyIHRvIHJlYWQuCj4gCj4gCj4g PiArCQkJc2NoZWR1bGVfZGVsYXllZF93b3JrKCZkZXZfcHJpdi0+cHNyLnZsdl9hY3RpdmF0ZV93 b3JrLAo+ID4gKwkJCQkJICAgICAgbXNlY3NfdG9famlmZmllcyhkZWxheSkpOwo+ID4gKwl9IGVs c2Ugewo+ID4gKwkJaHN3X3Bzcl9hY3RpdmF0ZShpbnRlbF9kcCk7Cj4gPiArCX0KPiA+ICB9Cj4g PiAgCj4gPiAgc3RhdGljIHZvaWQgaHN3X3Bzcl9lbmFibGVfc291cmNlKHN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHAsCj4gPiBAQCAtNjUyLDIyICs2NDgsNyBAQCB2b2lkIGludGVsX3Bzcl9lbmFi bGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiA+ICAJZGV2X3ByaXYtPnBzci5lbmFibGVf c291cmNlKGludGVsX2RwLCBjcnRjX3N0YXRlKTsKPiA+ICAJZGV2X3ByaXYtPnBzci5lbmFibGVk ID0gaW50ZWxfZHA7Cj4gPiAgCj4gPiAtCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpIHsK PiA+IC0JCWludGVsX3Bzcl9hY3RpdmF0ZShpbnRlbF9kcCk7Cj4gPiAtCX0gZWxzZSB7Cj4gPiAt CQkvKgo+ID4gLQkJICogRklYTUU6IEFjdGl2YXRpb24gc2hvdWxkIGhhcHBlbiBpbW1lZGlhdGVs eSBzaW5jZSB0aGlzCj4gPiAtCQkgKiBmdW5jdGlvbiBpcyBqdXN0IGNhbGxlZCBhZnRlciBwaXBl IGlzIGZ1bGx5IHRyYWluZWQgYW5kCj4gPiAtCQkgKiBlbmFibGVkLgo+ID4gLQkJICogSG93ZXZl ciBvbiBzb21lIHBsYXRmb3JtcyB3ZSBmYWNlIGlzc3VlcyB3aGVuIGZpcnN0Cj4gPiAtCQkgKiBh Y3RpdmF0aW9uIGZvbGxvd3MgYSBtb2Rlc2V0IHNvIHF1aWNrbHkuCj4gPiAtCQkgKiAgICAgLSBP biBWTFYvQ0hWIHdlIGdldCBiYW5rIHNjcmVlbiBvbiBmaXJzdCBhY3RpdmF0aW9uCj4gPiAtCQkg KiAgICAgLSBPbiBIU1cvQkRXIHdlIGdldCBhIHJlY292ZXJhYmxlIGZyb3plbiBzY3JlZW4gdW50 aWwKPiA+IC0JCSAqICAgICAgIG5leHQgZXhpdC1hY3RpdmF0ZSBzZXF1ZW5jZS4KPiA+IC0JCSAq Lwo+ID4gLQkJc2NoZWR1bGVfZGVsYXllZF93b3JrKCZkZXZfcHJpdi0+cHNyLndvcmssCj4gPiAt CQkJCSAgICAgIG1zZWNzX3RvX2ppZmZpZXMoaW50ZWxfZHAtPnBhbmVsX3Bvd2VyX2N5Y2xlX2Rl bGF5ICogNSkpOwo+ID4gLQl9Cj4gPiArCWludGVsX3Bzcl9hY3RpdmF0ZShpbnRlbF9kcCk7Cj4g PiAgCj4gPiAgdW5sb2NrOgo+ID4gIAltdXRleF91bmxvY2soJmRldl9wcml2LT5wc3IubG9jayk7 Cj4gPiBAQCAtNzg2LDEzICs3NjcsMTQgQEAgdm9pZCBpbnRlbF9wc3JfZGlzYWJsZShzdHJ1Y3Qg aW50ZWxfZHAgKmludGVsX2RwLAo+ID4gIAlkZXZfcHJpdi0+cHNyLmVuYWJsZWQgPSBOVUxMOwo+ ID4gIAltdXRleF91bmxvY2soJmRldl9wcml2LT5wc3IubG9jayk7Cj4gPiAgCj4gPiAtCWNhbmNl bF9kZWxheWVkX3dvcmtfc3luYygmZGV2X3ByaXYtPnBzci53b3JrKTsKPiA+ICsJaWYgKElTX1ZB TExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQo+ID4gKwkJY2Fu Y2VsX2RlbGF5ZWRfd29ya19zeW5jKCZkZXZfcHJpdi0+cHNyLnZsdl9hY3RpdmF0ZV93b3JrKTsK PiA+ICB9Cj4gPiAgCj4gPiAtc3RhdGljIHZvaWQgaW50ZWxfcHNyX3dvcmsoc3RydWN0IHdvcmtf c3RydWN0ICp3b3JrKQo+ID4gK3N0YXRpYyB2b2lkIHZsdl9wc3JfYWN0aXZhdGVfd29yayhzdHJ1 Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4gPiAgewo+ID4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPQo+ID4gLQkJY29udGFpbmVyX29mKHdvcmssIHR5cGVvZigqZGV2X3ByaXYp LCBwc3Iud29yay53b3JrKTsKPiA+ICsJICAgICAgY29udGFpbmVyX29mKHdvcmssIHR5cGVvZigq ZGV2X3ByaXYpLCBwc3Iudmx2X2FjdGl2YXRlX3dvcmsud29yayk7Cj4gPiAgCXN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHAgPSBkZXZfcHJpdi0+cHNyLmVuYWJsZWQ7Cj4gPiAgCXN0cnVjdCBkcm1f Y3J0YyAqY3J0YyA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKS0+YmFzZS5iYXNlLmNydGM7Cj4g PiAgCWVudW0gcGlwZSBwaXBlID0gdG9faW50ZWxfY3J0YyhjcnRjKS0+cGlwZTsKPiA+IEBAIC04 MDIsMzUgKzc4NCwxMyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wc3Jfd29yayhzdHJ1Y3Qgd29ya19z dHJ1Y3QgKndvcmspCj4gPiAgCSAqIFBTUiBtaWdodCB0YWtlIHNvbWUgdGltZSB0byBnZXQgZnVs bHkgZGlzYWJsZWQKPiA+ICAJICogYW5kIGJlIHJlYWR5IGZvciByZS1lbmFibGUuCj4gPiAgCSAq Lwo+ID4gLQlpZiAoSEFTX0RESShkZXZfcHJpdikpIHsKPiA+IC0JCWlmIChkZXZfcHJpdi0+cHNy LnBzcjJfc3VwcG9ydCkgewo+ID4gLQkJCWlmIChpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcihkZXZf cHJpdiwKPiA+IC0JCQkJCQkgICAgRURQX1BTUjJfU1RBVFVTLAo+ID4gLQkJCQkJCSAgICBFRFBf UFNSMl9TVEFUVVNfU1RBVEVfTUFTSywKPiA+IC0JCQkJCQkgICAgMCwKPiA+IC0JCQkJCQkgICAg NTApKSB7Cj4gPiAtCQkJCURSTV9FUlJPUigiVGltZWQgb3V0IHdhaXRpbmcgZm9yIFBTUjIgSWRs ZSBmb3IgcmUtZW5hYmxlXG4iKTsKPiA+IC0JCQkJcmV0dXJuOwo+ID4gLQkJCX0KPiA+IC0JCX0g ZWxzZSB7Cj4gPiAtCQkJaWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKGRldl9wcml2LAo+ID4g LQkJCQkJCSAgICBFRFBfUFNSX1NUQVRVUywKPiA+IC0JCQkJCQkgICAgRURQX1BTUl9TVEFUVVNf U1RBVEVfTUFTSywKPiA+IC0JCQkJCQkgICAgMCwKPiA+IC0JCQkJCQkgICAgNTApKSB7Cj4gPiAt CQkJCURSTV9FUlJPUigiVGltZWQgb3V0IHdhaXRpbmcgZm9yIFBTUiBJZGxlIGZvciByZS1lbmFi bGVcbiIpOwo+ID4gLQkJCQlyZXR1cm47Cj4gPiAtCQkJfQo+ID4gLQkJfQo+ID4gLQl9IGVsc2Ug ewo+ID4gLQkJaWYgKGludGVsX3dhaXRfZm9yX3JlZ2lzdGVyKGRldl9wcml2LAo+ID4gLQkJCQkJ ICAgIFZMVl9QU1JTVEFUKHBpcGUpLAo+ID4gLQkJCQkJICAgIFZMVl9FRFBfUFNSX0lOX1RSQU5T LAo+ID4gLQkJCQkJICAgIDAsCj4gPiAtCQkJCQkgICAgMSkpIHsKPiA+IC0JCQlEUk1fRVJST1Io IlRpbWVkIG91dCB3YWl0aW5nIGZvciBQU1IgSWRsZSBmb3IgcmUtZW5hYmxlXG4iKTsKPiA+IC0J CQlyZXR1cm47Cj4gPiAtCQl9Cj4gPiArCWlmIChpbnRlbF93YWl0X2Zvcl9yZWdpc3RlcihkZXZf cHJpdiwKPiA+ICsJCQkJICAgIFZMVl9QU1JTVEFUKHBpcGUpLAo+ID4gKwkJCQkgICAgVkxWX0VE UF9QU1JfSU5fVFJBTlMsCj4gPiArCQkJCSAgICAwLAo+ID4gKwkJCQkgICAgMSkpIHsKPiA+ICsJ CURSTV9FUlJPUigiVGltZWQgb3V0IHdhaXRpbmcgZm9yIFBTUiBJZGxlIGZvciByZS1lbmFibGVc biIpOwo+ID4gKwkJcmV0dXJuOwo+ID4gIAl9Cj4gPiAgCW11dGV4X2xvY2soJmRldl9wcml2LT5w c3IubG9jayk7Cj4gPiAgCWludGVsX2RwID0gZGV2X3ByaXYtPnBzci5lbmFibGVkOwo+ID4gQEAg LTg0Niw4ICs4MDYsMTcgQEAgc3RhdGljIHZvaWQgaW50ZWxfcHNyX3dvcmsoc3RydWN0IHdvcmtf c3RydWN0ICp3b3JrKQo+ID4gIAlpZiAoZGV2X3ByaXYtPnBzci5idXN5X2Zyb250YnVmZmVyX2Jp dHMpCj4gPiAgCQlnb3RvIHVubG9jazsKPiA+ICAKPiA+IC0JaW50ZWxfcHNyX2FjdGl2YXRlKGlu dGVsX2RwKTsKPiA+IC11bmxvY2s6Cj4gPiArCS8qCj4gPiArCSAqIExldCdzIGRvIHRoZSB0cmFu c2l0aW9uIGZyb20gUFNSX3N0YXRlIDEgKGluYWN0aXZlKSB0bwo+ID4gKwkgKiBQU1Jfc3RhdGUg MiAodHJhbnNpdGlvbiB0byBhY3RpdmUgLSBzdGF0aWMgZnJhbWUgdHJhbnNtaXNzaW9uKS4KPiA+ ICsJICogVGhlbiBIYXJkd2FyZSBpcyByZXNwb25zaWJsZSBmb3IgdGhlIHRyYW5zaXRpb24gdG8K PiA+ICsJICogUFNSX3N0YXRlIDMgKGFjdGl2ZSAtIG5vIFJlbW90ZSBGcmFtZSBCdWZmZXIgKFJG QikgdXBkYXRlKS4KPiA+ICsJICovCj4gPiArCUk5MTVfV1JJVEUoVkxWX1BTUkNUTChwaXBlKSwg STkxNV9SRUFEKFZMVl9QU1JDVEwocGlwZSkpIHwKPiA+ICsJCSAgIFZMVl9FRFBfUFNSX0FDVElW RV9FTlRSWSk7Cj4gPiArCWRldl9wcml2LT5wc3IuYWN0aXZlID0gdHJ1ZTsKPiA+ICsKPiA+ICsg dW5sb2NrOgo+ID4gIAltdXRleF91bmxvY2soJmRldl9wcml2LT5wc3IubG9jayk7Cj4gPiAgfQo+ ID4gIAo+ID4gQEAgLTEwMjEsNiArOTkwLDkgQEAgdm9pZCBpbnRlbF9wc3JfZmx1c2goc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gIAlpZiAoZGV2X3ByaXYtPnBzci5oYXNf aHdfdHJhY2tpbmcgJiYgb3JpZ2luID09IE9SSUdJTl9GTElQKQo+ID4gIAkJcmV0dXJuOwo+ID4g IAo+ID4gKwlpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZf cHJpdikpCj4gPiArCQljYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJmRldl9wcml2LT5wc3Iudmx2 X2FjdGl2YXRlX3dvcmspOwo+IAo+IHBzcl9pbnZhbGlkYXRlKCkgd2lsbCBhbHNvIG5lZWQgYSBj YW5jZWxfZGVsYXllZF93b3JrX3N5bmMoKQoKaW5kZWVkLi4uCgo+IEkgd29uZGVyIGlmCj4gdGhp cyBzaG91bGQgbW92ZSB0byBpbnRlbF9wc3JfZXhpdCgpLCByaWdodCBiZWZvcmUgd3JpdGluZyB0 bwo+IFZMVl9QU1JDVEwuCgpJJ20gYWZyYWlkIG9mIGNhbGxpbmcgaXQgZnJvbSBpbnNpZGUgdGhl IG11dGV4IGFyZWEgc2luY2UgaXQgaXMKY2FuY2VsIGFuZCB3YWl0IGFuZCB3YWl0IG1pZ2h0IGJl IG9uIHRoZSBtdXRleF9sb2NrIGluc2lkZSB0aGUgd29yay4uLgoKdGhvdWdodHM/Cgo+IAo+IAo+ ID4gKwo+ID4gIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+cHNyLmxvY2spOwo+ID4gIAlpZiAoIWRl dl9wcml2LT5wc3IuZW5hYmxlZCkgewo+ID4gIAkJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cHNy LmxvY2spOwo+ID4gQEAgLTEwNTMsOSArMTAyNSw4IEBAIHZvaWQgaW50ZWxfcHNyX2ZsdXNoKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ICAJfQo+ID4gIAo+ID4gIAlpZiAo IWRldl9wcml2LT5wc3IuYWN0aXZlICYmICFkZXZfcHJpdi0+cHNyLmJ1c3lfZnJvbnRidWZmZXJf Yml0cykKPiA+IC0JCWlmICghd29ya19idXN5KCZkZXZfcHJpdi0+cHNyLndvcmsud29yaykpCj4g PiAtCQkJc2NoZWR1bGVfZGVsYXllZF93b3JrKCZkZXZfcHJpdi0+cHNyLndvcmssCj4gPiAtCQkJ CQkgICAgICBtc2Vjc190b19qaWZmaWVzKDEwMCkpOwo+ID4gKwkJaW50ZWxfcHNyX2FjdGl2YXRl KGRldl9wcml2LT5wc3IuZW5hYmxlZCk7Cj4gPiArCj4gPiAgCW11dGV4X3VubG9jaygmZGV2X3By aXYtPnBzci5sb2NrKTsKPiA+ICB9Cj4gPiAgCj4gPiBAQCAtMTEwMiwyMSArMTA3MywyMCBAQCB2 b2lkIGludGVsX3Bzcl9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+ ICAJCWRldl9wcml2LT5wc3IubGlua19zdGFuZGJ5ID0gZmFsc2U7Cj4gPiAgCX0KPiA+ICAKPiA+ IC0JSU5JVF9ERUxBWUVEX1dPUksoJmRldl9wcml2LT5wc3Iud29yaywgaW50ZWxfcHNyX3dvcmsp Owo+ID4gIAltdXRleF9pbml0KCZkZXZfcHJpdi0+cHNyLmxvY2spOwo+ID4gIAo+ID4gIAlpZiAo SVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpIHsKPiA+ ICsJCUlOSVRfREVMQVlFRF9XT1JLKCZkZXZfcHJpdi0+cHNyLnZsdl9hY3RpdmF0ZV93b3JrLAo+ ID4gKwkJCQkgIHZsdl9wc3JfYWN0aXZhdGVfd29yayk7Cj4gPiAgCQlkZXZfcHJpdi0+cHNyLmVu YWJsZV9zb3VyY2UgPSB2bHZfcHNyX2VuYWJsZV9zb3VyY2U7Cj4gPiAgCQlkZXZfcHJpdi0+cHNy LmRpc2FibGVfc291cmNlID0gdmx2X3Bzcl9kaXNhYmxlOwo+ID4gIAkJZGV2X3ByaXYtPnBzci5l bmFibGVfc2luayA9IHZsdl9wc3JfZW5hYmxlX3Npbms7Cj4gPiAtCQlkZXZfcHJpdi0+cHNyLmFj dGl2YXRlID0gdmx2X3Bzcl9hY3RpdmF0ZTsKPiA+ICAJCWRldl9wcml2LT5wc3Iuc2V0dXBfdnNj ID0gdmx2X3Bzcl9zZXR1cF92c2M7Cj4gPiAgCX0gZWxzZSB7Cj4gPiAgCQlkZXZfcHJpdi0+cHNy Lmhhc19od190cmFja2luZyA9IHRydWU7Cj4gPiAgCQlkZXZfcHJpdi0+cHNyLmVuYWJsZV9zb3Vy Y2UgPSBoc3dfcHNyX2VuYWJsZV9zb3VyY2U7Cj4gPiAgCQlkZXZfcHJpdi0+cHNyLmRpc2FibGVf c291cmNlID0gaHN3X3Bzcl9kaXNhYmxlOwo+ID4gIAkJZGV2X3ByaXYtPnBzci5lbmFibGVfc2lu ayA9IGhzd19wc3JfZW5hYmxlX3Npbms7Cj4gCj4gV2UgbWlnaHQgYmUgYWJsZSB0byByZW1vdmUg ZW5hYmxlX3NpbmsgYWxzbyBpZiBteSBhdXggcGF0Y2ggZ29lcwo+IHRocm91Z2guIGVuYWJsZV8q c2luayogcmVxdWlyZWQgcGxhdGZvcm0gc3BlY2lmaWMgaG9va3MgaXMgYSBiaXQgb2RkCj4gSU1P LgoKY29vbCEKCj4gCj4gCj4gPiAtCQlkZXZfcHJpdi0+cHNyLmFjdGl2YXRlID0gaHN3X3Bzcl9h Y3RpdmF0ZTsKPiA+ICAJCWRldl9wcml2LT5wc3Iuc2V0dXBfdnNjID0gaHN3X3Bzcl9zZXR1cF92 c2M7Cj4gPiAgCX0KPiA+ICB9Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo=