From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from 3.mo68.mail-out.ovh.net (3.mo68.mail-out.ovh.net [46.105.58.60]) by gabe.freedesktop.org (Postfix) with ESMTPS id 843BA89338 for ; Mon, 13 May 2019 00:46:24 +0000 (UTC) Received: from player691.ha.ovh.net (unknown [10.109.146.163]) by mo68.mail-out.ovh.net (Postfix) with ESMTP id BF1BE122CC5 for ; Mon, 13 May 2019 02:46:21 +0200 (CEST) From: Andi Shyti Date: Mon, 13 May 2019 03:45:01 +0300 Message-Id: <20190513004508.8042-8-andi@etezian.org> In-Reply-To: <20190513004508.8042-1-andi@etezian.org> References: <20190513004508.8042-1-andi@etezian.org> MIME-Version: 1.0 Subject: [igt-dev] [PATCH v23 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: Andi Shyti List-ID: RnJvbTogQW5kaSBTaHl0aSA8YW5kaS5zaHl0aUBpbnRlbC5jb20+CgpSZXBsYWNlIHRoZSBsZWdh Y3kgZm9yX2VhY2hfZW5naW5lKiBkZWZpbmVzIHdpdGggdGhlIG9uZXMKaW1wbGVtZW50ZWQgaW4g dGhlIGdlbV9lbmdpbmVfdG9wb2xvZ3kgbGlicmFyeS4KClNpZ25lZC1vZmYtYnk6IEFuZGkgU2h5 dGkgPGFuZGkuc2h5dGlAaW50ZWwuY29tPgpDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13 aWxzb24uY28udWs+Ci0tLQogdGVzdHMvaTkxNS9nZW1fYnVzeS5jIHwgMTMzICsrKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDUxIGluc2Vy dGlvbnMoKyksIDgyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUvZ2VtX2J1 c3kuYyBiL3Rlc3RzL2k5MTUvZ2VtX2J1c3kuYwppbmRleCBjMTIwZmFmMTA5ODMuLmRmMjlkNTA2 MjAxYSAxMDA2NDQKLS0tIGEvdGVzdHMvaTkxNS9nZW1fYnVzeS5jCisrKyBiL3Rlc3RzL2k5MTUv Z2VtX2J1c3kuYwpAQCAtNjYsMjIgKzY2LDkgQEAgc3RhdGljIHZvaWQgX19nZW1fYnVzeShpbnQg ZmQsCiAJKnJlYWQgPSBidXN5LmJ1c3kgPj4gMTY7CiB9CiAKLXN0YXRpYyB1aW50MzJfdCByaW5n X3RvX2NsYXNzKHVuc2lnbmVkIGludCByaW5nKQotewotCXVpbnQzMl90IGNsYXNzW10gPSB7Ci0J CVtJOTE1X0VYRUNfREVGQVVMVF0gPSBJOTE1X0VOR0lORV9DTEFTU19SRU5ERVIsCi0JCVtJOTE1 X0VYRUNfUkVOREVSXSAgPSBJOTE1X0VOR0lORV9DTEFTU19SRU5ERVIsCi0JCVtJOTE1X0VYRUNf QkxUXSAgICAgPSBJOTE1X0VOR0lORV9DTEFTU19DT1BZLAotCQlbSTkxNV9FWEVDX0JTRF0gICAg ID0gSTkxNV9FTkdJTkVfQ0xBU1NfVklERU8sCi0JCVtJOTE1X0VYRUNfVkVCT1hdICAgPSBJOTE1 X0VOR0lORV9DTEFTU19WSURFT19FTkhBTkNFLAotCX07Ci0JaWd0X2Fzc2VydChyaW5nIDwgQVJS QVlfU0laRShjbGFzcykpOwotCXJldHVybiBjbGFzc1tyaW5nXTsKLX0KLQogc3RhdGljIGJvb2wg ZXhlY19ub29wKGludCBmZCwKIAkJICAgICAgdWludDMyX3QgKmhhbmRsZXMsCi0JCSAgICAgIHVu c2lnbmVkIHJpbmcsCisJCSAgICAgIHVuc2lnbmVkIGZsYWdzLAogCQkgICAgICBib29sIHdyaXRl KQogewogCXN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIgZXhlY2J1ZjsKQEAgLTk3LDkg Kzg0LDkgQEAgc3RhdGljIGJvb2wgZXhlY19ub29wKGludCBmZCwKIAltZW1zZXQoJmV4ZWNidWYs IDAsIHNpemVvZihleGVjYnVmKSk7CiAJZXhlY2J1Zi5idWZmZXJzX3B0ciA9IHRvX3VzZXJfcG9p bnRlcihleGVjKTsKIAlleGVjYnVmLmJ1ZmZlcl9jb3VudCA9IDM7Ci0JZXhlY2J1Zi5mbGFncyA9 IHJpbmc7Ci0JaWd0X2RlYnVnKCJRdWV1aW5nIGhhbmRsZSBmb3IgJXMgb24gcmluZyAlZFxuIiwK LQkJICB3cml0ZSA/ICJ3cml0aW5nIiA6ICJyZWFkaW5nIiwgcmluZyAmIDB4Nyk7CisJZXhlY2J1 Zi5mbGFncyA9IGZsYWdzOworCWlndF9kZWJ1ZygiUXVldWluZyBoYW5kbGUgZm9yICVzIG9uIGVu Z2luZSAlZFxuIiwKKwkJICB3cml0ZSA/ICJ3cml0aW5nIiA6ICJyZWFkaW5nIiwgZmxhZ3MpOwog CXJldHVybiBfX2dlbV9leGVjYnVmKGZkLCAmZXhlY2J1ZikgPT0gMDsKIH0KIApAQCAtMTEwLDE3 ICs5NywxNiBAQCBzdGF0aWMgYm9vbCBzdGlsbF9idXN5KGludCBmZCwgdWludDMyX3QgaGFuZGxl KQogCXJldHVybiB3cml0ZTsKIH0KIAotc3RhdGljIHZvaWQgc2VtYXBob3JlKGludCBmZCwgdW5z aWduZWQgcmluZywgdWludDMyX3QgZmxhZ3MpCitzdGF0aWMgdm9pZCBzZW1hcGhvcmUoaW50IGZk LCBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUpCiB7CiAJdWludDMyX3Qg YmJlID0gTUlfQkFUQ0hfQlVGRkVSX0VORDsKLQljb25zdCB1bnNpZ25lZCB1YWJpID0gcmluZ190 b19jbGFzcyhyaW5nICYgNjMpOworCWNvbnN0IHVuc2lnbmVkIHVhYmkgPSBlLT5jbGFzczsKIAlp Z3Rfc3Bpbl90ICpzcGluOwogCXVpbnQzMl90IGhhbmRsZVszXTsKIAl1aW50MzJfdCByZWFkLCB3 cml0ZTsKIAl1aW50MzJfdCBhY3RpdmU7CiAJdW5zaWduZWQgaTsKLQotCWdlbV9yZXF1aXJlX3Jp bmcoZmQsIHJpbmcgfCBmbGFncyk7CisJc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICpf X2U7CiAKIAloYW5kbGVbVEVTVF0gPSBnZW1fY3JlYXRlKGZkLCA0MDk2KTsKIAloYW5kbGVbQkFU Q0hdID0gZ2VtX2NyZWF0ZShmZCwgNDA5Nik7CkBAIC0xMjksMTggKzExNSwxOCBAQCBzdGF0aWMg dm9pZCBzZW1hcGhvcmUoaW50IGZkLCB1bnNpZ25lZCByaW5nLCB1aW50MzJfdCBmbGFncykKIAkv KiBDcmVhdGUgYSBsb25nIHJ1bm5pbmcgYmF0Y2ggd2hpY2ggd2UgY2FuIHVzZSB0byBob2cgdGhl IEdQVSAqLwogCWhhbmRsZVtCVVNZXSA9IGdlbV9jcmVhdGUoZmQsIDQwOTYpOwogCXNwaW4gPSBp Z3Rfc3Bpbl9uZXcoZmQsCi0JCQkgICAgLmVuZ2luZSA9IHJpbmcsCisJCQkgICAgLmVuZ2luZSA9 IGUtPmZsYWdzLAogCQkJICAgIC5kZXBlbmRlbmN5ID0gaGFuZGxlW0JVU1ldKTsKIAogCS8qIFF1 ZXVlIGEgYmF0Y2ggYWZ0ZXIgdGhlIGJ1c3ksIGl0IHNob3VsZCBibG9jayBhbmQgcmVtYWluICJi dXN5IiAqLwotCWlndF9hc3NlcnQoZXhlY19ub29wKGZkLCBoYW5kbGUsIHJpbmcgfCBmbGFncywg ZmFsc2UpKTsKKwlpZ3RfYXNzZXJ0KGV4ZWNfbm9vcChmZCwgaGFuZGxlLCBlLT5mbGFncywgZmFs c2UpKTsKIAlpZ3RfYXNzZXJ0KHN0aWxsX2J1c3koZmQsIGhhbmRsZVtCVVNZXSkpOwogCV9fZ2Vt X2J1c3koZmQsIGhhbmRsZVtURVNUXSwgJnJlYWQsICZ3cml0ZSk7CiAJaWd0X2Fzc2VydF9lcShy ZWFkLCAxIDw8IHVhYmkpOwogCWlndF9hc3NlcnRfZXEod3JpdGUsIDApOwogCiAJLyogUmVxdWV1 ZSB3aXRoIGEgd3JpdGUgKi8KLQlpZ3RfYXNzZXJ0KGV4ZWNfbm9vcChmZCwgaGFuZGxlLCByaW5n IHwgZmxhZ3MsIHRydWUpKTsKKwlpZ3RfYXNzZXJ0KGV4ZWNfbm9vcChmZCwgaGFuZGxlLCBlLT5m bGFncywgdHJ1ZSkpOwogCWlndF9hc3NlcnQoc3RpbGxfYnVzeShmZCwgaGFuZGxlW0JVU1ldKSk7 CiAJX19nZW1fYnVzeShmZCwgaGFuZGxlW1RFU1RdLCAmcmVhZCwgJndyaXRlKTsKIAlpZ3RfYXNz ZXJ0X2VxKHJlYWQsIDEgPDwgdWFiaSk7CkBAIC0xNDgsMTIgKzEzNCwxMyBAQCBzdGF0aWMgdm9p ZCBzZW1hcGhvcmUoaW50IGZkLCB1bnNpZ25lZCByaW5nLCB1aW50MzJfdCBmbGFncykKIAogCS8q IE5vdyBxdWV1ZSBpdCBmb3IgYSByZWFkIGFjcm9zcyBhbGwgYXZhaWxhYmxlIHJpbmdzICovCiAJ YWN0aXZlID0gMDsKLQlmb3IgKGkgPSBJOTE1X0VYRUNfUkVOREVSOyBpIDw9IEk5MTVfRVhFQ19W RUJPWDsgaSsrKSB7Ci0JCWlmIChleGVjX25vb3AoZmQsIGhhbmRsZSwgaSB8IGZsYWdzLCBmYWxz ZSkpCi0JCQlhY3RpdmUgfD0gMSA8PCByaW5nX3RvX2NsYXNzKGkpOworCV9fZm9yX2VhY2hfcGh5 c2ljYWxfZW5naW5lKGZkLCBfX2UpIHsKKwkJaWYgKGV4ZWNfbm9vcChmZCwgaGFuZGxlLCBfX2Ut PmZsYWdzLCBmYWxzZSkpCisJCQlhY3RpdmUgfD0gMSA8PCBfX2UtPmNsYXNzOwogCX0KIAlpZ3Rf YXNzZXJ0KHN0aWxsX2J1c3koZmQsIGhhbmRsZVtCVVNZXSkpOwogCV9fZ2VtX2J1c3koZmQsIGhh bmRsZVtURVNUXSwgJnJlYWQsICZ3cml0ZSk7CisJcHJpbnRmKCJBTkRJSUlJOiByZWFkID0gMHgl eCwgYWN0aXZlID0gMHgleFxuIiwgcmVhZCwgYWN0aXZlKTsKIAlpZ3RfYXNzZXJ0X2VxKHJlYWQs IGFjdGl2ZSk7CiAJaWd0X2Fzc2VydF9lcSh3cml0ZSwgMSArIHVhYmkpOyAvKiBmcm9tIHRoZSBl YXJsaWVyIHdyaXRlICovCiAKQEAgLTE3Myw3ICsxNjAsNyBAQCBzdGF0aWMgdm9pZCBzZW1hcGhv cmUoaW50IGZkLCB1bnNpZ25lZCByaW5nLCB1aW50MzJfdCBmbGFncykKIAogI2RlZmluZSBQQVJB TExFTCAxCiAjZGVmaW5lIEhBTkcgMgotc3RhdGljIHZvaWQgb25lKGludCBmZCwgdW5zaWduZWQg cmluZywgdW5zaWduZWQgdGVzdF9mbGFncykKK3N0YXRpYyB2b2lkIG9uZShpbnQgZmQsIGNvbnN0 IHN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAqZSwgdW5zaWduZWQgdGVzdF9mbGFncykK IHsKIAljb25zdCBpbnQgZ2VuID0gaW50ZWxfZ2VuKGludGVsX2dldF9kcm1fZGV2aWQoZmQpKTsK IAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNfb2JqZWN0MiBvYmpbMl07CkBAIC0xODIsNyArMTY5 LDcgQEAgc3RhdGljIHZvaWQgb25lKGludCBmZCwgdW5zaWduZWQgcmluZywgdW5zaWduZWQgdGVz dF9mbGFncykKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlbG9jYXRpb25fZW50cnkgc3RvcmVbMTAy NCsxXTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyIGV4ZWNidWY7CiAJdW5zaWdu ZWQgc2l6ZSA9IEFMSUdOKEFSUkFZX1NJWkUoc3RvcmUpKjE2ICsgNCwgNDA5Nik7Ci0JY29uc3Qg dW5zaWduZWQgdWFiaSA9IHJpbmdfdG9fY2xhc3MocmluZyAmIDYzKTsKKwljb25zdCB1bnNpZ25l ZCB1YWJpID0gZS0+Y2xhc3M7CiAJdWludDMyX3QgcmVhZFsyXSwgd3JpdGVbMl07CiAJc3RydWN0 IHRpbWVzcGVjIHR2OwogCXVpbnQzMl90ICpiYXRjaCwgKmJiZTsKQEAgLTE5MSw3ICsxNzgsNyBA QCBzdGF0aWMgdm9pZCBvbmUoaW50IGZkLCB1bnNpZ25lZCByaW5nLCB1bnNpZ25lZCB0ZXN0X2Zs YWdzKQogCW1lbXNldCgmZXhlY2J1ZiwgMCwgc2l6ZW9mKGV4ZWNidWYpKTsKIAlleGVjYnVmLmJ1 ZmZlcnNfcHRyID0gdG9fdXNlcl9wb2ludGVyKG9iaik7CiAJZXhlY2J1Zi5idWZmZXJfY291bnQg PSAyOwotCWV4ZWNidWYuZmxhZ3MgPSByaW5nOworCWV4ZWNidWYuZmxhZ3MgPSBlLT5mbGFnczsK IAlpZiAoZ2VuIDwgNikKIAkJZXhlY2J1Zi5mbGFncyB8PSBJOTE1X0VYRUNfU0VDVVJFOwogCkBA IC0yNjMsMTcgKzI1MCwxOCBAQCBzdGF0aWMgdm9pZCBvbmUoaW50IGZkLCB1bnNpZ25lZCByaW5n LCB1bnNpZ25lZCB0ZXN0X2ZsYWdzKQogCV9fZ2VtX2J1c3koZmQsIG9ialtCQVRDSF0uaGFuZGxl LCAmcmVhZFtCQVRDSF0sICZ3cml0ZVtCQVRDSF0pOwogCiAJaWYgKHRlc3RfZmxhZ3MgJiBQQVJB TExFTCkgewotCQl1bnNpZ25lZCBvdGhlcjsKKwkJc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdp bmUyICplMjsKIAotCQlmb3JfZWFjaF9waHlzaWNhbF9lbmdpbmUoZmQsIG90aGVyKSB7Ci0JCQlp ZiAob3RoZXIgPT0gcmluZykKKwkJX19mb3JfZWFjaF9waHlzaWNhbF9lbmdpbmUoZmQsIGUyKSB7 CisJCQlpZiAoZTItPmNsYXNzID09IGUtPmNsYXNzICYmCisJCQkgICAgZTItPmluc3RhbmNlID09 IGUtPmluc3RhbmNlKQogCQkJCWNvbnRpbnVlOwogCi0JCQlpZiAoIWdlbV9jYW5fc3RvcmVfZHdv cmQoZmQsIG90aGVyKSkKKwkJCWlmICghZ2VtX2NsYXNzX2Nhbl9zdG9yZV9kd29yZChmZCwgZS0+ Y2xhc3MpKQogCQkJCWNvbnRpbnVlOwogCi0JCQlpZ3RfZGVidWcoIlRlc3RpbmcgJXMgaW4gcGFy YWxsZWxcbiIsIGVfXy0+bmFtZSk7Ci0JCQlvbmUoZmQsIG90aGVyLCAwKTsKKwkJCWlndF9kZWJ1 ZygiVGVzdGluZyAlcyBpbiBwYXJhbGxlbFxuIiwgZTItPm5hbWUpOworCQkJb25lKGZkLCBlMiwg MCk7CiAJCX0KIAl9CiAKQEAgLTQzOSwxMSArNDI3LDExIEBAIHN0YXRpYyBib29sIGhhc19leHRl bmRlZF9idXN5X2lvY3RsKGludCBmZCkKIAlyZXR1cm4gcmVhZCAhPSAwOwogfQogCi1zdGF0aWMg dm9pZCBiYXNpYyhpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIHVuc2lnbmVkIGZsYWdzKQorc3RhdGlj IHZvaWQgYmFzaWMoaW50IGZkLCBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIg KmUsIGJvb2wgaGFuZykKIHsKIAlpZ3Rfc3Bpbl90ICpzcGluID0KIAkJaWd0X3NwaW5fbmV3KGZk LAotCQkJICAgICAuZW5naW5lID0gcmluZywKKwkJCSAgICAgLmVuZ2luZSA9IGUtPmZsYWdzLAog CQkJICAgICAuZmxhZ3MgPSBJR1RfU1BJTl9OT19QUkVFTVBUSU9OKTsKIAlzdHJ1Y3QgdGltZXNw ZWMgdHY7CiAJaW50IHRpbWVvdXQ7CkBAIC00NTIsNyArNDQwLDcgQEAgc3RhdGljIHZvaWQgYmFz aWMoaW50IGZkLCB1bnNpZ25lZCByaW5nLCB1bnNpZ25lZCBmbGFncykKIAlidXN5ID0gZ2VtX2Jv X2J1c3koZmQsIHNwaW4tPmhhbmRsZSk7CiAKIAl0aW1lb3V0ID0gMTIwOwotCWlmICgoZmxhZ3Mg JiBIQU5HKSA9PSAwKSB7CisJaWYgKCFoYW5nKSB7CiAJCWlndF9zcGluX2VuZChzcGluKTsKIAkJ dGltZW91dCA9IDE7CiAJfQpAQCAtNDY1LDcgKzQ1Myw3IEBAIHN0YXRpYyB2b2lkIGJhc2ljKGlu dCBmZCwgdW5zaWduZWQgcmluZywgdW5zaWduZWQgZmxhZ3MpCiAJCQlpZ3RfZGVidWdmc19kdW1w KGZkLCAiaTkxNV9oYW5nY2hlY2tfaW5mbyIpOwogCQkJaWd0X2Fzc2VydF9mKGlndF9zZWNvbmRz X2VsYXBzZWQoJnR2KSA8IHRpbWVvdXQsCiAJCQkJICAgICAiJXMgYmF0Y2ggZGlkIG5vdCBjb21w bGV0ZSB3aXRoaW4gJWRzXG4iLAotCQkJCSAgICAgZmxhZ3MgJiBIQU5HID8gIkhhbmdpbmciIDog Ik5vcm1hbCIsCisJCQkJICAgICBoYW5nID8gIkhhbmdpbmciIDogIk5vcm1hbCIsCiAJCQkJICAg ICB0aW1lb3V0KTsKIAkJfQogCX0KQEAgLTQ3NSwxMyArNDYzLDE0IEBAIHN0YXRpYyB2b2lkIGJh c2ljKGludCBmZCwgdW5zaWduZWQgcmluZywgdW5zaWduZWQgZmxhZ3MpCiAKIGlndF9tYWluCiB7 Ci0JY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUgKmU7CisJY29uc3Qgc3RydWN0 IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplOwogCWludCBmZCA9IC0xOwogCiAJaWd0X2ZpeHR1 cmUgewogCQlmZCA9IGRybV9vcGVuX2RyaXZlcl9tYXN0ZXIoRFJJVkVSX0lOVEVMKTsKIAkJaWd0 X3JlcXVpcmVfZ2VtKGZkKTsKLQkJaWd0X3JlcXVpcmUoZ2VtX2Nhbl9zdG9yZV9kd29yZChmZCwg MCkpOworCQlpZ3RfcmVxdWlyZShnZW1fY2xhc3NfY2FuX3N0b3JlX2R3b3JkKGZkLAorCQkJCQkJ ICAgICBJOTE1X0VOR0lORV9DTEFTU19SRU5ERVIpKTsKIAl9CiAKIAlpZ3Rfc3VidGVzdF9ncm91 cCB7CkBAIC00ODksMTQgKzQ3OCwxMyBAQCBpZ3RfbWFpbgogCQkJaWd0X2ZvcmtfaGFuZ19kZXRl Y3RvcihmZCk7CiAJCX0KIAotCQlmb3IgKGUgPSBpbnRlbF9leGVjdXRpb25fZW5naW5lczsgZS0+ bmFtZTsgZSsrKSB7CisJCV9fZm9yX2VhY2hfcGh5c2ljYWxfZW5naW5lKGZkLCBlKSB7CiAJCQlp Z3Rfc3VidGVzdF9ncm91cCB7CiAJCQkJaWd0X3N1YnRlc3RfZigiJXNidXN5LSVzIiwKLQkJCQkJ ICAgICAgZS0+ZXhlY19pZCA9PSAwID8gImJhc2ljLSIgOiAiIiwKLQkJCQkJICAgICAgZS0+bmFt ZSkgewotCQkJCQlpZ3RfcmVxdWlyZShnZW1faGFzX3JpbmcoZmQsIGUtPmV4ZWNfaWQgfCBlLT5m bGFncykpOworCQkJCQkgICAgICBlLT5jbGFzcyA9PSBJOTE1X0VOR0lORV9DTEFTU19SRU5ERVIK KwkJCQkJICAgICAgPyAiYmFzaWMtIiA6ICIiLCBlLT5uYW1lKSB7CiAJCQkJCWdlbV9xdWllc2Nl bnRfZ3B1KGZkKTsKLQkJCQkJYmFzaWMoZmQsIGUtPmV4ZWNfaWQgfCBlLT5mbGFncywgMCk7CisJ CQkJCWJhc2ljKGZkLCBlLCBmYWxzZSk7CiAJCQkJfQogCQkJfQogCQl9CkBAIC01MDcsMzEgKzQ5 NSwyMiBAQCBpZ3RfbWFpbgogCQkJCWdlbV9yZXF1aXJlX21tYXBfd2MoZmQpOwogCQkJfQogCi0J CQlmb3IgKGUgPSBpbnRlbF9leGVjdXRpb25fZW5naW5lczsgZS0+bmFtZTsgZSsrKSB7Ci0JCQkJ LyogZGVmYXVsdCBleGVjLWlkIGlzIHB1cmVseSBzeW1ib2xpYyAqLwotCQkJCWlmIChlLT5leGVj X2lkID09IDApCi0JCQkJCWNvbnRpbnVlOwotCisJCQlfX2Zvcl9lYWNoX3BoeXNpY2FsX2VuZ2lu ZShmZCwgZSkgewogCQkJCWlndF9zdWJ0ZXN0X2YoImV4dGVuZGVkLSVzIiwgZS0+bmFtZSkgewot CQkJCQlpZ3RfcmVxdWlyZShnZW1fcmluZ19oYXNfcGh5c2ljYWxfZW5naW5lKGZkLCBlLT5leGVj X2lkIHwgZS0+ZmxhZ3MpKTsKLQkJCQkJaWd0X3JlcXVpcmUoZ2VtX2Nhbl9zdG9yZV9kd29yZChm ZCwgZS0+ZXhlY19pZCB8IGUtPmZsYWdzKSk7CisJCQkJCWlndF9yZXF1aXJlKGdlbV9jbGFzc19j YW5fc3RvcmVfZHdvcmQoZmQsCisJCQkJCQkgICAgIGUtPmNsYXNzKSk7CiAJCQkJCWdlbV9xdWll c2NlbnRfZ3B1KGZkKTsKLQkJCQkJb25lKGZkLCBlLT5leGVjX2lkIHwgZS0+ZmxhZ3MsIDApOwor CQkJCQlvbmUoZmQsIGUsIDApOwogCQkJCQlnZW1fcXVpZXNjZW50X2dwdShmZCk7CiAJCQkJfQog CQkJfQogCi0JCQlmb3IgKGUgPSBpbnRlbF9leGVjdXRpb25fZW5naW5lczsgZS0+bmFtZTsgZSsr KSB7Ci0JCQkJLyogZGVmYXVsdCBleGVjLWlkIGlzIHB1cmVseSBzeW1ib2xpYyAqLwotCQkJCWlm IChlLT5leGVjX2lkID09IDApCi0JCQkJCWNvbnRpbnVlOwotCisJCQlfX2Zvcl9lYWNoX3BoeXNp Y2FsX2VuZ2luZShmZCwgZSkgewogCQkJCWlndF9zdWJ0ZXN0X2YoImV4dGVuZGVkLXBhcmFsbGVs LSVzIiwgZS0+bmFtZSkgewotCQkJCQlpZ3RfcmVxdWlyZShnZW1fcmluZ19oYXNfcGh5c2ljYWxf ZW5naW5lKGZkLCBlLT5leGVjX2lkIHwgZS0+ZmxhZ3MpKTsKLQkJCQkJaWd0X3JlcXVpcmUoZ2Vt X2Nhbl9zdG9yZV9kd29yZChmZCwgZS0+ZXhlY19pZCB8IGUtPmZsYWdzKSk7CisJCQkJCWlndF9y ZXF1aXJlKGdlbV9jbGFzc19jYW5fc3RvcmVfZHdvcmQoZmQsIGUtPmNsYXNzKSk7CiAKIAkJCQkJ Z2VtX3F1aWVzY2VudF9ncHUoZmQpOwotCQkJCQlvbmUoZmQsIGUtPmV4ZWNfaWQgfCBlLT5mbGFn cywgUEFSQUxMRUwpOworCQkJCQlvbmUoZmQsIGUsIFBBUkFMTEVMKTsKIAkJCQkJZ2VtX3F1aWVz Y2VudF9ncHUoZmQpOwogCQkJCX0KIAkJCX0KQEAgLTU0MywxMyArNTIyLDkgQEAgaWd0X21haW4K IAkJCQlpZ3RfcmVxdWlyZShoYXNfc2VtYXBob3JlcyhmZCkpOwogCQkJfQogCi0JCQlmb3IgKGUg PSBpbnRlbF9leGVjdXRpb25fZW5naW5lczsgZS0+bmFtZTsgZSsrKSB7Ci0JCQkJLyogZGVmYXVs dCBleGVjLWlkIGlzIHB1cmVseSBzeW1ib2xpYyAqLwotCQkJCWlmIChlLT5leGVjX2lkID09IDAp Ci0JCQkJCWNvbnRpbnVlOwotCisJCQlfX2Zvcl9lYWNoX3BoeXNpY2FsX2VuZ2luZShmZCwgZSkg ewogCQkJCWlndF9zdWJ0ZXN0X2YoImV4dGVuZGVkLXNlbWFwaG9yZS0lcyIsIGUtPm5hbWUpCi0J CQkJCXNlbWFwaG9yZShmZCwgZS0+ZXhlY19pZCwgZS0+ZmxhZ3MpOworCQkJCQlzZW1hcGhvcmUo ZmQsIGUpOwogCQkJfQogCQl9CiAKQEAgLTU2OCwxNCArNTQzLDEzIEBAIGlndF9tYWluCiAJCQlo YW5nID0gaWd0X2FsbG93X2hhbmcoZmQsIDAsIDApOwogCQl9CiAKLQkJZm9yIChlID0gaW50ZWxf ZXhlY3V0aW9uX2VuZ2luZXM7IGUtPm5hbWU7IGUrKykgeworCQlfX2Zvcl9lYWNoX3BoeXNpY2Fs X2VuZ2luZShmZCwgZSkgewogCQkJaWd0X3N1YnRlc3RfZigiJXNoYW5nLSVzIiwKLQkJCQkgICAg ICBlLT5leGVjX2lkID09IDAgPyAiYmFzaWMtIiA6ICIiLAotCQkJCSAgICAgIGUtPm5hbWUpIHsK KwkJCQkgICAgICBlLT5jbGFzcyA9PSBJOTE1X0VOR0lORV9DTEFTU19SRU5ERVIKKwkJCQkgICAg ICA/ICJiYXNpYy0iIDogIiIsIGUtPm5hbWUpIHsKIAkJCQlpZ3Rfc2tpcF9vbl9zaW11bGF0aW9u KCk7Ci0JCQkJaWd0X3JlcXVpcmUoZ2VtX2hhc19yaW5nKGZkLCBlLT5leGVjX2lkIHwgZS0+Zmxh Z3MpKTsKIAkJCQlnZW1fcXVpZXNjZW50X2dwdShmZCk7Ci0JCQkJYmFzaWMoZmQsIGUtPmV4ZWNf aWQgfCBlLT5mbGFncywgSEFORyk7CisJCQkJYmFzaWMoZmQsIGUsIHRydWUpOwogCQkJfQogCQl9 CiAKQEAgLTU4NSwxOCArNTU5LDEzIEBAIGlndF9tYWluCiAJCQkJZ2VtX3JlcXVpcmVfbW1hcF93 YyhmZCk7CiAJCQl9CiAKLQkJCWZvciAoZSA9IGludGVsX2V4ZWN1dGlvbl9lbmdpbmVzOyBlLT5u YW1lOyBlKyspIHsKLQkJCQkvKiBkZWZhdWx0IGV4ZWMtaWQgaXMgcHVyZWx5IHN5bWJvbGljICov Ci0JCQkJaWYgKGUtPmV4ZWNfaWQgPT0gMCkKLQkJCQkJY29udGludWU7Ci0KKwkJCV9fZm9yX2Vh Y2hfcGh5c2ljYWxfZW5naW5lKGZkLCBlKSB7CiAJCQkJaWd0X3N1YnRlc3RfZigiZXh0ZW5kZWQt aGFuZy0lcyIsIGUtPm5hbWUpIHsKIAkJCQkJaWd0X3NraXBfb25fc2ltdWxhdGlvbigpOwotCQkJ CQlpZ3RfcmVxdWlyZShnZW1fcmluZ19oYXNfcGh5c2ljYWxfZW5naW5lKGZkLCBlLT5leGVjX2lk IHwgZS0+ZmxhZ3MpKTsKLQkJCQkJaWd0X3JlcXVpcmUoZ2VtX2Nhbl9zdG9yZV9kd29yZChmZCwg ZS0+ZXhlY19pZCB8IGUtPmZsYWdzKSk7CisJCQkJCWlndF9yZXF1aXJlKGdlbV9jbGFzc19jYW5f c3RvcmVfZHdvcmQoZmQsIGUtPmNsYXNzKSk7CiAKIAkJCQkJZ2VtX3F1aWVzY2VudF9ncHUoZmQp OwotCQkJCQlvbmUoZmQsIGUtPmV4ZWNfaWQgfCBlLT5mbGFncywgSEFORyk7CisJCQkJCW9uZShm ZCwgZSwgSEFORyk7CiAJCQkJCWdlbV9xdWllc2NlbnRfZ3B1KGZkKTsKIAkJCQl9CiAJCQl9Ci0t IAoyLjIwLjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldg==