From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Tvrtko Ursulin Date: Wed, 22 May 2019 14:50:56 +0100 Message-Id: <20190522135104.26930-7-tvrtko.ursulin@linux.intel.com> In-Reply-To: <20190522135104.26930-1-tvrtko.ursulin@linux.intel.com> References: <20190522135104.26930-1-tvrtko.ursulin@linux.intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [CI i-g-t 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: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: igt-dev@lists.freedesktop.org Cc: Intel-gfx@lists.freedesktop.org List-ID: RnJvbTogQW5kaSBTaHl0aSA8YW5kaS5zaHl0aUBpbnRlbC5jb20+CgpSZXBsYWNlIHRoZSBsZWdh Y3kgZm9yX2VhY2hfZW5naW5lKiBkZWZpbmVzIHdpdGggdGhlIG9uZXMKaW1wbGVtZW50ZWQgaW4g dGhlIGdlbV9lbmdpbmVfdG9wb2xvZ3kgbGlicmFyeS4KClVzZSB3aGVuZXZlciBwb3NzaWJsZSBn ZW1fZW5naW5lX2Nhbl9zdG9yZV9kd29yZCgpIHRoYXQgY2hlY2tzCmNsYXNzIGluc3RlYWQgb2Yg ZmxhZ3MuCgpOb3cgdGhlIF9fZm9yX2VhY2hfZW5naW5lX2NsYXNzX2luc3RhbmNlIGFuZApmb3Jf ZWFjaF9lbmdpbmVfY2xhc3NfaW5zdGFuY2UgYXJlIHVudXNlZCwgcmVtb3ZlIHRoZW0uCgpTdWdn ZXN0ZWQtYnk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+ClNpZ25l ZC1vZmYtYnk6IEFuZGkgU2h5dGkgPGFuZGkuc2h5dGlAaW50ZWwuY29tPgpDYzogVHZydGtvIFVy c3VsaW4gPHR2cnRrby51cnN1bGluQGxpbnV4LmludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IFR2cnRr byBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Ci0tLQogbGliL2lndF9ndC5oICAg ICB8ICAgNyAtLS0KIHRlc3RzL3BlcmZfcG11LmMgfCAxMTAgKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgNjAgaW5zZXJ0aW9u cygrKSwgNTcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliL2lndF9ndC5oIGIvbGliL2ln dF9ndC5oCmluZGV4IDBiNWM3ZmNiNGMzYy4uNzczMThlMmE4MmI4IDEwMDY0NAotLS0gYS9saWIv aWd0X2d0LmgKKysrIGIvbGliL2lndF9ndC5oCkBAIC0xMTksMTEgKzExOSw0IEBAIHZvaWQgZ2Vt X3JlcXVpcmVfZW5naW5lKGludCBnZW1fZmQsCiAJaWd0X3JlcXVpcmUoZ2VtX2hhc19lbmdpbmUo Z2VtX2ZkLCBjbGFzcywgaW5zdGFuY2UpKTsKIH0KIAotI2RlZmluZSBfX2Zvcl9lYWNoX2VuZ2lu ZV9jbGFzc19pbnN0YW5jZShlX18pIFwKLQlmb3IgKChlX18pID0gaW50ZWxfZXhlY3V0aW9uX2Vu Z2luZXMyOyAoZV9fKS0+bmFtZTsgKGVfXykrKykKLQotI2RlZmluZSBmb3JfZWFjaF9lbmdpbmVf Y2xhc3NfaW5zdGFuY2UoZmRfXywgZV9fKSBcCi0JZm9yICgoZV9fKSA9IGludGVsX2V4ZWN1dGlv bl9lbmdpbmVzMjsgKGVfXyktPm5hbWU7IChlX18pKyspIFwKLQkJZm9yX2lmIChnZW1faGFzX2Vu Z2luZSgoZmRfXyksIChlX18pLT5jbGFzcywgKGVfXyktPmluc3RhbmNlKSkKLQogI2VuZGlmIC8q IElHVF9HVF9IICovCmRpZmYgLS1naXQgYS90ZXN0cy9wZXJmX3BtdS5jIGIvdGVzdHMvcGVyZl9w bXUuYwppbmRleCBlNzE5YTI5MmEzZDEuLjcyYjkxNjZhZmI0YyAxMDA2NDQKLS0tIGEvdGVzdHMv cGVyZl9wbXUuYworKysgYi90ZXN0cy9wZXJmX3BtdS5jCkBAIC04Miw3ICs4Miw3IEBAIGluaXQo aW50IGdlbV9mZCwgY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplLCB1aW50 OF90IHNhbXBsZSkKIAlpZiAoZmQgPCAwKQogCQllcnIgPSBlcnJubzsKIAotCWV4aXN0cyA9IGdl bV9oYXNfZW5naW5lKGdlbV9mZCwgZS0+Y2xhc3MsIGUtPmluc3RhbmNlKTsKKwlleGlzdHMgPSBn ZW1fY29udGV4dF9oYXNfZW5naW5lKGdlbV9mZCwgMCwgZS0+ZmxhZ3MpOwogCWlmIChpbnRlbF9n ZW4oaW50ZWxfZ2V0X2RybV9kZXZpZChnZW1fZmQpKSA8IDYgJiYKIAkgICAgc2FtcGxlID09IEk5 MTVfU0FNUExFX1NFTUEpCiAJCWV4aXN0cyA9IGZhbHNlOwpAQCAtMTU4LDExICsxNTgsNiBAQCBz dGF0aWMgdW5zaWduZWQgaW50IG1lYXN1cmVkX3VzbGVlcCh1bnNpZ25lZCBpbnQgdXNlYykKIAly ZXR1cm4gaWd0X25zZWNfZWxhcHNlZCgmdHMpOwogfQogCi1zdGF0aWMgdW5zaWduZWQgaW50IGUy cmluZyhpbnQgZ2VtX2ZkLCBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUp Ci17Ci0JcmV0dXJuIGdlbV9jbGFzc19pbnN0YW5jZV90b19lYl9mbGFncyhnZW1fZmQsIGUtPmNs YXNzLCBlLT5pbnN0YW5jZSk7Ci19Ci0KICNkZWZpbmUgVEVTVF9CVVNZICgxKQogI2RlZmluZSBG TEFHX1NZTkMgKDIpCiAjZGVmaW5lIFRFU1RfVFJBSUxJTkdfSURMRSAoNCkKQEAgLTE3MCwxNCAr MTY1LDE1IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgZTJyaW5nKGludCBnZW1fZmQsIGNvbnN0IHN0 cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAqZSkKICNkZWZpbmUgRkxBR19MT05HICgxNikK ICNkZWZpbmUgRkxBR19IQU5HICgzMikKIAotc3RhdGljIGlndF9zcGluX3QgKiBfX3NwaW5fcG9s bChpbnQgZmQsIHVpbnQzMl90IGN0eCwgdW5zaWduZWQgbG9uZyBmbGFncykKK3N0YXRpYyBpZ3Rf c3Bpbl90ICogX19zcGluX3BvbGwoaW50IGZkLCB1aW50MzJfdCBjdHgsCisJCQkJY29uc3Qgc3Ry dWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplKQogewogCXN0cnVjdCBpZ3Rfc3Bpbl9mYWN0 b3J5IG9wdHMgPSB7CiAJCS5jdHggPSBjdHgsCi0JCS5lbmdpbmUgPSBmbGFncywKKwkJLmVuZ2lu ZSA9IGUtPmZsYWdzLAogCX07CiAKLQlpZiAoZ2VtX2Nhbl9zdG9yZV9kd29yZChmZCwgZmxhZ3Mp KQorCWlmIChnZW1fY2xhc3NfY2FuX3N0b3JlX2R3b3JkKGZkLCBlLT5jbGFzcykpCiAJCW9wdHMu ZmxhZ3MgfD0gSUdUX1NQSU5fUE9MTF9SVU47CiAKIAlyZXR1cm4gX19pZ3Rfc3Bpbl9mYWN0b3J5 KGZkLCAmb3B0cyk7CkBAIC0yMDksMjAgKzIwNSwzNCBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBf X3NwaW5fd2FpdChpbnQgZmQsIGlndF9zcGluX3QgKnNwaW4pCiAJcmV0dXJuIGlndF9uc2VjX2Vs YXBzZWQoJnN0YXJ0KTsKIH0KIAotc3RhdGljIGlndF9zcGluX3QgKiBfX3NwaW5fc3luYyhpbnQg ZmQsIHVpbnQzMl90IGN0eCwgdW5zaWduZWQgbG9uZyBmbGFncykKK3N0YXRpYyBpZ3Rfc3Bpbl90 ICogX19zcGluX3N5bmMoaW50IGZkLCB1aW50MzJfdCBjdHgsCisJCQkJY29uc3Qgc3RydWN0IGlu dGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplKQogewotCWlndF9zcGluX3QgKnNwaW4gPSBfX3NwaW5f cG9sbChmZCwgY3R4LCBmbGFncyk7CisJaWd0X3NwaW5fdCAqc3BpbiA9IF9fc3Bpbl9wb2xsKGZk LCBjdHgsIGUpOwogCiAJX19zcGluX3dhaXQoZmQsIHNwaW4pOwogCiAJcmV0dXJuIHNwaW47CiB9 CiAKLXN0YXRpYyBpZ3Rfc3Bpbl90ICogc3Bpbl9zeW5jKGludCBmZCwgdWludDMyX3QgY3R4LCB1 bnNpZ25lZCBsb25nIGZsYWdzKQorc3RhdGljIGlndF9zcGluX3QgKiBzcGluX3N5bmMoaW50IGZk LCB1aW50MzJfdCBjdHgsCisJCQkgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2Vu Z2luZTIgKmUpCiB7CiAJaWd0X3JlcXVpcmVfZ2VtKGZkKTsKIAotCXJldHVybiBfX3NwaW5fc3lu YyhmZCwgY3R4LCBmbGFncyk7CisJcmV0dXJuIF9fc3Bpbl9zeW5jKGZkLCBjdHgsIGUpOworfQor CitzdGF0aWMgaWd0X3NwaW5fdCAqIHNwaW5fc3luY19mbGFncyhpbnQgZmQsIHVpbnQzMl90IGN0 eCwgdW5zaWduZWQgaW50IGZsYWdzKQoreworCXN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5l MiBlID0geyB9OworCisJZS5jbGFzcyA9IGdlbV9leGVjYnVmX2ZsYWdzX3RvX2VuZ2luZV9jbGFz cyhmbGFncyk7CisJZS5pbnN0YW5jZSA9IChmbGFncyAmIChJOTE1X0VYRUNfQlNEX01BU0sgfCBJ OTE1X0VYRUNfUklOR19NQVNLKSkgPT0KKwkJICAgICAoSTkxNV9FWEVDX0JTRCB8IEk5MTVfRVhF Q19CU0RfUklORzIpID8gMSA6IDA7CisJZS5mbGFncyA9IGZsYWdzOworCisJcmV0dXJuIHNwaW5f c3luYyhmZCwgY3R4LCAmZSk7CiB9CiAKIHN0YXRpYyB2b2lkIGVuZF9zcGluKGludCBmZCwgaWd0 X3NwaW5fdCAqc3BpbiwgdW5zaWduZWQgaW50IGZsYWdzKQpAQCAtMjY3LDcgKzI3Nyw3IEBAIHNp bmdsZShpbnQgZ2VtX2ZkLCBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUs IHVuc2lnbmVkIGludCBmbGFncykKIAlmZCA9IG9wZW5fcG11KEk5MTVfUE1VX0VOR0lORV9CVVNZ KGUtPmNsYXNzLCBlLT5pbnN0YW5jZSkpOwogCiAJaWYgKGZsYWdzICYgVEVTVF9CVVNZKQotCQlz cGluID0gc3Bpbl9zeW5jKGdlbV9mZCwgMCwgZTJyaW5nKGdlbV9mZCwgZSkpOworCQlzcGluID0g c3Bpbl9zeW5jKGdlbV9mZCwgMCwgZSk7CiAJZWxzZQogCQlzcGluID0gTlVMTDsKIApAQCAtMzE2 LDcgKzMyNiw3IEBAIGJ1c3lfc3RhcnQoaW50IGdlbV9mZCwgY29uc3Qgc3RydWN0IGludGVsX2V4 ZWN1dGlvbl9lbmdpbmUyICplKQogCSAqLwogCXNsZWVwKDIpOwogCi0Jc3BpbiA9IF9fc3Bpbl9z eW5jKGdlbV9mZCwgMCwgZTJyaW5nKGdlbV9mZCwgZSkpOworCXNwaW4gPSBfX3NwaW5fc3luYyhn ZW1fZmQsIDAsIGUpOwogCiAJZmQgPSBvcGVuX3BtdShJOTE1X1BNVV9FTkdJTkVfQlVTWShlLT5j bGFzcywgZS0+aW5zdGFuY2UpKTsKIApAQCAtMzQ3LDYgKzM1Nyw3IEBAIGJ1c3lfZG91YmxlX3N0 YXJ0KGludCBnZW1fZmQsIGNvbnN0IHN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAqZSkK IAlpbnQgZmQ7CiAKIAljdHggPSBnZW1fY29udGV4dF9jcmVhdGUoZ2VtX2ZkKTsKKwlnZW1fY29u dGV4dF9zZXRfYWxsX2VuZ2luZXMoZ2VtX2ZkLCBjdHgpOwogCiAJLyoKIAkgKiBEZWZlYXQgdGhl IGJ1c3kgc3RhdHMgZGVsYXllZCBkaXNhYmxlLCB3ZSBuZWVkIHRvIGd1YXJhbnRlZSB3ZSBhcmUK QEAgLTM1OSwxMSArMzcwLDExIEBAIGJ1c3lfZG91YmxlX3N0YXJ0KGludCBnZW1fZmQsIGNvbnN0 IHN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAqZSkKIAkgKiByZS1zdWJtaXNzaW9uIGlu IGV4ZWNsaXN0cyBtb2RlLiBNYWtlIHN1cmUgYnVzeW5lc3MgaXMgY29ycmVjdGx5CiAJICogcmVw b3J0ZWQgd2l0aCB0aGUgZW5naW5lIGJ1c3ksIGFuZCBhZnRlciB0aGUgZW5naW5lIHdlbnQgaWRs ZS4KIAkgKi8KLQlzcGluWzBdID0gX19zcGluX3N5bmMoZ2VtX2ZkLCAwLCBlMnJpbmcoZ2VtX2Zk LCBlKSk7CisJc3BpblswXSA9IF9fc3Bpbl9zeW5jKGdlbV9mZCwgMCwgZSk7CiAJdXNsZWVwKDUw MGUzKTsKIAlzcGluWzFdID0gX19pZ3Rfc3Bpbl9uZXcoZ2VtX2ZkLAogCQkJCSAuY3R4ID0gY3R4 LAotCQkJCSAuZW5naW5lID0gZTJyaW5nKGdlbV9mZCwgZSkpOworCQkJCSAuZW5naW5lID0gZS0+ ZmxhZ3MpOwogCiAJLyoKIAkgKiBPcGVuIFBNVSBhcyBmYXN0IGFzIHBvc3NpYmxlIGFmdGVyIHRo ZSBzZWNvbmQgc3BpbiBiYXRjaCBpbiBhdHRlbXB0CkBAIC00MjQsNyArNDM1LDcgQEAgc3RhdGlj IHZvaWQKIGJ1c3lfY2hlY2tfYWxsKGludCBnZW1fZmQsIGNvbnN0IHN0cnVjdCBpbnRlbF9leGVj dXRpb25fZW5naW5lMiAqZSwKIAkgICAgICAgY29uc3QgdW5zaWduZWQgaW50IG51bV9lbmdpbmVz LCB1bnNpZ25lZCBpbnQgZmxhZ3MpCiB7Ci0JY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9l bmdpbmUyICplXzsKKwlzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmVfOwogCXVpbnQ2 NF90IHR2YWxbMl1bbnVtX2VuZ2luZXNdOwogCXVuc2lnbmVkIGludCBidXN5X2lkeCA9IDAsIGk7 CiAJdWludDY0X3QgdmFsW251bV9lbmdpbmVzXTsKQEAgLTQzNCw4ICs0NDUsOCBAQCBidXN5X2No ZWNrX2FsbChpbnQgZ2VtX2ZkLCBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIg KmUsCiAKIAlpID0gMDsKIAlmZFswXSA9IC0xOwotCWZvcl9lYWNoX2VuZ2luZV9jbGFzc19pbnN0 YW5jZShnZW1fZmQsIGVfKSB7Ci0JCWlmIChlID09IGVfKQorCV9fZm9yX2VhY2hfcGh5c2ljYWxf ZW5naW5lKGdlbV9mZCwgZV8pIHsKKwkJaWYgKGUtPmNsYXNzID09IGVfLT5jbGFzcyAmJiBlLT5p bnN0YW5jZSA9PSBlXy0+aW5zdGFuY2UpCiAJCQlidXN5X2lkeCA9IGk7CiAKIAkJZmRbaSsrXSA9 IG9wZW5fZ3JvdXAoSTkxNV9QTVVfRU5HSU5FX0JVU1koZV8tPmNsYXNzLApAQCAtNDQ1LDcgKzQ1 Niw3IEBAIGJ1c3lfY2hlY2tfYWxsKGludCBnZW1fZmQsIGNvbnN0IHN0cnVjdCBpbnRlbF9leGVj dXRpb25fZW5naW5lMiAqZSwKIAogCWlndF9hc3NlcnRfZXEoaSwgbnVtX2VuZ2luZXMpOwogCi0J c3BpbiA9IHNwaW5fc3luYyhnZW1fZmQsIDAsIGUycmluZyhnZW1fZmQsIGUpKTsKKwlzcGluID0g c3Bpbl9zeW5jKGdlbV9mZCwgMCwgZSk7CiAJcG11X3JlYWRfbXVsdGkoZmRbMF0sIG51bV9lbmdp bmVzLCB0dmFsWzBdKTsKIAlzbGVwdCA9IG1lYXN1cmVkX3VzbGVlcChiYXRjaF9kdXJhdGlvbl9u cyAvIDEwMDApOwogCWlmIChmbGFncyAmIFRFU1RfVFJBSUxJTkdfSURMRSkKQEAgLTQ3OCw3ICs0 ODksNyBAQCBfX3N1Ym1pdF9zcGluKGludCBnZW1fZmQsIGlndF9zcGluX3QgKnNwaW4sCiAJc3Ry dWN0IGRybV9pOTE1X2dlbV9leGVjYnVmZmVyMiBlYiA9IHNwaW4tPmV4ZWNidWY7CiAKIAllYi5m bGFncyAmPSB+KDB4M2YgfCBJOTE1X0VYRUNfQlNEX01BU0spOwotCWViLmZsYWdzIHw9IGUycmlu ZyhnZW1fZmQsIGUpIHwgSTkxNV9FWEVDX05PX1JFTE9DOworCWViLmZsYWdzIHw9IGUtPmZsYWdz IHwgSTkxNV9FWEVDX05PX1JFTE9DOwogCWViLmJhdGNoX3N0YXJ0X29mZnNldCArPSBvZmZzZXQ7 CiAKIAlnZW1fZXhlY2J1ZihnZW1fZmQsICZlYik7CkBAIC00ODgsNyArNDk5LDcgQEAgc3RhdGlj IHZvaWQKIG1vc3RfYnVzeV9jaGVja19hbGwoaW50IGdlbV9mZCwgY29uc3Qgc3RydWN0IGludGVs X2V4ZWN1dGlvbl9lbmdpbmUyICplLAogCQkgICAgY29uc3QgdW5zaWduZWQgaW50IG51bV9lbmdp bmVzLCB1bnNpZ25lZCBpbnQgZmxhZ3MpCiB7Ci0JY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlv bl9lbmdpbmUyICplXzsKKwlzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmVfOwogCXVp bnQ2NF90IHR2YWxbMl1bbnVtX2VuZ2luZXNdOwogCXVpbnQ2NF90IHZhbFtudW1fZW5naW5lc107 CiAJaW50IGZkW251bV9lbmdpbmVzXTsKQEAgLTQ5NywxMyArNTA4LDEzIEBAIG1vc3RfYnVzeV9j aGVja19hbGwoaW50IGdlbV9mZCwgY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUy ICplLAogCXVuc2lnbmVkIGludCBpZGxlX2lkeCwgaTsKIAogCWkgPSAwOwotCWZvcl9lYWNoX2Vu Z2luZV9jbGFzc19pbnN0YW5jZShnZW1fZmQsIGVfKSB7Ci0JCWlmIChlID09IGVfKQorCV9fZm9y X2VhY2hfcGh5c2ljYWxfZW5naW5lKGdlbV9mZCwgZV8pIHsKKwkJaWYgKGUtPmNsYXNzID09IGVf LT5jbGFzcyAmJiBlLT5pbnN0YW5jZSA9PSBlXy0+aW5zdGFuY2UpCiAJCQlpZGxlX2lkeCA9IGk7 CiAJCWVsc2UgaWYgKHNwaW4pCiAJCQlfX3N1Ym1pdF9zcGluKGdlbV9mZCwgc3BpbiwgZV8sIDY0 KTsKIAkJZWxzZQotCQkJc3BpbiA9IF9fc3Bpbl9wb2xsKGdlbV9mZCwgMCwgZTJyaW5nKGdlbV9m ZCwgZV8pKTsKKwkJCXNwaW4gPSBfX3NwaW5fcG9sbChnZW1fZmQsIDAsIGVfKTsKIAogCQl2YWxb aSsrXSA9IEk5MTVfUE1VX0VOR0lORV9CVVNZKGVfLT5jbGFzcywgZV8tPmluc3RhbmNlKTsKIAl9 CkBAIC01NDUsNyArNTU2LDcgQEAgc3RhdGljIHZvaWQKIGFsbF9idXN5X2NoZWNrX2FsbChpbnQg Z2VtX2ZkLCBjb25zdCB1bnNpZ25lZCBpbnQgbnVtX2VuZ2luZXMsCiAJCSAgIHVuc2lnbmVkIGlu dCBmbGFncykKIHsKLQljb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmU7CisJ c3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplOwogCXVpbnQ2NF90IHR2YWxbMl1bbnVt X2VuZ2luZXNdOwogCXVpbnQ2NF90IHZhbFtudW1fZW5naW5lc107CiAJaW50IGZkW251bV9lbmdp bmVzXTsKQEAgLTU1NCwxMSArNTY1LDExIEBAIGFsbF9idXN5X2NoZWNrX2FsbChpbnQgZ2VtX2Zk LCBjb25zdCB1bnNpZ25lZCBpbnQgbnVtX2VuZ2luZXMsCiAJdW5zaWduZWQgaW50IGk7CiAKIAlp ID0gMDsKLQlmb3JfZWFjaF9lbmdpbmVfY2xhc3NfaW5zdGFuY2UoZ2VtX2ZkLCBlKSB7CisJX19m b3JfZWFjaF9waHlzaWNhbF9lbmdpbmUoZ2VtX2ZkLCBlKSB7CiAJCWlmIChzcGluKQogCQkJX19z dWJtaXRfc3BpbihnZW1fZmQsIHNwaW4sIGUsIDY0KTsKIAkJZWxzZQotCQkJc3BpbiA9IF9fc3Bp bl9wb2xsKGdlbV9mZCwgMCwgZTJyaW5nKGdlbV9mZCwgZSkpOworCQkJc3BpbiA9IF9fc3Bpbl9w b2xsKGdlbV9mZCwgMCwgZSk7CiAKIAkJdmFsW2krK10gPSBJOTE1X1BNVV9FTkdJTkVfQlVTWShl LT5jbGFzcywgZS0+aW5zdGFuY2UpOwogCX0KQEAgLTYwMiw3ICs2MTMsNyBAQCBub19zZW1hKGlu dCBnZW1fZmQsIGNvbnN0IHN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAqZSwgdW5zaWdu ZWQgaW50IGZsYWdzKQogCW9wZW5fZ3JvdXAoSTkxNV9QTVVfRU5HSU5FX1dBSVQoZS0+Y2xhc3Ms IGUtPmluc3RhbmNlKSwgZmQpOwogCiAJaWYgKGZsYWdzICYgVEVTVF9CVVNZKQotCQlzcGluID0g c3Bpbl9zeW5jKGdlbV9mZCwgMCwgZTJyaW5nKGdlbV9mZCwgZSkpOworCQlzcGluID0gc3Bpbl9z eW5jKGdlbV9mZCwgMCwgZSk7CiAJZWxzZQogCQlzcGluID0gTlVMTDsKIApAQCAtNjg5LDcgKzcw MCw3IEBAIHNlbWFfd2FpdChpbnQgZ2VtX2ZkLCBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9u X2VuZ2luZTIgKmUsCiAKIAllYi5idWZmZXJfY291bnQgPSAyOwogCWViLmJ1ZmZlcnNfcHRyID0g dG9fdXNlcl9wb2ludGVyKG9iaik7Ci0JZWIuZmxhZ3MgPSBlMnJpbmcoZ2VtX2ZkLCBlKTsKKwll Yi5mbGFncyA9IGUtPmZsYWdzOwogCiAJLyoqCiAJICogU3RhcnQgdGhlIHNlbWFwaG9yZSB3YWl0 IFBNVSBhbmQgYWZ0ZXIgc29tZSBrbm93biB0aW1lIGxldCB0aGUgYWJvdmUKQEAgLTg0NSw3ICs4 NTYsNyBAQCBldmVudF93YWl0KGludCBnZW1fZmQsIGNvbnN0IHN0cnVjdCBpbnRlbF9leGVjdXRp b25fZW5naW5lMiAqZSkKIAogCWViLmJ1ZmZlcl9jb3VudCA9IDE7CiAJZWIuYnVmZmVyc19wdHIg PSB0b191c2VyX3BvaW50ZXIoJm9iaik7Ci0JZWIuZmxhZ3MgPSBlMnJpbmcoZ2VtX2ZkLCBlKSB8 IEk5MTVfRVhFQ19TRUNVUkU7CisJZWIuZmxhZ3MgPSBlLT5mbGFncyB8IEk5MTVfRVhFQ19TRUNV UkU7CiAKIAlmb3JfZWFjaF9waXBlX3dpdGhfdmFsaWRfb3V0cHV0KCZkYXRhLmRpc3BsYXksIHAs IG91dHB1dCkgewogCQlzdHJ1Y3QgaWd0X2hlbHBlcl9wcm9jZXNzIHdhaXRlciA9IHsgfTsKQEAg LTkzNiw3ICs5NDcsNyBAQCBtdWx0aV9jbGllbnQoaW50IGdlbV9mZCwgY29uc3Qgc3RydWN0IGlu dGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplKQogCSAqLwogCWZkWzFdID0gb3Blbl9wbXUoY29uZmln KTsKIAotCXNwaW4gPSBzcGluX3N5bmMoZ2VtX2ZkLCAwLCBlMnJpbmcoZ2VtX2ZkLCBlKSk7CisJ c3BpbiA9IHNwaW5fc3luYyhnZW1fZmQsIDAsIGUpOwogCiAJdmFsWzBdID0gdmFsWzFdID0gX19w bXVfcmVhZF9zaW5nbGUoZmRbMF0sICZ0c1swXSk7CiAJc2xlcHRbMV0gPSBtZWFzdXJlZF91c2xl ZXAoYmF0Y2hfZHVyYXRpb25fbnMgLyAxMDAwKTsKQEAgLTEwNTIsOCArMTA2Myw4IEBAIHN0YXRp YyB2b2lkIGNwdV9ob3RwbHVnKGludCBnZW1fZmQpCiAJICogQ3JlYXRlIHR3byBzcGlubmVycyBz byB0ZXN0IGNhbiBlbnN1cmUgc2hvcnRlciBnYXBzIGluIGVuZ2luZQogCSAqIGJ1c3luZXNzIGFz IGl0IGlzIHRlcm1pbmF0aW5nIG9uZSBhbmQgcmUtc3RhcnRpbmcgdGhlIG90aGVyLgogCSAqLwot CXNwaW5bMF0gPSBpZ3Rfc3Bpbl9uZXcoZ2VtX2ZkLCAuZW5naW5lID0gSTkxNV9FWEVDX1JFTkRF Uik7Ci0Jc3BpblsxXSA9IF9faWd0X3NwaW5fbmV3KGdlbV9mZCwgLmVuZ2luZSA9IEk5MTVfRVhF Q19SRU5ERVIpOworCXNwaW5bMF0gPSBpZ3Rfc3Bpbl9uZXcoZ2VtX2ZkLCAuZW5naW5lID0gSTkx NV9FWEVDX0RFRkFVTFQpOworCXNwaW5bMV0gPSBfX2lndF9zcGluX25ldyhnZW1fZmQsIC5lbmdp bmUgPSBJOTE1X0VYRUNfREVGQVVMVCk7CiAKIAl2YWwgPSBfX3BtdV9yZWFkX3NpbmdsZShmZCwg JnRzWzBdKTsKIApAQCAtMTEzNyw3ICsxMTQ4LDcgQEAgc3RhdGljIHZvaWQgY3B1X2hvdHBsdWco aW50IGdlbV9mZCkKIAogCQlpZ3Rfc3Bpbl9mcmVlKGdlbV9mZCwgc3BpbltjdXJdKTsKIAkJc3Bp bltjdXJdID0gX19pZ3Rfc3Bpbl9uZXcoZ2VtX2ZkLAotCQkJCQkgICAuZW5naW5lID0gSTkxNV9F WEVDX1JFTkRFUik7CisJCQkJCSAgIC5lbmdpbmUgPSBJOTE1X0VYRUNfREVGQVVMVCk7CiAJCWN1 ciBePSAxOwogCX0KIApAQCAtMTE3NSw3ICsxMTg2LDcgQEAgdGVzdF9pbnRlcnJ1cHRzKGludCBn ZW1fZmQpCiAJLyogUXVldWUgc3Bpbm5pbmcgYmF0Y2hlcy4gKi8KIAlmb3IgKGludCBpID0gMDsg aSA8IHRhcmdldDsgaSsrKSB7CiAJCXNwaW5baV0gPSBfX2lndF9zcGluX25ldyhnZW1fZmQsCi0J CQkJCSAuZW5naW5lID0gSTkxNV9FWEVDX1JFTkRFUiwKKwkJCQkJIC5lbmdpbmUgPSBJOTE1X0VY RUNfREVGQVVMVCwKIAkJCQkJIC5mbGFncyA9IElHVF9TUElOX0ZFTkNFX09VVCk7CiAJCWlmIChp ID09IDApIHsKIAkJCWZlbmNlX2ZkID0gc3BpbltpXS0+b3V0X2ZlbmNlOwpAQCAtMTMwMSw3ICsx MzEyLDcgQEAgdGVzdF9mcmVxdWVuY3koaW50IGdlbV9mZCkKIAlpZ3RfcmVxdWlyZShpZ3Rfc3lz ZnNfZ2V0X3UzMihzeXNmcywgImd0X2Jvb3N0X2ZyZXFfbWh6IikgPT0gbWluX2ZyZXEpOwogCiAJ Z2VtX3F1aWVzY2VudF9ncHUoZ2VtX2ZkKTsgLyogSWRsZSB0byBiZSBzdXJlIHRoZSBjaGFuZ2Ug dGFrZXMgZWZmZWN0ICovCi0Jc3BpbiA9IHNwaW5fc3luYyhnZW1fZmQsIDAsIEk5MTVfRVhFQ19S RU5ERVIpOworCXNwaW4gPSBzcGluX3N5bmNfZmxhZ3MoZ2VtX2ZkLCAwLCBJOTE1X0VYRUNfREVG QVVMVCk7CiAKIAlzbGVwdCA9IHBtdV9yZWFkX211bHRpKGZkLCAyLCBzdGFydCk7CiAJbWVhc3Vy ZWRfdXNsZWVwKGJhdGNoX2R1cmF0aW9uX25zIC8gMTAwMCk7CkBAIC0xMzI3LDcgKzEzMzgsNyBA QCB0ZXN0X2ZyZXF1ZW5jeShpbnQgZ2VtX2ZkKQogCWlndF9yZXF1aXJlKGlndF9zeXNmc19nZXRf dTMyKHN5c2ZzLCAiZ3RfbWluX2ZyZXFfbWh6IikgPT0gbWF4X2ZyZXEpOwogCiAJZ2VtX3F1aWVz Y2VudF9ncHUoZ2VtX2ZkKTsKLQlzcGluID0gc3Bpbl9zeW5jKGdlbV9mZCwgMCwgSTkxNV9FWEVD X1JFTkRFUik7CisJc3BpbiA9IHNwaW5fc3luY19mbGFncyhnZW1fZmQsIDAsIEk5MTVfRVhFQ19E RUZBVUxUKTsKIAogCXNsZXB0ID0gcG11X3JlYWRfbXVsdGkoZmQsIDIsIHN0YXJ0KTsKIAltZWFz dXJlZF91c2xlZXAoYmF0Y2hfZHVyYXRpb25fbnMgLyAxMDAwKTsKQEAgLTE0NTgsMTQgKzE0Njks MTQgQEAgdGVzdF9lbmFibGVfcmFjZShpbnQgZ2VtX2ZkLCBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhl Y3V0aW9uX2VuZ2luZTIgKmUpCiAJaW50IGZkOwogCiAJaWd0X3JlcXVpcmUoZ2VtX2hhc19leGVj bGlzdHMoZ2VtX2ZkKSk7Ci0JaWd0X3JlcXVpcmUoZ2VtX2hhc19lbmdpbmUoZ2VtX2ZkLCBlLT5j bGFzcywgZS0+aW5zdGFuY2UpKTsKKwlpZ3RfcmVxdWlyZShnZW1fY29udGV4dF9oYXNfZW5naW5l KGdlbV9mZCwgMCwgZS0+ZmxhZ3MpKTsKIAogCW9iai5oYW5kbGUgPSBnZW1fY3JlYXRlKGdlbV9m ZCwgNDA5Nik7CiAJZ2VtX3dyaXRlKGdlbV9mZCwgb2JqLmhhbmRsZSwgMCwgJmJiZW5kLCBzaXpl b2YoYmJlbmQpKTsKIAogCWViLmJ1ZmZlcl9jb3VudCA9IDE7CiAJZWIuYnVmZmVyc19wdHIgPSB0 b191c2VyX3BvaW50ZXIoJm9iaik7Ci0JZWIuZmxhZ3MgPSBlMnJpbmcoZ2VtX2ZkLCBlKTsKKwll Yi5mbGFncyA9IGUtPmZsYWdzOwogCiAJLyoKIAkgKiBUaGlzIHRlc3QgaXMgcHJvYmFiaWxpc3Rp YyBzbyBydW4gaW4gYSBmZXcgdGltZXMgdG8gaW5jcmVhc2UgdGhlCkBAIC0xNTYyLDcgKzE1NzMs NyBAQCBhY2N1cmFjeShpbnQgZ2VtX2ZkLCBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2Vu Z2luZTIgKmUsCiAJCWlndF9zcGluX3QgKnNwaW47CiAKIAkJLyogQWxsb2NhdGUgb3VyIHNwaW4g YmF0Y2ggYW5kIGlkbGUgaXQuICovCi0JCXNwaW4gPSBpZ3Rfc3Bpbl9uZXcoZ2VtX2ZkLCAuZW5n aW5lID0gZTJyaW5nKGdlbV9mZCwgZSkpOworCQlzcGluID0gaWd0X3NwaW5fbmV3KGdlbV9mZCwg LmVuZ2luZSA9IGUtPmZsYWdzKTsKIAkJaWd0X3NwaW5fZW5kKHNwaW4pOwogCQlnZW1fc3luYyhn ZW1fZmQsIHNwaW4tPmhhbmRsZSk7CiAKQEAgLTE2NjYsNyArMTY3Nyw3IEBAIGlndF9tYWluCiAJ CQkJSTkxNV9QTVVfTEFTVCAtIF9fSTkxNV9QTVVfT1RIRVIoMCkgKyAxOwogCXVuc2lnbmVkIGlu dCBudW1fZW5naW5lcyA9IDA7CiAJaW50IGZkID0gLTE7Ci0JY29uc3Qgc3RydWN0IGludGVsX2V4 ZWN1dGlvbl9lbmdpbmUyICplOworCXN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAqZTsK IAl1bnNpZ25lZCBpbnQgaTsKIAogCWlndF9maXh0dXJlIHsKQEAgLTE2NzUsNyArMTY4Niw3IEBA IGlndF9tYWluCiAJCWlndF9yZXF1aXJlX2dlbShmZCk7CiAJCWlndF9yZXF1aXJlKGk5MTVfdHlw ZV9pZCgpID4gMCk7CiAKLQkJZm9yX2VhY2hfZW5naW5lX2NsYXNzX2luc3RhbmNlKGZkLCBlKQor CQlfX2Zvcl9lYWNoX3BoeXNpY2FsX2VuZ2luZShmZCwgZSkKIAkJCW51bV9lbmdpbmVzKys7CiAJ fQogCkBAIC0xNjg1LDcgKzE2OTYsNyBAQCBpZ3RfbWFpbgogCWlndF9zdWJ0ZXN0KCJpbnZhbGlk LWluaXQiKQogCQlpbnZhbGlkX2luaXQoKTsKIAotCV9fZm9yX2VhY2hfZW5naW5lX2NsYXNzX2lu c3RhbmNlKGUpIHsKKwlfX2Zvcl9lYWNoX3BoeXNpY2FsX2VuZ2luZShmZCwgZSkgewogCQljb25z dCB1bnNpZ25lZCBpbnQgcGN0W10gPSB7IDIsIDUwLCA5OCB9OwogCiAJCS8qKgpAQCAtMTcwMyw3 ICsxNzE0LDcgQEAgaWd0X21haW4KIAogCQlpZ3Rfc3VidGVzdF9ncm91cCB7CiAJCQlpZ3RfZml4 dHVyZSB7Ci0JCQkJZ2VtX3JlcXVpcmVfZW5naW5lKGZkLCBlLT5jbGFzcywgZS0+aW5zdGFuY2Up OworCQkJCWdlbV9jb250ZXh0X2hhc19lbmdpbmUoZmQsIDAsIGUtPmZsYWdzKTsKIAkJCX0KIAog CQkJLyoqCkBAIC0xODg5LDEyICsxOTAwLDExIEBAIGlndF9tYWluCiAJCQlnZW1fcXVpZXNjZW50 X2dwdShmZCk7CiAJCX0KIAotCQlfX2Zvcl9lYWNoX2VuZ2luZV9jbGFzc19pbnN0YW5jZShlKSB7 CisJCV9fZm9yX2VhY2hfcGh5c2ljYWxfZW5naW5lKHJlbmRlcl9mZCwgZSkgewogCQkJaWd0X3N1 YnRlc3RfZ3JvdXAgewogCQkJCWlndF9maXh0dXJlIHsKLQkJCQkJZ2VtX3JlcXVpcmVfZW5naW5l KHJlbmRlcl9mZCwKLQkJCQkJCQkgICBlLT5jbGFzcywKLQkJCQkJCQkgICBlLT5pbnN0YW5jZSk7 CisJCQkJCWdlbV9jb250ZXh0X2hhc19lbmdpbmUocmVuZGVyX2ZkLAorCQkJCQkJCSAgIDAsIGUt PmZsYWdzKTsKIAkJCQl9CiAKIAkJCQlpZ3Rfc3VidGVzdF9mKCJyZW5kZXItbm9kZS1idXN5LSVz IiwgZS0+bmFtZSkKLS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4