From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 113276E7CF for ; Mon, 13 May 2019 17:56:29 +0000 (UTC) From: Andi Shyti Date: Mon, 13 May 2019 20:56:05 +0300 Message-Id: <20190513175613.2507-7-andi.shyti@intel.com> In-Reply-To: <20190513175613.2507-1-andi.shyti@intel.com> References: <20190513175613.2507-1-andi.shyti@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH v24 06/14] test: perf_pmu: use the gem_engine_topology library List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: IGT dev Cc: Tvrtko Ursulin , Andi Shyti List-ID: UmVwbGFjZSB0aGUgbGVnYWN5IGZvcl9lYWNoX2VuZ2luZSogZGVmaW5lcyB3aXRoIHRoZSBvbmVz CmltcGxlbWVudGVkIGluIHRoZSBnZW1fZW5naW5lX3RvcG9sb2d5IGxpYnJhcnkuCgpVc2Ugd2hl bmV2ZXIgcG9zc2libGUgZ2VtX2VuZ2luZV9jYW5fc3RvcmVfZHdvcmQoKSB0aGF0IGNoZWNrcwpj bGFzcyBpbnN0ZWFkIG9mIGZsYWdzLgoKTm93IHRoZSBfX2Zvcl9lYWNoX2VuZ2luZV9jbGFzc19p bnN0YW5jZSBhbmQKZm9yX2VhY2hfZW5naW5lX2NsYXNzX2luc3RhbmNlIGFyZSB1bnVzZWQsIHJl bW92ZSB0aGVtLgoKU3VnZ2VzdGVkLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5A aW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBBbmRpIFNoeXRpIDxhbmRpLnNoeXRpQGludGVsLmNv bT4KQ2M6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBsaW51eC5pbnRlbC5jb20+ClJl dmlld2VkLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgotLS0K IGxpYi9pZ3RfZ3QuaCAgICAgfCAgIDcgLS0tLQogdGVzdHMvcGVyZl9wbXUuYyB8IDEwMiArKysr KysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFu Z2VkLCA1NiBpbnNlcnRpb25zKCspLCA1MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWIv aWd0X2d0LmggYi9saWIvaWd0X2d0LmgKaW5kZXggMGI1YzdmY2I0YzNjLi43NzMxOGUyYTgyYjgg MTAwNjQ0Ci0tLSBhL2xpYi9pZ3RfZ3QuaAorKysgYi9saWIvaWd0X2d0LmgKQEAgLTExOSwxMSAr MTE5LDQgQEAgdm9pZCBnZW1fcmVxdWlyZV9lbmdpbmUoaW50IGdlbV9mZCwKIAlpZ3RfcmVxdWly ZShnZW1faGFzX2VuZ2luZShnZW1fZmQsIGNsYXNzLCBpbnN0YW5jZSkpOwogfQogCi0jZGVmaW5l IF9fZm9yX2VhY2hfZW5naW5lX2NsYXNzX2luc3RhbmNlKGVfXykgXAotCWZvciAoKGVfXykgPSBp bnRlbF9leGVjdXRpb25fZW5naW5lczI7IChlX18pLT5uYW1lOyAoZV9fKSsrKQotCi0jZGVmaW5l IGZvcl9lYWNoX2VuZ2luZV9jbGFzc19pbnN0YW5jZShmZF9fLCBlX18pIFwKLQlmb3IgKChlX18p ID0gaW50ZWxfZXhlY3V0aW9uX2VuZ2luZXMyOyAoZV9fKS0+bmFtZTsgKGVfXykrKykgXAotCQlm b3JfaWYgKGdlbV9oYXNfZW5naW5lKChmZF9fKSwgKGVfXyktPmNsYXNzLCAoZV9fKS0+aW5zdGFu Y2UpKQotCiAjZW5kaWYgLyogSUdUX0dUX0ggKi8KZGlmZiAtLWdpdCBhL3Rlc3RzL3BlcmZfcG11 LmMgYi90ZXN0cy9wZXJmX3BtdS5jCmluZGV4IGU3MTlhMjkyYTNkMS4uOTdhYTFmNTdmZTA0IDEw MDY0NAotLS0gYS90ZXN0cy9wZXJmX3BtdS5jCisrKyBiL3Rlc3RzL3BlcmZfcG11LmMKQEAgLTgy LDcgKzgyLDcgQEAgaW5pdChpbnQgZ2VtX2ZkLCBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9u X2VuZ2luZTIgKmUsIHVpbnQ4X3Qgc2FtcGxlKQogCWlmIChmZCA8IDApCiAJCWVyciA9IGVycm5v OwogCi0JZXhpc3RzID0gZ2VtX2hhc19lbmdpbmUoZ2VtX2ZkLCBlLT5jbGFzcywgZS0+aW5zdGFu Y2UpOworCWV4aXN0cyA9IGdlbV9jb250ZXh0X2hhc19lbmdpbmUoZ2VtX2ZkLCAwLCBlLT5mbGFn cyk7CiAJaWYgKGludGVsX2dlbihpbnRlbF9nZXRfZHJtX2RldmlkKGdlbV9mZCkpIDwgNiAmJgog CSAgICBzYW1wbGUgPT0gSTkxNV9TQU1QTEVfU0VNQSkKIAkJZXhpc3RzID0gZmFsc2U7CkBAIC0x NTgsMTEgKzE1OCw2IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgbWVhc3VyZWRfdXNsZWVwKHVuc2ln bmVkIGludCB1c2VjKQogCXJldHVybiBpZ3RfbnNlY19lbGFwc2VkKCZ0cyk7CiB9CiAKLXN0YXRp YyB1bnNpZ25lZCBpbnQgZTJyaW5nKGludCBnZW1fZmQsIGNvbnN0IHN0cnVjdCBpbnRlbF9leGVj dXRpb25fZW5naW5lMiAqZSkKLXsKLQlyZXR1cm4gZ2VtX2NsYXNzX2luc3RhbmNlX3RvX2ViX2Zs YWdzKGdlbV9mZCwgZS0+Y2xhc3MsIGUtPmluc3RhbmNlKTsKLX0KLQogI2RlZmluZSBURVNUX0JV U1kgKDEpCiAjZGVmaW5lIEZMQUdfU1lOQyAoMikKICNkZWZpbmUgVEVTVF9UUkFJTElOR19JRExF ICg0KQpAQCAtMTcwLDE0ICsxNjUsMTUgQEAgc3RhdGljIHVuc2lnbmVkIGludCBlMnJpbmcoaW50 IGdlbV9mZCwgY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplKQogI2RlZmlu ZSBGTEFHX0xPTkcgKDE2KQogI2RlZmluZSBGTEFHX0hBTkcgKDMyKQogCi1zdGF0aWMgaWd0X3Nw aW5fdCAqIF9fc3Bpbl9wb2xsKGludCBmZCwgdWludDMyX3QgY3R4LCB1bnNpZ25lZCBsb25nIGZs YWdzKQorc3RhdGljIGlndF9zcGluX3QgKiBfX3NwaW5fcG9sbChpbnQgZmQsIHVpbnQzMl90IGN0 eCwKKwkJCQljb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUpCiB7CiAJc3Ry dWN0IGlndF9zcGluX2ZhY3Rvcnkgb3B0cyA9IHsKIAkJLmN0eCA9IGN0eCwKLQkJLmVuZ2luZSA9 IGZsYWdzLAorCQkuZW5naW5lID0gZS0+ZmxhZ3MsCiAJfTsKIAotCWlmIChnZW1fY2FuX3N0b3Jl X2R3b3JkKGZkLCBmbGFncykpCisJaWYgKGdlbV9jbGFzc19jYW5fc3RvcmVfZHdvcmQoZmQsIGUt PmNsYXNzKSkKIAkJb3B0cy5mbGFncyB8PSBJR1RfU1BJTl9QT0xMX1JVTjsKIAogCXJldHVybiBf X2lndF9zcGluX2ZhY3RvcnkoZmQsICZvcHRzKTsKQEAgLTIwOSwyMCArMjA1LDM0IEBAIHN0YXRp YyB1bnNpZ25lZCBsb25nIF9fc3Bpbl93YWl0KGludCBmZCwgaWd0X3NwaW5fdCAqc3BpbikKIAly ZXR1cm4gaWd0X25zZWNfZWxhcHNlZCgmc3RhcnQpOwogfQogCi1zdGF0aWMgaWd0X3NwaW5fdCAq IF9fc3Bpbl9zeW5jKGludCBmZCwgdWludDMyX3QgY3R4LCB1bnNpZ25lZCBsb25nIGZsYWdzKQor c3RhdGljIGlndF9zcGluX3QgKiBfX3NwaW5fc3luYyhpbnQgZmQsIHVpbnQzMl90IGN0eCwKKwkJ CQljb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUpCiB7Ci0JaWd0X3NwaW5f dCAqc3BpbiA9IF9fc3Bpbl9wb2xsKGZkLCBjdHgsIGZsYWdzKTsKKwlpZ3Rfc3Bpbl90ICpzcGlu ID0gX19zcGluX3BvbGwoZmQsIGN0eCwgZSk7CiAKIAlfX3NwaW5fd2FpdChmZCwgc3Bpbik7CiAK IAlyZXR1cm4gc3BpbjsKIH0KIAotc3RhdGljIGlndF9zcGluX3QgKiBzcGluX3N5bmMoaW50IGZk LCB1aW50MzJfdCBjdHgsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCitzdGF0aWMgaWd0X3NwaW5fdCAq IHNwaW5fc3luYyhpbnQgZmQsIHVpbnQzMl90IGN0eCwKKwkJCSAgICAgIGNvbnN0IHN0cnVjdCBp bnRlbF9leGVjdXRpb25fZW5naW5lMiAqZSkKIHsKIAlpZ3RfcmVxdWlyZV9nZW0oZmQpOwogCi0J cmV0dXJuIF9fc3Bpbl9zeW5jKGZkLCBjdHgsIGZsYWdzKTsKKwlyZXR1cm4gX19zcGluX3N5bmMo ZmQsIGN0eCwgZSk7Cit9CisKK3N0YXRpYyBpZ3Rfc3Bpbl90ICogc3Bpbl9zeW5jX2ZsYWdzKGlu dCBmZCwgdWludDMyX3QgY3R4LCB1bnNpZ25lZCBpbnQgZmxhZ3MpCit7CisJc3RydWN0IGludGVs X2V4ZWN1dGlvbl9lbmdpbmUyIGUgPSB7IH07CisKKwllLmNsYXNzID0gZ2VtX2V4ZWNidWZfZmxh Z3NfdG9fZW5naW5lX2NsYXNzKGZsYWdzKTsKKwllLmluc3RhbmNlID0gKGZsYWdzICYgKEk5MTVf RVhFQ19CU0RfTUFTSyB8IEk5MTVfRVhFQ19SSU5HX01BU0spKSA9PQorCQkgICAgIChJOTE1X0VY RUNfQlNEIHwgSTkxNV9FWEVDX0JTRF9SSU5HMikgPyAxIDogMDsKKwllLmZsYWdzID0gZmxhZ3M7 CisKKwlyZXR1cm4gc3Bpbl9zeW5jKGZkLCBjdHgsICZlKTsKIH0KIAogc3RhdGljIHZvaWQgZW5k X3NwaW4oaW50IGZkLCBpZ3Rfc3Bpbl90ICpzcGluLCB1bnNpZ25lZCBpbnQgZmxhZ3MpCkBAIC0y NjcsNyArMjc3LDcgQEAgc2luZ2xlKGludCBnZW1fZmQsIGNvbnN0IHN0cnVjdCBpbnRlbF9leGVj dXRpb25fZW5naW5lMiAqZSwgdW5zaWduZWQgaW50IGZsYWdzKQogCWZkID0gb3Blbl9wbXUoSTkx NV9QTVVfRU5HSU5FX0JVU1koZS0+Y2xhc3MsIGUtPmluc3RhbmNlKSk7CiAKIAlpZiAoZmxhZ3Mg JiBURVNUX0JVU1kpCi0JCXNwaW4gPSBzcGluX3N5bmMoZ2VtX2ZkLCAwLCBlMnJpbmcoZ2VtX2Zk LCBlKSk7CisJCXNwaW4gPSBzcGluX3N5bmMoZ2VtX2ZkLCAwLCBlKTsKIAllbHNlCiAJCXNwaW4g PSBOVUxMOwogCkBAIC0zMTYsNyArMzI2LDcgQEAgYnVzeV9zdGFydChpbnQgZ2VtX2ZkLCBjb25z dCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUpCiAJICovCiAJc2xlZXAoMik7CiAK LQlzcGluID0gX19zcGluX3N5bmMoZ2VtX2ZkLCAwLCBlMnJpbmcoZ2VtX2ZkLCBlKSk7CisJc3Bp biA9IF9fc3Bpbl9zeW5jKGdlbV9mZCwgMCwgZSk7CiAKIAlmZCA9IG9wZW5fcG11KEk5MTVfUE1V X0VOR0lORV9CVVNZKGUtPmNsYXNzLCBlLT5pbnN0YW5jZSkpOwogCkBAIC0zNDcsNiArMzU3LDcg QEAgYnVzeV9kb3VibGVfc3RhcnQoaW50IGdlbV9mZCwgY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1 dGlvbl9lbmdpbmUyICplKQogCWludCBmZDsKIAogCWN0eCA9IGdlbV9jb250ZXh0X2NyZWF0ZShn ZW1fZmQpOworCWdlbV9jb250ZXh0X3NldF9hbGxfZW5naW5lcyhnZW1fZmQsIGN0eCk7CiAKIAkv KgogCSAqIERlZmVhdCB0aGUgYnVzeSBzdGF0cyBkZWxheWVkIGRpc2FibGUsIHdlIG5lZWQgdG8g Z3VhcmFudGVlIHdlIGFyZQpAQCAtMzU5LDExICszNzAsMTEgQEAgYnVzeV9kb3VibGVfc3RhcnQo aW50IGdlbV9mZCwgY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplKQogCSAq IHJlLXN1Ym1pc3Npb24gaW4gZXhlY2xpc3RzIG1vZGUuIE1ha2Ugc3VyZSBidXN5bmVzcyBpcyBj b3JyZWN0bHkKIAkgKiByZXBvcnRlZCB3aXRoIHRoZSBlbmdpbmUgYnVzeSwgYW5kIGFmdGVyIHRo ZSBlbmdpbmUgd2VudCBpZGxlLgogCSAqLwotCXNwaW5bMF0gPSBfX3NwaW5fc3luYyhnZW1fZmQs IDAsIGUycmluZyhnZW1fZmQsIGUpKTsKKwlzcGluWzBdID0gX19zcGluX3N5bmMoZ2VtX2ZkLCAw LCBlKTsKIAl1c2xlZXAoNTAwZTMpOwogCXNwaW5bMV0gPSBfX2lndF9zcGluX25ldyhnZW1fZmQs CiAJCQkJIC5jdHggPSBjdHgsCi0JCQkJIC5lbmdpbmUgPSBlMnJpbmcoZ2VtX2ZkLCBlKSk7CisJ CQkJIC5lbmdpbmUgPSBlLT5mbGFncyk7CiAKIAkvKgogCSAqIE9wZW4gUE1VIGFzIGZhc3QgYXMg cG9zc2libGUgYWZ0ZXIgdGhlIHNlY29uZCBzcGluIGJhdGNoIGluIGF0dGVtcHQKQEAgLTQyNCw3 ICs0MzUsNyBAQCBzdGF0aWMgdm9pZAogYnVzeV9jaGVja19hbGwoaW50IGdlbV9mZCwgY29uc3Qg c3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplLAogCSAgICAgICBjb25zdCB1bnNpZ25l ZCBpbnQgbnVtX2VuZ2luZXMsIHVuc2lnbmVkIGludCBmbGFncykKIHsKLQljb25zdCBzdHJ1Y3Qg aW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmVfOworCXN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5n aW5lMiAqZV87CiAJdWludDY0X3QgdHZhbFsyXVtudW1fZW5naW5lc107CiAJdW5zaWduZWQgaW50 IGJ1c3lfaWR4ID0gMCwgaTsKIAl1aW50NjRfdCB2YWxbbnVtX2VuZ2luZXNdOwpAQCAtNDM0LDgg KzQ0NSw4IEBAIGJ1c3lfY2hlY2tfYWxsKGludCBnZW1fZmQsIGNvbnN0IHN0cnVjdCBpbnRlbF9l eGVjdXRpb25fZW5naW5lMiAqZSwKIAogCWkgPSAwOwogCWZkWzBdID0gLTE7Ci0JZm9yX2VhY2hf ZW5naW5lX2NsYXNzX2luc3RhbmNlKGdlbV9mZCwgZV8pIHsKLQkJaWYgKGUgPT0gZV8pCisJX19m b3JfZWFjaF9waHlzaWNhbF9lbmdpbmUoZ2VtX2ZkLCBlXykgeworCQlpZiAoZS0+Y2xhc3MgPT0g ZV8tPmNsYXNzICYmIGUtPmluc3RhbmNlID09IGVfLT5pbnN0YW5jZSkKIAkJCWJ1c3lfaWR4ID0g aTsKIAogCQlmZFtpKytdID0gb3Blbl9ncm91cChJOTE1X1BNVV9FTkdJTkVfQlVTWShlXy0+Y2xh c3MsCkBAIC00NDUsNyArNDU2LDcgQEAgYnVzeV9jaGVja19hbGwoaW50IGdlbV9mZCwgY29uc3Qg c3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplLAogCiAJaWd0X2Fzc2VydF9lcShpLCBu dW1fZW5naW5lcyk7CiAKLQlzcGluID0gc3Bpbl9zeW5jKGdlbV9mZCwgMCwgZTJyaW5nKGdlbV9m ZCwgZSkpOworCXNwaW4gPSBzcGluX3N5bmMoZ2VtX2ZkLCAwLCBlKTsKIAlwbXVfcmVhZF9tdWx0 aShmZFswXSwgbnVtX2VuZ2luZXMsIHR2YWxbMF0pOwogCXNsZXB0ID0gbWVhc3VyZWRfdXNsZWVw KGJhdGNoX2R1cmF0aW9uX25zIC8gMTAwMCk7CiAJaWYgKGZsYWdzICYgVEVTVF9UUkFJTElOR19J RExFKQpAQCAtNDc4LDcgKzQ4OSw3IEBAIF9fc3VibWl0X3NwaW4oaW50IGdlbV9mZCwgaWd0X3Nw aW5fdCAqc3BpbiwKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyIGViID0gc3Bpbi0+ ZXhlY2J1ZjsKIAogCWViLmZsYWdzICY9IH4oMHgzZiB8IEk5MTVfRVhFQ19CU0RfTUFTSyk7Ci0J ZWIuZmxhZ3MgfD0gZTJyaW5nKGdlbV9mZCwgZSkgfCBJOTE1X0VYRUNfTk9fUkVMT0M7CisJZWIu ZmxhZ3MgfD0gZS0+ZmxhZ3MgfCBJOTE1X0VYRUNfTk9fUkVMT0M7CiAJZWIuYmF0Y2hfc3RhcnRf b2Zmc2V0ICs9IG9mZnNldDsKIAogCWdlbV9leGVjYnVmKGdlbV9mZCwgJmViKTsKQEAgLTQ4OCw3 ICs0OTksNyBAQCBzdGF0aWMgdm9pZAogbW9zdF9idXN5X2NoZWNrX2FsbChpbnQgZ2VtX2ZkLCBj b25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUsCiAJCSAgICBjb25zdCB1bnNp Z25lZCBpbnQgbnVtX2VuZ2luZXMsIHVuc2lnbmVkIGludCBmbGFncykKIHsKLQljb25zdCBzdHJ1 Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmVfOworCXN0cnVjdCBpbnRlbF9leGVjdXRpb25f ZW5naW5lMiAqZV87CiAJdWludDY0X3QgdHZhbFsyXVtudW1fZW5naW5lc107CiAJdWludDY0X3Qg dmFsW251bV9lbmdpbmVzXTsKIAlpbnQgZmRbbnVtX2VuZ2luZXNdOwpAQCAtNDk3LDEzICs1MDgs MTMgQEAgbW9zdF9idXN5X2NoZWNrX2FsbChpbnQgZ2VtX2ZkLCBjb25zdCBzdHJ1Y3QgaW50ZWxf ZXhlY3V0aW9uX2VuZ2luZTIgKmUsCiAJdW5zaWduZWQgaW50IGlkbGVfaWR4LCBpOwogCiAJaSA9 IDA7Ci0JZm9yX2VhY2hfZW5naW5lX2NsYXNzX2luc3RhbmNlKGdlbV9mZCwgZV8pIHsKLQkJaWYg KGUgPT0gZV8pCisJX19mb3JfZWFjaF9waHlzaWNhbF9lbmdpbmUoZ2VtX2ZkLCBlXykgeworCQlp ZiAoZS0+Y2xhc3MgPT0gZV8tPmNsYXNzICYmIGUtPmluc3RhbmNlID09IGVfLT5pbnN0YW5jZSkK IAkJCWlkbGVfaWR4ID0gaTsKIAkJZWxzZSBpZiAoc3BpbikKIAkJCV9fc3VibWl0X3NwaW4oZ2Vt X2ZkLCBzcGluLCBlXywgNjQpOwogCQllbHNlCi0JCQlzcGluID0gX19zcGluX3BvbGwoZ2VtX2Zk LCAwLCBlMnJpbmcoZ2VtX2ZkLCBlXykpOworCQkJc3BpbiA9IF9fc3Bpbl9wb2xsKGdlbV9mZCwg MCwgZV8pOwogCiAJCXZhbFtpKytdID0gSTkxNV9QTVVfRU5HSU5FX0JVU1koZV8tPmNsYXNzLCBl Xy0+aW5zdGFuY2UpOwogCX0KQEAgLTU0NSw3ICs1NTYsNyBAQCBzdGF0aWMgdm9pZAogYWxsX2J1 c3lfY2hlY2tfYWxsKGludCBnZW1fZmQsIGNvbnN0IHVuc2lnbmVkIGludCBudW1fZW5naW5lcywK IAkJICAgdW5zaWduZWQgaW50IGZsYWdzKQogewotCWNvbnN0IHN0cnVjdCBpbnRlbF9leGVjdXRp b25fZW5naW5lMiAqZTsKKwlzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmU7CiAJdWlu dDY0X3QgdHZhbFsyXVtudW1fZW5naW5lc107CiAJdWludDY0X3QgdmFsW251bV9lbmdpbmVzXTsK IAlpbnQgZmRbbnVtX2VuZ2luZXNdOwpAQCAtNTU0LDExICs1NjUsMTEgQEAgYWxsX2J1c3lfY2hl Y2tfYWxsKGludCBnZW1fZmQsIGNvbnN0IHVuc2lnbmVkIGludCBudW1fZW5naW5lcywKIAl1bnNp Z25lZCBpbnQgaTsKIAogCWkgPSAwOwotCWZvcl9lYWNoX2VuZ2luZV9jbGFzc19pbnN0YW5jZShn ZW1fZmQsIGUpIHsKKwlfX2Zvcl9lYWNoX3BoeXNpY2FsX2VuZ2luZShnZW1fZmQsIGUpIHsKIAkJ aWYgKHNwaW4pCiAJCQlfX3N1Ym1pdF9zcGluKGdlbV9mZCwgc3BpbiwgZSwgNjQpOwogCQllbHNl Ci0JCQlzcGluID0gX19zcGluX3BvbGwoZ2VtX2ZkLCAwLCBlMnJpbmcoZ2VtX2ZkLCBlKSk7CisJ CQlzcGluID0gX19zcGluX3BvbGwoZ2VtX2ZkLCAwLCBlKTsKIAogCQl2YWxbaSsrXSA9IEk5MTVf UE1VX0VOR0lORV9CVVNZKGUtPmNsYXNzLCBlLT5pbnN0YW5jZSk7CiAJfQpAQCAtNjAyLDcgKzYx Myw3IEBAIG5vX3NlbWEoaW50IGdlbV9mZCwgY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9l bmdpbmUyICplLCB1bnNpZ25lZCBpbnQgZmxhZ3MpCiAJb3Blbl9ncm91cChJOTE1X1BNVV9FTkdJ TkVfV0FJVChlLT5jbGFzcywgZS0+aW5zdGFuY2UpLCBmZCk7CiAKIAlpZiAoZmxhZ3MgJiBURVNU X0JVU1kpCi0JCXNwaW4gPSBzcGluX3N5bmMoZ2VtX2ZkLCAwLCBlMnJpbmcoZ2VtX2ZkLCBlKSk7 CisJCXNwaW4gPSBzcGluX3N5bmMoZ2VtX2ZkLCAwLCBlKTsKIAllbHNlCiAJCXNwaW4gPSBOVUxM OwogCkBAIC02ODksNyArNzAwLDcgQEAgc2VtYV93YWl0KGludCBnZW1fZmQsIGNvbnN0IHN0cnVj dCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAqZSwKIAogCWViLmJ1ZmZlcl9jb3VudCA9IDI7CiAJ ZWIuYnVmZmVyc19wdHIgPSB0b191c2VyX3BvaW50ZXIob2JqKTsKLQllYi5mbGFncyA9IGUycmlu ZyhnZW1fZmQsIGUpOworCWViLmZsYWdzID0gZS0+ZmxhZ3M7CiAKIAkvKioKIAkgKiBTdGFydCB0 aGUgc2VtYXBob3JlIHdhaXQgUE1VIGFuZCBhZnRlciBzb21lIGtub3duIHRpbWUgbGV0IHRoZSBh Ym92ZQpAQCAtODQ1LDcgKzg1Niw3IEBAIGV2ZW50X3dhaXQoaW50IGdlbV9mZCwgY29uc3Qgc3Ry dWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplKQogCiAJZWIuYnVmZmVyX2NvdW50ID0gMTsK IAllYi5idWZmZXJzX3B0ciA9IHRvX3VzZXJfcG9pbnRlcigmb2JqKTsKLQllYi5mbGFncyA9IGUy cmluZyhnZW1fZmQsIGUpIHwgSTkxNV9FWEVDX1NFQ1VSRTsKKwllYi5mbGFncyA9IGUtPmZsYWdz IHwgSTkxNV9FWEVDX1NFQ1VSRTsKIAogCWZvcl9lYWNoX3BpcGVfd2l0aF92YWxpZF9vdXRwdXQo JmRhdGEuZGlzcGxheSwgcCwgb3V0cHV0KSB7CiAJCXN0cnVjdCBpZ3RfaGVscGVyX3Byb2Nlc3Mg d2FpdGVyID0geyB9OwpAQCAtOTM2LDcgKzk0Nyw3IEBAIG11bHRpX2NsaWVudChpbnQgZ2VtX2Zk LCBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUpCiAJICovCiAJZmRbMV0g PSBvcGVuX3BtdShjb25maWcpOwogCi0Jc3BpbiA9IHNwaW5fc3luYyhnZW1fZmQsIDAsIGUycmlu ZyhnZW1fZmQsIGUpKTsKKwlzcGluID0gc3Bpbl9zeW5jKGdlbV9mZCwgMCwgZSk7CiAKIAl2YWxb MF0gPSB2YWxbMV0gPSBfX3BtdV9yZWFkX3NpbmdsZShmZFswXSwgJnRzWzBdKTsKIAlzbGVwdFsx XSA9IG1lYXN1cmVkX3VzbGVlcChiYXRjaF9kdXJhdGlvbl9ucyAvIDEwMDApOwpAQCAtMTMwMSw3 ICsxMzEyLDcgQEAgdGVzdF9mcmVxdWVuY3koaW50IGdlbV9mZCkKIAlpZ3RfcmVxdWlyZShpZ3Rf c3lzZnNfZ2V0X3UzMihzeXNmcywgImd0X2Jvb3N0X2ZyZXFfbWh6IikgPT0gbWluX2ZyZXEpOwog CiAJZ2VtX3F1aWVzY2VudF9ncHUoZ2VtX2ZkKTsgLyogSWRsZSB0byBiZSBzdXJlIHRoZSBjaGFu Z2UgdGFrZXMgZWZmZWN0ICovCi0Jc3BpbiA9IHNwaW5fc3luYyhnZW1fZmQsIDAsIEk5MTVfRVhF Q19SRU5ERVIpOworCXNwaW4gPSBzcGluX3N5bmNfZmxhZ3MoZ2VtX2ZkLCAwLCBJOTE1X0VYRUNf UkVOREVSKTsKIAogCXNsZXB0ID0gcG11X3JlYWRfbXVsdGkoZmQsIDIsIHN0YXJ0KTsKIAltZWFz dXJlZF91c2xlZXAoYmF0Y2hfZHVyYXRpb25fbnMgLyAxMDAwKTsKQEAgLTEzMjcsNyArMTMzOCw3 IEBAIHRlc3RfZnJlcXVlbmN5KGludCBnZW1fZmQpCiAJaWd0X3JlcXVpcmUoaWd0X3N5c2ZzX2dl dF91MzIoc3lzZnMsICJndF9taW5fZnJlcV9taHoiKSA9PSBtYXhfZnJlcSk7CiAKIAlnZW1fcXVp ZXNjZW50X2dwdShnZW1fZmQpOwotCXNwaW4gPSBzcGluX3N5bmMoZ2VtX2ZkLCAwLCBJOTE1X0VY RUNfUkVOREVSKTsKKwlzcGluID0gc3Bpbl9zeW5jX2ZsYWdzKGdlbV9mZCwgMCwgSTkxNV9FWEVD X1JFTkRFUik7CiAKIAlzbGVwdCA9IHBtdV9yZWFkX211bHRpKGZkLCAyLCBzdGFydCk7CiAJbWVh c3VyZWRfdXNsZWVwKGJhdGNoX2R1cmF0aW9uX25zIC8gMTAwMCk7CkBAIC0xNDU4LDE0ICsxNDY5 LDE0IEBAIHRlc3RfZW5hYmxlX3JhY2UoaW50IGdlbV9mZCwgY29uc3Qgc3RydWN0IGludGVsX2V4 ZWN1dGlvbl9lbmdpbmUyICplKQogCWludCBmZDsKIAogCWlndF9yZXF1aXJlKGdlbV9oYXNfZXhl Y2xpc3RzKGdlbV9mZCkpOwotCWlndF9yZXF1aXJlKGdlbV9oYXNfZW5naW5lKGdlbV9mZCwgZS0+ Y2xhc3MsIGUtPmluc3RhbmNlKSk7CisJaWd0X3JlcXVpcmUoZ2VtX2NvbnRleHRfaGFzX2VuZ2lu ZShnZW1fZmQsIDAsIGUtPmZsYWdzKSk7CiAKIAlvYmouaGFuZGxlID0gZ2VtX2NyZWF0ZShnZW1f ZmQsIDQwOTYpOwogCWdlbV93cml0ZShnZW1fZmQsIG9iai5oYW5kbGUsIDAsICZiYmVuZCwgc2l6 ZW9mKGJiZW5kKSk7CiAKIAllYi5idWZmZXJfY291bnQgPSAxOwogCWViLmJ1ZmZlcnNfcHRyID0g dG9fdXNlcl9wb2ludGVyKCZvYmopOwotCWViLmZsYWdzID0gZTJyaW5nKGdlbV9mZCwgZSk7CisJ ZWIuZmxhZ3MgPSBlLT5mbGFnczsKIAogCS8qCiAJICogVGhpcyB0ZXN0IGlzIHByb2JhYmlsaXN0 aWMgc28gcnVuIGluIGEgZmV3IHRpbWVzIHRvIGluY3JlYXNlIHRoZQpAQCAtMTU2Miw3ICsxNTcz LDcgQEAgYWNjdXJhY3koaW50IGdlbV9mZCwgY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9l bmdpbmUyICplLAogCQlpZ3Rfc3Bpbl90ICpzcGluOwogCiAJCS8qIEFsbG9jYXRlIG91ciBzcGlu IGJhdGNoIGFuZCBpZGxlIGl0LiAqLwotCQlzcGluID0gaWd0X3NwaW5fbmV3KGdlbV9mZCwgLmVu Z2luZSA9IGUycmluZyhnZW1fZmQsIGUpKTsKKwkJc3BpbiA9IGlndF9zcGluX25ldyhnZW1fZmQs IC5lbmdpbmUgPSBlLT5mbGFncyk7CiAJCWlndF9zcGluX2VuZChzcGluKTsKIAkJZ2VtX3N5bmMo Z2VtX2ZkLCBzcGluLT5oYW5kbGUpOwogCkBAIC0xNjY2LDcgKzE2NzcsNyBAQCBpZ3RfbWFpbgog CQkJCUk5MTVfUE1VX0xBU1QgLSBfX0k5MTVfUE1VX09USEVSKDApICsgMTsKIAl1bnNpZ25lZCBp bnQgbnVtX2VuZ2luZXMgPSAwOwogCWludCBmZCA9IC0xOwotCWNvbnN0IHN0cnVjdCBpbnRlbF9l eGVjdXRpb25fZW5naW5lMiAqZTsKKwlzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmU7 CiAJdW5zaWduZWQgaW50IGk7CiAKIAlpZ3RfZml4dHVyZSB7CkBAIC0xNjc1LDcgKzE2ODYsNyBA QCBpZ3RfbWFpbgogCQlpZ3RfcmVxdWlyZV9nZW0oZmQpOwogCQlpZ3RfcmVxdWlyZShpOTE1X3R5 cGVfaWQoKSA+IDApOwogCi0JCWZvcl9lYWNoX2VuZ2luZV9jbGFzc19pbnN0YW5jZShmZCwgZSkK KwkJX19mb3JfZWFjaF9waHlzaWNhbF9lbmdpbmUoZmQsIGUpCiAJCQludW1fZW5naW5lcysrOwog CX0KIApAQCAtMTY4NSw3ICsxNjk2LDcgQEAgaWd0X21haW4KIAlpZ3Rfc3VidGVzdCgiaW52YWxp ZC1pbml0IikKIAkJaW52YWxpZF9pbml0KCk7CiAKLQlfX2Zvcl9lYWNoX2VuZ2luZV9jbGFzc19p bnN0YW5jZShlKSB7CisJX19mb3JfZWFjaF9waHlzaWNhbF9lbmdpbmUoZmQsIGUpIHsKIAkJY29u c3QgdW5zaWduZWQgaW50IHBjdFtdID0geyAyLCA1MCwgOTggfTsKIAogCQkvKioKQEAgLTE3MDMs NyArMTcxNCw3IEBAIGlndF9tYWluCiAKIAkJaWd0X3N1YnRlc3RfZ3JvdXAgewogCQkJaWd0X2Zp eHR1cmUgewotCQkJCWdlbV9yZXF1aXJlX2VuZ2luZShmZCwgZS0+Y2xhc3MsIGUtPmluc3RhbmNl KTsKKwkJCQlnZW1fY29udGV4dF9oYXNfZW5naW5lKGZkLCAwLCBlLT5mbGFncyk7CiAJCQl9CiAK IAkJCS8qKgpAQCAtMTg4OSwxMiArMTkwMCwxMSBAQCBpZ3RfbWFpbgogCQkJZ2VtX3F1aWVzY2Vu dF9ncHUoZmQpOwogCQl9CiAKLQkJX19mb3JfZWFjaF9lbmdpbmVfY2xhc3NfaW5zdGFuY2UoZSkg eworCQlfX2Zvcl9lYWNoX3BoeXNpY2FsX2VuZ2luZShyZW5kZXJfZmQsIGUpIHsKIAkJCWlndF9z dWJ0ZXN0X2dyb3VwIHsKIAkJCQlpZ3RfZml4dHVyZSB7Ci0JCQkJCWdlbV9yZXF1aXJlX2VuZ2lu ZShyZW5kZXJfZmQsCi0JCQkJCQkJICAgZS0+Y2xhc3MsCi0JCQkJCQkJICAgZS0+aW5zdGFuY2Up OworCQkJCQlnZW1fY29udGV4dF9oYXNfZW5naW5lKHJlbmRlcl9mZCwKKwkJCQkJCQkgICAwLCBl LT5mbGFncyk7CiAJCQkJfQogCiAJCQkJaWd0X3N1YnRlc3RfZigicmVuZGVyLW5vZGUtYnVzeS0l cyIsIGUtPm5hbWUpCi0tIAoyLjIwLjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v aWd0LWRldg==