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 5A15B6E91C for ; Fri, 2 Oct 2020 06:55:34 +0000 (UTC) From: Dominik Grzegorzek Date: Fri, 2 Oct 2020 08:54:37 +0200 Message-Id: <20201002065442.30037-11-dominik.grzegorzek@intel.com> In-Reply-To: <20201002065442.30037-1-dominik.grzegorzek@intel.com> References: <20201002065442.30037-1-dominik.grzegorzek@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v3 10/15] i915/gem_set_tiling_vs_blit.c: Remove libdrm dependency 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: Chris Wilson List-ID: VXNlIGludGVsX2JiIC8gaW50ZWxfYnVmIHRvIHJlbW92ZSBsaWJkcm0gZGVwZW5kZW5jeS4gVGhl IHRlc3RzCmhhZCBkZXBlbmRlZCBvbiBidWZmZXIgcmV1c2UgbWVjaGFuaXNtLCBzbyBsb2dpYyB3 YXMgY2hhbmdlZCBhIGJpdC4KClNpZ25lZC1vZmYtYnk6IERvbWluaWsgR3J6ZWdvcnplayA8ZG9t aW5pay5ncnplZ29yemVrQGludGVsLmNvbT4KQ2M6IFpiaWduaWV3IEtlbXBjennFhHNraSA8emJp Z25pZXcua2VtcGN6eW5za2lAaW50ZWwuY29tPgpDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJp cy13aWxzb24uY28udWs+Ci0tLQogdGVzdHMvaTkxNS9nZW1fc2V0X3RpbGluZ192c19ibHQuYyB8 IDIxNyArKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEwNiBp bnNlcnRpb25zKCspLCAxMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9n ZW1fc2V0X3RpbGluZ192c19ibHQuYyBiL3Rlc3RzL2k5MTUvZ2VtX3NldF90aWxpbmdfdnNfYmx0 LmMKaW5kZXggY2IxNjQxNTQuLmMxMTI3NmFiIDEwMDY0NAotLS0gYS90ZXN0cy9pOTE1L2dlbV9z ZXRfdGlsaW5nX3ZzX2JsdC5jCisrKyBiL3Rlc3RzL2k5MTUvZ2VtX3NldF90aWxpbmdfdnNfYmx0 LmMKQEAgLTU3LDE1ICs1NywxMCBAQAogI2luY2x1ZGUgImRybS5oIgogI2luY2x1ZGUgImk5MTUv Z2VtLmgiCiAjaW5jbHVkZSAiaWd0LmgiCi0jaW5jbHVkZSAiaW50ZWxfYnVmbWdyLmgiCiAKIElH VF9URVNUX0RFU0NSSVBUSU9OKCJDaGVjayBmb3IgcHJvcGVyIHN5bmNocm9uaXphdGlvbiBvZiB0 aWxpbmcgY2hhbmdlcyB2cy4iCiAJCSAgICAgIiB0aWxlZCBncHUgYWNjZXNzLiIpOwogCi1zdGF0 aWMgZHJtX2ludGVsX2J1Zm1nciAqYnVmbWdyOwotc3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpi YXRjaDsKLXVpbnQzMl90IGRldmlkOwotCiAjZGVmaW5lIFRFU1RfU0laRSAoMTAyNCoxMDI0KQog I2RlZmluZSBURVNUX1NUUklERSAoNCoxMDI0KQogI2RlZmluZSBURVNUX0hFSUdIVChzdHJpZGUp CShURVNUX1NJWkUvKHN0cmlkZSkpCkBAIC03MywxNTkgKzY4LDE1OCBAQCB1aW50MzJfdCBkZXZp ZDsKIAogdWludDMyX3QgZGF0YVtURVNUX1NJWkUvNF07CiAKLXN0YXRpYyB2b2lkIGRvX3Rlc3Qo dWludDMyX3QgdGlsaW5nLCB1bnNpZ25lZCBzdHJpZGUsCitzdGF0aWMgdm9pZCBfX3NldF90aWxp bmcoc3RydWN0IGJ1Zl9vcHMgKmJvcHMsIHN0cnVjdCBpbnRlbF9idWYgKmJ1ZiwKKwkJCSB1aW50 MzJfdCB0aWxpbmcsIHVuc2lnbmVkIHN0cmlkZSkKK3sKKwlpbnQgcmV0OworCisJcmV0ID0gX19n ZW1fc2V0X3RpbGluZyhidWZfb3BzX2dldF9mZChib3BzKSwgYnVmLT5oYW5kbGUsIHRpbGluZywg c3RyaWRlKTsKKworCWJ1Zi0+c3VyZmFjZVswXS5zdHJpZGUgPSBzdHJpZGU7CisJYnVmLT5zdXJm YWNlWzBdLnNpemUgPSBidWYtPnN1cmZhY2VbMF0uc3RyaWRlICogVEVTVF9IRUlHSFQoc3RyaWRl KTsKKwlidWYtPnRpbGluZyA9IHRpbGluZzsKKworCWlndF9hc3NlcnRfZXEocmV0LCAwKTsKK30K Kworc3RhdGljIHZvaWQgZG9fdGVzdChzdHJ1Y3QgYnVmX29wcyAqYm9wcywgdWludDMyX3QgdGls aW5nLCB1bnNpZ25lZCBzdHJpZGUsCiAJCSAgICB1aW50MzJfdCB0aWxpbmdfYWZ0ZXIsIHVuc2ln bmVkIHN0cmlkZV9hZnRlcikKIHsKLQlkcm1faW50ZWxfYm8gKmJ1c3lfYm8sICp0ZXN0X2JvLCAq dGFyZ2V0X2JvOwotCWludCBpLCByZXQ7CisJc3RydWN0IGludGVsX2J1ZiAqdGVzdF9idWYsICp0 YXJnZXRfYnVmOworCXN0cnVjdCBpbnRlbF9iYiAqaWJiOworCWlndF9zcGluX3QgKmJ1c3k7CisJ aW50IGksIGZkID0gYnVmX29wc19nZXRfZmQoYm9wcyk7CiAJdWludDMyX3QgKnB0cjsKLQl1aW50 MzJfdCB0ZXN0X2JvX2hhbmRsZTsKKwl1aW50MzJfdCB0ZXN0X2J1Zl9oYW5kbGU7CiAJdWludDMy X3QgYmx0X3N0cmlkZSwgYmx0X2JpdHM7CisJdWludDMyX3QgYnVzeV9jdHgsIHJpbmcgPSBJOTE1 X0VYRUNfREVGQVVMVDsKIAlib29sIHRpbGluZ19jaGFuZ2VkID0gZmFsc2U7CiAKLQlpZ3RfaW5m bygiZmlsbGluZyByaW5nIC4uICIpOwotCWJ1c3lfYm8gPSBkcm1faW50ZWxfYm9fYWxsb2MoYnVm bWdyLCAiYnVzeSBibyBibyIsIDE2KjEwMjQqMTAyNCwgNDA5Nik7Ci0KLQlmb3IgKGkgPSAwOyBp IDwgMjUwOyBpKyspIHsKLQkJQkxJVF9DT1BZX0JBVENIX1NUQVJUKDApOwotCQlPVVRfQkFUQ0go KDMgPDwgMjQpIHwgLyogMzIgYml0cyAqLwotCQkJICAoMHhjYyA8PCAxNikgfCAvKiBjb3B5IFJP UCAqLwotCQkJICAyKjEwMjQqNCk7Ci0JCU9VVF9CQVRDSCgwIDw8IDE2IHwgMTAyNCk7Ci0JCU9V VF9CQVRDSCgoMjA0OCkgPDwgMTYgfCAoMjA0OCkpOwotCQlPVVRfUkVMT0NfRkVOQ0VEKGJ1c3lf Ym8sIEk5MTVfR0VNX0RPTUFJTl9SRU5ERVIsIEk5MTVfR0VNX0RPTUFJTl9SRU5ERVIsIDApOwot CQlPVVRfQkFUQ0goMCA8PCAxNiB8IDApOwotCQlPVVRfQkFUQ0goMioxMDI0KjQpOwotCQlPVVRf UkVMT0NfRkVOQ0VEKGJ1c3lfYm8sIEk5MTVfR0VNX0RPTUFJTl9SRU5ERVIsIDAsIDApOwotCQlB RFZBTkNFX0JBVENIKCk7Ci0KLQkJaWYgKGJhdGNoLT5nZW4gPj0gNikgewotCQkJQkVHSU5fQkFU Q0goMywgMCk7Ci0JCQlPVVRfQkFUQ0goWFlfU0VUVVBfQ0xJUF9CTFRfQ01EKTsKLQkJCU9VVF9C QVRDSCgwKTsKLQkJCU9VVF9CQVRDSCgwKTsKLQkJCUFEVkFOQ0VfQkFUQ0goKTsKLQkJfQotCX0K LQlpbnRlbF9iYXRjaGJ1ZmZlcl9mbHVzaChiYXRjaCk7CisJaWJiID0gaW50ZWxfYmJfY3JlYXRl X3dpdGhfcmVsb2NzKGZkLCA0MDk2KTsKKworCWlndF9pbmZvKCJmaWxsaW5nIHJpbmdcbiIpOwor CWlmIChIQVNfQkxUX1JJTkcoaWJiLT5kZXZpZCkpCisJCXJpbmcgPSBJOTE1X0VYRUNfQkxUOwor CWJ1c3lfY3R4ID0gZ2VtX2NvbnRleHRfY3JlYXRlKGZkKTsKKwlidXN5ID0gaWd0X3NwaW5fbmV3 KGZkLCAuY3R4ID0gYnVzeV9jdHgsIC5lbmdpbmUgPSByaW5nKTsKIAogCWlndF9pbmZvKCJwbGF5 aW5nIHRyaWNrcyAuLiAiKTsKIAkvKiBmaXJzdCBhbGxvY2F0ZSB0aGUgdGFyZ2V0IHNvIGl0IGdl dHMgb3V0IG9mIHRoZSB3YXkgb2YgcGxheWluZyBmdW5reQogCSAqIHRyaWNrcyAqLwotCXRhcmdl dF9ibyA9IGRybV9pbnRlbF9ib19hbGxvYyhidWZtZ3IsICJ0YXJnZXQgYm8iLCBURVNUX1NJWkUs IDQwOTYpOworCXRhcmdldF9idWYgPSBpbnRlbF9idWZfY3JlYXRlKGJvcHMsIFRFU1RfV0lEVEgo VEVTVF9TVFJJREUpLAorCQkJCSAgICAgIFRFU1RfSEVJR0hUKFRFU1RfU1RSSURFKSwgMzIsIDAs CisJCQkJICAgICAgSTkxNV9USUxJTkdfTk9ORSwgSTkxNV9DT01QUkVTU0lPTl9OT05FKTsKIAor CWludGVsX2JiX2FkZF9pbnRlbF9idWYoaWJiLCB0YXJnZXRfYnVmLCB0cnVlKTsKIAkvKiBhbGxv Y2F0ZSBidWZmZXIgd2l0aCBwYXJhbWV0ZXJzIF9hZnRlcl8gdHJhbnNpdGlvbiB3ZSB3YW50IHRv IGNoZWNrCiAJICogYW5kIHRvdWNoIGl0LCBzbyB0aGF0IGl0J3MgcHJvcGVybHkgYWxpZ25lZCBp biB0aGUgZ3R0LiAqLwotCXRlc3RfYm8gPSBkcm1faW50ZWxfYm9fYWxsb2MoYnVmbWdyLCAidGls ZWQgYnVzeSBibyIsIFRFU1RfU0laRSwgNDA5Nik7Ci0JdGVzdF9ib19oYW5kbGUgPSB0ZXN0X2Jv LT5oYW5kbGU7Ci0JcmV0ID0gZHJtX2ludGVsX2JvX3NldF90aWxpbmcodGVzdF9ibywgJnRpbGlu Z19hZnRlciwgc3RyaWRlX2FmdGVyKTsKLQlpZ3RfYXNzZXJ0X2VxKHJldCwgMCk7Ci0JZHJtX2lu dGVsX2dlbV9ib19tYXBfZ3R0KHRlc3RfYm8pOwotCXB0ciA9IHRlc3RfYm8tPnZpcnR1YWw7Ci0J KnB0ciA9IDA7Ci0JcHRyID0gTlVMTDsKLQlkcm1faW50ZWxfZ2VtX2JvX3VubWFwX2d0dCh0ZXN0 X2JvKTsKLQotCWRybV9pbnRlbF9ib191bnJlZmVyZW5jZSh0ZXN0X2JvKTsKKwl0ZXN0X2J1ZiA9 IGludGVsX2J1Zl9jcmVhdGUoYm9wcywgVEVTVF9XSURUSChzdHJpZGVfYWZ0ZXIpLAorCQkJCSAg IFRFU1RfSEVJR0hUKHN0cmlkZV9hZnRlciksIDMyLCAwLAorCQkJCSAgIHRpbGluZ19hZnRlciwg STkxNV9DT01QUkVTU0lPTl9OT05FKTsKIAotCXRlc3RfYm8gPSBOVUxMOworCXRlc3RfYnVmX2hh bmRsZSA9IHRlc3RfYnVmLT5oYW5kbGU7CiAKLQkvKiBub3RlIHdlIG5lZWQgYSBibyBiaWdnZXIg dGhhbiBiYXRjaGVzLCBvdGhlcndpc2UgdGhlIGJ1ZmZlciByZXVzZQotCSAqIHRyaWNrIHdpbGwg ZmFpbC4gKi8KLQl0ZXN0X2JvID0gZHJtX2ludGVsX2JvX2FsbG9jKGJ1Zm1nciwgImJ1c3kgYm8i LCBURVNUX1NJWkUsIDQwOTYpOwotCS8qIGRvdWJsZSBjaGVjayB0aGF0IHRoZSByZXVzZSB0cmlj ayB3b3JrZWQgKi8KLQlpZ3RfYXNzZXJ0KHRlc3RfYm9faGFuZGxlID09IHRlc3RfYm8tPmhhbmRs ZSk7CisJcHRyID0gZ2VtX21tYXBfX2d0dChmZCwgdGVzdF9idWYtPmhhbmRsZSwgVEVTVF9TSVpF LAorCQkJICAgIFBST1RfUkVBRCB8IFBST1RfV1JJVEUpOworCSpwdHIgPSAwOworCWdlbV9tdW5t YXAocHRyLCBURVNUX1NJWkUpOwogCi0JdGVzdF9ib19oYW5kbGUgPSB0ZXN0X2JvLT5oYW5kbGU7 Ci0JLyogZW5zdXJlIHdlIGhhdmUgdGhlIHJpZ2h0IHRpbGluZyBiZWZvcmUgd2Ugc3RhcnQuICov Ci0JcmV0ID0gZHJtX2ludGVsX2JvX3NldF90aWxpbmcodGVzdF9ibywgJnRpbGluZywgc3RyaWRl KTsKLQlpZ3RfYXNzZXJ0X2VxKHJldCwgMCk7CisJLyogUmV1c2UgcHJldmlvdXNseSBhbGlnbmVk IGluIHRoZSBndHQgb2JqZWN0ICovCisJaW50ZWxfYnVmX2luaXRfdXNpbmdfaGFuZGxlKGJvcHMs IHRlc3RfYnVmX2hhbmRsZSwgdGVzdF9idWYsCisJCQkJICAgIFRFU1RfV0lEVEgoc3RyaWRlKSwg VEVTVF9IRUlHSFQoc3RyaWRlKSwgMzIsCisJCQkJICAgIDAsIHRpbGluZywgSTkxNV9DT01QUkVT U0lPTl9OT05FKTsKKwlpZ3RfYXNzZXJ0X2VxX3UzMihpbnRlbF9idWZfYm9fc2l6ZSh0ZXN0X2J1 ZiksIFRFU1RfU0laRSk7CisJaW50ZWxfYnVmX3NldF9vd25lcnNoaXAodGVzdF9idWYsIHRydWUp OworCWludGVsX2JiX2FkZF9pbnRlbF9idWYoaWJiLCB0ZXN0X2J1ZiwgZmFsc2UpOwogCiAJaWYg KHRpbGluZyA9PSBJOTE1X1RJTElOR19OT05FKSB7Ci0JCWRybV9pbnRlbF9ib19zdWJkYXRhKHRl c3RfYm8sIDAsIFRFU1RfU0laRSwgZGF0YSk7CisJCWdlbV93cml0ZShmZCwgdGVzdF9idWYtPmhh bmRsZSwgMCwgZGF0YSwgVEVTVF9TSVpFKTsKIAl9IGVsc2UgewotCQlkcm1faW50ZWxfZ2VtX2Jv X21hcF9ndHQodGVzdF9ibyk7Ci0JCXB0ciA9IHRlc3RfYm8tPnZpcnR1YWw7CisJCXB0ciA9IGdl bV9tbWFwX19ndHQoZmQsIHRlc3RfYnVmLT5oYW5kbGUsIFRFU1RfU0laRSwKKwkJCQkgICAgUFJP VF9SRUFEIHwgUFJPVF9XUklURSk7CisKIAkJbWVtY3B5KHB0ciwgZGF0YSwgVEVTVF9TSVpFKTsK IAkJcHRyID0gTlVMTDsKLQkJZHJtX2ludGVsX2dlbV9ib191bm1hcF9ndHQodGVzdF9ibyk7CisJ CWdlbV9tdW5tYXAocHRyLCBURVNUX1NJWkUpOwogCX0KIAogCWJsdF9zdHJpZGUgPSBzdHJpZGU7 CiAJYmx0X2JpdHMgPSAwOwotCWlmIChpbnRlbF9nZW4oZGV2aWQpID49IDQgJiYgdGlsaW5nICE9 IEk5MTVfVElMSU5HX05PTkUpIHsKKwlpZiAoaW50ZWxfZ2VuKGliYi0+ZGV2aWQpID49IDQgJiYg dGlsaW5nICE9IEk5MTVfVElMSU5HX05PTkUpIHsKIAkJYmx0X3N0cmlkZSAvPSA0OwogCQlibHRf Yml0cyA9IFhZX1NSQ19DT1BZX0JMVF9TUkNfVElMRUQ7CiAJfQogCi0JQkxJVF9DT1BZX0JBVENI X1NUQVJUKGJsdF9iaXRzKTsKLQlPVVRfQkFUQ0goKDMgPDwgMjQpIHwgLyogMzIgYml0cyAqLwor CWludGVsX2JiX2JsaXRfc3RhcnQoaWJiLCBibHRfYml0cyk7CisJaW50ZWxfYmJfb3V0KGliYiwg KDMgPDwgMjQpIHwgLyogMzIgYml0cyAqLwogCQkgICgweGNjIDw8IDE2KSB8IC8qIGNvcHkgUk9Q ICovCiAJCSAgc3RyaWRlKTsKLQlPVVRfQkFUQ0goMCA8PCAxNiB8IDApOwotCU9VVF9CQVRDSCgo VEVTVF9IRUlHSFQoc3RyaWRlKSkgPDwgMTYgfCAoVEVTVF9XSURUSChzdHJpZGUpKSk7Ci0JT1VU X1JFTE9DX0ZFTkNFRCh0YXJnZXRfYm8sIEk5MTVfR0VNX0RPTUFJTl9SRU5ERVIsIEk5MTVfR0VN X0RPTUFJTl9SRU5ERVIsIDApOwotCU9VVF9CQVRDSCgwIDw8IDE2IHwgMCk7Ci0JT1VUX0JBVENI KGJsdF9zdHJpZGUpOwotCU9VVF9SRUxPQ19GRU5DRUQodGVzdF9ibywgSTkxNV9HRU1fRE9NQUlO X1JFTkRFUiwgMCwgMCk7Ci0JQURWQU5DRV9CQVRDSCgpOwotCWludGVsX2JhdGNoYnVmZmVyX2Zs dXNoKGJhdGNoKTsKLQotCWRybV9pbnRlbF9ib191bnJlZmVyZW5jZSh0ZXN0X2JvKTsKLQotCXRl c3RfYm8gPSBkcm1faW50ZWxfYm9fYWxsb2NfZm9yX3JlbmRlcihidWZtZ3IsICJ0aWxlZCBidXN5 IGJvIiwgVEVTVF9TSVpFLCA0MDk2KTsKLQkvKiBkb3VibGUgY2hlY2sgdGhhdCB0aGUgcmV1c2Ug dHJpY2sgd29ya2VkICovCi0JaWd0X2Fzc2VydCh0ZXN0X2JvX2hhbmRsZSA9PSB0ZXN0X2JvLT5o YW5kbGUpOwotCXJldCA9IGRybV9pbnRlbF9ib19zZXRfdGlsaW5nKHRlc3RfYm8sICZ0aWxpbmdf YWZ0ZXIsIHN0cmlkZV9hZnRlcik7Ci0JaWd0X2Fzc2VydF9lcShyZXQsIDApOworCWludGVsX2Ji X291dChpYmIsIDAgPDwgMTYgfCAwKTsKKwlpbnRlbF9iYl9vdXQoaWJiLCAoVEVTVF9IRUlHSFQo c3RyaWRlKSkgPDwgMTYgfCAoVEVTVF9XSURUSChzdHJpZGUpKSk7CisJaW50ZWxfYmJfZW1pdF9y ZWxvY19mZW5jZWQoaWJiLCB0YXJnZXRfYnVmLT5oYW5kbGUsCisJCQkJICAgSTkxNV9HRU1fRE9N QUlOX1JFTkRFUiwKKwkJCQkgICBJOTE1X0dFTV9ET01BSU5fUkVOREVSLCAwLCAwKTsKKwlpbnRl bF9iYl9vdXQoaWJiLCAwIDw8IDE2IHwgMCk7CisJaW50ZWxfYmJfb3V0KGliYiwgYmx0X3N0cmlk ZSk7CisJaW50ZWxfYmJfZW1pdF9yZWxvY19mZW5jZWQoaWJiLCB0ZXN0X2J1Zi0+aGFuZGxlLAor CQkJCSAgIEk5MTVfR0VNX0RPTUFJTl9SRU5ERVIsIDAsIDAsIDApOworCWludGVsX2JiX2ZsdXNo X2JsaXQoaWJiKTsKKworCV9fc2V0X3RpbGluZyhib3BzLCB0ZXN0X2J1ZiwgdGlsaW5nX2FmdGVy LCBzdHJpZGVfYWZ0ZXIpOworCWludGVsX2JiX3Jlc2V0KGliYiwgdHJ1ZSk7CisJaW50ZWxfYmJf YWRkX2ludGVsX2J1ZihpYmIsIHRlc3RfYnVmLCB0cnVlKTsKIAogCS8qIE5vdGU6IFdlIGRvbid0 IGNhcmUgYWJvdXQgZ2VuNCsgaGVyZSBiZWNhdXNlIHRoZSBibGl0dGVyIGRvZXNuJ3QgdXNlCiAJ ICogZmVuY2VzIHRoZXJlLiBTbyBub3Qgc2V0dGluZyB0aWxpbmcgZmxhZ3Mgb24gdGhlIHRpbGVk IGJ1ZmZlciBpcyBvay4KIAkgKi8KLQlCTElUX0NPUFlfQkFUQ0hfU1RBUlQoMCk7Ci0JT1VUX0JB VENIKCgzIDw8IDI0KSB8IC8qIDMyIGJpdHMgKi8KKworCWludGVsX2JiX2JsaXRfc3RhcnQoaWJi LCAwKTsKKwlpbnRlbF9iYl9vdXQoaWJiLCAoMyA8PCAyNCkgfCAvKiAzMiBiaXRzICovCiAJCSAg KDB4Y2MgPDwgMTYpIHwgLyogY29weSBST1AgKi8KIAkJICBzdHJpZGVfYWZ0ZXIpOwotCU9VVF9C QVRDSCgwIDw8IDE2IHwgMCk7Ci0JT1VUX0JBVENIKCgxKSA8PCAxNiB8ICgxKSk7Ci0JT1VUX1JF TE9DX0ZFTkNFRCh0ZXN0X2JvLCBJOTE1X0dFTV9ET01BSU5fUkVOREVSLCBJOTE1X0dFTV9ET01B SU5fUkVOREVSLCAwKTsKLQlPVVRfQkFUQ0goMCA8PCAxNiB8IDApOwotCU9VVF9CQVRDSChzdHJp ZGVfYWZ0ZXIpOwotCU9VVF9SRUxPQ19GRU5DRUQodGVzdF9ibywgSTkxNV9HRU1fRE9NQUlOX1JF TkRFUiwgMCwgMCk7Ci0JQURWQU5DRV9CQVRDSCgpOwotCWludGVsX2JhdGNoYnVmZmVyX2ZsdXNo KGJhdGNoKTsKLQorCWludGVsX2JiX291dChpYmIsIDAgPDwgMTYgfCAwKTsKKwlpbnRlbF9iYl9v dXQoaWJiLCAoMSkgPDwgMTYgfCAoMSkpOworCWludGVsX2JiX2VtaXRfcmVsb2NfZmVuY2VkKGli YiwgdGVzdF9idWYtPmhhbmRsZSwKKwkJCQkgICBJOTE1X0dFTV9ET01BSU5fUkVOREVSLAorCQkJ CSAgIEk5MTVfR0VNX0RPTUFJTl9SRU5ERVIsIDAsIDApOworCWludGVsX2JiX291dChpYmIsIDAg PDwgMTYgfCAwKTsKKwlpbnRlbF9iYl9vdXQoaWJiLCBzdHJpZGVfYWZ0ZXIpOworCWludGVsX2Ji X2VtaXRfcmVsb2NfZmVuY2VkKGliYiwgdGVzdF9idWYtPmhhbmRsZSwKKwkJCQkgICBJOTE1X0dF TV9ET01BSU5fUkVOREVSLCAwLCAwLCAwKTsKKwlpbnRlbF9iYl9mbHVzaF9ibGl0KGliYik7CiAJ LyogTm93IHRyeSB0byB0cmljayB0aGUga2VybmVsIHRoZSBrZXJuZWwgaW50byBjaGFuZ2luZyB1 cCB0aGUgZmVuY2luZwogCSAqIHRvbyBlYXJseS4gKi8KLQogCWlndF9pbmZvKCJjaGVja2luZyAu LiAiKTsKIAltZW1zZXQoZGF0YSwgMCwgVEVTVF9TSVpFKTsKLQlkcm1faW50ZWxfYm9fZ2V0X3N1 YmRhdGEodGFyZ2V0X2JvLCAwLCBURVNUX1NJWkUsIGRhdGEpOworCisJZ2VtX3JlYWQoZmQsIHRh cmdldF9idWYtPmhhbmRsZSwgMCwgZGF0YSwgVEVTVF9TSVpFKTsKIAlmb3IgKGkgPSAwOyBpIDwg VEVTVF9TSVpFLzQ7IGkrKykKIAkJaWd0X2Fzc2VydChkYXRhW2ldID09IGkpOwogCi0JLyogY2hl Y2sgd2hldGhlciB0aWxpbmcgb24gdGhlIHRlc3RfYm8gYWN0dWFsbHkgY2hhbmdlZC4gKi8KLQlk cm1faW50ZWxfZ2VtX2JvX21hcF9ndHQodGVzdF9ibyk7Ci0JcHRyID0gdGVzdF9iby0+dmlydHVh bDsKKwkvKiBjaGVjayB3aGV0aGVyIHRpbGluZyBvbiB0aGUgdGVzdF9idWYgYWN0dWFsbHkgY2hh bmdlZC4gKi8KKwlwdHIgPSBnZW1fbW1hcF9fZ3R0KGZkLCB0ZXN0X2J1Zi0+aGFuZGxlLCBURVNU X1NJWkUsCisJCQkgICAgUFJPVF9XUklURSB8IFBST1RfUkVBRCk7CisKIAlmb3IgKGkgPSAwOyBp IDwgVEVTVF9TSVpFLzQ7IGkrKykKIAkJaWYgKHB0cltpXSAhPSBkYXRhW2ldKQogCQkJdGlsaW5n X2NoYW5nZWQgPSB0cnVlOwotCXB0ciA9IE5VTEw7Ci0JZHJtX2ludGVsX2dlbV9ib191bm1hcF9n dHQodGVzdF9ibyk7CisKKwlnZW1fbXVubWFwKHB0ciwgVEVTVF9TSVpFKTsKIAlpZ3RfYXNzZXJ0 KHRpbGluZ19jaGFuZ2VkKTsKIAotCWRybV9pbnRlbF9ib191bnJlZmVyZW5jZSh0ZXN0X2JvKTsK LQlkcm1faW50ZWxfYm9fdW5yZWZlcmVuY2UodGFyZ2V0X2JvKTsKLQlkcm1faW50ZWxfYm9fdW5y ZWZlcmVuY2UoYnVzeV9ibyk7CisJaWd0X3NwaW5fZnJlZShmZCwgYnVzeSk7CisJZ2VtX2NvbnRl eHRfZGVzdHJveShmZCwgYnVzeV9jdHgpOworCWludGVsX2J1Zl9kZXN0cm95KHRlc3RfYnVmKTsK KwlpbnRlbF9idWZfZGVzdHJveSh0YXJnZXRfYnVmKTsKKwogCWlndF9pbmZvKCJkb25lXG4iKTsK IH0KIAotaW50IGZkOwotCiBpZ3RfbWFpbgogewotCWludCBpOworCWludCBmZCwgaTsKIAl1aW50 MzJfdCB0aWxpbmcsIHRpbGluZ19hZnRlcjsKKwlzdHJ1Y3QgYnVmX29wcyAqYm9wczsKIAogCWln dF9maXh0dXJlIHsKIAkJZm9yIChpID0gMDsgaSA8IDEwMjQqMjU2OyBpKyspCkBAIC0yMzUsMTcg KzIyOSwxMyBAQCBpZ3RfbWFpbgogCQlpZ3RfcmVxdWlyZV9nZW0oZmQpOwogCQlnZW1fcmVxdWly ZV9ibGl0dGVyKGZkKTsKIAkJaWd0X3JlcXVpcmUoZ2VtX2F2YWlsYWJsZV9mZW5jZXMoZmQpID4g MCk7Ci0KLQkJYnVmbWdyID0gZHJtX2ludGVsX2J1Zm1ncl9nZW1faW5pdChmZCwgNDA5Nik7Ci0J CWRybV9pbnRlbF9idWZtZ3JfZ2VtX2VuYWJsZV9yZXVzZShidWZtZ3IpOwotCQlkZXZpZCA9IGlu dGVsX2dldF9kcm1fZGV2aWQoZmQpOwotCQliYXRjaCA9IGludGVsX2JhdGNoYnVmZmVyX2FsbG9j KGJ1Zm1nciwgZGV2aWQpOworCQlib3BzID0gYnVmX29wc19jcmVhdGUoZmQpOwogCX0KIAogCWln dF9zdWJ0ZXN0KCJ1bnRpbGVkLXRvLXRpbGVkIikgewogCQl0aWxpbmcgPSBJOTE1X1RJTElOR19O T05FOwogCQl0aWxpbmdfYWZ0ZXIgPSBJOTE1X1RJTElOR19YOwotCQlkb190ZXN0KHRpbGluZywg VEVTVF9TVFJJREUsIHRpbGluZ19hZnRlciwgVEVTVF9TVFJJREUpOworCQlkb190ZXN0KGJvcHMs IHRpbGluZywgVEVTVF9TVFJJREUsIHRpbGluZ19hZnRlciwgVEVTVF9TVFJJREUpOwogCQlpZ3Rf YXNzZXJ0KHRpbGluZyA9PSBJOTE1X1RJTElOR19OT05FKTsKIAkJaWd0X2Fzc2VydCh0aWxpbmdf YWZ0ZXIgPT0gSTkxNV9USUxJTkdfWCk7CiAJfQpAQCAtMjUzLDcgKzI0Myw3IEBAIGlndF9tYWlu CiAJaWd0X3N1YnRlc3QoInRpbGVkLXRvLXVudGlsZWQiKSB7CiAJCXRpbGluZyA9IEk5MTVfVElM SU5HX1g7CiAJCXRpbGluZ19hZnRlciA9IEk5MTVfVElMSU5HX05PTkU7Ci0JCWRvX3Rlc3QodGls aW5nLCBURVNUX1NUUklERSwgdGlsaW5nX2FmdGVyLCBURVNUX1NUUklERSk7CisJCWRvX3Rlc3Qo Ym9wcywgdGlsaW5nLCBURVNUX1NUUklERSwgdGlsaW5nX2FmdGVyLCBURVNUX1NUUklERSk7CiAJ CWlndF9hc3NlcnQodGlsaW5nID09IEk5MTVfVElMSU5HX1gpOwogCQlpZ3RfYXNzZXJ0KHRpbGlu Z19hZnRlciA9PSBJOTE1X1RJTElOR19OT05FKTsKIAl9CkBAIC0yNjEsOCArMjUxLDEzIEBAIGln dF9tYWluCiAJaWd0X3N1YnRlc3QoInRpbGVkLXRvLXRpbGVkIikgewogCQl0aWxpbmcgPSBJOTE1 X1RJTElOR19YOwogCQl0aWxpbmdfYWZ0ZXIgPSBJOTE1X1RJTElOR19YOwotCQlkb190ZXN0KHRp bGluZywgVEVTVF9TVFJJREUvMiwgdGlsaW5nX2FmdGVyLCBURVNUX1NUUklERSk7CisJCWRvX3Rl c3QoYm9wcywgdGlsaW5nLCBURVNUX1NUUklERS8yLCB0aWxpbmdfYWZ0ZXIsIFRFU1RfU1RSSURF KTsKIAkJaWd0X2Fzc2VydCh0aWxpbmcgPT0gSTkxNV9USUxJTkdfWCk7CiAJCWlndF9hc3NlcnQo dGlsaW5nX2FmdGVyID09IEk5MTVfVElMSU5HX1gpOwogCX0KKworCWlndF9maXh0dXJleworCQli dWZfb3BzX2Rlc3Ryb3koYm9wcyk7CisJCWNsb3NlKGZkKTsKKwl9CiB9Ci0tIAoyLjIwLjEKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFp bGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldgo=