From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Tvrtko Ursulin Date: Wed, 22 May 2019 14:50:57 +0100 Message-Id: <20190522135104.26930-8-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: [igt-dev] [CI i-g-t 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@lists.freedesktop.org Cc: Intel-gfx@lists.freedesktop.org List-ID: RnJvbTogQW5kaSBTaHl0aSA8YW5kaS5zaHl0aUBpbnRlbC5jb20+CgpSZXBsYWNlIHRoZSBsZWdh Y3kgZm9yX2VhY2hfZW5naW5lKiBkZWZpbmVzIHdpdGggdGhlIG9uZXMKaW1wbGVtZW50ZWQgaW4g dGhlIGdlbV9lbmdpbmVfdG9wb2xvZ3kgbGlicmFyeS4KClNpZ25lZC1vZmYtYnk6IEFuZGkgU2h5 dGkgPGFuZGkuc2h5dGlAaW50ZWwuY29tPgpDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13 aWxzb24uY28udWs+ClJldmlld2VkLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5A aW50ZWwuY29tPgotLS0KIHRlc3RzL2k5MTUvZ2VtX2J1c3kuYyB8IDEyOCArKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0OCBpbnNlcnRp b25zKCspLCA4MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90ZXN0cy9pOTE1L2dlbV9idXN5 LmMgYi90ZXN0cy9pOTE1L2dlbV9idXN5LmMKaW5kZXggYzEyMGZhZjEwOTgzLi4yODcyZTdiN2Jl NjIgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2k5MTUvZ2VtX2J1c3kuYworKysgYi90ZXN0cy9pOTE1L2dl bV9idXN5LmMKQEAgLTY2LDIyICs2Niw5IEBAIHN0YXRpYyB2b2lkIF9fZ2VtX2J1c3koaW50IGZk LAogCSpyZWFkID0gYnVzeS5idXN5ID4+IDE2OwogfQogCi1zdGF0aWMgdWludDMyX3QgcmluZ190 b19jbGFzcyh1bnNpZ25lZCBpbnQgcmluZykKLXsKLQl1aW50MzJfdCBjbGFzc1tdID0gewotCQlb STkxNV9FWEVDX0RFRkFVTFRdID0gSTkxNV9FTkdJTkVfQ0xBU1NfUkVOREVSLAotCQlbSTkxNV9F WEVDX1JFTkRFUl0gID0gSTkxNV9FTkdJTkVfQ0xBU1NfUkVOREVSLAotCQlbSTkxNV9FWEVDX0JM VF0gICAgID0gSTkxNV9FTkdJTkVfQ0xBU1NfQ09QWSwKLQkJW0k5MTVfRVhFQ19CU0RdICAgICA9 IEk5MTVfRU5HSU5FX0NMQVNTX1ZJREVPLAotCQlbSTkxNV9FWEVDX1ZFQk9YXSAgID0gSTkxNV9F TkdJTkVfQ0xBU1NfVklERU9fRU5IQU5DRSwKLQl9OwotCWlndF9hc3NlcnQocmluZyA8IEFSUkFZ X1NJWkUoY2xhc3MpKTsKLQlyZXR1cm4gY2xhc3NbcmluZ107Ci19Ci0KIHN0YXRpYyBib29sIGV4 ZWNfbm9vcChpbnQgZmQsCiAJCSAgICAgIHVpbnQzMl90ICpoYW5kbGVzLAotCQkgICAgICB1bnNp Z25lZCByaW5nLAorCQkgICAgICB1bnNpZ25lZCBmbGFncywKIAkJICAgICAgYm9vbCB3cml0ZSkK IHsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyIGV4ZWNidWY7CkBAIC05Nyw5ICs4 NCw5IEBAIHN0YXRpYyBib29sIGV4ZWNfbm9vcChpbnQgZmQsCiAJbWVtc2V0KCZleGVjYnVmLCAw LCBzaXplb2YoZXhlY2J1ZikpOwogCWV4ZWNidWYuYnVmZmVyc19wdHIgPSB0b191c2VyX3BvaW50 ZXIoZXhlYyk7CiAJZXhlY2J1Zi5idWZmZXJfY291bnQgPSAzOwotCWV4ZWNidWYuZmxhZ3MgPSBy aW5nOwotCWlndF9kZWJ1ZygiUXVldWluZyBoYW5kbGUgZm9yICVzIG9uIHJpbmcgJWRcbiIsCi0J CSAgd3JpdGUgPyAid3JpdGluZyIgOiAicmVhZGluZyIsIHJpbmcgJiAweDcpOworCWV4ZWNidWYu ZmxhZ3MgPSBmbGFnczsKKwlpZ3RfZGVidWcoIlF1ZXVpbmcgaGFuZGxlIGZvciAlcyBvbiBlbmdp bmUgJWRcbiIsCisJCSAgd3JpdGUgPyAid3JpdGluZyIgOiAicmVhZGluZyIsIGZsYWdzKTsKIAly ZXR1cm4gX19nZW1fZXhlY2J1ZihmZCwgJmV4ZWNidWYpID09IDA7CiB9CiAKQEAgLTExMCwxOCAr OTcsMTcgQEAgc3RhdGljIGJvb2wgc3RpbGxfYnVzeShpbnQgZmQsIHVpbnQzMl90IGhhbmRsZSkK IAlyZXR1cm4gd3JpdGU7CiB9CiAKLXN0YXRpYyB2b2lkIHNlbWFwaG9yZShpbnQgZmQsIHVuc2ln bmVkIHJpbmcsIHVpbnQzMl90IGZsYWdzKQorc3RhdGljIHZvaWQgc2VtYXBob3JlKGludCBmZCwg Y29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplKQogeworCXN0cnVjdCBpbnRl bF9leGVjdXRpb25fZW5naW5lMiAqX19lOwogCXVpbnQzMl90IGJiZSA9IE1JX0JBVENIX0JVRkZF Ul9FTkQ7Ci0JY29uc3QgdW5zaWduZWQgdWFiaSA9IHJpbmdfdG9fY2xhc3MocmluZyAmIDYzKTsK Kwljb25zdCB1bnNpZ25lZCB1YWJpID0gZS0+Y2xhc3M7CiAJaWd0X3NwaW5fdCAqc3BpbjsKIAl1 aW50MzJfdCBoYW5kbGVbM107CiAJdWludDMyX3QgcmVhZCwgd3JpdGU7CiAJdWludDMyX3QgYWN0 aXZlOwogCXVuc2lnbmVkIGk7CiAKLQlnZW1fcmVxdWlyZV9yaW5nKGZkLCByaW5nIHwgZmxhZ3Mp OwotCiAJaGFuZGxlW1RFU1RdID0gZ2VtX2NyZWF0ZShmZCwgNDA5Nik7CiAJaGFuZGxlW0JBVENI XSA9IGdlbV9jcmVhdGUoZmQsIDQwOTYpOwogCWdlbV93cml0ZShmZCwgaGFuZGxlW0JBVENIXSwg MCwgJmJiZSwgc2l6ZW9mKGJiZSkpOwpAQCAtMTI5LDE4ICsxMTUsMTggQEAgc3RhdGljIHZvaWQg c2VtYXBob3JlKGludCBmZCwgdW5zaWduZWQgcmluZywgdWludDMyX3QgZmxhZ3MpCiAJLyogQ3Jl YXRlIGEgbG9uZyBydW5uaW5nIGJhdGNoIHdoaWNoIHdlIGNhbiB1c2UgdG8gaG9nIHRoZSBHUFUg Ki8KIAloYW5kbGVbQlVTWV0gPSBnZW1fY3JlYXRlKGZkLCA0MDk2KTsKIAlzcGluID0gaWd0X3Nw aW5fbmV3KGZkLAotCQkJICAgIC5lbmdpbmUgPSByaW5nLAorCQkJICAgIC5lbmdpbmUgPSBlLT5m bGFncywKIAkJCSAgICAuZGVwZW5kZW5jeSA9IGhhbmRsZVtCVVNZXSk7CiAKIAkvKiBRdWV1ZSBh IGJhdGNoIGFmdGVyIHRoZSBidXN5LCBpdCBzaG91bGQgYmxvY2sgYW5kIHJlbWFpbiAiYnVzeSIg Ki8KLQlpZ3RfYXNzZXJ0KGV4ZWNfbm9vcChmZCwgaGFuZGxlLCByaW5nIHwgZmxhZ3MsIGZhbHNl KSk7CisJaWd0X2Fzc2VydChleGVjX25vb3AoZmQsIGhhbmRsZSwgZS0+ZmxhZ3MsIGZhbHNlKSk7 CiAJaWd0X2Fzc2VydChzdGlsbF9idXN5KGZkLCBoYW5kbGVbQlVTWV0pKTsKIAlfX2dlbV9idXN5 KGZkLCBoYW5kbGVbVEVTVF0sICZyZWFkLCAmd3JpdGUpOwogCWlndF9hc3NlcnRfZXEocmVhZCwg MSA8PCB1YWJpKTsKIAlpZ3RfYXNzZXJ0X2VxKHdyaXRlLCAwKTsKIAogCS8qIFJlcXVldWUgd2l0 aCBhIHdyaXRlICovCi0JaWd0X2Fzc2VydChleGVjX25vb3AoZmQsIGhhbmRsZSwgcmluZyB8IGZs YWdzLCB0cnVlKSk7CisJaWd0X2Fzc2VydChleGVjX25vb3AoZmQsIGhhbmRsZSwgZS0+ZmxhZ3Ms IHRydWUpKTsKIAlpZ3RfYXNzZXJ0KHN0aWxsX2J1c3koZmQsIGhhbmRsZVtCVVNZXSkpOwogCV9f Z2VtX2J1c3koZmQsIGhhbmRsZVtURVNUXSwgJnJlYWQsICZ3cml0ZSk7CiAJaWd0X2Fzc2VydF9l cShyZWFkLCAxIDw8IHVhYmkpOwpAQCAtMTQ4LDkgKzEzNCw5IEBAIHN0YXRpYyB2b2lkIHNlbWFw aG9yZShpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIHVpbnQzMl90IGZsYWdzKQogCiAJLyogTm93IHF1 ZXVlIGl0IGZvciBhIHJlYWQgYWNyb3NzIGFsbCBhdmFpbGFibGUgcmluZ3MgKi8KIAlhY3RpdmUg PSAwOwotCWZvciAoaSA9IEk5MTVfRVhFQ19SRU5ERVI7IGkgPD0gSTkxNV9FWEVDX1ZFQk9YOyBp KyspIHsKLQkJaWYgKGV4ZWNfbm9vcChmZCwgaGFuZGxlLCBpIHwgZmxhZ3MsIGZhbHNlKSkKLQkJ CWFjdGl2ZSB8PSAxIDw8IHJpbmdfdG9fY2xhc3MoaSk7CisJX19mb3JfZWFjaF9waHlzaWNhbF9l bmdpbmUoZmQsIF9fZSkgeworCQlpZiAoZXhlY19ub29wKGZkLCBoYW5kbGUsIF9fZS0+ZmxhZ3Ms IGZhbHNlKSkKKwkJCWFjdGl2ZSB8PSAxIDw8IF9fZS0+Y2xhc3M7CiAJfQogCWlndF9hc3NlcnQo c3RpbGxfYnVzeShmZCwgaGFuZGxlW0JVU1ldKSk7CiAJX19nZW1fYnVzeShmZCwgaGFuZGxlW1RF U1RdLCAmcmVhZCwgJndyaXRlKTsKQEAgLTE3Myw3ICsxNTksNyBAQCBzdGF0aWMgdm9pZCBzZW1h cGhvcmUoaW50IGZkLCB1bnNpZ25lZCByaW5nLCB1aW50MzJfdCBmbGFncykKIAogI2RlZmluZSBQ QVJBTExFTCAxCiAjZGVmaW5lIEhBTkcgMgotc3RhdGljIHZvaWQgb25lKGludCBmZCwgdW5zaWdu ZWQgcmluZywgdW5zaWduZWQgdGVzdF9mbGFncykKK3N0YXRpYyB2b2lkIG9uZShpbnQgZmQsIGNv bnN0IHN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAqZSwgdW5zaWduZWQgdGVzdF9mbGFn cykKIHsKIAljb25zdCBpbnQgZ2VuID0gaW50ZWxfZ2VuKGludGVsX2dldF9kcm1fZGV2aWQoZmQp KTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNfb2JqZWN0MiBvYmpbMl07CkBAIC0xODIsNyAr MTY4LDcgQEAgc3RhdGljIHZvaWQgb25lKGludCBmZCwgdW5zaWduZWQgcmluZywgdW5zaWduZWQg dGVzdF9mbGFncykKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlbG9jYXRpb25fZW50cnkgc3RvcmVb MTAyNCsxXTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyIGV4ZWNidWY7CiAJdW5z aWduZWQgc2l6ZSA9IEFMSUdOKEFSUkFZX1NJWkUoc3RvcmUpKjE2ICsgNCwgNDA5Nik7Ci0JY29u c3QgdW5zaWduZWQgdWFiaSA9IHJpbmdfdG9fY2xhc3MocmluZyAmIDYzKTsKKwljb25zdCB1bnNp Z25lZCB1YWJpID0gZS0+Y2xhc3M7CiAJdWludDMyX3QgcmVhZFsyXSwgd3JpdGVbMl07CiAJc3Ry dWN0IHRpbWVzcGVjIHR2OwogCXVpbnQzMl90ICpiYXRjaCwgKmJiZTsKQEAgLTE5MSw3ICsxNzcs NyBAQCBzdGF0aWMgdm9pZCBvbmUoaW50IGZkLCB1bnNpZ25lZCByaW5nLCB1bnNpZ25lZCB0ZXN0 X2ZsYWdzKQogCW1lbXNldCgmZXhlY2J1ZiwgMCwgc2l6ZW9mKGV4ZWNidWYpKTsKIAlleGVjYnVm LmJ1ZmZlcnNfcHRyID0gdG9fdXNlcl9wb2ludGVyKG9iaik7CiAJZXhlY2J1Zi5idWZmZXJfY291 bnQgPSAyOwotCWV4ZWNidWYuZmxhZ3MgPSByaW5nOworCWV4ZWNidWYuZmxhZ3MgPSBlLT5mbGFn czsKIAlpZiAoZ2VuIDwgNikKIAkJZXhlY2J1Zi5mbGFncyB8PSBJOTE1X0VYRUNfU0VDVVJFOwog CkBAIC0yNjMsMTcgKzI0OSwxOCBAQCBzdGF0aWMgdm9pZCBvbmUoaW50IGZkLCB1bnNpZ25lZCBy aW5nLCB1bnNpZ25lZCB0ZXN0X2ZsYWdzKQogCV9fZ2VtX2J1c3koZmQsIG9ialtCQVRDSF0uaGFu ZGxlLCAmcmVhZFtCQVRDSF0sICZ3cml0ZVtCQVRDSF0pOwogCiAJaWYgKHRlc3RfZmxhZ3MgJiBQ QVJBTExFTCkgewotCQl1bnNpZ25lZCBvdGhlcjsKKwkJc3RydWN0IGludGVsX2V4ZWN1dGlvbl9l bmdpbmUyICplMjsKIAotCQlmb3JfZWFjaF9waHlzaWNhbF9lbmdpbmUoZmQsIG90aGVyKSB7Ci0J CQlpZiAob3RoZXIgPT0gcmluZykKKwkJX19mb3JfZWFjaF9waHlzaWNhbF9lbmdpbmUoZmQsIGUy KSB7CisJCQlpZiAoZTItPmNsYXNzID09IGUtPmNsYXNzICYmCisJCQkgICAgZTItPmluc3RhbmNl ID09IGUtPmluc3RhbmNlKQogCQkJCWNvbnRpbnVlOwogCi0JCQlpZiAoIWdlbV9jYW5fc3RvcmVf ZHdvcmQoZmQsIG90aGVyKSkKKwkJCWlmICghZ2VtX2NsYXNzX2Nhbl9zdG9yZV9kd29yZChmZCwg ZS0+Y2xhc3MpKQogCQkJCWNvbnRpbnVlOwogCi0JCQlpZ3RfZGVidWcoIlRlc3RpbmcgJXMgaW4g cGFyYWxsZWxcbiIsIGVfXy0+bmFtZSk7Ci0JCQlvbmUoZmQsIG90aGVyLCAwKTsKKwkJCWlndF9k ZWJ1ZygiVGVzdGluZyAlcyBpbiBwYXJhbGxlbFxuIiwgZTItPm5hbWUpOworCQkJb25lKGZkLCBl MiwgMCk7CiAJCX0KIAl9CiAKQEAgLTQzOSwxMSArNDI2LDExIEBAIHN0YXRpYyBib29sIGhhc19l eHRlbmRlZF9idXN5X2lvY3RsKGludCBmZCkKIAlyZXR1cm4gcmVhZCAhPSAwOwogfQogCi1zdGF0 aWMgdm9pZCBiYXNpYyhpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIHVuc2lnbmVkIGZsYWdzKQorc3Rh dGljIHZvaWQgYmFzaWMoaW50IGZkLCBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2lu ZTIgKmUsIHVuc2lnbmVkIGZsYWdzKQogewogCWlndF9zcGluX3QgKnNwaW4gPQogCQlpZ3Rfc3Bp bl9uZXcoZmQsCi0JCQkgICAgIC5lbmdpbmUgPSByaW5nLAorCQkJICAgICAuZW5naW5lID0gZS0+ ZmxhZ3MsCiAJCQkgICAgIC5mbGFncyA9IElHVF9TUElOX05PX1BSRUVNUFRJT04pOwogCXN0cnVj dCB0aW1lc3BlYyB0djsKIAlpbnQgdGltZW91dDsKQEAgLTQ3NSwxMyArNDYyLDE0IEBAIHN0YXRp YyB2b2lkIGJhc2ljKGludCBmZCwgdW5zaWduZWQgcmluZywgdW5zaWduZWQgZmxhZ3MpCiAKIGln dF9tYWluCiB7Ci0JY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUgKmU7CisJY29u c3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplOwogCWludCBmZCA9IC0xOwogCiAJ aWd0X2ZpeHR1cmUgewogCQlmZCA9IGRybV9vcGVuX2RyaXZlcl9tYXN0ZXIoRFJJVkVSX0lOVEVM KTsKIAkJaWd0X3JlcXVpcmVfZ2VtKGZkKTsKLQkJaWd0X3JlcXVpcmUoZ2VtX2Nhbl9zdG9yZV9k d29yZChmZCwgMCkpOworCQlpZ3RfcmVxdWlyZShnZW1fY2xhc3NfY2FuX3N0b3JlX2R3b3JkKGZk LAorCQkJCQkJICAgICBJOTE1X0VOR0lORV9DTEFTU19SRU5ERVIpKTsKIAl9CiAKIAlpZ3Rfc3Vi dGVzdF9ncm91cCB7CkBAIC00ODksMTQgKzQ3NywxMyBAQCBpZ3RfbWFpbgogCQkJaWd0X2Zvcmtf aGFuZ19kZXRlY3RvcihmZCk7CiAJCX0KIAotCQlmb3IgKGUgPSBpbnRlbF9leGVjdXRpb25fZW5n aW5lczsgZS0+bmFtZTsgZSsrKSB7CisJCV9fZm9yX2VhY2hfcGh5c2ljYWxfZW5naW5lKGZkLCBl KSB7CiAJCQlpZ3Rfc3VidGVzdF9ncm91cCB7CiAJCQkJaWd0X3N1YnRlc3RfZigiJXNidXN5LSVz IiwKLQkJCQkJICAgICAgZS0+ZXhlY19pZCA9PSAwID8gImJhc2ljLSIgOiAiIiwKLQkJCQkJICAg ICAgZS0+bmFtZSkgewotCQkJCQlpZ3RfcmVxdWlyZShnZW1faGFzX3JpbmcoZmQsIGUtPmV4ZWNf aWQgfCBlLT5mbGFncykpOworCQkJCQkgICAgICBlLT5jbGFzcyA9PSBJOTE1X0VOR0lORV9DTEFT U19SRU5ERVIKKwkJCQkJICAgICAgPyAiYmFzaWMtIiA6ICIiLCBlLT5uYW1lKSB7CiAJCQkJCWdl bV9xdWllc2NlbnRfZ3B1KGZkKTsKLQkJCQkJYmFzaWMoZmQsIGUtPmV4ZWNfaWQgfCBlLT5mbGFn cywgMCk7CisJCQkJCWJhc2ljKGZkLCBlLCBmYWxzZSk7CiAJCQkJfQogCQkJfQogCQl9CkBAIC01 MDcsMzEgKzQ5NCwyMiBAQCBpZ3RfbWFpbgogCQkJCWdlbV9yZXF1aXJlX21tYXBfd2MoZmQpOwog CQkJfQogCi0JCQlmb3IgKGUgPSBpbnRlbF9leGVjdXRpb25fZW5naW5lczsgZS0+bmFtZTsgZSsr KSB7Ci0JCQkJLyogZGVmYXVsdCBleGVjLWlkIGlzIHB1cmVseSBzeW1ib2xpYyAqLwotCQkJCWlm IChlLT5leGVjX2lkID09IDApCi0JCQkJCWNvbnRpbnVlOwotCisJCQlfX2Zvcl9lYWNoX3BoeXNp Y2FsX2VuZ2luZShmZCwgZSkgewogCQkJCWlndF9zdWJ0ZXN0X2YoImV4dGVuZGVkLSVzIiwgZS0+ bmFtZSkgewotCQkJCQlpZ3RfcmVxdWlyZShnZW1fcmluZ19oYXNfcGh5c2ljYWxfZW5naW5lKGZk LCBlLT5leGVjX2lkIHwgZS0+ZmxhZ3MpKTsKLQkJCQkJaWd0X3JlcXVpcmUoZ2VtX2Nhbl9zdG9y ZV9kd29yZChmZCwgZS0+ZXhlY19pZCB8IGUtPmZsYWdzKSk7CisJCQkJCWlndF9yZXF1aXJlKGdl bV9jbGFzc19jYW5fc3RvcmVfZHdvcmQoZmQsCisJCQkJCQkgICAgIGUtPmNsYXNzKSk7CiAJCQkJ CWdlbV9xdWllc2NlbnRfZ3B1KGZkKTsKLQkJCQkJb25lKGZkLCBlLT5leGVjX2lkIHwgZS0+Zmxh Z3MsIDApOworCQkJCQlvbmUoZmQsIGUsIDApOwogCQkJCQlnZW1fcXVpZXNjZW50X2dwdShmZCk7 CiAJCQkJfQogCQkJfQogCi0JCQlmb3IgKGUgPSBpbnRlbF9leGVjdXRpb25fZW5naW5lczsgZS0+ bmFtZTsgZSsrKSB7Ci0JCQkJLyogZGVmYXVsdCBleGVjLWlkIGlzIHB1cmVseSBzeW1ib2xpYyAq LwotCQkJCWlmIChlLT5leGVjX2lkID09IDApCi0JCQkJCWNvbnRpbnVlOwotCisJCQlfX2Zvcl9l YWNoX3BoeXNpY2FsX2VuZ2luZShmZCwgZSkgewogCQkJCWlndF9zdWJ0ZXN0X2YoImV4dGVuZGVk LXBhcmFsbGVsLSVzIiwgZS0+bmFtZSkgewotCQkJCQlpZ3RfcmVxdWlyZShnZW1fcmluZ19oYXNf cGh5c2ljYWxfZW5naW5lKGZkLCBlLT5leGVjX2lkIHwgZS0+ZmxhZ3MpKTsKLQkJCQkJaWd0X3Jl cXVpcmUoZ2VtX2Nhbl9zdG9yZV9kd29yZChmZCwgZS0+ZXhlY19pZCB8IGUtPmZsYWdzKSk7CisJ CQkJCWlndF9yZXF1aXJlKGdlbV9jbGFzc19jYW5fc3RvcmVfZHdvcmQoZmQsIGUtPmNsYXNzKSk7 CiAKIAkJCQkJZ2VtX3F1aWVzY2VudF9ncHUoZmQpOwotCQkJCQlvbmUoZmQsIGUtPmV4ZWNfaWQg fCBlLT5mbGFncywgUEFSQUxMRUwpOworCQkJCQlvbmUoZmQsIGUsIFBBUkFMTEVMKTsKIAkJCQkJ Z2VtX3F1aWVzY2VudF9ncHUoZmQpOwogCQkJCX0KIAkJCX0KQEAgLTU0MywxMyArNTIxLDkgQEAg aWd0X21haW4KIAkJCQlpZ3RfcmVxdWlyZShoYXNfc2VtYXBob3JlcyhmZCkpOwogCQkJfQogCi0J CQlmb3IgKGUgPSBpbnRlbF9leGVjdXRpb25fZW5naW5lczsgZS0+bmFtZTsgZSsrKSB7Ci0JCQkJ LyogZGVmYXVsdCBleGVjLWlkIGlzIHB1cmVseSBzeW1ib2xpYyAqLwotCQkJCWlmIChlLT5leGVj X2lkID09IDApCi0JCQkJCWNvbnRpbnVlOwotCisJCQlfX2Zvcl9lYWNoX3BoeXNpY2FsX2VuZ2lu ZShmZCwgZSkgewogCQkJCWlndF9zdWJ0ZXN0X2YoImV4dGVuZGVkLXNlbWFwaG9yZS0lcyIsIGUt Pm5hbWUpCi0JCQkJCXNlbWFwaG9yZShmZCwgZS0+ZXhlY19pZCwgZS0+ZmxhZ3MpOworCQkJCQlz ZW1hcGhvcmUoZmQsIGUpOwogCQkJfQogCQl9CiAKQEAgLTU2OCwxNCArNTQyLDEzIEBAIGlndF9t YWluCiAJCQloYW5nID0gaWd0X2FsbG93X2hhbmcoZmQsIDAsIDApOwogCQl9CiAKLQkJZm9yIChl ID0gaW50ZWxfZXhlY3V0aW9uX2VuZ2luZXM7IGUtPm5hbWU7IGUrKykgeworCQlfX2Zvcl9lYWNo X3BoeXNpY2FsX2VuZ2luZShmZCwgZSkgewogCQkJaWd0X3N1YnRlc3RfZigiJXNoYW5nLSVzIiwK LQkJCQkgICAgICBlLT5leGVjX2lkID09IDAgPyAiYmFzaWMtIiA6ICIiLAotCQkJCSAgICAgIGUt Pm5hbWUpIHsKKwkJCQkgICAgICBlLT5jbGFzcyA9PSBJOTE1X0VOR0lORV9DTEFTU19SRU5ERVIK KwkJCQkgICAgICA/ICJiYXNpYy0iIDogIiIsIGUtPm5hbWUpIHsKIAkJCQlpZ3Rfc2tpcF9vbl9z aW11bGF0aW9uKCk7Ci0JCQkJaWd0X3JlcXVpcmUoZ2VtX2hhc19yaW5nKGZkLCBlLT5leGVjX2lk IHwgZS0+ZmxhZ3MpKTsKIAkJCQlnZW1fcXVpZXNjZW50X2dwdShmZCk7Ci0JCQkJYmFzaWMoZmQs IGUtPmV4ZWNfaWQgfCBlLT5mbGFncywgSEFORyk7CisJCQkJYmFzaWMoZmQsIGUsIHRydWUpOwog CQkJfQogCQl9CiAKQEAgLTU4NSwxOCArNTU4LDEzIEBAIGlndF9tYWluCiAJCQkJZ2VtX3JlcXVp cmVfbW1hcF93YyhmZCk7CiAJCQl9CiAKLQkJCWZvciAoZSA9IGludGVsX2V4ZWN1dGlvbl9lbmdp bmVzOyBlLT5uYW1lOyBlKyspIHsKLQkJCQkvKiBkZWZhdWx0IGV4ZWMtaWQgaXMgcHVyZWx5IHN5 bWJvbGljICovCi0JCQkJaWYgKGUtPmV4ZWNfaWQgPT0gMCkKLQkJCQkJY29udGludWU7Ci0KKwkJ CV9fZm9yX2VhY2hfcGh5c2ljYWxfZW5naW5lKGZkLCBlKSB7CiAJCQkJaWd0X3N1YnRlc3RfZigi ZXh0ZW5kZWQtaGFuZy0lcyIsIGUtPm5hbWUpIHsKIAkJCQkJaWd0X3NraXBfb25fc2ltdWxhdGlv bigpOwotCQkJCQlpZ3RfcmVxdWlyZShnZW1fcmluZ19oYXNfcGh5c2ljYWxfZW5naW5lKGZkLCBl LT5leGVjX2lkIHwgZS0+ZmxhZ3MpKTsKLQkJCQkJaWd0X3JlcXVpcmUoZ2VtX2Nhbl9zdG9yZV9k d29yZChmZCwgZS0+ZXhlY19pZCB8IGUtPmZsYWdzKSk7CisJCQkJCWlndF9yZXF1aXJlKGdlbV9j bGFzc19jYW5fc3RvcmVfZHdvcmQoZmQsIGUtPmNsYXNzKSk7CiAKIAkJCQkJZ2VtX3F1aWVzY2Vu dF9ncHUoZmQpOwotCQkJCQlvbmUoZmQsIGUtPmV4ZWNfaWQgfCBlLT5mbGFncywgSEFORyk7CisJ CQkJCW9uZShmZCwgZSwgSEFORyk7CiAJCQkJCWdlbV9xdWllc2NlbnRfZ3B1KGZkKTsKIAkJCQl9 CiAJCQl9Ci0tIAoyLjIwLjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRl dg==