From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lohith BS Subject: [PATCH i-g-t] Idleness DRRS: Date: Fri, 10 Nov 2017 21:52:01 +0530 Message-ID: <1510330921-22710-1-git-send-email-lohith.bs@intel.com> References: <1509441644-4765-4-git-send-email-ramalingam.c@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id C9E116E1CD for ; Fri, 10 Nov 2017 16:28:42 +0000 (UTC) In-Reply-To: <1509441644-4765-4-git-send-email-ramalingam.c@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: paulo.r.zanoni@intel.com, rodrigo.vivi@intel.com, chris@chris-wilson.co.uk, intel-gfx@lists.freedesktop.org Cc: ankit.k.nautiyal@intel.com List-Id: intel-gfx@lists.freedesktop.org ICAgICAgICBCeSBkZWZhdWx0IHRoZSBEUlJTIHN0YXRlIHdpbGwgYmUgYXQgRFJSU19ISUdIX1JS LiBXaGVuIGEgRGlzcGxheQogICAgICAgIGNvbnRlbnQgaXMgSWRsZSBmb3IgbW9yZSB0aGFuIDFT ZWMgSWRsZW5lc3Mgd2lsbCBiZSBkZWNsYXJlZCBhbmQKICAgICAgICBEUlJTX0xPV19SUiB3aWxs IGJlIGludm9rZWQsIGNoYW5naW5nIHRoZSByZWZyZXNoIHJhdGUgdG8gdGhlCiAgICAgICAgbG93 ZXIgbW9zdCByZWZyZXNoIHJhdGUgc3VwcG9ydGVkIGJ5IHRoZSBwYW5lbC4gQXMgc29vbiBhcyB0 aGVyZQogICAgICAgIGlzIGEgZGlzcGxheSBjb250ZW50IGNoYW5nZSB0aGVyZSB3aWxsIGJlIGEg RFJSUyBzdGF0ZSB0cmFuc2l0aW9uCiAgICAgICAgYXMgRFJSU19MT1dfUlItLT4gRFJSU19ISUdI X1JSLCBjaGFuZ2luZyB0aGUgcmVmcmVzaCByYXRlIHRvIHRoZQogICAgICAgIGhpZ2hlc3QgcmVm cmVzaCByYXRlIHN1cHBvcnRlZCBieSB0aGUgcGFuZWwuCgogICAgVG8gdGVzdCB0aGlzLCBJZGxl bmVzcyBEUlJTIElHVCB3aWxsIHByb2JlIHRoZSBEUlJTIHN0YXRlIGF0IGJlbG93CiAgICBpbnN0 YW5jZXMgYW5kIGNvbXBhcmUgd2l0aCB0aGUgZXhwZWN0ZWQgc3RhdGUuCgogICAgICAgIEluc3Rh bmNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4cGVjdGVkIFN0YXRl CiAgICAxLiBJbW1lZGlhdGVseSBhZnRlciByZW5kZXJpbmcgdGhlIHN0aWxsIGltYWdlICAgICAg ICAgICAgICBEUlJTX0hJR0hfUlIKICAgIDIuIEFmdGVyIGEgZGVsYXkgb2YgMS4yU2VjICAgICAg ICAgICAgICAgICAgICAgICAgICBEUlJTX0xPV19SUgogICAgMy4gQWZ0ZXIgY2hhbmdpbmcgdGhl IGZyYW1lIGJ1ZmZlciAgICAgICAgICAgICAgICAgIERSUlNfSElHSF9SUgogICAgNC4gQWZ0ZXIg YSBkZWxheSBvZiAxLjJTZWMgICAgICAgICAgICAgICAgICAgICAgICAgIERSUlNfTE9XX1JSCiAg ICA1LiBBZnRlciBjaGFuZ2luZyB0aGUgZnJhbWUgYnVmZmVyICAgICAgICAgICAgICAgICAgRFJS U19ISUdIX1JSCiAgICA2LiBBZnRlciBhIGRlbGF5IG9mIDEuMlNlYyAgICAgICAgICAgICAgICAg ICAgICAgICAgRFJSU19MT1dfUlIKCiAgICBUaGUgdGVzdCBjaGVja3MgdGhlIGRyaXZlciBEUlJT IHN0YXRlIGZyb20gdGhlIGRlYnVnZnMgZW50cnkuIFRvIGNoZWNrIHRoZQogICAgYWN0dWFsIHJl ZnJlc2gtcmF0ZSwgdGhlIG51bWJlciBvZiB2YmxhbmtzIHJlY2VpdmVkIHBlciBzZWMuCiAgICBU aGUgcmVmcmVzaC1yYXRlIGNhbGN1bGF0ZWQgaXMgY2hlY2tlZCBhZ2FpbnN0IHRoZSBleHBlY3Rl ZCByZWZyZXNoLXJhdGUKICAgIHdpdGggYSB0b2xlcmFuY2UgdmFsdWUgb2YgMi4KCiAgICBUaGlz IHBhdGNoIGlzIGEgY29udGludWF0aW9uIG9mIHRoZSBlYXJsaWVyIHdvcmsKICAgIGh0dHBzOi8v cGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9wYXRjaC80NTQ3Mi8gdG93YXJkcyBpZ3QgZm9yIGlk bGVuZXNzCgogICAgRFJSUy4gVGhlIGNvZGUgaXMgdGVzdGVkIG9uIEJyb3h0b24gQlhUX1QgcGxh dGZvcm0uCgogICAgdjI6IEFkZHJlc3NlZCB0aGUgY29tbWVudHMgYW5kIHN1Z2dlc3Rpb25zIGZy b20gVmxhZCwgTWFyaXVzLgogICAgVGhlIHNpZ25vZmYgZGV0YWlscyBmcm9tIHRoZSBlYXJsaWVy IHdvcmsgYXJlIGFsc28gaW5jbHVkZWQuCgogICAgdjM6IE1vZGlmaWVkIHZibGFuayByYXRlIGNh bGN1bGF0aW9uIGJ5IHVzaW5nIHJlcGx5LXNlcXVlbmNlLCBwcm92aWRlZCBieQogICAgZHJtV2Fp dFZCbGFuaywgYXMgc3VnZ2VzdGVkIGJ5IENocmlzIFdpbHNvbi4KCiAgICB2NDogQXMgc3VnZ2Vz dGVkIGZyb20gQ2hyaXMgV2lsc29uIGFuZCBEYW5pZWwgVmV0dGVyCiAgICAgICAgMSkgQXZvaWRl ZCB1c2luZyBwdGhyZWFkIGZvciBjYWxjdWxhdGluZyB2YmxhbmsgcmVmcmVzaCByYXRlLAogICAg ICAgICAgIGluc3RlYWQgdXNlZCBkcm1XYWl0VkJsYW5rIHJlcGx5IHNlcXVlbmNlLgogICAgICAg IDIpIEF2b2lkZWQgdXNpbmcga2VybmVsLXNwZWNpZmljIGluZm8gbGlrZSB0cmFuc2l0aW9uYWwg ZGVsYXlzLAogICAgICAgICAgIGluc3RlYWQgcG9sbGluZyBtZWNoYW5pc20gd2l0aCB0aW1lb3V0 IGlzIHVzZWQuCiAgICAgICAgMykgSW5jbHVkZWQgZWRwLURSUlMgYXMgYSBzdWJ0ZXN0IGluIGtt c19mcm9udGJ1ZmZlcl90cmFja2luZy5jLAogICAgICAgICAgIGluc3RlYWQgb2YgaGF2aW5nIGEg c2VwYXJhdGUgdGVzdC4KCiAgICB2NTogVGhpcyBwYXRjaCBhZGRzIERSUlMgYXMgYSBuZXcgZmVh dHVyZSBpbiB0aGUga21zX2Zyb250YnVmZmVyX3RyYWNraW5nIElHVC4KICAgICAgICBEUlJTIHN3 aXRjaCB0byBsb3dlciB2cmVmcmVzaCByYXRlIGlzIHRlc3RlZCBhdCBzbG93LWRyYXcgc3VidGVz dC4KCiAgICAgICAgTm90ZToKICAgICAgICAxKSBDdXJyZW50bHkga2VybmVsIGRvZXNuJ3QgaGF2 ZSBzdXBwb3J0IHRvIGVuYWJsZSBhbmQgZGlzYWJsZSB0aGUgRFJSUwogICAgICAgICAgIGZlYXR1 cmUgZHluYW1pY2FsbHkoYXMgaW4gY2FzZSBvZiBQU1IpLiBIZW5jZSBpZiB0aGUgcGFuZWwgc3Vw cG9ydHMKICAgICAgICAgICBEUlJTIGl0IHdpbGwgYmUgZW5hYmxlZCBieSBkZWZhdWx0LgoKICAg ICAgICBUaGlzIGlzIGluIGNvbnRpbnVhdGlvbiBvZiBsYXN0IHBhdGNoICJodHRwczovL3BhdGNo d29yay5mcmVlZGVza3RvcC5vcmcvcGF0Y2gvMTYyNzI2LyIKCiAgICB2NjogVGhpcyBwYXRjaCBh ZGRzIHJ1bnRpbWUgZW5hYmxlIGFuZCBkaXNhYmxlIGZlYXR1cmUgZm9yIHRlc3RpbmcgRFJSUwoK ICAgIHY3OiBUaGlzIHBhdGNoIGFkZHMgcnVudGltZSBlbmFibGUgYW5kIGRpc2FibGUgZmVhdHVy ZSBmb3IgdGVzdGluZyBEUlJTIHRocm91Z2ggZGVidWdmcyBlbnRyeQoJImk5MTVfZHJyc19jdGwi LgoKU2lnbmVkLW9mZi1ieTogTG9oaXRoIEJTIDxsb2hpdGguYnNAaW50ZWwuY29tPgpTaWduZWQt b2ZmLWJ5OiBSYW1hbGluZ2FtIEMgPHJhbWFsaW5nYW0uY0BpbnRlbC5jb20+ClNpZ25lZC1vZmYt Ynk6IFZhbmRhbmEgS2FubmFuIDx2YW5kYW5hLmthbm5hbkBpbnRlbC5jb20+ClNpZ25lZC1vZmYt Ynk6IGFrbmF1dGl5IDxhbmtpdC5rLm5hdXRpeWFsQGludGVsLmNvbT4KLS0tCiB0ZXN0cy9rbXNf ZnJvbnRidWZmZXJfdHJhY2tpbmcuYyB8IDE2NiArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNTEgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvdGVzdHMva21zX2Zyb250YnVmZmVyX3RyYWNraW5nLmMgYi90 ZXN0cy9rbXNfZnJvbnRidWZmZXJfdHJhY2tpbmcuYwppbmRleCBhMDY4YzhhLi5iMDZkMzA0IDEw MDY0NAotLS0gYS90ZXN0cy9rbXNfZnJvbnRidWZmZXJfdHJhY2tpbmcuYworKysgYi90ZXN0cy9r bXNfZnJvbnRidWZmZXJfdHJhY2tpbmcuYwpAQCAtMzQsNyArMzQsNyBAQAogCiAKIElHVF9URVNU X0RFU0NSSVBUSU9OKCJUZXN0IHRoZSBLZXJuZWwncyBmcm9udGJ1ZmZlciB0cmFja2luZyBtZWNo YW5pc20gYW5kICIKLQkJICAgICAiaXRzIHJlbGF0ZWQgZmVhdHVyZXM6IEZCQyBhbmQgUFNSIik7 CisJCQkiaXRzIHJlbGF0ZWQgZmVhdHVyZXM6IEZCQywgRFJSUyBhbmQgUFNSIik7CiAKIC8qCiAg KiBPbmUgb2YgdGhlIGFzcGVjdHMgb2YgdGhpcyB0ZXN0IGlzIHRoYXQsIGZvciBldmVyeSBzdWJ0 ZXN0LCB3ZSB0cnkgZGlmZmVyZW50CkBAIC0xMDUsOCArMTA1LDkgQEAgc3RydWN0IHRlc3RfbW9k ZSB7CiAJCUZFQVRVUkVfTk9ORSAgPSAwLAogCQlGRUFUVVJFX0ZCQyAgID0gMSwKIAkJRkVBVFVS RV9QU1IgICA9IDIsCi0JCUZFQVRVUkVfQ09VTlQgPSA0LAotCQlGRUFUVVJFX0RFRkFVTFQgPSA0 LAorCQlGRUFUVVJFX0RSUlMgID0gNCwKKwkJRkVBVFVSRV9DT1VOVCA9IDYsCisJCUZFQVRVUkVf REVGQVVMVCA9IDYsCiAJfSBmZWF0dXJlOwogCiAJLyogUG9zc2libGUgcGl4ZWwgZm9ybWF0cy4g V2UganVzdCB1c2UgRk9STUFUX0RFRkFVTFQgZm9yIG1vc3QgdGVzdHMgYW5kCkBAIC0xNTYsNiAr MTU3LDcgQEAgc3RydWN0IHJlY3Qgewogc3RydWN0IHsKIAlpbnQgZmQ7CiAJaW50IGRlYnVnZnM7 CisJaW50IGRycnNfZGVidWdmc19mZDsKIAlkcm1Nb2RlUmVzUHRyIHJlczsKIAlkcm1Nb2RlQ29u bmVjdG9yUHRyIGNvbm5lY3RvcnNbTUFYX0NPTk5FQ1RPUlNdOwogCWRybU1vZGVFbmNvZGVyUHRy IGVuY29kZXJzW01BWF9FTkNPREVSU107CkBAIC0xNzgsMTAgKzE4MCw4IEBAIHN0cnVjdCB7CiAK IHN0cnVjdCB7CiAJYm9vbCBjYW5fdGVzdDsKLX0gcHNyID0gewotCS5jYW5fdGVzdCA9IGZhbHNl LAotfTsKLQorfSBwc3IgPSB7IC5jYW5fdGVzdCA9IGZhbHNlLH0sCitkcnJzID0geyAuY2FuX3Rl c3QgPSBmYWxzZSx9OwogCiAjZGVmaW5lIFNJTktfQ1JDX1NJWkUgMTIKIHR5cGVkZWYgc3RydWN0 IHsKQEAgLTc3NSw4ICs3NzUsOCBAQCBzdGF0aWMgYm9vbCBzZXRfbW9kZV9mb3JfcGFyYW1zKHN0 cnVjdCBtb2Rlc2V0X3BhcmFtcyAqcGFyYW1zKQogCWludCByYzsKIAogCXJjID0gZHJtTW9kZVNl dENydGMoZHJtLmZkLCBwYXJhbXMtPmNydGNfaWQsIHBhcmFtcy0+ZmIuZmItPmZiX2lkLAotCQkJ ICAgIHBhcmFtcy0+ZmIueCwgcGFyYW1zLT5mYi55LAotCQkJICAgICZwYXJhbXMtPmNvbm5lY3Rv cl9pZCwgMSwgcGFyYW1zLT5tb2RlKTsKKwkJCQlwYXJhbXMtPmZiLngsIHBhcmFtcy0+ZmIueSwK KwkJCQkmcGFyYW1zLT5jb25uZWN0b3JfaWQsIDEsIHBhcmFtcy0+bW9kZSk7CiAJcmV0dXJuIChy YyA9PSAwKTsKIH0KIApAQCAtODIyLDYgKzgyMiw2MyBAQCBzdGF0aWMgdm9pZCBwc3JfcHJpbnRf c3RhdHVzKHZvaWQpCiAJaWd0X2luZm8oIlBTUiBzdGF0dXM6XG4lc1xuIiwgYnVmKTsKIH0KIAor dm9pZCBkcnJzX3NldCh1bnNpZ25lZCBpbnQgdmFsKQoreworCWNoYXIgYnVmWzE2XTsKKworCWln dF9kZWJ1ZygiTWFudWFsbHkgJXNhYmxpbmcgRFJSUy4gJWxsdVxuIiwgdmFsID8gImVuIiA6ICJk aXMiLCB2YWwpOworCXNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICIlZCIsIHZhbCk7CisJaWd0 X2Fzc2VydF9lcSh3cml0ZShkcm0uZHJyc19kZWJ1Z2ZzX2ZkLCBidWYsIHN0cmxlbihidWYpKSwg c3RybGVuKGJ1ZikpOworfQorCitzdGF0aWMgYm9vbCBpc19kcnJzX2hpZ2godm9pZCkKK3sKKwlj aGFyIGJ1ZlsyNTZdOworCisJZGVidWdmc19yZWFkKCJpOTE1X2RycnNfc3RhdHVzIiwgYnVmKTsK KwlyZXR1cm4gc3Ryc3RyKGJ1ZiwgIkRSUlNfSElHSF9SUiIpOworfQorCitzdGF0aWMgYm9vbCBp c19kcnJzX2xvdyh2b2lkKQoreworCWNoYXIgYnVmWzI1Nl07CisKKwlkZWJ1Z2ZzX3JlYWQoImk5 MTVfZHJyc19zdGF0dXMiLCBidWYpOworCXJldHVybiBzdHJzdHIoYnVmLCAiRFJSU19MT1dfUlIi KTsKK30KKworc3RhdGljIGJvb2wgaXNfZHJyc19zdXBwb3J0ZWQodm9pZCkKK3sKKwljaGFyIGJ1 ZlsyNTZdOworCisJZGVidWdmc19yZWFkKCJpOTE1X2RycnNfc3RhdHVzIiwgYnVmKTsKKwlyZXR1 cm4gc3Ryc3RyKGJ1ZiwgIkRSUlMgU3VwcG9ydGVkOiBZZXMiKTsKK30KKworc3RhdGljIGJvb2wg aXNfZHJyc19pbmFjdGl2ZSh2b2lkKQoreworCWNoYXIgYnVmWzI1Nl07CisKKwlkZWJ1Z2ZzX3Jl YWQoImk5MTVfZHJyc19zdGF0dXMiLCBidWYpOworCisJaWYgKHN0cnN0cihidWYsICJObyBhY3Rp dmUgY3J0YyBmb3VuZCIpKQorCQlyZXR1cm4gdHJ1ZTsKKwlpZiAoc3Ryc3RyKGJ1ZiwgIklkbGVu ZXNzIERSUlM6IERpc2FibGVkIikpCisJCXJldHVybiB0cnVlOworCWlmIChzdHJzdHIoYnVmLCAi RFJSUyBTdXBwb3J0ZWQgOiBObyIpKQorCQlyZXR1cm4gdHJ1ZTsKKworCXJldHVybiBmYWxzZTsK K30KKworc3RhdGljIHZvaWQgZHJyc19wcmludF9zdGF0dXModm9pZCkKK3sKKwljaGFyIGJ1Zlsy NTZdOworCisJZGVidWdmc19yZWFkKCJpOTE1X2RycnNfc3RhdHVzIiwgYnVmKTsKKwlpZ3RfaW5m bygiRFJSUyBTVEFUVVMgOlxuJXNcbiIsIGJ1Zik7Cit9CisKIHN0YXRpYyBzdHJ1Y3QgdGltZXNw ZWMgZmJjX2dldF9sYXN0X2FjdGlvbih2b2lkKQogewogCXN0cnVjdCB0aW1lc3BlYyByZXQgPSB7 IDAsIDAgfTsKQEAgLTkzMiwxMCArOTg5LDE3IEBAIHN0YXRpYyBib29sIHBzcl93YWl0X3VudGls X2VuYWJsZWQodm9pZCkKIAlyZXR1cm4gaWd0X3dhaXQocHNyX2lzX2VuYWJsZWQoKSwgNTAwMCwg MSk7CiB9CiAKK3N0YXRpYyBib29sIGRycnNfd2FpdF91bnRpbF9ycl9zd2l0Y2hfdG9fbG93KHZv aWQpCit7CisJcmV0dXJuIGlndF93YWl0KGlzX2RycnNfbG93KCksIDUwMDAsIDEpOworfQorCiAj ZGVmaW5lIGZiY19lbmFibGUoKSBpZ3Rfc2V0X21vZHVsZV9wYXJhbV9pbnQoImVuYWJsZV9mYmMi LCAxKQogI2RlZmluZSBmYmNfZGlzYWJsZSgpIGlndF9zZXRfbW9kdWxlX3BhcmFtX2ludCgiZW5h YmxlX2ZiYyIsIDApCiAjZGVmaW5lIHBzcl9lbmFibGUoKSBpZ3Rfc2V0X21vZHVsZV9wYXJhbV9p bnQoImVuYWJsZV9wc3IiLCAxKQogI2RlZmluZSBwc3JfZGlzYWJsZSgpIGlndF9zZXRfbW9kdWxl X3BhcmFtX2ludCgiZW5hYmxlX3BzciIsIDApCisjZGVmaW5lIGRycnNfZW5hYmxlKCkgZHJyc19z ZXQoMSkKKyNkZWZpbmUgZHJyc19kaXNhYmxlKCkgZHJyc19zZXQoMCkKIAogc3RhdGljIHZvaWQg Z2V0X3NpbmtfY3JjKHNpbmtfY3JjX3QgKmNyYywgYm9vbCBtYW5kYXRvcnkpCiB7CkBAIC0xMTgy LDYgKzEyNDYsNyBAQCBzdGF0aWMgdm9pZCBkaXNhYmxlX2ZlYXR1cmVzKGNvbnN0IHN0cnVjdCB0 ZXN0X21vZGUgKnQpCiAKIAlmYmNfZGlzYWJsZSgpOwogCXBzcl9kaXNhYmxlKCk7CisJZHJyc19k aXNhYmxlKCk7CiB9CiAKIHN0YXRpYyB2b2lkICpidXN5X3RocmVhZF9mdW5jKHZvaWQgKmRhdGEp CkBAIC0xNTA2LDYgKzE1NzEsMTEgQEAgc3RhdGljIHZvaWQgdGVhcmRvd25fY3Jjcyh2b2lkKQog CWlndF9waXBlX2NyY19mcmVlKHBpcGVfY3JjKTsKIH0KIAorc3RhdGljIHZvaWQgdGVhcmRvd25f ZHJycyh2b2lkKQoreworCWlmIChkcm0uZHJyc19kZWJ1Z2ZzX2ZkICE9IC0xKQorCQljbG9zZShk cm0uZHJyc19kZWJ1Z2ZzX2ZkKTsKK30KIHN0YXRpYyBib29sIGZiY19zdXBwb3J0ZWRfb25fY2hp cHNldCh2b2lkKQogewogCWNoYXIgYnVmWzEyOF07CkBAIC0xNTc1LDYgKzE2NDUsMzAgQEAgc3Rh dGljIHZvaWQgdGVhcmRvd25fcHNyKHZvaWQpCiB7CiB9CiAKK3N0YXRpYyB2b2lkIHNldHVwX2Ry cnModm9pZCkKK3sKKwlpbnQgaXNfZHJyc19kZWJ1Z19jdGw7CisJaWYgKGdldF9jb25uZWN0b3Io cHJpbV9tb2RlX3BhcmFtcy5jb25uZWN0b3JfaWQpLT5jb25uZWN0b3JfdHlwZSAhPQorCQkJRFJN X01PREVfQ09OTkVDVE9SX2VEUCkgeworCQlpZ3RfaW5mbygiQ2FuJ3QgdGVzdCBEUlJTOiBubyB1 c2FibGUgZURQIHNjcmVlbi5cbiIpOworCQlyZXR1cm47CisJfQorCisJaWYgKCFpc19kcnJzX3N1 cHBvcnRlZCgpKSB7CisJCWlndF9pbmZvKCJDYW4ndCB0ZXN0IERSUlM6IE5vdCBzdXBwb3J0ZWQu XG4iKTsKKwkJcmV0dXJuOworCX0KKworCWRybS5kcnJzX2RlYnVnZnNfZmQgPSBvcGVuYXQoZHJt LmRlYnVnZnMsICJpOTE1X2RycnNfY3RsIiwgT19XUk9OTFkpOworCisJaWYgKGRybS5kcnJzX2Rl YnVnZnNfZmQgPiAwKSB7CisJCWRycnMuY2FuX3Rlc3QgPSB0cnVlOworCX0gZWxzZSB7CisJCWln dF9pbmZvKCJDYW4ndCB0ZXN0IERSUlM6IERlYnVnZnMgZW50cnkgaTkxNV9kcnJzX2N0bCBub3Qg Zm91bmQuXG4iKTsKKwkJZHJycy5jYW5fdGVzdCA9IGZhbHNlOworCX0KK30KKwogc3RhdGljIHZv aWQgc2V0dXBfZW52aXJvbm1lbnQodm9pZCkKIHsKIAlzZXR1cF9kcm0oKTsKQEAgLTE1ODIsNyAr MTY3Niw3IEBAIHN0YXRpYyB2b2lkIHNldHVwX2Vudmlyb25tZW50KHZvaWQpCiAKIAlzZXR1cF9m YmMoKTsKIAlzZXR1cF9wc3IoKTsKLQorCXNldHVwX2RycnMoKTsKIAlzZXR1cF9jcmNzKCk7CiB9 CiAKQEAgLTE1OTQsNiArMTY4OCw3IEBAIHN0YXRpYyB2b2lkIHRlYXJkb3duX2Vudmlyb25tZW50 KHZvaWQpCiAJdGVhcmRvd25fcHNyKCk7CiAJdGVhcmRvd25fZmJjKCk7CiAJdGVhcmRvd25fbW9k ZXNldCgpOworCXRlYXJkb3duX2RycnMoKTsKIAl0ZWFyZG93bl9kcm0oKTsKIH0KIApAQCAtMTY2 MCw2ICsxNzU1LDExIEBAIHN0YXRpYyB2b2lkIGRvX2ZsdXNoKGNvbnN0IHN0cnVjdCB0ZXN0X21v ZGUgKnQpCiAjZGVmaW5lIEFTU0VSVF9QU1JfRU5BQkxFRAkJKDEgPDwgNikKICNkZWZpbmUgQVNT RVJUX1BTUl9ESVNBQkxFRAkJKDEgPDwgNykKIAorI2RlZmluZSBEUlJTX0FTU0VSVF9GTEFHUyAg ICAgICAgICAgICAgICg3IDw8IDgpCisjZGVmaW5lIEFTU0VSVF9EUlJTX0hJR0ggICAgICAgICAg ICAgICAgKDEgPDwgOCkKKyNkZWZpbmUgQVNTRVJUX0RSUlNfTE9XICAgICAgICAgICAgICAgICAo MSA8PCA5KQorI2RlZmluZSBBU1NFUlRfRFJSU19JTkFDVElWRSAgICAgICAgICAgICgxIDw8IDEw KQorCiBzdGF0aWMgaW50IGFkanVzdF9hc3NlcnRpb25fZmxhZ3MoY29uc3Qgc3RydWN0IHRlc3Rf bW9kZSAqdCwgaW50IGZsYWdzKQogewogCWlmICghKGZsYWdzICYgRE9OVF9BU1NFUlRfRkVBVFVS RV9TVEFUVVMpKSB7CkBAIC0xNjY3LDEyICsxNzY3LDE3IEBAIHN0YXRpYyBpbnQgYWRqdXN0X2Fz c2VydGlvbl9mbGFncyhjb25zdCBzdHJ1Y3QgdGVzdF9tb2RlICp0LCBpbnQgZmxhZ3MpCiAJCQlm bGFncyB8PSBBU1NFUlRfRkJDX0VOQUJMRUQ7CiAJCWlmICghKGZsYWdzICYgQVNTRVJUX1BTUl9E SVNBQkxFRCkpCiAJCQlmbGFncyB8PSBBU1NFUlRfUFNSX0VOQUJMRUQ7CisJCWlmICghKChmbGFn cyAmIEFTU0VSVF9EUlJTX0xPVykgfHwgKGZsYWdzICYgQVNTRVJUX0RSUlNfSU5BQ1RJVkUpKSkg eworCQkJZmxhZ3MgfD0gQVNTRVJUX0RSUlNfSElHSDsKKwkJfQogCX0KIAogCWlmICgodC0+ZmVh dHVyZSAmIEZFQVRVUkVfRkJDKSA9PSAwKQogCQlmbGFncyAmPSB+RkJDX0FTU0VSVF9GTEFHUzsK IAlpZiAoKHQtPmZlYXR1cmUgJiBGRUFUVVJFX1BTUikgPT0gMCkKIAkJZmxhZ3MgJj0gflBTUl9B U1NFUlRfRkxBR1M7CisJaWYgKCh0LT5mZWF0dXJlICYgRkVBVFVSRV9EUlJTKSA9PSAwKQorCQlm bGFncyAmPSB+RFJSU19BU1NFUlRfRkxBR1M7CiAKIAlyZXR1cm4gZmxhZ3M7CiB9CkBAIC0xNzA0 LDYgKzE4MDksMjMgQEAgc3RhdGljIHZvaWQgZG9fc3RhdHVzX2Fzc2VydGlvbnMoaW50IGZsYWdz KQogCQlyZXR1cm47CiAJfQogCisJaWYgKGZsYWdzICYgQVNTRVJUX0RSUlNfSElHSCkgeworCQlp ZiAoIWlzX2RycnNfaGlnaCgpKSB7CisJCQlkcnJzX3ByaW50X3N0YXR1cygpOworCQkJaWd0X2Fz c2VydF9mKGZhbHNlLCAiRFJSUyBISUdIXG4iKTsKKwkJfQorCX0gZWxzZSBpZiAoZmxhZ3MgJiBB U1NFUlRfRFJSU19MT1cpIHsKKwkJaWYgKCFkcnJzX3dhaXRfdW50aWxfcnJfc3dpdGNoX3RvX2xv dygpKSB7CisJCQlkcnJzX3ByaW50X3N0YXR1cygpOworCQkJaWd0X2Fzc2VydF9mKGZhbHNlLCAi RFJSUyBMT1dcbiIpOworCQl9CisJfSBlbHNlIGlmIChmbGFncyAmIEFTU0VSVF9EUlJTX0lOQUNU SVZFKSB7CisJCWlmICghaXNfZHJyc19pbmFjdGl2ZSgpKSB7CisJCQlkcnJzX3ByaW50X3N0YXR1 cygpOworCQkJaWd0X2Fzc2VydF9mKGZhbHNlLCAiRFJSUyBJTkFDVElWRVxuIik7CisJCX0KKwl9 CisKIAlpZiAoZmxhZ3MgJiBBU1NFUlRfRkJDX0VOQUJMRUQpIHsKIAkJaWd0X3JlcXVpcmUoIWZi Y19ub3RfZW5vdWdoX3N0b2xlbigpKTsKIAkJaWd0X3JlcXVpcmUoIWZiY19zdHJpZGVfbm90X3N1 cHBvcnRlZCgpKTsKQEAgLTE4MzEsNiArMTk1Myw4IEBAIHN0YXRpYyB2b2lkIGVuYWJsZV9mZWF0 dXJlc19mb3JfdGVzdChjb25zdCBzdHJ1Y3QgdGVzdF9tb2RlICp0KQogCQlmYmNfZW5hYmxlKCk7 CiAJaWYgKHQtPmZlYXR1cmUgJiBGRUFUVVJFX1BTUikKIAkJcHNyX2VuYWJsZSgpOworCWlmICh0 LT5mZWF0dXJlICYgRkVBVFVSRV9EUlJTKQorCQlkcnJzX2VuYWJsZSgpOwogfQogCiBzdGF0aWMg dm9pZCBjaGVja190ZXN0X3JlcXVpcmVtZW50cyhjb25zdCBzdHJ1Y3QgdGVzdF9tb2RlICp0KQpA QCAtMTg1MCw2ICsxOTc0LDEwIEBAIHN0YXRpYyB2b2lkIGNoZWNrX3Rlc3RfcmVxdWlyZW1lbnRz KGNvbnN0IHN0cnVjdCB0ZXN0X21vZGUgKnQpCiAJCQkgICAgICAiQ2FuJ3QgdGVzdCBQU1Igd2l0 aG91dCBzaW5rIENSQ3NcbiIpOwogCX0KIAorCWlmICh0LT5mZWF0dXJlICYgRkVBVFVSRV9EUlJT KQorCQlpZ3RfcmVxdWlyZV9mKGRycnMuY2FuX3Rlc3QsCisJCQkJIkNhbid0IHRlc3QgRFJSUyB3 aXRoIHRoZSBjdXJyZW50IG91dHB1dHNcbiIpOworCiAJaWYgKG9wdC5vbmx5X3BpcGVzICE9IFBJ UEVfQ09VTlQpCiAJCWlndF9yZXF1aXJlKHQtPnBpcGVzID09IG9wdC5vbmx5X3BpcGVzKTsKIH0K QEAgLTE5NzEsNyArMjA5OSw3IEBAIHN0YXRpYyB2b2lkIHJ0ZV9zdWJ0ZXN0KGNvbnN0IHN0cnVj dCB0ZXN0X21vZGUgKnQpCiAKIAl1bnNldF9hbGxfY3J0Y3MoKTsKIAlkb19hc3NlcnRpb25zKEFT U0VSVF9GQkNfRElTQUJMRUQgfCBBU1NFUlRfUFNSX0RJU0FCTEVEIHwKLQkJICAgICAgRE9OVF9B U1NFUlRfQ1JDKTsKKwkJICAgICAgRE9OVF9BU1NFUlRfQ1JDIHwgQVNTRVJUX0RSUlNfSU5BQ1RJ VkUpOwogCiAJZW5hYmxlX3ByaW1fc2NyZWVuX2FuZF93YWl0KHQpOwogCXNldF9jdXJzb3JfZm9y X3Rlc3QodCwgJnByaW1fbW9kZV9wYXJhbXMpOwpAQCAtMjIxOSw2ICsyMzQ3LDcgQEAgc3RhdGlj IHZvaWQgYmFkZm9ybWF0X3N1YnRlc3QoY29uc3Qgc3RydWN0IHRlc3RfbW9kZSAqdCkKIAkJYXNz ZXJ0aW9ucyB8PSBBU1NFUlRfRkJDX0RJU0FCTEVEOwogCWlmICghcHNyX3ZhbGlkKQogCQlhc3Nl cnRpb25zIHw9IEFTU0VSVF9QU1JfRElTQUJMRUQ7CisKIAlkb19hc3NlcnRpb25zKGFzc2VydGlv bnMpOwogfQogCkBAIC0yMjc3LDcgKzI0MDYsMTEgQEAgc3RhdGljIHZvaWQgc2xvd19kcmF3X3N1 YnRlc3QoY29uc3Qgc3RydWN0IHRlc3RfbW9kZSAqdCkKIAkJc2xlZXAoMik7CiAKIAkJdXBkYXRl X3dhbnRlZF9jcmModCwgJnBhdHRlcm4tPmNyY3NbdC0+Zm9ybWF0XVtyXSk7Ci0JCWRvX2Fzc2Vy dGlvbnMoMCk7CisKKwkJaWYgKHQtPmZlYXR1cmUgJiBGRUFUVVJFX0RSUlMpCisJCQlkb19hc3Nl cnRpb25zKEFTU0VSVF9EUlJTX0xPVyk7CisJCWVsc2UKKwkJCWRvX2Fzc2VydGlvbnMoMCk7CiAJ fQogfQogCkBAIC0yODkyLDggKzMwMjUsNyBAQCBzdGF0aWMgdm9pZCBzdXNwZW5kX3N1YnRlc3Qo Y29uc3Qgc3RydWN0IHRlc3RfbW9kZSAqdCkKIAlzbGVlcCg1KTsKIAlpZ3Rfc3lzdGVtX3N1c3Bl bmRfYXV0b3Jlc3VtZShTVVNQRU5EX1NUQVRFX01FTSwgU1VTUEVORF9URVNUX05PTkUpOwogCXNs ZWVwKDUpOwotCWRvX2Fzc2VydGlvbnMoQVNTRVJUX0ZCQ19ESVNBQkxFRCB8IEFTU0VSVF9QU1Jf RElTQUJMRUQgfAotCQkgICAgICBET05UX0FTU0VSVF9DUkMpOworCWRvX2Fzc2VydGlvbnMoQVNT RVJUX0ZCQ19ESVNBQkxFRCB8IEFTU0VSVF9QU1JfRElTQUJMRUQgfCBET05UX0FTU0VSVF9DUkMp OwogCiAJc2V0X21vZGVfZm9yX3BhcmFtcyhwYXJhbXMpOwogCWRvX2Fzc2VydGlvbnMoMCk7CkBA IC0zMzc1LDYgKzM1MDcsMTAgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmZlYXR1cmVfc3RyKGludCBm ZWF0dXJlKQogCQlyZXR1cm4gInBzciI7CiAJY2FzZSBGRUFUVVJFX0ZCQyB8IEZFQVRVUkVfUFNS OgogCQlyZXR1cm4gImZiY3BzciI7CisJY2FzZSBGRUFUVVJFX0RSUlM6CisJCXJldHVybiAiZHJy cyI7CisJY2FzZSBGRUFUVVJFX0ZCQyB8IEZFQVRVUkVfRFJSUzoKKwkJcmV0dXJuICJmYmNkcnJz IjsKIAlkZWZhdWx0OgogCQlpZ3RfYXNzZXJ0KGZhbHNlKTsKIAl9CkBAIC0zNjM5LDcgKzM3NzUs NyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCQkJCXRpbGluZ2NoYW5nZV9z dWJ0ZXN0KCZ0KTsKIAkJfQogCi0JCWlmICh0LmZlYXR1cmUgJiBGRUFUVVJFX1BTUikKKwkJaWYg KCh0LmZlYXR1cmUgJiBGRUFUVVJFX1BTUikgfHwgKHQuZmVhdHVyZSAmIEZFQVRVUkVfRFJSUykp CiAJCQlpZ3Rfc3VidGVzdF9mKCIlcy1zbG93ZHJhdyIsIGZlYXR1cmVfc3RyKHQuZmVhdHVyZSkp CiAJCQkJc2xvd19kcmF3X3N1YnRlc3QoJnQpOwogCi0tIAoxLjkuMQoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==