From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 864E96E454 for ; Fri, 16 Aug 2019 14:21:38 +0000 (UTC) From: Oleg Vasilev Date: Fri, 16 Aug 2019 17:21:32 +0300 Message-Id: <20190816142132.20091-2-oleg.vasilev@intel.com> In-Reply-To: <20190816142132.20091-1-oleg.vasilev@intel.com> References: <20190712141618.7110-2-oleg.vasilev@intel.com> <20190816142132.20091-1-oleg.vasilev@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH 2/2] tests/kms_prime: add vendor-agnostic kms prime tests 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@lists.freedesktop.org Cc: Daniel Vetter List-ID: Q3VycmVudGx5LCB0aGVyZSBhcmUgZGlmZmVyZW50IHNldHMgb2YgcHJpbWUgdGVzdHM6CiAtIHZn ZW0gKyBpOTE1CiAtIGFtZGdwdSArIGk5MTUKIC0gbm91dmVhdSArIGk5MTUKClRoZSBpZGVhIGlz IHRvIGNyZWF0ZSBhIHNldCBvZiB0ZXN0cyB3aGljaCBhcmUgZXhwZWN0ZWQgdG8gd29yayBvbiBh bnkKcHJpbWUtY29tcGF0aWJsZSBkcml2ZXIuIEl0IGNhbiBiZSBydW4gd2l0aCBhbnkgY29tYmlu YXRpb24gb2YKZXhwb3J0ZXIgKyBpbXBvcnRlciwgd2hpbGUgdGhvc2UgZGV2aWNlcyBoYXZlIHJl c3BlY3RpdmUgcHJpbWUKY2FwYWJpbGl0aWVzLiBJbiBvcmRlciB0byBiZSB2ZW5kb3ItYWdub3N0 aWMsIHRlc3RzIHNob3VsZCB1c2UgZ2VuZXJpYwpLTVMgQVBJLgoKU2luY2UgdmdlbSBjYW4gYmUg dXNlZCBhcyBib3RoIGV4cG9ydGVyIGFuZCBpbXBvcnRlciwgYW5kIHRoZXJlIGFyZW4ndAphbnkg Z2VuZXJpYyBrbXMgZmVhdHVyZXMgd2hpY2ggdmdlbSBkb2Vzbid0IHN1cHBvcnQsIGl0IGlzIHN1 ZmZpY2llbnQKdG8gdGVzdCB2Z2VtIGFzIGV4cG9ydGVyIHdpdGggYW55IG90aGVyIEtNUyBkcml2 ZXIuCgpUaGUgZmlyc3QgdGVzdCBpcyBzaW1wbGU6CjEuIEV4cG9ydGVyIGNyZWF0ZXMgYSBkdW1i IEZCIGFuZCBmaWxscyBpdCB3aXRoIGEgcGxhaW4gY29sb3IKMi4gRkIgaXMgdHJhbnNmZXJyZWQg dG8gdGhlIGltcG9ydGVyCjMuIEltcG9ydGVyIG1vZGVzZXRzIGFuZCBjb21wdXRlcyBwaXBlIENS Qwo0LiBJbXBvcnRlciBkcmF3cyB0aGUgc2FtZSBjb2xvciB0aHJvdWdoIGNhaXJvIGFuZCBjb21w YXJlcyBDUkMKClRoZSBpbml0aWFsIG1vdGl2YXRpb24gY29tZXMgZnJvbSB0aGUgbmVlZCB0byB0 ZXN0IHByaW1lIHN1cHBvcnQgaW4Kdmttcy4KClYyOgogLSBDaHJpczogcmVuYW1lIHRoZSBmaWxl CiAtIFNpbW9uOiBtZW1vcnkgaHlnaWVuZSwgY29kZXN0eWxlCgpBY2tlZC1ieTogRGFuaWVsIFZl dHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KQ2M6IFJvZHJpZ28gU2lxdWVpcmEgPHJvZHJp Z29zaXF1ZWlyYW1lbG9AZ21haWwuY29tPgpDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsQGZmd2xs LmNoPgpDYzogU2ltb24gU2VyIDxkYW5pZWxAZmZ3bGwuY2g+ClNpZ25lZC1vZmYtYnk6IE9sZWcg VmFzaWxldiA8b2xlZy52YXNpbGV2QGludGVsLmNvbT4KLS0tCiB0ZXN0cy9rbXNfcHJpbWUuYyB8 IDI1NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiB0ZXN0 cy9tZXNvbi5idWlsZCB8ICAgMSArCiAyIGZpbGVzIGNoYW5nZWQsIDI1NSBpbnNlcnRpb25zKCsp CiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMva21zX3ByaW1lLmMKCmRpZmYgLS1naXQgYS90ZXN0 cy9rbXNfcHJpbWUuYyBiL3Rlc3RzL2ttc19wcmltZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwLi4xNzU5OTU3MwotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL2ttc19wcmlt ZS5jCkBAIC0wLDAgKzEsMjU0IEBACisvKgorICogQ29weXJpZ2h0IMKpIDIwMTkgSW50ZWwgQ29y cG9yYXRpb24KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNo YXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJl IGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAq IHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3 aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1l cmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29w aWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisg KiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2lu ZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlz IHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBhcmFncmFwaCkgc2hh bGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0 aGUKKyAqIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMi LCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJ TkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ TElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5H RU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhP TERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJ TElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNF LCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZU V0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCisgKiBJTiBUSEUgU09GVFdBUkUuCisg Ki8KKworI2luY2x1ZGUgImlndC5oIgorI2luY2x1ZGUgImlndF92Z2VtLmgiCisKKyNpbmNsdWRl IDxzeXMvaW9jdGwuaD4KKyNpbmNsdWRlIDxzeXMvcG9sbC5oPgorI2luY2x1ZGUgPHRpbWUuaD4K Kworc3RydWN0IGNyY19pbmZvIHsKKwlpZ3RfY3JjX3QgY3JjOworCWNoYXIgKnN0cjsKKwljb25z dCBjaGFyICpuYW1lOworfTsKKworc3RhdGljIHN0cnVjdCB7CisJZG91YmxlIHIsIGcsIGI7CisJ dWludDMyX3QgY29sb3I7CisJc3RydWN0IGNyY19pbmZvIHByaW1lX2NyYywgZGlyZWN0X2NyYzsK K30gY29sb3JzWzNdID0geworCXsgLnIgPSAwLjAsIC5nID0gMC4wLCAuYiA9IDAuMCwgLmNvbG9y ID0gMHhmZjAwMDAwMCB9LAorCXsgLnIgPSAxLjAsIC5nID0gMS4wLCAuYiA9IDEuMCwgLmNvbG9y ID0gMHhmZmZmZmZmZiB9LAorCXsgLnIgPSAxLjAsIC5nID0gMC4wLCAuYiA9IDAuMCwgLmNvbG9y ID0gMHhmZmZmMDAwMCB9LAorfTsKKworSUdUX1RFU1RfREVTQ1JJUFRJT04oIlByaW1lIHRlc3Rz LCBmb2N1c2luZyBvbiBLTVMgc2lkZSIpOworCitzdGF0aWMgYm9vbCBoYXNfcHJpbWVfaW1wb3J0 KGludCBmZCkKK3sKKwl1aW50NjRfdCB2YWx1ZTsKKworCWlmIChkcm1HZXRDYXAoZmQsIERSTV9D QVBfUFJJTUUsICZ2YWx1ZSkpCisJCXJldHVybiBmYWxzZTsKKworCXJldHVybiB2YWx1ZSAmIERS TV9QUklNRV9DQVBfSU1QT1JUOworfQorCitzdGF0aWMgYm9vbCBoYXNfcHJpbWVfZXhwb3J0KGlu dCBmZCkKK3sKKwl1aW50NjRfdCB2YWx1ZTsKKworCWlmIChkcm1HZXRDYXAoZmQsIERSTV9DQVBf UFJJTUUsICZ2YWx1ZSkpCisJCXJldHVybiBmYWxzZTsKKworCXJldHVybiB2YWx1ZSAmIERSTV9Q UklNRV9DQVBfRVhQT1JUOworfQorCitzdGF0aWMgaWd0X291dHB1dF90ICpzZXR1cF9kaXNwbGF5 KGludCBpbXBvcnRlcl9mZCwgaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSwKKwkJCQkgICBlbnVtIHBp cGUgcGlwZSkKK3sKKwlpZ3RfZGlzcGxheV9yZXF1aXJlKGRpc3BsYXksIGltcG9ydGVyX2ZkKTsK KwlpZ3Rfc2tpcF9vbihwaXBlID49IGRpc3BsYXktPm5fcGlwZXMpOworCWlndF9vdXRwdXRfdCAq b3V0cHV0ID0gaWd0X2dldF9zaW5nbGVfb3V0cHV0X2Zvcl9waXBlKGRpc3BsYXksIHBpcGUpOwor CisJaWd0X3JlcXVpcmVfZihvdXRwdXQsICJObyBjb25uZWN0b3IgZm91bmQgZm9yIHBpcGUgJXNc biIsCisJCSAgICAgIGttc3Rlc3RfcGlwZV9uYW1lKHBpcGUpKTsKKworCWlndF9kaXNwbGF5X3Jl c2V0KGRpc3BsYXkpOworCWlndF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LCBwaXBlKTsKKwlyZXR1 cm4gb3V0cHV0OworfQorCitzdGF0aWMgdm9pZCBwcmVwYXJlX3NjcmF0Y2goaW50IGV4cG9ydGVy X2ZkLCBzdHJ1Y3QgdmdlbV9ibyAqc2NyYXRjaCwKKwkJCSAgICBkcm1Nb2RlTW9kZUluZm8gKm1v ZGUsIHVpbnQzMl90IGNvbG9yKQoreworCXVpbnQzMl90ICpwdHI7CisKKwlzY3JhdGNoLT53aWR0 aCA9IG1vZGUtPmhkaXNwbGF5OworCXNjcmF0Y2gtPmhlaWdodCA9IG1vZGUtPnZkaXNwbGF5Owor CXNjcmF0Y2gtPmJwcCA9IDMyOworCXZnZW1fY3JlYXRlKGV4cG9ydGVyX2ZkLCBzY3JhdGNoKTsK KworCXB0ciA9IHZnZW1fbW1hcChleHBvcnRlcl9mZCwgc2NyYXRjaCwgUFJPVF9XUklURSk7CisJ Zm9yIChzaXplX3QgaWR4ID0gMDsgaWR4IDwgc2NyYXRjaC0+c2l6ZSAvIHNpemVvZigqcHRyKTsg KytpZHgpCisJCXB0cltpZHhdID0gY29sb3I7CisKKwltdW5tYXAocHRyLCBzY3JhdGNoLT5zaXpl KTsKK30KKworc3RhdGljIHZvaWQgcHJlcGFyZV9mYihpbnQgaW1wb3J0ZXJfZmQsIHN0cnVjdCB2 Z2VtX2JvICpzY3JhdGNoLCBzdHJ1Y3QgaWd0X2ZiICpmYikKK3sKKwllbnVtIGlndF9jb2xvcl9l bmNvZGluZyBjb2xvcl9lbmNvZGluZyA9IElHVF9DT0xPUl9ZQ0JDUl9CVDcwOTsKKwllbnVtIGln dF9jb2xvcl9yYW5nZSBjb2xvcl9yYW5nZSA9IElHVF9DT0xPUl9ZQ0JDUl9MSU1JVEVEX1JBTkdF OworCisJaWd0X2luaXRfZmIoZmIsIGltcG9ydGVyX2ZkLCBzY3JhdGNoLT53aWR0aCwgc2NyYXRj aC0+aGVpZ2h0LAorCQkgICAgRFJNX0ZPUk1BVF9YUkdCODg4OCwgTE9DQUxfRFJNX0ZPUk1BVF9N T0RfTk9ORSwKKwkJICAgIGNvbG9yX2VuY29kaW5nLCBjb2xvcl9yYW5nZSk7Cit9CisKK3N0YXRp YyB2b2lkIGltcG9ydF9mYihpbnQgaW1wb3J0ZXJfZmQsIHN0cnVjdCBpZ3RfZmIgKmZiLAorCQkg ICAgICBpbnQgZG1hYnVmX2ZkLCB1aW50MzJfdCBwaXRjaCkKK3sKKwl1aW50MzJfdCBvZmZzZXRz WzRdID0ge30sIHBpdGNoZXNbNF0gPSB7fSwgaGFuZGxlc1s0XSA9IHt9OworCWludCByZXQ7CisK KwlmYi0+Z2VtX2hhbmRsZSA9IHByaW1lX2ZkX3RvX2hhbmRsZShpbXBvcnRlcl9mZCwgZG1hYnVm X2ZkKTsKKworCWhhbmRsZXNbMF0gPSBmYi0+Z2VtX2hhbmRsZTsKKwlwaXRjaGVzWzBdID0gcGl0 Y2g7CisJb2Zmc2V0c1swXSA9IDA7CisKKwlyZXQgPSBkcm1Nb2RlQWRkRkIyKGltcG9ydGVyX2Zk LCBmYi0+d2lkdGgsIGZiLT5oZWlnaHQsCisJCQkgICAgRFJNX0ZPUk1BVF9YUkdCODg4OCwKKwkJ CSAgICBoYW5kbGVzLCBwaXRjaGVzLCBvZmZzZXRzLAorCQkJICAgICZmYi0+ZmJfaWQsIDApOwor CWlndF9hc3NlcnQocmV0ID09IDApOworfQorCitzdGF0aWMgdm9pZCBzZXRfZmIoc3RydWN0IGln dF9mYiAqZmIsCisJCSAgIGlndF9kaXNwbGF5X3QgKmRpc3BsYXksCisJCSAgIGlndF9vdXRwdXRf dCAqb3V0cHV0KQoreworCWlndF9wbGFuZV90ICpwcmltYXJ5OworCWludCByZXQ7CisKKwlwcmlt YXJ5ID0gaWd0X291dHB1dF9nZXRfcGxhbmVfdHlwZShvdXRwdXQsIERSTV9QTEFORV9UWVBFX1BS SU1BUlkpOworCWlndF9hc3NlcnQocHJpbWFyeSk7CisKKwlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1h cnksIGZiKTsKKwlyZXQgPSBpZ3RfZGlzcGxheV9jb21taXQoZGlzcGxheSk7CisKKwlpZ3RfYXNz ZXJ0KHJldCA9PSAwKTsKK30KKworc3RhdGljIHZvaWQgY29sbGVjdF9jcmNfZm9yX2ZiKGludCBp bXBvcnRlcl9mZCwgc3RydWN0IGlndF9mYiAqZmIsIGlndF9kaXNwbGF5X3QgKmRpc3BsYXksCisJ CQkgICAgICAgaWd0X291dHB1dF90ICpvdXRwdXQsIGlndF9waXBlX2NyY190ICpwaXBlX2NyYywK KwkJCSAgICAgICB1aW50MzJfdCBjb2xvciwgc3RydWN0IGNyY19pbmZvICppbmZvKQoreworCXNl dF9mYihmYiwgZGlzcGxheSwgb3V0cHV0KTsKKwlpZ3RfcGlwZV9jcmNfY29sbGVjdF9jcmMocGlw ZV9jcmMsICZpbmZvLT5jcmMpOworCWluZm8tPnN0ciA9IGlndF9jcmNfdG9fc3RyaW5nKCZpbmZv LT5jcmMpOworCWlndF9kZWJ1ZygiQ1JDIHRocm91Z2ggJyVzJyBtZXRob2QgZm9yICUjMDh4IGlz ICVzXG4iLAorCQkgIGluZm8tPm5hbWUsIGNvbG9yLCBpbmZvLT5zdHIpOworCWlndF9yZW1vdmVf ZmIoaW1wb3J0ZXJfZmQsIGZiKTsKK30KKworc3RhdGljIHZvaWQgdGVzdF9jcmMoaW50IGV4cG9y dGVyX2ZkLCBpbnQgaW1wb3J0ZXJfZmQpCit7CisJaWd0X2Rpc3BsYXlfdCBkaXNwbGF5OworCWln dF9vdXRwdXRfdCAqb3V0cHV0OworCWlndF9waXBlX2NyY190ICpwaXBlX2NyYzsKKwllbnVtIHBp cGUgcGlwZSA9IFBJUEVfQTsKKwlzdHJ1Y3QgaWd0X2ZiIGZiOworCWludCBkbWFidWZfZmQ7CisJ c3RydWN0IHZnZW1fYm8gc2NyYXRjaCA9IHt9OyAvKiBkZXNwaXRlIHRoZSBuYW1lLCBpdCBzdWl0 cyBmb3IgYW55CisJCQkJICAgICAgKiBnZW0tY29tcGF0aWJsZSBkZXZpY2UKKwkJCQkgICAgICAq IFRPRE86IHJlbmFtZQorCQkJCSAgICAgICovCisJaW50IGksIGo7CisJZHJtTW9kZU1vZGVJbmZv ICptb2RlOworCisJYm9vbCBjcmNfZXF1YWwgPSBmYWxzZTsKKworCW91dHB1dCA9IHNldHVwX2Rp c3BsYXkoaW1wb3J0ZXJfZmQsICZkaXNwbGF5LCBwaXBlKTsKKworCW1vZGUgPSBpZ3Rfb3V0cHV0 X2dldF9tb2RlKG91dHB1dCk7CisJcGlwZV9jcmMgPSBpZ3RfcGlwZV9jcmNfbmV3KGltcG9ydGVy X2ZkLCBwaXBlLCBJTlRFTF9QSVBFX0NSQ19TT1VSQ0VfQVVUTyk7CisKKwlmb3IgKGkgPSAwOyBp IDwgQVJSQVlfU0laRShjb2xvcnMpOyBpKyspIHsKKwkJcHJlcGFyZV9zY3JhdGNoKGV4cG9ydGVy X2ZkLCAmc2NyYXRjaCwgbW9kZSwgY29sb3JzW2ldLmNvbG9yKTsKKwkJZG1hYnVmX2ZkID0gcHJp bWVfaGFuZGxlX3RvX2ZkKGV4cG9ydGVyX2ZkLCBzY3JhdGNoLmhhbmRsZSk7CisJCWdlbV9jbG9z ZShleHBvcnRlcl9mZCwgc2NyYXRjaC5oYW5kbGUpOworCisJCXByZXBhcmVfZmIoaW1wb3J0ZXJf ZmQsICZzY3JhdGNoLCAmZmIpOworCQlpbXBvcnRfZmIoaW1wb3J0ZXJfZmQsICZmYiwgZG1hYnVm X2ZkLCBzY3JhdGNoLnBpdGNoKTsKKwkJY2xvc2UoZG1hYnVmX2ZkKTsKKworCQljb2xvcnNbaV0u cHJpbWVfY3JjLm5hbWUgPSAicHJpbWUiOworCQljb2xsZWN0X2NyY19mb3JfZmIoaW1wb3J0ZXJf ZmQsICZmYiwgJmRpc3BsYXksIG91dHB1dCwKKwkJCQkgICBwaXBlX2NyYywgY29sb3JzW2ldLmNv bG9yLCAmY29sb3JzW2ldLnByaW1lX2NyYyk7CisKKwkJaWd0X2NyZWF0ZV9jb2xvcl9mYihpbXBv cnRlcl9mZCwKKwkJCQkgICAgbW9kZS0+aGRpc3BsYXksIG1vZGUtPnZkaXNwbGF5LAorCQkJCSAg ICBEUk1fRk9STUFUX1hSR0I4ODg4LCBMT0NBTF9EUk1fRk9STUFUX01PRF9OT05FLAorCQkJCSAg ICBjb2xvcnNbaV0uciwgY29sb3JzW2ldLmcsIGNvbG9yc1tpXS5iLAorCQkJCSAgICAmZmIpOwor CisJCWNvbG9yc1tpXS5kaXJlY3RfY3JjLm5hbWUgPSAiZGlyZWN0IjsKKwkJY29sbGVjdF9jcmNf Zm9yX2ZiKGltcG9ydGVyX2ZkLCAmZmIsICZkaXNwbGF5LCBvdXRwdXQsCisJCQkJICAgcGlwZV9j cmMsIGNvbG9yc1tpXS5jb2xvciwgJmNvbG9yc1tpXS5kaXJlY3RfY3JjKTsKKwl9CisJaWd0X3Bp cGVfY3JjX2ZyZWUocGlwZV9jcmMpOworCisJaWd0X2RlYnVnKCJDUkMgdGFibGU6XG4iKTsKKwlp Z3RfZGVidWcoIkNvbG9yXHRcdFByaW1lXHRcdERpcmVjdFxuIik7CisJZm9yIChpID0gMDsgaSA8 IEFSUkFZX1NJWkUoY29sb3JzKTsgaSsrKSB7CisJCWlndF9kZWJ1ZygiJSMwOHhcdCUuOHNcdCUu OHNcbiIsIGNvbG9yc1tpXS5jb2xvciwKKwkJCSAgY29sb3JzW2ldLnByaW1lX2NyYy5zdHIsIGNv bG9yc1tpXS5kaXJlY3RfY3JjLnN0cik7CisJCWZyZWUoY29sb3JzW2ldLnByaW1lX2NyYy5zdHIp OworCQlmcmVlKGNvbG9yc1tpXS5kaXJlY3RfY3JjLnN0cik7CisJfQorCisJZm9yIChpID0gMDsg aSA8IEFSUkFZX1NJWkUoY29sb3JzKTsgaSsrKSB7CisJCWZvciAoaiA9IDA7IGogPCBBUlJBWV9T SVpFKGNvbG9ycyk7IGorKykgeworCQkJaWYgKGkgPT0gaikgeworCQkJCWlndF9hc3NlcnRfY3Jj X2VxdWFsKCZjb2xvcnNbaV0ucHJpbWVfY3JjLmNyYywKKwkJCQkJCSAgICAgJmNvbG9yc1tqXS5k aXJlY3RfY3JjLmNyYyk7CisJCQkJY29udGludWU7CisJCQl9CisJCQljcmNfZXF1YWwgPSBpZ3Rf Y2hlY2tfY3JjX2VxdWFsKCZjb2xvcnNbaV0ucHJpbWVfY3JjLmNyYywKKwkJCQkJCQkmY29sb3Jz W2pdLmRpcmVjdF9jcmMuY3JjKTsKKwkJCWlndF9hc3NlcnRfZighY3JjX2VxdWFsLCAiQ1JDIHNo b3VsZCBiZSBkaWZmZXJlbnQiKTsKKwkJfQorCX0KKwlpZ3RfZGlzcGxheV9maW5pKCZkaXNwbGF5 KTsKK30KKworc3RhdGljIHZvaWQgcnVuX3Rlc3RfY3JjKGludCBleHBvcnRfY2hpcHNldCwgaW50 IGltcG9ydF9jaGlwc2V0KQoreworCWludCBpbXBvcnRlcl9mZCA9IC0xOworCWludCBleHBvcnRl cl9mZCA9IC0xOworCisJZXhwb3J0ZXJfZmQgPSBkcm1fb3Blbl9kcml2ZXIoZXhwb3J0X2NoaXBz ZXQpOworCWltcG9ydGVyX2ZkID0gZHJtX29wZW5fZHJpdmVyX21hc3RlcihpbXBvcnRfY2hpcHNl dCk7CisKKwlpZ3RfcmVxdWlyZShoYXNfcHJpbWVfZXhwb3J0KGV4cG9ydGVyX2ZkKSk7CisJaWd0 X3JlcXVpcmUoaGFzX3ByaW1lX2ltcG9ydChpbXBvcnRlcl9mZCkpOworCWlndF9yZXF1aXJlX3Bp cGVfY3JjKGltcG9ydGVyX2ZkKTsKKworCXRlc3RfY3JjKGV4cG9ydGVyX2ZkLCBpbXBvcnRlcl9m ZCk7CisJY2xvc2UoaW1wb3J0ZXJfZmQpOworCWNsb3NlKGV4cG9ydGVyX2ZkKTsKK30KKworaWd0 X21haW4KK3sKKwlpZ3RfZml4dHVyZSB7CisJCWttc3Rlc3Rfc2V0X3Z0X2dyYXBoaWNzX21vZGUo KTsKKwl9CisJaWd0X2Rlc2NyaWJlKCJNYWtlIGEgZHVtYiBidWZmZXIgaW5zaWRlIHZnZW0sIGZp bGwgaXQsIGV4cG9ydCB0byBhbm90aGVyIGRldmljZSBhbmQgY29tcGFyZSB0aGUgQ1JDIik7CisJ aWd0X3N1YnRlc3QoImJhc2ljLWNyYyIpCisJCXJ1bl90ZXN0X2NyYyhEUklWRVJfVkdFTSwgRFJJ VkVSX0FOWSk7Cit9CmRpZmYgLS1naXQgYS90ZXN0cy9tZXNvbi5idWlsZCBiL3Rlc3RzL21lc29u LmJ1aWxkCmluZGV4IDM0YTc0MDI1Li4yMDFkNzJlMCAxMDA2NDQKLS0tIGEvdGVzdHMvbWVzb24u YnVpbGQKKysrIGIvdGVzdHMvbWVzb24uYnVpbGQKQEAgLTQ4LDYgKzQ4LDcgQEAgdGVzdF9wcm9n cyA9IFsKIAkna21zX3BsYW5lX2xvd3JlcycsCiAJJ2ttc19wbGFuZV9tdWx0aXBsZScsCiAJJ2tt c19wbGFuZV9zY2FsaW5nJywKKwkna21zX3ByaW1lJywKIAkna21zX3Byb3BfYmxvYicsCiAJJ2tt c19wcm9wZXJ0aWVzJywKIAkna21zX3BzcicsCi0tIAoyLjIyLjAKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1k ZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaWd0LWRldg==