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 02DE96E7D0 for ; Mon, 13 May 2019 17:56:30 +0000 (UTC) From: Andi Shyti Date: Mon, 13 May 2019 20:56:06 +0300 Message-Id: <20190513175613.2507-8-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 07/14] test/i915: gem_busy: 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 CmltcGxlbWVudGVkIGluIHRoZSBnZW1fZW5naW5lX3RvcG9sb2d5IGxpYnJhcnkuCgpTaWduZWQt b2ZmLWJ5OiBBbmRpIFNoeXRpIDxhbmRpLnNoeXRpQGludGVsLmNvbT4KQ2M6IENocmlzIFdpbHNv biA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgpSZXZpZXdlZC1ieTogVHZydGtvIFVyc3VsaW4g PHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KLS0tCiB0ZXN0cy9pOTE1L2dlbV9idXN5LmMgfCAx MjggKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hh bmdlZCwgNDggaW5zZXJ0aW9ucygrKSwgODAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdGVz dHMvaTkxNS9nZW1fYnVzeS5jIGIvdGVzdHMvaTkxNS9nZW1fYnVzeS5jCmluZGV4IGMxMjBmYWYx MDk4My4uMjg3MmU3YjdiZTYyIDEwMDY0NAotLS0gYS90ZXN0cy9pOTE1L2dlbV9idXN5LmMKKysr IGIvdGVzdHMvaTkxNS9nZW1fYnVzeS5jCkBAIC02NiwyMiArNjYsOSBAQCBzdGF0aWMgdm9pZCBf X2dlbV9idXN5KGludCBmZCwKIAkqcmVhZCA9IGJ1c3kuYnVzeSA+PiAxNjsKIH0KIAotc3RhdGlj IHVpbnQzMl90IHJpbmdfdG9fY2xhc3ModW5zaWduZWQgaW50IHJpbmcpCi17Ci0JdWludDMyX3Qg Y2xhc3NbXSA9IHsKLQkJW0k5MTVfRVhFQ19ERUZBVUxUXSA9IEk5MTVfRU5HSU5FX0NMQVNTX1JF TkRFUiwKLQkJW0k5MTVfRVhFQ19SRU5ERVJdICA9IEk5MTVfRU5HSU5FX0NMQVNTX1JFTkRFUiwK LQkJW0k5MTVfRVhFQ19CTFRdICAgICA9IEk5MTVfRU5HSU5FX0NMQVNTX0NPUFksCi0JCVtJOTE1 X0VYRUNfQlNEXSAgICAgPSBJOTE1X0VOR0lORV9DTEFTU19WSURFTywKLQkJW0k5MTVfRVhFQ19W RUJPWF0gICA9IEk5MTVfRU5HSU5FX0NMQVNTX1ZJREVPX0VOSEFOQ0UsCi0JfTsKLQlpZ3RfYXNz ZXJ0KHJpbmcgPCBBUlJBWV9TSVpFKGNsYXNzKSk7Ci0JcmV0dXJuIGNsYXNzW3JpbmddOwotfQot CiBzdGF0aWMgYm9vbCBleGVjX25vb3AoaW50IGZkLAogCQkgICAgICB1aW50MzJfdCAqaGFuZGxl cywKLQkJICAgICAgdW5zaWduZWQgcmluZywKKwkJICAgICAgdW5zaWduZWQgZmxhZ3MsCiAJCSAg ICAgIGJvb2wgd3JpdGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9leGVjYnVmZmVyMiBleGVj YnVmOwpAQCAtOTcsOSArODQsOSBAQCBzdGF0aWMgYm9vbCBleGVjX25vb3AoaW50IGZkLAogCW1l bXNldCgmZXhlY2J1ZiwgMCwgc2l6ZW9mKGV4ZWNidWYpKTsKIAlleGVjYnVmLmJ1ZmZlcnNfcHRy ID0gdG9fdXNlcl9wb2ludGVyKGV4ZWMpOwogCWV4ZWNidWYuYnVmZmVyX2NvdW50ID0gMzsKLQll eGVjYnVmLmZsYWdzID0gcmluZzsKLQlpZ3RfZGVidWcoIlF1ZXVpbmcgaGFuZGxlIGZvciAlcyBv biByaW5nICVkXG4iLAotCQkgIHdyaXRlID8gIndyaXRpbmciIDogInJlYWRpbmciLCByaW5nICYg MHg3KTsKKwlleGVjYnVmLmZsYWdzID0gZmxhZ3M7CisJaWd0X2RlYnVnKCJRdWV1aW5nIGhhbmRs ZSBmb3IgJXMgb24gZW5naW5lICVkXG4iLAorCQkgIHdyaXRlID8gIndyaXRpbmciIDogInJlYWRp bmciLCBmbGFncyk7CiAJcmV0dXJuIF9fZ2VtX2V4ZWNidWYoZmQsICZleGVjYnVmKSA9PSAwOwog fQogCkBAIC0xMTAsMTggKzk3LDE3IEBAIHN0YXRpYyBib29sIHN0aWxsX2J1c3koaW50IGZkLCB1 aW50MzJfdCBoYW5kbGUpCiAJcmV0dXJuIHdyaXRlOwogfQogCi1zdGF0aWMgdm9pZCBzZW1hcGhv cmUoaW50IGZkLCB1bnNpZ25lZCByaW5nLCB1aW50MzJfdCBmbGFncykKK3N0YXRpYyB2b2lkIHNl bWFwaG9yZShpbnQgZmQsIGNvbnN0IHN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAqZSkK IHsKKwlzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKl9fZTsKIAl1aW50MzJfdCBiYmUg PSBNSV9CQVRDSF9CVUZGRVJfRU5EOwotCWNvbnN0IHVuc2lnbmVkIHVhYmkgPSByaW5nX3RvX2Ns YXNzKHJpbmcgJiA2Myk7CisJY29uc3QgdW5zaWduZWQgdWFiaSA9IGUtPmNsYXNzOwogCWlndF9z cGluX3QgKnNwaW47CiAJdWludDMyX3QgaGFuZGxlWzNdOwogCXVpbnQzMl90IHJlYWQsIHdyaXRl OwogCXVpbnQzMl90IGFjdGl2ZTsKIAl1bnNpZ25lZCBpOwogCi0JZ2VtX3JlcXVpcmVfcmluZyhm ZCwgcmluZyB8IGZsYWdzKTsKLQogCWhhbmRsZVtURVNUXSA9IGdlbV9jcmVhdGUoZmQsIDQwOTYp OwogCWhhbmRsZVtCQVRDSF0gPSBnZW1fY3JlYXRlKGZkLCA0MDk2KTsKIAlnZW1fd3JpdGUoZmQs IGhhbmRsZVtCQVRDSF0sIDAsICZiYmUsIHNpemVvZihiYmUpKTsKQEAgLTEyOSwxOCArMTE1LDE4 IEBAIHN0YXRpYyB2b2lkIHNlbWFwaG9yZShpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIHVpbnQzMl90 IGZsYWdzKQogCS8qIENyZWF0ZSBhIGxvbmcgcnVubmluZyBiYXRjaCB3aGljaCB3ZSBjYW4gdXNl IHRvIGhvZyB0aGUgR1BVICovCiAJaGFuZGxlW0JVU1ldID0gZ2VtX2NyZWF0ZShmZCwgNDA5Nik7 CiAJc3BpbiA9IGlndF9zcGluX25ldyhmZCwKLQkJCSAgICAuZW5naW5lID0gcmluZywKKwkJCSAg ICAuZW5naW5lID0gZS0+ZmxhZ3MsCiAJCQkgICAgLmRlcGVuZGVuY3kgPSBoYW5kbGVbQlVTWV0p OwogCiAJLyogUXVldWUgYSBiYXRjaCBhZnRlciB0aGUgYnVzeSwgaXQgc2hvdWxkIGJsb2NrIGFu ZCByZW1haW4gImJ1c3kiICovCi0JaWd0X2Fzc2VydChleGVjX25vb3AoZmQsIGhhbmRsZSwgcmlu ZyB8IGZsYWdzLCBmYWxzZSkpOworCWlndF9hc3NlcnQoZXhlY19ub29wKGZkLCBoYW5kbGUsIGUt PmZsYWdzLCBmYWxzZSkpOwogCWlndF9hc3NlcnQoc3RpbGxfYnVzeShmZCwgaGFuZGxlW0JVU1ld KSk7CiAJX19nZW1fYnVzeShmZCwgaGFuZGxlW1RFU1RdLCAmcmVhZCwgJndyaXRlKTsKIAlpZ3Rf YXNzZXJ0X2VxKHJlYWQsIDEgPDwgdWFiaSk7CiAJaWd0X2Fzc2VydF9lcSh3cml0ZSwgMCk7CiAK IAkvKiBSZXF1ZXVlIHdpdGggYSB3cml0ZSAqLwotCWlndF9hc3NlcnQoZXhlY19ub29wKGZkLCBo YW5kbGUsIHJpbmcgfCBmbGFncywgdHJ1ZSkpOworCWlndF9hc3NlcnQoZXhlY19ub29wKGZkLCBo YW5kbGUsIGUtPmZsYWdzLCB0cnVlKSk7CiAJaWd0X2Fzc2VydChzdGlsbF9idXN5KGZkLCBoYW5k bGVbQlVTWV0pKTsKIAlfX2dlbV9idXN5KGZkLCBoYW5kbGVbVEVTVF0sICZyZWFkLCAmd3JpdGUp OwogCWlndF9hc3NlcnRfZXEocmVhZCwgMSA8PCB1YWJpKTsKQEAgLTE0OCw5ICsxMzQsOSBAQCBz dGF0aWMgdm9pZCBzZW1hcGhvcmUoaW50IGZkLCB1bnNpZ25lZCByaW5nLCB1aW50MzJfdCBmbGFn cykKIAogCS8qIE5vdyBxdWV1ZSBpdCBmb3IgYSByZWFkIGFjcm9zcyBhbGwgYXZhaWxhYmxlIHJp bmdzICovCiAJYWN0aXZlID0gMDsKLQlmb3IgKGkgPSBJOTE1X0VYRUNfUkVOREVSOyBpIDw9IEk5 MTVfRVhFQ19WRUJPWDsgaSsrKSB7Ci0JCWlmIChleGVjX25vb3AoZmQsIGhhbmRsZSwgaSB8IGZs YWdzLCBmYWxzZSkpCi0JCQlhY3RpdmUgfD0gMSA8PCByaW5nX3RvX2NsYXNzKGkpOworCV9fZm9y X2VhY2hfcGh5c2ljYWxfZW5naW5lKGZkLCBfX2UpIHsKKwkJaWYgKGV4ZWNfbm9vcChmZCwgaGFu ZGxlLCBfX2UtPmZsYWdzLCBmYWxzZSkpCisJCQlhY3RpdmUgfD0gMSA8PCBfX2UtPmNsYXNzOwog CX0KIAlpZ3RfYXNzZXJ0KHN0aWxsX2J1c3koZmQsIGhhbmRsZVtCVVNZXSkpOwogCV9fZ2VtX2J1 c3koZmQsIGhhbmRsZVtURVNUXSwgJnJlYWQsICZ3cml0ZSk7CkBAIC0xNzMsNyArMTU5LDcgQEAg c3RhdGljIHZvaWQgc2VtYXBob3JlKGludCBmZCwgdW5zaWduZWQgcmluZywgdWludDMyX3QgZmxh Z3MpCiAKICNkZWZpbmUgUEFSQUxMRUwgMQogI2RlZmluZSBIQU5HIDIKLXN0YXRpYyB2b2lkIG9u ZShpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIHVuc2lnbmVkIHRlc3RfZmxhZ3MpCitzdGF0aWMgdm9p ZCBvbmUoaW50IGZkLCBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUsIHVu c2lnbmVkIHRlc3RfZmxhZ3MpCiB7CiAJY29uc3QgaW50IGdlbiA9IGludGVsX2dlbihpbnRlbF9n ZXRfZHJtX2RldmlkKGZkKSk7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9leGVjX29iamVjdDIgb2Jq WzJdOwpAQCAtMTgyLDcgKzE2OCw3IEBAIHN0YXRpYyB2b2lkIG9uZShpbnQgZmQsIHVuc2lnbmVk IHJpbmcsIHVuc2lnbmVkIHRlc3RfZmxhZ3MpCiAJc3RydWN0IGRybV9pOTE1X2dlbV9yZWxvY2F0 aW9uX2VudHJ5IHN0b3JlWzEwMjQrMV07CiAJc3RydWN0IGRybV9pOTE1X2dlbV9leGVjYnVmZmVy MiBleGVjYnVmOwogCXVuc2lnbmVkIHNpemUgPSBBTElHTihBUlJBWV9TSVpFKHN0b3JlKSoxNiAr IDQsIDQwOTYpOwotCWNvbnN0IHVuc2lnbmVkIHVhYmkgPSByaW5nX3RvX2NsYXNzKHJpbmcgJiA2 Myk7CisJY29uc3QgdW5zaWduZWQgdWFiaSA9IGUtPmNsYXNzOwogCXVpbnQzMl90IHJlYWRbMl0s IHdyaXRlWzJdOwogCXN0cnVjdCB0aW1lc3BlYyB0djsKIAl1aW50MzJfdCAqYmF0Y2gsICpiYmU7 CkBAIC0xOTEsNyArMTc3LDcgQEAgc3RhdGljIHZvaWQgb25lKGludCBmZCwgdW5zaWduZWQgcmlu ZywgdW5zaWduZWQgdGVzdF9mbGFncykKIAltZW1zZXQoJmV4ZWNidWYsIDAsIHNpemVvZihleGVj YnVmKSk7CiAJZXhlY2J1Zi5idWZmZXJzX3B0ciA9IHRvX3VzZXJfcG9pbnRlcihvYmopOwogCWV4 ZWNidWYuYnVmZmVyX2NvdW50ID0gMjsKLQlleGVjYnVmLmZsYWdzID0gcmluZzsKKwlleGVjYnVm LmZsYWdzID0gZS0+ZmxhZ3M7CiAJaWYgKGdlbiA8IDYpCiAJCWV4ZWNidWYuZmxhZ3MgfD0gSTkx NV9FWEVDX1NFQ1VSRTsKIApAQCAtMjYzLDE3ICsyNDksMTggQEAgc3RhdGljIHZvaWQgb25lKGlu dCBmZCwgdW5zaWduZWQgcmluZywgdW5zaWduZWQgdGVzdF9mbGFncykKIAlfX2dlbV9idXN5KGZk LCBvYmpbQkFUQ0hdLmhhbmRsZSwgJnJlYWRbQkFUQ0hdLCAmd3JpdGVbQkFUQ0hdKTsKIAogCWlm ICh0ZXN0X2ZsYWdzICYgUEFSQUxMRUwpIHsKLQkJdW5zaWduZWQgb3RoZXI7CisJCXN0cnVjdCBp bnRlbF9leGVjdXRpb25fZW5naW5lMiAqZTI7CiAKLQkJZm9yX2VhY2hfcGh5c2ljYWxfZW5naW5l KGZkLCBvdGhlcikgewotCQkJaWYgKG90aGVyID09IHJpbmcpCisJCV9fZm9yX2VhY2hfcGh5c2lj YWxfZW5naW5lKGZkLCBlMikgeworCQkJaWYgKGUyLT5jbGFzcyA9PSBlLT5jbGFzcyAmJgorCQkJ ICAgIGUyLT5pbnN0YW5jZSA9PSBlLT5pbnN0YW5jZSkKIAkJCQljb250aW51ZTsKIAotCQkJaWYg KCFnZW1fY2FuX3N0b3JlX2R3b3JkKGZkLCBvdGhlcikpCisJCQlpZiAoIWdlbV9jbGFzc19jYW5f c3RvcmVfZHdvcmQoZmQsIGUtPmNsYXNzKSkKIAkJCQljb250aW51ZTsKIAotCQkJaWd0X2RlYnVn KCJUZXN0aW5nICVzIGluIHBhcmFsbGVsXG4iLCBlX18tPm5hbWUpOwotCQkJb25lKGZkLCBvdGhl ciwgMCk7CisJCQlpZ3RfZGVidWcoIlRlc3RpbmcgJXMgaW4gcGFyYWxsZWxcbiIsIGUyLT5uYW1l KTsKKwkJCW9uZShmZCwgZTIsIDApOwogCQl9CiAJfQogCkBAIC00MzksMTEgKzQyNiwxMSBAQCBz dGF0aWMgYm9vbCBoYXNfZXh0ZW5kZWRfYnVzeV9pb2N0bChpbnQgZmQpCiAJcmV0dXJuIHJlYWQg IT0gMDsKIH0KIAotc3RhdGljIHZvaWQgYmFzaWMoaW50IGZkLCB1bnNpZ25lZCByaW5nLCB1bnNp Z25lZCBmbGFncykKK3N0YXRpYyB2b2lkIGJhc2ljKGludCBmZCwgY29uc3Qgc3RydWN0IGludGVs X2V4ZWN1dGlvbl9lbmdpbmUyICplLCB1bnNpZ25lZCBmbGFncykKIHsKIAlpZ3Rfc3Bpbl90ICpz cGluID0KIAkJaWd0X3NwaW5fbmV3KGZkLAotCQkJICAgICAuZW5naW5lID0gcmluZywKKwkJCSAg ICAgLmVuZ2luZSA9IGUtPmZsYWdzLAogCQkJICAgICAuZmxhZ3MgPSBJR1RfU1BJTl9OT19QUkVF TVBUSU9OKTsKIAlzdHJ1Y3QgdGltZXNwZWMgdHY7CiAJaW50IHRpbWVvdXQ7CkBAIC00NzUsMTMg KzQ2MiwxNCBAQCBzdGF0aWMgdm9pZCBiYXNpYyhpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIHVuc2ln bmVkIGZsYWdzKQogCiBpZ3RfbWFpbgogewotCWNvbnN0IHN0cnVjdCBpbnRlbF9leGVjdXRpb25f ZW5naW5lICplOworCWNvbnN0IHN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAqZTsKIAlp bnQgZmQgPSAtMTsKIAogCWlndF9maXh0dXJlIHsKIAkJZmQgPSBkcm1fb3Blbl9kcml2ZXJfbWFz dGVyKERSSVZFUl9JTlRFTCk7CiAJCWlndF9yZXF1aXJlX2dlbShmZCk7Ci0JCWlndF9yZXF1aXJl KGdlbV9jYW5fc3RvcmVfZHdvcmQoZmQsIDApKTsKKwkJaWd0X3JlcXVpcmUoZ2VtX2NsYXNzX2Nh bl9zdG9yZV9kd29yZChmZCwKKwkJCQkJCSAgICAgSTkxNV9FTkdJTkVfQ0xBU1NfUkVOREVSKSk7 CiAJfQogCiAJaWd0X3N1YnRlc3RfZ3JvdXAgewpAQCAtNDg5LDE0ICs0NzcsMTMgQEAgaWd0X21h aW4KIAkJCWlndF9mb3JrX2hhbmdfZGV0ZWN0b3IoZmQpOwogCQl9CiAKLQkJZm9yIChlID0gaW50 ZWxfZXhlY3V0aW9uX2VuZ2luZXM7IGUtPm5hbWU7IGUrKykgeworCQlfX2Zvcl9lYWNoX3BoeXNp Y2FsX2VuZ2luZShmZCwgZSkgewogCQkJaWd0X3N1YnRlc3RfZ3JvdXAgewogCQkJCWlndF9zdWJ0 ZXN0X2YoIiVzYnVzeS0lcyIsCi0JCQkJCSAgICAgIGUtPmV4ZWNfaWQgPT0gMCA/ICJiYXNpYy0i IDogIiIsCi0JCQkJCSAgICAgIGUtPm5hbWUpIHsKLQkJCQkJaWd0X3JlcXVpcmUoZ2VtX2hhc19y aW5nKGZkLCBlLT5leGVjX2lkIHwgZS0+ZmxhZ3MpKTsKKwkJCQkJICAgICAgZS0+Y2xhc3MgPT0g STkxNV9FTkdJTkVfQ0xBU1NfUkVOREVSCisJCQkJCSAgICAgID8gImJhc2ljLSIgOiAiIiwgZS0+ bmFtZSkgewogCQkJCQlnZW1fcXVpZXNjZW50X2dwdShmZCk7Ci0JCQkJCWJhc2ljKGZkLCBlLT5l eGVjX2lkIHwgZS0+ZmxhZ3MsIDApOworCQkJCQliYXNpYyhmZCwgZSwgZmFsc2UpOwogCQkJCX0K IAkJCX0KIAkJfQpAQCAtNTA3LDMxICs0OTQsMjIgQEAgaWd0X21haW4KIAkJCQlnZW1fcmVxdWly ZV9tbWFwX3djKGZkKTsKIAkJCX0KIAotCQkJZm9yIChlID0gaW50ZWxfZXhlY3V0aW9uX2VuZ2lu ZXM7IGUtPm5hbWU7IGUrKykgewotCQkJCS8qIGRlZmF1bHQgZXhlYy1pZCBpcyBwdXJlbHkgc3lt Ym9saWMgKi8KLQkJCQlpZiAoZS0+ZXhlY19pZCA9PSAwKQotCQkJCQljb250aW51ZTsKLQorCQkJ X19mb3JfZWFjaF9waHlzaWNhbF9lbmdpbmUoZmQsIGUpIHsKIAkJCQlpZ3Rfc3VidGVzdF9mKCJl eHRlbmRlZC0lcyIsIGUtPm5hbWUpIHsKLQkJCQkJaWd0X3JlcXVpcmUoZ2VtX3JpbmdfaGFzX3Bo eXNpY2FsX2VuZ2luZShmZCwgZS0+ZXhlY19pZCB8IGUtPmZsYWdzKSk7Ci0JCQkJCWlndF9yZXF1 aXJlKGdlbV9jYW5fc3RvcmVfZHdvcmQoZmQsIGUtPmV4ZWNfaWQgfCBlLT5mbGFncykpOworCQkJ CQlpZ3RfcmVxdWlyZShnZW1fY2xhc3NfY2FuX3N0b3JlX2R3b3JkKGZkLAorCQkJCQkJICAgICBl LT5jbGFzcykpOwogCQkJCQlnZW1fcXVpZXNjZW50X2dwdShmZCk7Ci0JCQkJCW9uZShmZCwgZS0+ ZXhlY19pZCB8IGUtPmZsYWdzLCAwKTsKKwkJCQkJb25lKGZkLCBlLCAwKTsKIAkJCQkJZ2VtX3F1 aWVzY2VudF9ncHUoZmQpOwogCQkJCX0KIAkJCX0KIAotCQkJZm9yIChlID0gaW50ZWxfZXhlY3V0 aW9uX2VuZ2luZXM7IGUtPm5hbWU7IGUrKykgewotCQkJCS8qIGRlZmF1bHQgZXhlYy1pZCBpcyBw dXJlbHkgc3ltYm9saWMgKi8KLQkJCQlpZiAoZS0+ZXhlY19pZCA9PSAwKQotCQkJCQljb250aW51 ZTsKLQorCQkJX19mb3JfZWFjaF9waHlzaWNhbF9lbmdpbmUoZmQsIGUpIHsKIAkJCQlpZ3Rfc3Vi dGVzdF9mKCJleHRlbmRlZC1wYXJhbGxlbC0lcyIsIGUtPm5hbWUpIHsKLQkJCQkJaWd0X3JlcXVp cmUoZ2VtX3JpbmdfaGFzX3BoeXNpY2FsX2VuZ2luZShmZCwgZS0+ZXhlY19pZCB8IGUtPmZsYWdz KSk7Ci0JCQkJCWlndF9yZXF1aXJlKGdlbV9jYW5fc3RvcmVfZHdvcmQoZmQsIGUtPmV4ZWNfaWQg fCBlLT5mbGFncykpOworCQkJCQlpZ3RfcmVxdWlyZShnZW1fY2xhc3NfY2FuX3N0b3JlX2R3b3Jk KGZkLCBlLT5jbGFzcykpOwogCiAJCQkJCWdlbV9xdWllc2NlbnRfZ3B1KGZkKTsKLQkJCQkJb25l KGZkLCBlLT5leGVjX2lkIHwgZS0+ZmxhZ3MsIFBBUkFMTEVMKTsKKwkJCQkJb25lKGZkLCBlLCBQ QVJBTExFTCk7CiAJCQkJCWdlbV9xdWllc2NlbnRfZ3B1KGZkKTsKIAkJCQl9CiAJCQl9CkBAIC01 NDMsMTMgKzUyMSw5IEBAIGlndF9tYWluCiAJCQkJaWd0X3JlcXVpcmUoaGFzX3NlbWFwaG9yZXMo ZmQpKTsKIAkJCX0KIAotCQkJZm9yIChlID0gaW50ZWxfZXhlY3V0aW9uX2VuZ2luZXM7IGUtPm5h bWU7IGUrKykgewotCQkJCS8qIGRlZmF1bHQgZXhlYy1pZCBpcyBwdXJlbHkgc3ltYm9saWMgKi8K LQkJCQlpZiAoZS0+ZXhlY19pZCA9PSAwKQotCQkJCQljb250aW51ZTsKLQorCQkJX19mb3JfZWFj aF9waHlzaWNhbF9lbmdpbmUoZmQsIGUpIHsKIAkJCQlpZ3Rfc3VidGVzdF9mKCJleHRlbmRlZC1z ZW1hcGhvcmUtJXMiLCBlLT5uYW1lKQotCQkJCQlzZW1hcGhvcmUoZmQsIGUtPmV4ZWNfaWQsIGUt PmZsYWdzKTsKKwkJCQkJc2VtYXBob3JlKGZkLCBlKTsKIAkJCX0KIAkJfQogCkBAIC01NjgsMTQg KzU0MiwxMyBAQCBpZ3RfbWFpbgogCQkJaGFuZyA9IGlndF9hbGxvd19oYW5nKGZkLCAwLCAwKTsK IAkJfQogCi0JCWZvciAoZSA9IGludGVsX2V4ZWN1dGlvbl9lbmdpbmVzOyBlLT5uYW1lOyBlKysp IHsKKwkJX19mb3JfZWFjaF9waHlzaWNhbF9lbmdpbmUoZmQsIGUpIHsKIAkJCWlndF9zdWJ0ZXN0 X2YoIiVzaGFuZy0lcyIsCi0JCQkJICAgICAgZS0+ZXhlY19pZCA9PSAwID8gImJhc2ljLSIgOiAi IiwKLQkJCQkgICAgICBlLT5uYW1lKSB7CisJCQkJICAgICAgZS0+Y2xhc3MgPT0gSTkxNV9FTkdJ TkVfQ0xBU1NfUkVOREVSCisJCQkJICAgICAgPyAiYmFzaWMtIiA6ICIiLCBlLT5uYW1lKSB7CiAJ CQkJaWd0X3NraXBfb25fc2ltdWxhdGlvbigpOwotCQkJCWlndF9yZXF1aXJlKGdlbV9oYXNfcmlu ZyhmZCwgZS0+ZXhlY19pZCB8IGUtPmZsYWdzKSk7CiAJCQkJZ2VtX3F1aWVzY2VudF9ncHUoZmQp OwotCQkJCWJhc2ljKGZkLCBlLT5leGVjX2lkIHwgZS0+ZmxhZ3MsIEhBTkcpOworCQkJCWJhc2lj KGZkLCBlLCB0cnVlKTsKIAkJCX0KIAkJfQogCkBAIC01ODUsMTggKzU1OCwxMyBAQCBpZ3RfbWFp bgogCQkJCWdlbV9yZXF1aXJlX21tYXBfd2MoZmQpOwogCQkJfQogCi0JCQlmb3IgKGUgPSBpbnRl bF9leGVjdXRpb25fZW5naW5lczsgZS0+bmFtZTsgZSsrKSB7Ci0JCQkJLyogZGVmYXVsdCBleGVj LWlkIGlzIHB1cmVseSBzeW1ib2xpYyAqLwotCQkJCWlmIChlLT5leGVjX2lkID09IDApCi0JCQkJ CWNvbnRpbnVlOwotCisJCQlfX2Zvcl9lYWNoX3BoeXNpY2FsX2VuZ2luZShmZCwgZSkgewogCQkJ CWlndF9zdWJ0ZXN0X2YoImV4dGVuZGVkLWhhbmctJXMiLCBlLT5uYW1lKSB7CiAJCQkJCWlndF9z a2lwX29uX3NpbXVsYXRpb24oKTsKLQkJCQkJaWd0X3JlcXVpcmUoZ2VtX3JpbmdfaGFzX3BoeXNp Y2FsX2VuZ2luZShmZCwgZS0+ZXhlY19pZCB8IGUtPmZsYWdzKSk7Ci0JCQkJCWlndF9yZXF1aXJl KGdlbV9jYW5fc3RvcmVfZHdvcmQoZmQsIGUtPmV4ZWNfaWQgfCBlLT5mbGFncykpOworCQkJCQlp Z3RfcmVxdWlyZShnZW1fY2xhc3NfY2FuX3N0b3JlX2R3b3JkKGZkLCBlLT5jbGFzcykpOwogCiAJ CQkJCWdlbV9xdWllc2NlbnRfZ3B1KGZkKTsKLQkJCQkJb25lKGZkLCBlLT5leGVjX2lkIHwgZS0+ ZmxhZ3MsIEhBTkcpOworCQkJCQlvbmUoZmQsIGUsIEhBTkcpOwogCQkJCQlnZW1fcXVpZXNjZW50 X2dwdShmZCk7CiAJCQkJfQogCQkJfQotLSAKMi4yMC4xCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2lndC1kZXY=