From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lohith BS Subject: [PATCH i-g-t v9] tests/kms_frontbuffer_tracking: Including DRRS test coverage Date: Mon, 11 Dec 2017 18:42:30 +0530 Message-ID: <1512997950-26366-1-git-send-email-lohith.bs@intel.com> References: <1512573205-12069-1-git-send-email-lohith.bs@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 834476E07B for ; Mon, 11 Dec 2017 13:19:20 +0000 (UTC) In-Reply-To: <1512573205-12069-1-git-send-email-lohith.bs@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org, rodrigo.vivi@intel.com, jani.saarinen@intel.com, daniel.vetter@ffwll.ch, chris@chris-wilson.co.uk Cc: ankit.k.nautiyal@intel.com, paulo.r.zanoni@intel.com List-Id: intel-gfx@lists.freedesktop.org RHluYW1pYyBSZWZyZXNoIFJhdGUgU3dpdGNoKERSUlMpIGlzIHVzZWQgdG8gc3dpdGNoIHRoZSBw YW5lbCdzCnJlZnJlc2ggcmF0ZSB0byB0aGUgbG93ZXN0IHZyZWZyZXNoIHN1cHBvcnRlZCBieSBw YW5lbCwgd2hlbiBmcmFtZSBpcwpub3QgZmxpcHBlZCBmb3IgbW9yZSB0aGFuIGEgU2VjLgoKSW4g a2VybmVsLCBEUlJTIHVzZXMgdGhlIGZyb250IGJ1ZmZlciB0cmFja2luZyBpbmZyYXN0cnVjdHVy ZS4KSGVuY2UgRFJSUyB0ZXN0IGNvdmVyYWdlIGlzIGFkZGVkIGFsb25nIHdpdGggb3RoZXIgZnJv bnRidWZmZXIgdHJhY2tpbmcKYmFzZWQgZmVhdHVyZXMgc3VjaCBhcyBGQkMgYW5kIFBTUiB0ZXN0 cy4KCkhlcmUsIHdlIGFyZSB0ZXN0aW5nIERSUlMgd2l0aCBvdGhlciBmZWF0dXJlcyBpbiBhbGwg cG9zc2libGUKY29tYmluYXRpb25zLCBpbiBhbGwgcmVxdWlyZWQgdGVzdCBjYXNlcywgdG8gY2Fw dHVyZSBhbnkgcG9zc2libGUKcmVncmVzc2lvbi4KCnYyOiBBZGRyZXNzZWQgdGhlIGNvbW1lbnRz IGFuZCBzdWdnZXN0aW9ucyBmcm9tIFZsYWQsIE1hcml1cy4KICAgIFRoZSBzaWdub2ZmIGRldGFp bHMgZnJvbSB0aGUgZWFybGllciB3b3JrIGFyZSBhbHNvIGluY2x1ZGVkLgoKdjM6IE1vZGlmaWVk IHZibGFuayByYXRlIGNhbGN1bGF0aW9uIGJ5IHVzaW5nIHJlcGx5LXNlcXVlbmNlLAogICAgcHJv dmlkZWQgYnkgZHJtV2FpdFZCbGFuaywgYXMgc3VnZ2VzdGVkIGJ5IENocmlzIFdpbHNvbi4KCnY0 OiBBcyBzdWdnZXN0ZWQgZnJvbSBDaHJpcyBXaWxzb24gYW5kIERhbmllbCBWZXR0ZXIKICAgIDEp IEF2b2lkZWQgdXNpbmcgcHRocmVhZCBmb3IgY2FsY3VsYXRpbmcgdmJsYW5rIHJlZnJlc2ggcmF0 ZSwKICAgICAgIGluc3RlYWQgdXNlZCBkcm1XYWl0VkJsYW5rIHJlcGx5IHNlcXVlbmNlLgogICAg MikgQXZvaWRlZCB1c2luZyBrZXJuZWwtc3BlY2lmaWMgaW5mbyBsaWtlIHRyYW5zaXRpb25hbCBk ZWxheXMsCiAgICAgICBpbnN0ZWFkIHBvbGxpbmcgbWVjaGFuaXNtIHdpdGggdGltZW91dCBpcyB1 c2VkLgogICAgMykgSW5jbHVkZWQgZWRwLURSUlMgYXMgYSBzdWJ0ZXN0IGluIGttc19mcm9udGJ1 ZmZlcl90cmFja2luZy5jLAogICAgICAgaW5zdGVhZCBvZiBoYXZpbmcgYSBzZXBhcmF0ZSB0ZXN0 LgoKdjU6IFRoaXMgcGF0Y2ggYWRkcyBEUlJTIGFzIGEgbmV3IGZlYXR1cmUgaW4gdGhlCiAgICBr bXNfZnJvbnRidWZmZXJfdHJhY2tpbmcgSUdULgogICAgRFJSUyBzd2l0Y2ggdG8gbG93ZXIgdnJl ZnJlc2ggcmF0ZSBpcyB0ZXN0ZWQgYXQgc2xvdy1kcmF3IHN1YnRlc3QuCgogICAgTm90ZToKICAg IDEpIEN1cnJlbnRseSBrZXJuZWwgZG9lc24ndCBoYXZlIHN1cHBvcnQgdG8gZW5hYmxlIGFuZCBk aXNhYmxlCiAgICAgICB0aGUgRFJSUyBmZWF0dXJlIGR5bmFtaWNhbGx5KGFzIGluIGNhc2Ugb2Yg UFNSKS4gSGVuY2UgaWYgdGhlCiAgICAgICBwYW5lbCBzdXBwb3J0cyBEUlJTIGl0IHdpbGwgYmUg ZW5hYmxlZCBieSBkZWZhdWx0LgoKICAgIFRoaXMgaXMgaW4gY29udGludWF0aW9uIG9mIGxhc3Qg cGF0Y2gKCSJodHRwczovL3BhdGNod29yay5mcmVlZGVza3RvcC5vcmcvcGF0Y2gvMTYyNzI2LyIK CnY2OiBUaGlzIHBhdGNoIGFkZHMgcnVudGltZSBlbmFibGUgYW5kIGRpc2FibGUgZmVhdHVyZSBm b3IgdGVzdGluZyBEUlJTCgp2NzogVGhpcyBwYXRjaCBhZGRzIHJ1bnRpbWUgZW5hYmxlIGFuZCBk aXNhYmxlIGZlYXR1cmUgZm9yIHRlc3RpbmcgRFJSUwogICAgdGhyb3VnaCBkZWJ1Z2ZzIGVudHJ5 ICJpOTE1X2RycnNfY3RsIi4KCnY4OiBDb21taXQgbWVzc2FnZSBpcyB1cGRhdGVkIHRvIHJlZmxl Y3QgY3VycmVudCBpbXBsZW1lbnRhdGlvbi4KCnY5OiBBZGRyZXNzZWQgUGF1bG8gWmFub25pIGNv bW1lbnRzLgogICAgQ2hlY2sgZm9yIERSUlNfTE9XIGF0IHRlc3RzIHdpdGggT0ZGU0NSRUVOICsg RkJTX0lORElWSURVQUwuCgpTaWduZWQtb2ZmLWJ5OiBMb2hpdGggQlMgPGxvaGl0aC5ic0BpbnRl bC5jb20+ClNpZ25lZC1vZmYtYnk6IGFrbmF1dGl5IDxhbmtpdC5rLm5hdXRpeWFsQGludGVsLmNv bT4KLS0tCiB0ZXN0cy9rbXNfZnJvbnRidWZmZXJfdHJhY2tpbmcuYyB8IDE4MyArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNzYgaW5zZXJ0 aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90ZXN0cy9rbXNfZnJvbnRidWZm ZXJfdHJhY2tpbmcuYyBiL3Rlc3RzL2ttc19mcm9udGJ1ZmZlcl90cmFja2luZy5jCmluZGV4IGEw NjhjOGEuLjE5ZTM4Y2IgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2ttc19mcm9udGJ1ZmZlcl90cmFja2lu Zy5jCisrKyBiL3Rlc3RzL2ttc19mcm9udGJ1ZmZlcl90cmFja2luZy5jCkBAIC0zNCw3ICszNCw3 IEBACiAKIAogSUdUX1RFU1RfREVTQ1JJUFRJT04oIlRlc3QgdGhlIEtlcm5lbCdzIGZyb250YnVm ZmVyIHRyYWNraW5nIG1lY2hhbmlzbSBhbmQgIgotCQkgICAgICJpdHMgcmVsYXRlZCBmZWF0dXJl czogRkJDIGFuZCBQU1IiKTsKKwkJICAgICAiaXRzIHJlbGF0ZWQgZmVhdHVyZXM6IEZCQywgUFNS IGFuZCBEUlJTIik7CiAKIC8qCiAgKiBPbmUgb2YgdGhlIGFzcGVjdHMgb2YgdGhpcyB0ZXN0IGlz IHRoYXQsIGZvciBldmVyeSBzdWJ0ZXN0LCB3ZSB0cnkgZGlmZmVyZW50CkBAIC0xMDUsOCArMTA1 LDkgQEAgc3RydWN0IHRlc3RfbW9kZSB7CiAJCUZFQVRVUkVfTk9ORSAgPSAwLAogCQlGRUFUVVJF X0ZCQyAgID0gMSwKIAkJRkVBVFVSRV9QU1IgICA9IDIsCi0JCUZFQVRVUkVfQ09VTlQgPSA0LAot CQlGRUFUVVJFX0RFRkFVTFQgPSA0LAorCQlGRUFUVVJFX0RSUlMgID0gNCwKKwkJRkVBVFVSRV9D T1VOVCA9IDgsCisJCUZFQVRVUkVfREVGQVVMVCA9IDgsCiAJfSBmZWF0dXJlOwogCiAJLyogUG9z c2libGUgcGl4ZWwgZm9ybWF0cy4gV2UganVzdCB1c2UgRk9STUFUX0RFRkFVTFQgZm9yIG1vc3Qg dGVzdHMgYW5kCkBAIC0xNTYsNiArMTU3LDcgQEAgc3RydWN0IHJlY3Qgewogc3RydWN0IHsKIAlp bnQgZmQ7CiAJaW50IGRlYnVnZnM7CisJaW50IGRycnNfZGVidWdmc19mZDsKIAlkcm1Nb2RlUmVz UHRyIHJlczsKIAlkcm1Nb2RlQ29ubmVjdG9yUHRyIGNvbm5lY3RvcnNbTUFYX0NPTk5FQ1RPUlNd OwogCWRybU1vZGVFbmNvZGVyUHRyIGVuY29kZXJzW01BWF9FTkNPREVSU107CkBAIC0xODIsNiAr MTg0LDE1IEBAIHN0cnVjdCB7CiAJLmNhbl90ZXN0ID0gZmFsc2UsCiB9OwogCisjZGVmaW5lIE1B WF9EUlJTX1NUQVRVU19CVUZfTEVOIDI1NgorCitzdHJ1Y3QgeworCWJvb2wgY2FuX3Rlc3Q7CisJ Ym9vbCBpc19wc3JfZHJyc19jb21ibzsKK30gZHJycyA9IHsKKwkuY2FuX3Rlc3QgPSBmYWxzZSwK KwkuaXNfcHNyX2RycnNfY29tYm8gPSBmYWxzZSwKK307CiAKICNkZWZpbmUgU0lOS19DUkNfU0la RSAxMgogdHlwZWRlZiBzdHJ1Y3QgewpAQCAtODIyLDYgKzgzMyw2NCBAQCBzdGF0aWMgdm9pZCBw c3JfcHJpbnRfc3RhdHVzKHZvaWQpCiAJaWd0X2luZm8oIlBTUiBzdGF0dXM6XG4lc1xuIiwgYnVm KTsKIH0KIAordm9pZCBkcnJzX3NldCh1bnNpZ25lZCBpbnQgdmFsKQoreworCWNoYXIgYnVmWzJd OworCisJaWd0X2RlYnVnKCJNYW51YWxseSAlc2FibGluZyBEUlJTLiAlbGx1XG4iLCB2YWwgPyAi ZW4iIDogImRpcyIsIHZhbCk7CisJc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIiVkIiwgdmFs KTsKKwlpZ3RfYXNzZXJ0X2VxKHdyaXRlKGRybS5kcnJzX2RlYnVnZnNfZmQsCisJCSAgICAgIGJ1 Ziwgc3RybGVuKGJ1ZikpLCBzdHJsZW4oYnVmKSk7Cit9CisKK3N0YXRpYyBib29sIGlzX2RycnNf aGlnaCh2b2lkKQoreworCWNoYXIgYnVmW01BWF9EUlJTX1NUQVRVU19CVUZfTEVOXTsKKworCWRl YnVnZnNfcmVhZCgiaTkxNV9kcnJzX3N0YXR1cyIsIGJ1Zik7CisJcmV0dXJuIHN0cnN0cihidWYs ICJEUlJTX0hJR0hfUlIiKTsKK30KKworc3RhdGljIGJvb2wgaXNfZHJyc19sb3codm9pZCkKK3sK KwljaGFyIGJ1ZltNQVhfRFJSU19TVEFUVVNfQlVGX0xFTl07CisKKwlkZWJ1Z2ZzX3JlYWQoImk5 MTVfZHJyc19zdGF0dXMiLCBidWYpOworCXJldHVybiBzdHJzdHIoYnVmLCAiRFJSU19MT1dfUlIi KTsKK30KKworc3RhdGljIGJvb2wgaXNfZHJyc19zdXBwb3J0ZWQodm9pZCkKK3sKKwljaGFyIGJ1 ZltNQVhfRFJSU19TVEFUVVNfQlVGX0xFTl07CisKKwlkZWJ1Z2ZzX3JlYWQoImk5MTVfZHJyc19z dGF0dXMiLCBidWYpOworCXJldHVybiBzdHJzdHIoYnVmLCAiRFJSUyBTdXBwb3J0ZWQ6IFllcyIp OworfQorCitzdGF0aWMgYm9vbCBpc19kcnJzX2luYWN0aXZlKHZvaWQpCit7CisJY2hhciBidWZb TUFYX0RSUlNfU1RBVFVTX0JVRl9MRU5dOworCisJZGVidWdmc19yZWFkKCJpOTE1X2RycnNfc3Rh dHVzIiwgYnVmKTsKKworCWlmIChzdHJzdHIoYnVmLCAiTm8gYWN0aXZlIGNydGMgZm91bmQiKSkK KwkJcmV0dXJuIHRydWU7CisJaWYgKHN0cnN0cihidWYsICJJZGxlbmVzcyBEUlJTOiBEaXNhYmxl ZCIpKQorCQlyZXR1cm4gdHJ1ZTsKKwlpZiAoc3Ryc3RyKGJ1ZiwgIkRSUlMgU3VwcG9ydGVkIDog Tm8iKSkKKwkJcmV0dXJuIHRydWU7CisKKwlyZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyB2b2lk IGRycnNfcHJpbnRfc3RhdHVzKHZvaWQpCit7CisJY2hhciBidWZbTUFYX0RSUlNfU1RBVFVTX0JV Rl9MRU5dOworCisJZGVidWdmc19yZWFkKCJpOTE1X2RycnNfc3RhdHVzIiwgYnVmKTsKKwlpZ3Rf aW5mbygiRFJSUyBTVEFUVVMgOlxuJXNcbiIsIGJ1Zik7Cit9CisKIHN0YXRpYyBzdHJ1Y3QgdGlt ZXNwZWMgZmJjX2dldF9sYXN0X2FjdGlvbih2b2lkKQogewogCXN0cnVjdCB0aW1lc3BlYyByZXQg PSB7IDAsIDAgfTsKQEAgLTkzMiwxMCArMTAwMSwxNyBAQCBzdGF0aWMgYm9vbCBwc3Jfd2FpdF91 bnRpbF9lbmFibGVkKHZvaWQpCiAJcmV0dXJuIGlndF93YWl0KHBzcl9pc19lbmFibGVkKCksIDUw MDAsIDEpOwogfQogCitzdGF0aWMgYm9vbCBkcnJzX3dhaXRfdW50aWxfcnJfc3dpdGNoX3RvX2xv dyh2b2lkKQoreworCXJldHVybiBpZ3Rfd2FpdChpc19kcnJzX2xvdygpLCA1MDAwLCAxKTsKK30K KwogI2RlZmluZSBmYmNfZW5hYmxlKCkgaWd0X3NldF9tb2R1bGVfcGFyYW1faW50KCJlbmFibGVf ZmJjIiwgMSkKICNkZWZpbmUgZmJjX2Rpc2FibGUoKSBpZ3Rfc2V0X21vZHVsZV9wYXJhbV9pbnQo ImVuYWJsZV9mYmMiLCAwKQogI2RlZmluZSBwc3JfZW5hYmxlKCkgaWd0X3NldF9tb2R1bGVfcGFy YW1faW50KCJlbmFibGVfcHNyIiwgMSkKICNkZWZpbmUgcHNyX2Rpc2FibGUoKSBpZ3Rfc2V0X21v ZHVsZV9wYXJhbV9pbnQoImVuYWJsZV9wc3IiLCAwKQorI2RlZmluZSBkcnJzX2VuYWJsZSgpCWRy cnNfc2V0KDEpCisjZGVmaW5lIGRycnNfZGlzYWJsZSgpCWRycnNfc2V0KDApCiAKIHN0YXRpYyB2 b2lkIGdldF9zaW5rX2NyYyhzaW5rX2NyY190ICpjcmMsIGJvb2wgbWFuZGF0b3J5KQogewpAQCAt MTE4Miw2ICsxMjU4LDcgQEAgc3RhdGljIHZvaWQgZGlzYWJsZV9mZWF0dXJlcyhjb25zdCBzdHJ1 Y3QgdGVzdF9tb2RlICp0KQogCiAJZmJjX2Rpc2FibGUoKTsKIAlwc3JfZGlzYWJsZSgpOworCWRy cnNfZGlzYWJsZSgpOwogfQogCiBzdGF0aWMgdm9pZCAqYnVzeV90aHJlYWRfZnVuYyh2b2lkICpk YXRhKQpAQCAtMTUwNiw2ICsxNTgzLDEyIEBAIHN0YXRpYyB2b2lkIHRlYXJkb3duX2NyY3Modm9p ZCkKIAlpZ3RfcGlwZV9jcmNfZnJlZShwaXBlX2NyYyk7CiB9CiAKK3N0YXRpYyB2b2lkIHRlYXJk b3duX2RycnModm9pZCkKK3sKKwlpZiAoZHJtLmRycnNfZGVidWdmc19mZCAhPSAtMSkKKwkJY2xv c2UoZHJtLmRycnNfZGVidWdmc19mZCk7Cit9CisKIHN0YXRpYyBib29sIGZiY19zdXBwb3J0ZWRf b25fY2hpcHNldCh2b2lkKQogewogCWNoYXIgYnVmWzEyOF07CkBAIC0xNTc1LDYgKzE2NTgsMjkg QEAgc3RhdGljIHZvaWQgdGVhcmRvd25fcHNyKHZvaWQpCiB7CiB9CiAKK3N0YXRpYyB2b2lkIHNl dHVwX2RycnModm9pZCkKK3sKKwlpZiAoZ2V0X2Nvbm5lY3RvcihwcmltX21vZGVfcGFyYW1zLmNv bm5lY3Rvcl9pZCktPmNvbm5lY3Rvcl90eXBlICE9CisJCURSTV9NT0RFX0NPTk5FQ1RPUl9lRFAp IHsKKwkJaWd0X2luZm8oIkNhbid0IHRlc3QgRFJSUzogbm8gdXNhYmxlIGVEUCBzY3JlZW4uXG4i KTsKKwkJcmV0dXJuOworCX0KKworCWlmICghaXNfZHJyc19zdXBwb3J0ZWQoKSkgeworCQlpZ3Rf aW5mbygiQ2FuJ3QgdGVzdCBEUlJTOiBOb3Qgc3VwcG9ydGVkLlxuIik7CisJCXJldHVybjsKKwl9 CisKKwlkcm0uZHJyc19kZWJ1Z2ZzX2ZkID0gb3BlbmF0KGRybS5kZWJ1Z2ZzLCAiaTkxNV9kcnJz X2N0bCIsIE9fV1JPTkxZKTsKKworCWlmIChkcm0uZHJyc19kZWJ1Z2ZzX2ZkID4gMCkgeworCQlk cnJzLmNhbl90ZXN0ID0gdHJ1ZTsKKwl9IGVsc2UgeworCQlpZ3RfaW5mbygiQ2FuJ3QgdGVzdCBE UlJTOiBEZWJ1Z2ZzIGVudHJ5IGk5MTVfZHJyc19jdGwgbm90IGZvdW5kLlxuIik7CisJCWRycnMu Y2FuX3Rlc3QgPSBmYWxzZTsKKwl9Cit9CisKIHN0YXRpYyB2b2lkIHNldHVwX2Vudmlyb25tZW50 KHZvaWQpCiB7CiAJc2V0dXBfZHJtKCk7CkBAIC0xNTgyLDcgKzE2ODgsNyBAQCBzdGF0aWMgdm9p ZCBzZXR1cF9lbnZpcm9ubWVudCh2b2lkKQogCiAJc2V0dXBfZmJjKCk7CiAJc2V0dXBfcHNyKCk7 Ci0KKwlzZXR1cF9kcnJzKCk7CiAJc2V0dXBfY3JjcygpOwogfQogCkBAIC0xNTk0LDYgKzE3MDAs NyBAQCBzdGF0aWMgdm9pZCB0ZWFyZG93bl9lbnZpcm9ubWVudCh2b2lkKQogCXRlYXJkb3duX3Bz cigpOwogCXRlYXJkb3duX2ZiYygpOwogCXRlYXJkb3duX21vZGVzZXQoKTsKKwl0ZWFyZG93bl9k cnJzKCk7CiAJdGVhcmRvd25fZHJtKCk7CiB9CiAKQEAgLTE2NjAsNiArMTc2NywxMSBAQCBzdGF0 aWMgdm9pZCBkb19mbHVzaChjb25zdCBzdHJ1Y3QgdGVzdF9tb2RlICp0KQogI2RlZmluZSBBU1NF UlRfUFNSX0VOQUJMRUQJCSgxIDw8IDYpCiAjZGVmaW5lIEFTU0VSVF9QU1JfRElTQUJMRUQJCSgx IDw8IDcpCiAKKyNkZWZpbmUgRFJSU19BU1NFUlRfRkxBR1MJCSg3IDw8IDgpCisjZGVmaW5lIEFT U0VSVF9EUlJTX0hJR0gJCSgxIDw8IDgpCisjZGVmaW5lIEFTU0VSVF9EUlJTX0xPVwkJKDEgPDwg OSkKKyNkZWZpbmUgQVNTRVJUX0RSUlNfSU5BQ1RJVkUJCSgxIDw8IDEwKQorCiBzdGF0aWMgaW50 IGFkanVzdF9hc3NlcnRpb25fZmxhZ3MoY29uc3Qgc3RydWN0IHRlc3RfbW9kZSAqdCwgaW50IGZs YWdzKQogewogCWlmICghKGZsYWdzICYgRE9OVF9BU1NFUlRfRkVBVFVSRV9TVEFUVVMpKSB7CkBA IC0xNjY3LDEyICsxNzc5LDE3IEBAIHN0YXRpYyBpbnQgYWRqdXN0X2Fzc2VydGlvbl9mbGFncyhj b25zdCBzdHJ1Y3QgdGVzdF9tb2RlICp0LCBpbnQgZmxhZ3MpCiAJCQlmbGFncyB8PSBBU1NFUlRf RkJDX0VOQUJMRUQ7CiAJCWlmICghKGZsYWdzICYgQVNTRVJUX1BTUl9ESVNBQkxFRCkpCiAJCQlm bGFncyB8PSBBU1NFUlRfUFNSX0VOQUJMRUQ7CisJCWlmICghKChmbGFncyAmIEFTU0VSVF9EUlJT X0xPVykgfHwKKwkJCShmbGFncyAmIEFTU0VSVF9EUlJTX0lOQUNUSVZFKSkpCisJCQlmbGFncyB8 PSBBU1NFUlRfRFJSU19ISUdIOwogCX0KIAogCWlmICgodC0+ZmVhdHVyZSAmIEZFQVRVUkVfRkJD KSA9PSAwKQogCQlmbGFncyAmPSB+RkJDX0FTU0VSVF9GTEFHUzsKIAlpZiAoKHQtPmZlYXR1cmUg JiBGRUFUVVJFX1BTUikgPT0gMCkKIAkJZmxhZ3MgJj0gflBTUl9BU1NFUlRfRkxBR1M7CisJaWYg KCh0LT5mZWF0dXJlICYgRkVBVFVSRV9EUlJTKSA9PSAwKQorCQlmbGFncyAmPSB+RFJSU19BU1NF UlRfRkxBR1M7CiAKIAlyZXR1cm4gZmxhZ3M7CiB9CkBAIC0xNzA0LDYgKzE4MjEsMjMgQEAgc3Rh dGljIHZvaWQgZG9fc3RhdHVzX2Fzc2VydGlvbnMoaW50IGZsYWdzKQogCQlyZXR1cm47CiAJfQog CisJaWYgKGZsYWdzICYgQVNTRVJUX0RSUlNfSElHSCkgeworCQlpZiAoIWlzX2RycnNfaGlnaCgp KSB7CisJCQlkcnJzX3ByaW50X3N0YXR1cygpOworCQkJaWd0X2Fzc2VydF9mKGZhbHNlLCAiRFJS UyBISUdIXG4iKTsKKwkJfQorCX0gZWxzZSBpZiAoZmxhZ3MgJiBBU1NFUlRfRFJSU19MT1cpIHsK KwkJaWYgKCFkcnJzX3dhaXRfdW50aWxfcnJfc3dpdGNoX3RvX2xvdygpKSB7CisJCQlkcnJzX3By aW50X3N0YXR1cygpOworCQkJaWd0X2Fzc2VydF9mKGZhbHNlLCAiRFJSUyBMT1dcbiIpOworCQl9 CisJfSBlbHNlIGlmIChmbGFncyAmIEFTU0VSVF9EUlJTX0lOQUNUSVZFKSB7CisJCWlmICghaXNf ZHJyc19pbmFjdGl2ZSgpKSB7CisJCQlkcnJzX3ByaW50X3N0YXR1cygpOworCQkJaWd0X2Fzc2Vy dF9mKGZhbHNlLCAiRFJSUyBJTkFDVElWRVxuIik7CisJCX0KKwl9CisKIAlpZiAoZmxhZ3MgJiBB U1NFUlRfRkJDX0VOQUJMRUQpIHsKIAkJaWd0X3JlcXVpcmUoIWZiY19ub3RfZW5vdWdoX3N0b2xl bigpKTsKIAkJaWd0X3JlcXVpcmUoIWZiY19zdHJpZGVfbm90X3N1cHBvcnRlZCgpKTsKQEAgLTE4 MzEsNiArMTk2NSw4IEBAIHN0YXRpYyB2b2lkIGVuYWJsZV9mZWF0dXJlc19mb3JfdGVzdChjb25z dCBzdHJ1Y3QgdGVzdF9tb2RlICp0KQogCQlmYmNfZW5hYmxlKCk7CiAJaWYgKHQtPmZlYXR1cmUg JiBGRUFUVVJFX1BTUikKIAkJcHNyX2VuYWJsZSgpOworCWlmICh0LT5mZWF0dXJlICYgRkVBVFVS RV9EUlJTKQorCQlkcnJzX2VuYWJsZSgpOwogfQogCiBzdGF0aWMgdm9pZCBjaGVja190ZXN0X3Jl cXVpcmVtZW50cyhjb25zdCBzdHJ1Y3QgdGVzdF9tb2RlICp0KQpAQCAtMTg1MCw2ICsxOTg2LDIw IEBAIHN0YXRpYyB2b2lkIGNoZWNrX3Rlc3RfcmVxdWlyZW1lbnRzKGNvbnN0IHN0cnVjdCB0ZXN0 X21vZGUgKnQpCiAJCQkgICAgICAiQ2FuJ3QgdGVzdCBQU1Igd2l0aG91dCBzaW5rIENSQ3NcbiIp OwogCX0KIAorCWlmICh0LT5mZWF0dXJlICYgRkVBVFVSRV9EUlJTKQorCQlpZ3RfcmVxdWlyZV9m KGRycnMuY2FuX3Rlc3QsCisJCQkgICAgICAiQ2FuJ3QgdGVzdCBEUlJTIHdpdGggdGhlIGN1cnJl bnQgb3V0cHV0c1xuIik7CisKKwkvKgorCSAqIEluIGtlcm5lbCwgV2hlbiBQU1IgaXMgZW5hYmxl ZCwgRFJSUyB3aWxsIGJlIGRpc2FibGVkLiBTbyBJZiBhIHRlc3QKKwkgKiBjYXNlIG5lZWRzIERS UlMgKyBQU1IgZW5hYmxlZCwgdGhhdCB3aWxsIGJlIHNraXBwZWQuCisJICovCisJZHJycy5pc19w c3JfZHJyc19jb21ibyA9ICgodC0+ZmVhdHVyZSAmIEZFQVRVUkVfUFNSKSAmJgorCQkJCSAgKHQt PmZlYXR1cmUgJiBGRUFUVVJFX0RSUlMpKTsKKworCWlndF9yZXF1aXJlX2YoIWRycnMuaXNfcHNy X2RycnNfY29tYm8sCisJCSAgICAgICJDYW4ndCB0ZXN0IFBTUiBhbmQgRFJSUyB0b2dldGhlclxu Iik7CisKIAlpZiAob3B0Lm9ubHlfcGlwZXMgIT0gUElQRV9DT1VOVCkKIAkJaWd0X3JlcXVpcmUo dC0+cGlwZXMgPT0gb3B0Lm9ubHlfcGlwZXMpOwogfQpAQCAtMTk3MSw3ICsyMTIxLDcgQEAgc3Rh dGljIHZvaWQgcnRlX3N1YnRlc3QoY29uc3Qgc3RydWN0IHRlc3RfbW9kZSAqdCkKIAogCXVuc2V0 X2FsbF9jcnRjcygpOwogCWRvX2Fzc2VydGlvbnMoQVNTRVJUX0ZCQ19ESVNBQkxFRCB8IEFTU0VS VF9QU1JfRElTQUJMRUQgfAotCQkgICAgICBET05UX0FTU0VSVF9DUkMpOworCQkgICAgICBET05U X0FTU0VSVF9DUkMgfCBBU1NFUlRfRFJSU19JTkFDVElWRSk7CiAKIAllbmFibGVfcHJpbV9zY3Jl ZW5fYW5kX3dhaXQodCk7CiAJc2V0X2N1cnNvcl9mb3JfdGVzdCh0LCAmcHJpbV9tb2RlX3BhcmFt cyk7CkBAIC0yMDYzLDYgKzIyMTMsMTMgQEAgc3RhdGljIHZvaWQgZHJhd19zdWJ0ZXN0KGNvbnN0 IHN0cnVjdCB0ZXN0X21vZGUgKnQpCiAJaWYgKG9wX2Rpc2FibGVzX3Bzcih0LCB0LT5tZXRob2Qp KQogCQlhc3NlcnRpb25zIHw9IEFTU0VSVF9QU1JfRElTQUJMRUQ7CiAKKwkvKgorCSAqIE9uIEZC U19JTkRJVklEVUFMLCB3cml0ZSB0byBvZmZzY3JlZW4gcGxhbmUgd2lsbCBub3QgdG91Y2ggdGhl CisJICogY3VycmVudCBmcmFtYnVmZmVyLiBIZW5jZSBhc3NlcnQgZm9yIERSUlNfTE9XLgorCSAq LworCWlmICgodC0+ZmJzID09IEZCU19JTkRJVklEVUFMKSAmJiAodC0+c2NyZWVuID09IFNDUkVF Tl9PRkZTQ1JFRU4pKQorCQlhc3NlcnRpb25zIHw9IEFTU0VSVF9EUlJTX0xPVzsKKwogCXByZXBh cmVfc3VidGVzdCh0LCBwYXR0ZXJuKTsKIAl0YXJnZXQgPSBwaWNrX3RhcmdldCh0LCBwYXJhbXMp OwogCkBAIC0yMjc3LDcgKzI0MzQsMTEgQEAgc3RhdGljIHZvaWQgc2xvd19kcmF3X3N1YnRlc3Qo Y29uc3Qgc3RydWN0IHRlc3RfbW9kZSAqdCkKIAkJc2xlZXAoMik7CiAKIAkJdXBkYXRlX3dhbnRl ZF9jcmModCwgJnBhdHRlcm4tPmNyY3NbdC0+Zm9ybWF0XVtyXSk7Ci0JCWRvX2Fzc2VydGlvbnMo MCk7CisKKwkJaWYgKHQtPmZlYXR1cmUgJiBGRUFUVVJFX0RSUlMpCisJCQlkb19hc3NlcnRpb25z KEFTU0VSVF9EUlJTX0xPVyk7CisJCWVsc2UKKwkJCWRvX2Fzc2VydGlvbnMoMCk7CiAJfQogfQog CkBAIC0zMzc1LDYgKzM1MzYsMTQgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmZlYXR1cmVfc3RyKGlu dCBmZWF0dXJlKQogCQlyZXR1cm4gInBzciI7CiAJY2FzZSBGRUFUVVJFX0ZCQyB8IEZFQVRVUkVf UFNSOgogCQlyZXR1cm4gImZiY3BzciI7CisJY2FzZSBGRUFUVVJFX0RSUlM6CisJCXJldHVybiAi ZHJycyI7CisJY2FzZSBGRUFUVVJFX0ZCQyB8IEZFQVRVUkVfRFJSUzoKKwkJcmV0dXJuICJmYmNk cnJzIjsKKwljYXNlIEZFQVRVUkVfUFNSIHwgRkVBVFVSRV9EUlJTOgorCQlyZXR1cm4gInBzcmRy cnMiOworCWNhc2UgRkVBVFVSRV9GQkMgfCBGRUFUVVJFX1BTUiB8IEZFQVRVUkVfRFJSUzoKKwkJ cmV0dXJuICJmYmNwc3JkcnJzIjsKIAlkZWZhdWx0OgogCQlpZ3RfYXNzZXJ0KGZhbHNlKTsKIAl9 CkBAIC0zNjM5LDcgKzM4MDgsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQog CQkJCXRpbGluZ2NoYW5nZV9zdWJ0ZXN0KCZ0KTsKIAkJfQogCi0JCWlmICh0LmZlYXR1cmUgJiBG RUFUVVJFX1BTUikKKwkJaWYgKCh0LmZlYXR1cmUgJiBGRUFUVVJFX1BTUikgfHwgKHQuZmVhdHVy ZSAmIEZFQVRVUkVfRFJSUykpCiAJCQlpZ3Rfc3VidGVzdF9mKCIlcy1zbG93ZHJhdyIsIGZlYXR1 cmVfc3RyKHQuZmVhdHVyZSkpCiAJCQkJc2xvd19kcmF3X3N1YnRlc3QoJnQpOwogCi0tIAoxLjku MQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==