From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lohith BS Subject: [PATCH i-g-t v10] tests/kms_frontbuffer_tracking: Including DRRS test coverage Date: Mon, 1 Jan 2018 19:15:32 +0530 Message-ID: <1514814332-31840-1-git-send-email-lohith.bs@intel.com> References: <1512997950-26366-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 mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 272E98941E for ; Mon, 1 Jan 2018 13:52:24 +0000 (UTC) In-Reply-To: <1512997950-26366-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, marius.c.vlad@intel.com, jari.tahvanainen@intel.com 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 RkJTX0lORElWSURVQUwuCgp2MTA6IENvcnJlY3RlZCBEUlJTIHN0YXRlIGV4cGVjdGF0aW9uIGlu IHN1c3BlbmQgcmVsYXRlZCBzdWJ0ZXN0cy4KClNpZ25lZC1vZmYtYnk6IExvaGl0aCBCUyA8bG9o aXRoLmJzQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogYWtuYXV0aXkgPGFua2l0LmsubmF1dGl5 YWxAaW50ZWwuY29tPgotLS0KIHRlc3RzL2ttc19mcm9udGJ1ZmZlcl90cmFja2luZy5jIHwgMTg4 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQogMSBmaWxlIGNoYW5nZWQs IDE3OSBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rlc3RzL2tt c19mcm9udGJ1ZmZlcl90cmFja2luZy5jIGIvdGVzdHMva21zX2Zyb250YnVmZmVyX3RyYWNraW5n LmMKaW5kZXggMTYwMWNhYi4uMTAzOWM5ZSAxMDA2NDQKLS0tIGEvdGVzdHMva21zX2Zyb250YnVm ZmVyX3RyYWNraW5nLmMKKysrIGIvdGVzdHMva21zX2Zyb250YnVmZmVyX3RyYWNraW5nLmMKQEAg LTM0LDcgKzM0LDcgQEAKIAogCiBJR1RfVEVTVF9ERVNDUklQVElPTigiVGVzdCB0aGUgS2VybmVs J3MgZnJvbnRidWZmZXIgdHJhY2tpbmcgbWVjaGFuaXNtIGFuZCAiCi0JCSAgICAgIml0cyByZWxh dGVkIGZlYXR1cmVzOiBGQkMgYW5kIFBTUiIpOworCQkgICAgICJpdHMgcmVsYXRlZCBmZWF0dXJl czogRkJDLCBQU1IgYW5kIERSUlMiKTsKIAogLyoKICAqIE9uZSBvZiB0aGUgYXNwZWN0cyBvZiB0 aGlzIHRlc3QgaXMgdGhhdCwgZm9yIGV2ZXJ5IHN1YnRlc3QsIHdlIHRyeSBkaWZmZXJlbnQKQEAg LTEwNSw4ICsxMDUsOSBAQCBzdHJ1Y3QgdGVzdF9tb2RlIHsKIAkJRkVBVFVSRV9OT05FICA9IDAs CiAJCUZFQVRVUkVfRkJDICAgPSAxLAogCQlGRUFUVVJFX1BTUiAgID0gMiwKLQkJRkVBVFVSRV9D T1VOVCA9IDQsCi0JCUZFQVRVUkVfREVGQVVMVCA9IDQsCisJCUZFQVRVUkVfRFJSUyAgPSA0LAor CQlGRUFUVVJFX0NPVU5UID0gOCwKKwkJRkVBVFVSRV9ERUZBVUxUID0gOCwKIAl9IGZlYXR1cmU7 CiAKIAkvKiBQb3NzaWJsZSBwaXhlbCBmb3JtYXRzLiBXZSBqdXN0IHVzZSBGT1JNQVRfREVGQVVM VCBmb3IgbW9zdCB0ZXN0cyBhbmQKQEAgLTE1Niw2ICsxNTcsNyBAQCBzdHJ1Y3QgcmVjdCB7CiBz dHJ1Y3QgewogCWludCBmZDsKIAlpbnQgZGVidWdmczsKKwlpbnQgZHJyc19kZWJ1Z2ZzX2ZkOwog CWRybU1vZGVSZXNQdHIgcmVzOwogCWRybU1vZGVDb25uZWN0b3JQdHIgY29ubmVjdG9yc1tNQVhf Q09OTkVDVE9SU107CiAJZHJtTW9kZUVuY29kZXJQdHIgZW5jb2RlcnNbTUFYX0VOQ09ERVJTXTsK QEAgLTE4Miw2ICsxODQsMTUgQEAgc3RydWN0IHsKIAkuY2FuX3Rlc3QgPSBmYWxzZSwKIH07CiAK KyNkZWZpbmUgTUFYX0RSUlNfU1RBVFVTX0JVRl9MRU4gMjU2CisKK3N0cnVjdCB7CisJYm9vbCBj YW5fdGVzdDsKKwlib29sIGlzX3Bzcl9kcnJzX2NvbWJvOworfSBkcnJzID0geworCS5jYW5fdGVz dCA9IGZhbHNlLAorCS5pc19wc3JfZHJyc19jb21ibyA9IGZhbHNlLAorfTsKIAogI2RlZmluZSBT SU5LX0NSQ19TSVpFIDEyCiB0eXBlZGVmIHN0cnVjdCB7CkBAIC04MjUsNiArODM2LDY0IEBAIHN0 YXRpYyB2b2lkIHBzcl9wcmludF9zdGF0dXModm9pZCkKIAlpZ3RfaW5mbygiUFNSIHN0YXR1czpc biVzXG4iLCBidWYpOwogfQogCit2b2lkIGRycnNfc2V0KHVuc2lnbmVkIGludCB2YWwpCit7CisJ Y2hhciBidWZbMl07CisKKwlpZ3RfZGVidWcoIk1hbnVhbGx5ICVzYWJsaW5nIERSUlMuICVsbHVc biIsIHZhbCA/ICJlbiIgOiAiZGlzIiwgdmFsKTsKKwlzbnByaW50ZihidWYsIHNpemVvZihidWYp LCAiJWQiLCB2YWwpOworCWlndF9hc3NlcnRfZXEod3JpdGUoZHJtLmRycnNfZGVidWdmc19mZCwK KwkJICAgICAgYnVmLCBzdHJsZW4oYnVmKSksIHN0cmxlbihidWYpKTsKK30KKworc3RhdGljIGJv b2wgaXNfZHJyc19oaWdoKHZvaWQpCit7CisJY2hhciBidWZbTUFYX0RSUlNfU1RBVFVTX0JVRl9M RU5dOworCisJZGVidWdmc19yZWFkKCJpOTE1X2RycnNfc3RhdHVzIiwgYnVmKTsKKwlyZXR1cm4g c3Ryc3RyKGJ1ZiwgIkRSUlNfSElHSF9SUiIpOworfQorCitzdGF0aWMgYm9vbCBpc19kcnJzX2xv dyh2b2lkKQoreworCWNoYXIgYnVmW01BWF9EUlJTX1NUQVRVU19CVUZfTEVOXTsKKworCWRlYnVn ZnNfcmVhZCgiaTkxNV9kcnJzX3N0YXR1cyIsIGJ1Zik7CisJcmV0dXJuIHN0cnN0cihidWYsICJE UlJTX0xPV19SUiIpOworfQorCitzdGF0aWMgYm9vbCBpc19kcnJzX3N1cHBvcnRlZCh2b2lkKQor eworCWNoYXIgYnVmW01BWF9EUlJTX1NUQVRVU19CVUZfTEVOXTsKKworCWRlYnVnZnNfcmVhZCgi aTkxNV9kcnJzX3N0YXR1cyIsIGJ1Zik7CisJcmV0dXJuIHN0cnN0cihidWYsICJEUlJTIFN1cHBv cnRlZDogWWVzIik7Cit9CisKK3N0YXRpYyBib29sIGlzX2RycnNfaW5hY3RpdmUodm9pZCkKK3sK KwljaGFyIGJ1ZltNQVhfRFJSU19TVEFUVVNfQlVGX0xFTl07CisKKwlkZWJ1Z2ZzX3JlYWQoImk5 MTVfZHJyc19zdGF0dXMiLCBidWYpOworCisJaWYgKHN0cnN0cihidWYsICJObyBhY3RpdmUgY3J0 YyBmb3VuZCIpKQorCQlyZXR1cm4gdHJ1ZTsKKwlpZiAoc3Ryc3RyKGJ1ZiwgIklkbGVuZXNzIERS UlM6IERpc2FibGVkIikpCisJCXJldHVybiB0cnVlOworCWlmIChzdHJzdHIoYnVmLCAiRFJSUyBT dXBwb3J0ZWQgOiBObyIpKQorCQlyZXR1cm4gdHJ1ZTsKKworCXJldHVybiBmYWxzZTsKK30KKwor c3RhdGljIHZvaWQgZHJyc19wcmludF9zdGF0dXModm9pZCkKK3sKKwljaGFyIGJ1ZltNQVhfRFJS U19TVEFUVVNfQlVGX0xFTl07CisKKwlkZWJ1Z2ZzX3JlYWQoImk5MTVfZHJyc19zdGF0dXMiLCBi dWYpOworCWlndF9pbmZvKCJEUlJTIFNUQVRVUyA6XG4lc1xuIiwgYnVmKTsKK30KKwogc3RhdGlj IHN0cnVjdCB0aW1lc3BlYyBmYmNfZ2V0X2xhc3RfYWN0aW9uKHZvaWQpCiB7CiAJc3RydWN0IHRp bWVzcGVjIHJldCA9IHsgMCwgMCB9OwpAQCAtOTM1LDEwICsxMDA0LDE3IEBAIHN0YXRpYyBib29s IHBzcl93YWl0X3VudGlsX2VuYWJsZWQodm9pZCkKIAlyZXR1cm4gaWd0X3dhaXQocHNyX2lzX2Vu YWJsZWQoKSwgNTAwMCwgMSk7CiB9CiAKK3N0YXRpYyBib29sIGRycnNfd2FpdF91bnRpbF9ycl9z d2l0Y2hfdG9fbG93KHZvaWQpCit7CisJcmV0dXJuIGlndF93YWl0KGlzX2RycnNfbG93KCksIDUw MDAsIDEpOworfQorCiAjZGVmaW5lIGZiY19lbmFibGUoKSBpZ3Rfc2V0X21vZHVsZV9wYXJhbV9p bnQoImVuYWJsZV9mYmMiLCAxKQogI2RlZmluZSBmYmNfZGlzYWJsZSgpIGlndF9zZXRfbW9kdWxl X3BhcmFtX2ludCgiZW5hYmxlX2ZiYyIsIDApCiAjZGVmaW5lIHBzcl9lbmFibGUoKSBpZ3Rfc2V0 X21vZHVsZV9wYXJhbV9pbnQoImVuYWJsZV9wc3IiLCAxKQogI2RlZmluZSBwc3JfZGlzYWJsZSgp IGlndF9zZXRfbW9kdWxlX3BhcmFtX2ludCgiZW5hYmxlX3BzciIsIDApCisjZGVmaW5lIGRycnNf ZW5hYmxlKCkJZHJyc19zZXQoMSkKKyNkZWZpbmUgZHJyc19kaXNhYmxlKCkJZHJyc19zZXQoMCkK IAogc3RhdGljIHZvaWQgZ2V0X3NpbmtfY3JjKHNpbmtfY3JjX3QgKmNyYywgYm9vbCBtYW5kYXRv cnkpCiB7CkBAIC0xMTg0LDYgKzEyNjAsNyBAQCBzdGF0aWMgdm9pZCBkaXNhYmxlX2ZlYXR1cmVz KGNvbnN0IHN0cnVjdCB0ZXN0X21vZGUgKnQpCiAKIAlmYmNfZGlzYWJsZSgpOwogCXBzcl9kaXNh YmxlKCk7CisJZHJyc19kaXNhYmxlKCk7CiB9CiAKIHN0YXRpYyB2b2lkICpidXN5X3RocmVhZF9m dW5jKHZvaWQgKmRhdGEpCkBAIC0xNTA4LDYgKzE1ODUsMTIgQEAgc3RhdGljIHZvaWQgdGVhcmRv d25fY3Jjcyh2b2lkKQogCWlndF9waXBlX2NyY19mcmVlKHBpcGVfY3JjKTsKIH0KIAorc3RhdGlj IHZvaWQgdGVhcmRvd25fZHJycyh2b2lkKQoreworCWlmIChkcm0uZHJyc19kZWJ1Z2ZzX2ZkICE9 IC0xKQorCQljbG9zZShkcm0uZHJyc19kZWJ1Z2ZzX2ZkKTsKK30KKwogc3RhdGljIGJvb2wgZmJj X3N1cHBvcnRlZF9vbl9jaGlwc2V0KHZvaWQpCiB7CiAJY2hhciBidWZbMTI4XTsKQEAgLTE1Nzcs NiArMTY2MCwyOSBAQCBzdGF0aWMgdm9pZCB0ZWFyZG93bl9wc3Iodm9pZCkKIHsKIH0KIAorc3Rh dGljIHZvaWQgc2V0dXBfZHJycyh2b2lkKQoreworCWlmIChnZXRfY29ubmVjdG9yKHByaW1fbW9k ZV9wYXJhbXMuY29ubmVjdG9yX2lkKS0+Y29ubmVjdG9yX3R5cGUgIT0KKwkgICAgRFJNX01PREVf Q09OTkVDVE9SX2VEUCkgeworCQlpZ3RfaW5mbygiQ2FuJ3QgdGVzdCBEUlJTOiBubyB1c2FibGUg ZURQIHNjcmVlbi5cbiIpOworCQlyZXR1cm47CisJfQorCisJaWYgKCFpc19kcnJzX3N1cHBvcnRl ZCgpKSB7CisJCWlndF9pbmZvKCJDYW4ndCB0ZXN0IERSUlM6IE5vdCBzdXBwb3J0ZWQuXG4iKTsK KwkJcmV0dXJuOworCX0KKworCWRybS5kcnJzX2RlYnVnZnNfZmQgPSBvcGVuYXQoZHJtLmRlYnVn ZnMsICJpOTE1X2RycnNfY3RsIiwgT19XUk9OTFkpOworCisJaWYgKGRybS5kcnJzX2RlYnVnZnNf ZmQgPiAwKSB7CisJCWRycnMuY2FuX3Rlc3QgPSB0cnVlOworCX0gZWxzZSB7CisJCWlndF9pbmZv KCJDYW4ndCB0ZXN0IERSUlM6IERlYnVnZnMgZW50cnkgaTkxNV9kcnJzX2N0bCBub3QgZm91bmQu XG4iKTsKKwkJZHJycy5jYW5fdGVzdCA9IGZhbHNlOworCX0KK30KKwogc3RhdGljIHZvaWQgc2V0 dXBfZW52aXJvbm1lbnQodm9pZCkKIHsKIAlzZXR1cF9kcm0oKTsKQEAgLTE1ODQsNiArMTY5MCw3 IEBAIHN0YXRpYyB2b2lkIHNldHVwX2Vudmlyb25tZW50KHZvaWQpCiAKIAlzZXR1cF9mYmMoKTsK IAlzZXR1cF9wc3IoKTsKKwlzZXR1cF9kcnJzKCk7CiAKIAlzZXR1cF9jcmNzKCk7CiB9CkBAIC0x NTk2LDYgKzE3MDMsNyBAQCBzdGF0aWMgdm9pZCB0ZWFyZG93bl9lbnZpcm9ubWVudCh2b2lkKQog CXRlYXJkb3duX3BzcigpOwogCXRlYXJkb3duX2ZiYygpOwogCXRlYXJkb3duX21vZGVzZXQoKTsK Kwl0ZWFyZG93bl9kcnJzKCk7CiAJdGVhcmRvd25fZHJtKCk7CiB9CiAKQEAgLTE2NjIsNiArMTc3 MCwxMSBAQCBzdGF0aWMgdm9pZCBkb19mbHVzaChjb25zdCBzdHJ1Y3QgdGVzdF9tb2RlICp0KQog I2RlZmluZSBBU1NFUlRfUFNSX0VOQUJMRUQJCSgxIDw8IDYpCiAjZGVmaW5lIEFTU0VSVF9QU1Jf RElTQUJMRUQJCSgxIDw8IDcpCiAKKyNkZWZpbmUgRFJSU19BU1NFUlRfRkxBR1MJCSg3IDw8IDgp CisjZGVmaW5lIEFTU0VSVF9EUlJTX0hJR0gJCSgxIDw8IDgpCisjZGVmaW5lIEFTU0VSVF9EUlJT X0xPVwkJKDEgPDwgOSkKKyNkZWZpbmUgQVNTRVJUX0RSUlNfSU5BQ1RJVkUJCSgxIDw8IDEwKQor CiBzdGF0aWMgaW50IGFkanVzdF9hc3NlcnRpb25fZmxhZ3MoY29uc3Qgc3RydWN0IHRlc3RfbW9k ZSAqdCwgaW50IGZsYWdzKQogewogCWlmICghKGZsYWdzICYgRE9OVF9BU1NFUlRfRkVBVFVSRV9T VEFUVVMpKSB7CkBAIC0xNjY5LDEyICsxNzgyLDE3IEBAIHN0YXRpYyBpbnQgYWRqdXN0X2Fzc2Vy dGlvbl9mbGFncyhjb25zdCBzdHJ1Y3QgdGVzdF9tb2RlICp0LCBpbnQgZmxhZ3MpCiAJCQlmbGFn cyB8PSBBU1NFUlRfRkJDX0VOQUJMRUQ7CiAJCWlmICghKGZsYWdzICYgQVNTRVJUX1BTUl9ESVNB QkxFRCkpCiAJCQlmbGFncyB8PSBBU1NFUlRfUFNSX0VOQUJMRUQ7CisJCWlmICghKChmbGFncyAm IEFTU0VSVF9EUlJTX0xPVykgfHwKKwkJICAgIChmbGFncyAmIEFTU0VSVF9EUlJTX0lOQUNUSVZF KSkpCisJCQlmbGFncyB8PSBBU1NFUlRfRFJSU19ISUdIOwogCX0KIAogCWlmICgodC0+ZmVhdHVy ZSAmIEZFQVRVUkVfRkJDKSA9PSAwKQogCQlmbGFncyAmPSB+RkJDX0FTU0VSVF9GTEFHUzsKIAlp ZiAoKHQtPmZlYXR1cmUgJiBGRUFUVVJFX1BTUikgPT0gMCkKIAkJZmxhZ3MgJj0gflBTUl9BU1NF UlRfRkxBR1M7CisJaWYgKCh0LT5mZWF0dXJlICYgRkVBVFVSRV9EUlJTKSA9PSAwKQorCQlmbGFn cyAmPSB+RFJSU19BU1NFUlRfRkxBR1M7CiAKIAlyZXR1cm4gZmxhZ3M7CiB9CkBAIC0xNzA2LDYg KzE4MjQsMjMgQEAgc3RhdGljIHZvaWQgZG9fc3RhdHVzX2Fzc2VydGlvbnMoaW50IGZsYWdzKQog CQlyZXR1cm47CiAJfQogCisJaWYgKGZsYWdzICYgQVNTRVJUX0RSUlNfSElHSCkgeworCQlpZiAo IWlzX2RycnNfaGlnaCgpKSB7CisJCQlkcnJzX3ByaW50X3N0YXR1cygpOworCQkJaWd0X2Fzc2Vy dF9mKGZhbHNlLCAiRFJSUyBISUdIXG4iKTsKKwkJfQorCX0gZWxzZSBpZiAoZmxhZ3MgJiBBU1NF UlRfRFJSU19MT1cpIHsKKwkJaWYgKCFkcnJzX3dhaXRfdW50aWxfcnJfc3dpdGNoX3RvX2xvdygp KSB7CisJCQlkcnJzX3ByaW50X3N0YXR1cygpOworCQkJaWd0X2Fzc2VydF9mKGZhbHNlLCAiRFJS UyBMT1dcbiIpOworCQl9CisJfSBlbHNlIGlmIChmbGFncyAmIEFTU0VSVF9EUlJTX0lOQUNUSVZF KSB7CisJCWlmICghaXNfZHJyc19pbmFjdGl2ZSgpKSB7CisJCQlkcnJzX3ByaW50X3N0YXR1cygp OworCQkJaWd0X2Fzc2VydF9mKGZhbHNlLCAiRFJSUyBJTkFDVElWRVxuIik7CisJCX0KKwl9CisK IAlpZiAoZmxhZ3MgJiBBU1NFUlRfRkJDX0VOQUJMRUQpIHsKIAkJaWd0X3JlcXVpcmUoIWZiY19u b3RfZW5vdWdoX3N0b2xlbigpKTsKIAkJaWd0X3JlcXVpcmUoIWZiY19zdHJpZGVfbm90X3N1cHBv cnRlZCgpKTsKQEAgLTE4MzMsNiArMTk2OCw4IEBAIHN0YXRpYyB2b2lkIGVuYWJsZV9mZWF0dXJl c19mb3JfdGVzdChjb25zdCBzdHJ1Y3QgdGVzdF9tb2RlICp0KQogCQlmYmNfZW5hYmxlKCk7CiAJ aWYgKHQtPmZlYXR1cmUgJiBGRUFUVVJFX1BTUikKIAkJcHNyX2VuYWJsZSgpOworCWlmICh0LT5m ZWF0dXJlICYgRkVBVFVSRV9EUlJTKQorCQlkcnJzX2VuYWJsZSgpOwogfQogCiBzdGF0aWMgdm9p ZCBjaGVja190ZXN0X3JlcXVpcmVtZW50cyhjb25zdCBzdHJ1Y3QgdGVzdF9tb2RlICp0KQpAQCAt MTg1Miw2ICsxOTg5LDIwIEBAIHN0YXRpYyB2b2lkIGNoZWNrX3Rlc3RfcmVxdWlyZW1lbnRzKGNv bnN0IHN0cnVjdCB0ZXN0X21vZGUgKnQpCiAJCQkgICAgICAiQ2FuJ3QgdGVzdCBQU1Igd2l0aG91 dCBzaW5rIENSQ3NcbiIpOwogCX0KIAorCWlmICh0LT5mZWF0dXJlICYgRkVBVFVSRV9EUlJTKQor CQlpZ3RfcmVxdWlyZV9mKGRycnMuY2FuX3Rlc3QsCisJCQkgICAgICAiQ2FuJ3QgdGVzdCBEUlJT IHdpdGggdGhlIGN1cnJlbnQgb3V0cHV0c1xuIik7CisKKwkvKgorCSAqIEluIGtlcm5lbCwgV2hl biBQU1IgaXMgZW5hYmxlZCwgRFJSUyB3aWxsIGJlIGRpc2FibGVkLiBTbyBJZiBhIHRlc3QKKwkg KiBjYXNlIG5lZWRzIERSUlMgKyBQU1IgZW5hYmxlZCwgdGhhdCB3aWxsIGJlIHNraXBwZWQuCisJ ICovCisJZHJycy5pc19wc3JfZHJyc19jb21ibyA9ICgodC0+ZmVhdHVyZSAmIEZFQVRVUkVfUFNS KSAmJgorCQkJCSAgKHQtPmZlYXR1cmUgJiBGRUFUVVJFX0RSUlMpKTsKKworCWlndF9yZXF1aXJl X2YoIWRycnMuaXNfcHNyX2RycnNfY29tYm8sCisJCSAgICAgICJDYW4ndCB0ZXN0IFBTUiBhbmQg RFJSUyB0b2dldGhlclxuIik7CisKIAlpZiAob3B0Lm9ubHlfcGlwZXMgIT0gUElQRV9DT1VOVCkK IAkJaWd0X3JlcXVpcmUodC0+cGlwZXMgPT0gb3B0Lm9ubHlfcGlwZXMpOwogfQpAQCAtMTk3Myw3 ICsyMTI0LDcgQEAgc3RhdGljIHZvaWQgcnRlX3N1YnRlc3QoY29uc3Qgc3RydWN0IHRlc3RfbW9k ZSAqdCkKIAogCXVuc2V0X2FsbF9jcnRjcygpOwogCWRvX2Fzc2VydGlvbnMoQVNTRVJUX0ZCQ19E SVNBQkxFRCB8IEFTU0VSVF9QU1JfRElTQUJMRUQgfAotCQkgICAgICBET05UX0FTU0VSVF9DUkMp OworCQkgICAgICBET05UX0FTU0VSVF9DUkMgfCBBU1NFUlRfRFJSU19JTkFDVElWRSk7CiAKIAll bmFibGVfcHJpbV9zY3JlZW5fYW5kX3dhaXQodCk7CiAJc2V0X2N1cnNvcl9mb3JfdGVzdCh0LCAm cHJpbV9tb2RlX3BhcmFtcyk7CkBAIC0yMDY1LDYgKzIyMTYsMTMgQEAgc3RhdGljIHZvaWQgZHJh d19zdWJ0ZXN0KGNvbnN0IHN0cnVjdCB0ZXN0X21vZGUgKnQpCiAJaWYgKG9wX2Rpc2FibGVzX3Bz cih0LCB0LT5tZXRob2QpKQogCQlhc3NlcnRpb25zIHw9IEFTU0VSVF9QU1JfRElTQUJMRUQ7CiAK KwkvKgorCSAqIE9uIEZCU19JTkRJVklEVUFMLCB3cml0ZSB0byBvZmZzY3JlZW4gcGxhbmUgd2ls bCBub3QgdG91Y2ggdGhlCisJICogY3VycmVudCBmcmFtYnVmZmVyLiBIZW5jZSBhc3NlcnQgZm9y IERSUlNfTE9XLgorCSAqLworCWlmICgodC0+ZmJzID09IEZCU19JTkRJVklEVUFMKSAmJiAodC0+ c2NyZWVuID09IFNDUkVFTl9PRkZTQ1JFRU4pKQorCQlhc3NlcnRpb25zIHw9IEFTU0VSVF9EUlJT X0xPVzsKKwogCXByZXBhcmVfc3VidGVzdCh0LCBwYXR0ZXJuKTsKIAl0YXJnZXQgPSBwaWNrX3Rh cmdldCh0LCBwYXJhbXMpOwogCkBAIC0yMjczLDcgKzI0MzEsMTEgQEAgc3RhdGljIHZvaWQgc2xv d19kcmF3X3N1YnRlc3QoY29uc3Qgc3RydWN0IHRlc3RfbW9kZSAqdCkKIAkJc2xlZXAoMik7CiAK IAkJdXBkYXRlX3dhbnRlZF9jcmModCwgJnBhdHRlcm4tPmNyY3NbdC0+Zm9ybWF0XVtyXSk7Ci0J CWRvX2Fzc2VydGlvbnMoMCk7CisKKwkJaWYgKHQtPmZlYXR1cmUgJiBGRUFUVVJFX0RSUlMpCisJ CQlkb19hc3NlcnRpb25zKEFTU0VSVF9EUlJTX0xPVyk7CisJCWVsc2UKKwkJCWRvX2Fzc2VydGlv bnMoMCk7CiAJfQogfQogCkBAIC0yODgyLDE3ICszMDQ0LDE3IEBAIHN0YXRpYyB2b2lkIHN1c3Bl bmRfc3VidGVzdChjb25zdCBzdHJ1Y3QgdGVzdF9tb2RlICp0KQogCXNsZWVwKDUpOwogCWlndF9z eXN0ZW1fc3VzcGVuZF9hdXRvcmVzdW1lKFNVU1BFTkRfU1RBVEVfTUVNLCBTVVNQRU5EX1RFU1Rf Tk9ORSk7CiAJc2xlZXAoNSk7Ci0JZG9fYXNzZXJ0aW9ucygwKTsKKwlkb19hc3NlcnRpb25zKEFT U0VSVF9EUlJTX0xPVyk7CiAKIAl1bnNldF9hbGxfY3J0Y3MoKTsKIAlzbGVlcCg1KTsKIAlpZ3Rf c3lzdGVtX3N1c3BlbmRfYXV0b3Jlc3VtZShTVVNQRU5EX1NUQVRFX01FTSwgU1VTUEVORF9URVNU X05PTkUpOwogCXNsZWVwKDUpOwogCWRvX2Fzc2VydGlvbnMoQVNTRVJUX0ZCQ19ESVNBQkxFRCB8 IEFTU0VSVF9QU1JfRElTQUJMRUQgfAotCQkgICAgICBET05UX0FTU0VSVF9DUkMpOworCQkgICAg ICBET05UX0FTU0VSVF9DUkMgfCBBU1NFUlRfRFJSU19JTkFDVElWRSk7CiAKIAlzZXRfbW9kZV9m b3JfcGFyYW1zKHBhcmFtcyk7Ci0JZG9fYXNzZXJ0aW9ucygwKTsKKwlkb19hc3NlcnRpb25zKEFT U0VSVF9EUlJTX0hJR0gpOwogfQogCiAvKioKQEAgLTMzNzEsNiArMzUzMywxNCBAQCBzdGF0aWMg Y29uc3QgY2hhciAqZmVhdHVyZV9zdHIoaW50IGZlYXR1cmUpCiAJCXJldHVybiAicHNyIjsKIAlj YXNlIEZFQVRVUkVfRkJDIHwgRkVBVFVSRV9QU1I6CiAJCXJldHVybiAiZmJjcHNyIjsKKwljYXNl IEZFQVRVUkVfRFJSUzoKKwkJcmV0dXJuICJkcnJzIjsKKwljYXNlIEZFQVRVUkVfRkJDIHwgRkVB VFVSRV9EUlJTOgorCQlyZXR1cm4gImZiY2RycnMiOworCWNhc2UgRkVBVFVSRV9QU1IgfCBGRUFU VVJFX0RSUlM6CisJCXJldHVybiAicHNyZHJycyI7CisJY2FzZSBGRUFUVVJFX0ZCQyB8IEZFQVRV UkVfUFNSIHwgRkVBVFVSRV9EUlJTOgorCQlyZXR1cm4gImZiY3BzcmRycnMiOwogCWRlZmF1bHQ6 CiAJCWlndF9hc3NlcnQoZmFsc2UpOwogCX0KQEAgLTM2MzUsNyArMzgwNSw3IEBAIGludCBtYWlu KGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJCQkJdGlsaW5nY2hhbmdlX3N1YnRlc3QoJnQpOwog CQl9CiAKLQkJaWYgKHQuZmVhdHVyZSAmIEZFQVRVUkVfUFNSKQorCQlpZiAoKHQuZmVhdHVyZSAm IEZFQVRVUkVfUFNSKSB8fCAodC5mZWF0dXJlICYgRkVBVFVSRV9EUlJTKSkKIAkJCWlndF9zdWJ0 ZXN0X2YoIiVzLXNsb3dkcmF3IiwgZmVhdHVyZV9zdHIodC5mZWF0dXJlKSkKIAkJCQlzbG93X2Ry YXdfc3VidGVzdCgmdCk7CiAKLS0gCjEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK