From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id C717B6E0B0 for ; Thu, 14 Feb 2019 01:23:07 +0000 (UTC) Date: Wed, 13 Feb 2019 17:22:50 -0800 Message-Id: <20190214012250.33985-1-antonio.argenziano@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t] tests/i915/gem_exec_schedule.c: Switch to gem_sync and gem_read List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Antonio Argenziano via igt-dev Reply-To: Antonio Argenziano 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 List-ID: dXNlIElPQ1RMcyBnZW1fcmVhZCBmb3IgcmVhZGluZyBhbmQsIGdlbV9zeW5jIHRvIHdhaXQgb24g YSBiYXRjaC4KClNpZ25lZC1vZmYtYnk6IEFudG9uaW8gQXJnZW56aWFubyA8YW50b25pby5hcmdl bnppYW5vQGludGVsLmNvbT4KCkNjOiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5j by51az4KLS0tCiB0ZXN0cy9pOTE1L2dlbV9leGVjX3NjaGVkdWxlLmMgfCAxMTMgKysrKysrKysr KysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNDUgaW5zZXJ0aW9ucygr KSwgNjggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9nZW1fZXhlY19zY2hl ZHVsZS5jIGIvdGVzdHMvaTkxNS9nZW1fZXhlY19zY2hlZHVsZS5jCmluZGV4IDAwZjk1MjhhLi41 ZGY0ODk2MCAxMDA2NDQKLS0tIGEvdGVzdHMvaTkxNS9nZW1fZXhlY19zY2hlZHVsZS5jCisrKyBi L3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfc2NoZWR1bGUuYwpAQCAtMTUyLDcgKzE1Miw3IEBAIHN0YXRp YyB2b2lkIGZpZm8oaW50IGZkLCB1bnNpZ25lZCByaW5nKQogewogCUlHVF9DT1JLX0hBTkRMRShj b3JrKTsKIAl1aW50MzJfdCBzY3JhdGNoLCBwbHVnOwotCXVpbnQzMl90ICpwdHI7CisJdWludDMy X3QgcmVzdWx0OwogCiAJc2NyYXRjaCA9IGdlbV9jcmVhdGUoZmQsIDQwOTYpOwogCkBAIC0xNjUs MTMgKzE2NSwxMCBAQCBzdGF0aWMgdm9pZCBmaWZvKGludCBmZCwgdW5zaWduZWQgcmluZykKIAl1 bnBsdWdfc2hvd19xdWV1ZShmZCwgJmNvcmssIHJpbmcpOwogCWdlbV9jbG9zZShmZCwgcGx1Zyk7 CiAKLQlwdHIgPSBnZW1fbW1hcF9fZ3R0KGZkLCBzY3JhdGNoLCA0MDk2LCBQUk9UX1JFQUQpOwot CWdlbV9zZXRfZG9tYWluKGZkLCBzY3JhdGNoLCAvKiBubyB3cml0ZSBoYXphcmQgbGllcyEgKi8K LQkJCUk5MTVfR0VNX0RPTUFJTl9HVFQsIEk5MTVfR0VNX0RPTUFJTl9HVFQpOworCWdlbV9yZWFk KGZkLCBzY3JhdGNoLCAwLCAmcmVzdWx0LCBzaXplb2YocmVzdWx0KSk7CiAJZ2VtX2Nsb3NlKGZk LCBzY3JhdGNoKTsKIAotCWlndF9hc3NlcnRfZXFfdTMyKHB0clswXSwgMik7Ci0JbXVubWFwKHB0 ciwgNDA5Nik7CisJaWd0X2Fzc2VydF9lcV91MzIocmVzdWx0LCAyKTsKIH0KIAogc3RhdGljIHZv aWQgaW5kZXBlbmRlbnQoaW50IGZkLCB1bnNpZ25lZCBpbnQgZW5naW5lKQpAQCAtMjQ5LDcgKzI0 Niw3IEBAIHN0YXRpYyB2b2lkIHNtb2tldGVzdChpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIHVuc2ln bmVkIHRpbWVvdXQpCiAJdW5zaWduZWQgbmVuZ2luZTsKIAl1bnNpZ25lZCBlbmdpbmU7CiAJdWlu dDMyX3Qgc2NyYXRjaDsKLQl1aW50MzJfdCAqcHRyOworCXVpbnQzMl90IHJlc3VsdFs0MDk2IC8g c2l6ZW9mKHVpbnQzMl90KV07CiAKIAluZW5naW5lID0gMDsKIAlpZiAocmluZyA9PSBBTExfRU5H SU5FUykgewpAQCAtMjg3LDIyICsyODQsMTkgQEAgc3RhdGljIHZvaWQgc21va2V0ZXN0KGludCBm ZCwgdW5zaWduZWQgcmluZywgdW5zaWduZWQgdGltZW91dCkKIAl9CiAJaWd0X3dhaXRjaGlsZHJl bigpOwogCi0JcHRyID0gZ2VtX21tYXBfX2d0dChmZCwgc2NyYXRjaCwgNDA5NiwgUFJPVF9SRUFE KTsKLQlnZW1fc2V0X2RvbWFpbihmZCwgc2NyYXRjaCwgLyogbm8gd3JpdGUgaGF6YXJkIGxpZXMh ICovCi0JCQlJOTE1X0dFTV9ET01BSU5fR1RULCBJOTE1X0dFTV9ET01BSU5fR1RUKTsKKwlnZW1f cmVhZChmZCwgc2NyYXRjaCwgMCwgcmVzdWx0LCA0MDk2KTsKIAlnZW1fY2xvc2UoZmQsIHNjcmF0 Y2gpOwogCiAJZm9yICh1bnNpZ25lZCBuID0gMDsgbiA8IG5jcHVzOyBuKyspIHsKLQkJaWd0X2Fz c2VydF9lcV91MzIocHRyWzIqbl0sIH5uKTsKKwkJaWd0X2Fzc2VydF9lcV91MzIocmVzdWx0WzIg KiBuXSwgfm4pOwogCQkvKgogCQkgKiBOb3RlIHRoaXMgY291bnQgaXMgYXBwcm94aW1hdGUgZHVl IHRvIHVuY29uc3RyYWluZWQKIAkJICogb3JkZXJpbmcgb2YgdGhlIGR3b3JkIHdyaXRlcyBiZXR3 ZWVuIGVuZ2luZXMuCiAJCSAqCiAJCSAqIFRha2UgdGhlIHJlc3VsdCB3aXRoIGEgcGluY2ggb2Yg c2FsdC4KIAkJICovCi0JCWlndF9pbmZvKCJDaGlsZFslZF0gY29tcGxldGVkICV1IGN5Y2xlc1xu IiwgIG4sIHB0clsyKm4rMV0pOworCQlpZ3RfaW5mbygiQ2hpbGRbJWRdIGNvbXBsZXRlZCAldSBj eWNsZXNcbiIsICBuLCByZXN1bHRbKDIgKiBuKSArIDFdKTsKIAl9Ci0JbXVubWFwKHB0ciwgNDA5 Nik7CiB9CiAKIHN0YXRpYyB2b2lkIHJlb3JkZXIoaW50IGZkLCB1bnNpZ25lZCByaW5nLCB1bnNp Z25lZCBmbGFncykKQEAgLTMxMCw3ICszMDQsNyBAQCBzdGF0aWMgdm9pZCByZW9yZGVyKGludCBm ZCwgdW5zaWduZWQgcmluZywgdW5zaWduZWQgZmxhZ3MpCiB7CiAJSUdUX0NPUktfSEFORExFKGNv cmspOwogCXVpbnQzMl90IHNjcmF0Y2gsIHBsdWc7Ci0JdWludDMyX3QgKnB0cjsKKwl1aW50MzJf dCByZXN1bHQ7CiAJdWludDMyX3QgY3R4WzJdOwogCiAJY3R4W0xPXSA9IGdlbV9jb250ZXh0X2Ny ZWF0ZShmZCk7CkBAIC0zMzQsMjMgKzMyOCwyMCBAQCBzdGF0aWMgdm9pZCByZW9yZGVyKGludCBm ZCwgdW5zaWduZWQgcmluZywgdW5zaWduZWQgZmxhZ3MpCiAJZ2VtX2NvbnRleHRfZGVzdHJveShm ZCwgY3R4W0xPXSk7CiAJZ2VtX2NvbnRleHRfZGVzdHJveShmZCwgY3R4W0hJXSk7CiAKLQlwdHIg PSBnZW1fbW1hcF9fZ3R0KGZkLCBzY3JhdGNoLCA0MDk2LCBQUk9UX1JFQUQpOwotCWdlbV9zZXRf ZG9tYWluKGZkLCBzY3JhdGNoLCAvKiBubyB3cml0ZSBoYXphcmQgbGllcyEgKi8KLQkJCUk5MTVf R0VNX0RPTUFJTl9HVFQsIEk5MTVfR0VNX0RPTUFJTl9HVFQpOworCWdlbV9yZWFkKGZkLCBzY3Jh dGNoLCAwLCAmcmVzdWx0LCBzaXplb2YocmVzdWx0KSk7CiAJZ2VtX2Nsb3NlKGZkLCBzY3JhdGNo KTsKIAogCWlmIChmbGFncyAmIEVRVUFMKSAvKiBlcXVhbCBwcmlvcml0eSwgcmVzdWx0IHdpbGwg YmUgZmlmbyAqLwotCQlpZ3RfYXNzZXJ0X2VxX3UzMihwdHJbMF0sIGN0eFtISV0pOworCQlpZ3Rf YXNzZXJ0X2VxX3UzMihyZXN1bHQsIGN0eFtISV0pOwogCWVsc2UKLQkJaWd0X2Fzc2VydF9lcV91 MzIocHRyWzBdLCBjdHhbTE9dKTsKLQltdW5tYXAocHRyLCA0MDk2KTsKKwkJaWd0X2Fzc2VydF9l cV91MzIocmVzdWx0LCBjdHhbTE9dKTsKIH0KIAogc3RhdGljIHZvaWQgcHJvbW90aW9uKGludCBm ZCwgdW5zaWduZWQgcmluZykKIHsKIAlJR1RfQ09SS19IQU5ETEUoY29yayk7CiAJdWludDMyX3Qg cmVzdWx0LCBkZXA7Ci0JdWludDMyX3QgKnB0cjsKKwl1aW50MzJfdCByZXN1bHRfcmVhZCwgZGVw X3JlYWQ7CiAJdWludDMyX3QgY3R4WzNdOwogCXVpbnQzMl90IHBsdWc7CiAKQEAgLTM4OSwyMSAr MzgwLDE0IEBAIHN0YXRpYyB2b2lkIHByb21vdGlvbihpbnQgZmQsIHVuc2lnbmVkIHJpbmcpCiAJ Z2VtX2NvbnRleHRfZGVzdHJveShmZCwgY3R4W0xPXSk7CiAJZ2VtX2NvbnRleHRfZGVzdHJveShm ZCwgY3R4W0hJXSk7CiAKLQlwdHIgPSBnZW1fbW1hcF9fZ3R0KGZkLCBkZXAsIDQwOTYsIFBST1Rf UkVBRCk7Ci0JZ2VtX3NldF9kb21haW4oZmQsIGRlcCwgLyogbm8gd3JpdGUgaGF6YXJkIGxpZXMh ICovCi0JCQlJOTE1X0dFTV9ET01BSU5fR1RULCBJOTE1X0dFTV9ET01BSU5fR1RUKTsKKwlnZW1f cmVhZChmZCwgZGVwLCAwLCAmZGVwX3JlYWQsIHNpemVvZihkZXBfcmVhZCkpOwogCWdlbV9jbG9z ZShmZCwgZGVwKTsKIAotCWlndF9hc3NlcnRfZXFfdTMyKHB0clswXSwgY3R4W0hJXSk7Ci0JbXVu bWFwKHB0ciwgNDA5Nik7Ci0KLQlwdHIgPSBnZW1fbW1hcF9fZ3R0KGZkLCByZXN1bHQsIDQwOTYs IFBST1RfUkVBRCk7Ci0JZ2VtX3NldF9kb21haW4oZmQsIHJlc3VsdCwgLyogbm8gd3JpdGUgaGF6 YXJkIGxpZXMhICovCi0JCQlJOTE1X0dFTV9ET01BSU5fR1RULCBJOTE1X0dFTV9ET01BSU5fR1RU KTsKKwlnZW1fcmVhZChmZCwgcmVzdWx0LCAwLCAmcmVzdWx0X3JlYWQsIHNpemVvZihyZXN1bHRf cmVhZCkpOwogCWdlbV9jbG9zZShmZCwgcmVzdWx0KTsKIAotCWlndF9hc3NlcnRfZXFfdTMyKHB0 clswXSwgY3R4W05PSVNFXSk7Ci0JbXVubWFwKHB0ciwgNDA5Nik7CisJaWd0X2Fzc2VydF9lcV91 MzIoZGVwX3JlYWQsIGN0eFtISV0pOworCWlndF9hc3NlcnRfZXFfdTMyKHJlc3VsdF9yZWFkLCBj dHhbTk9JU0VdKTsKIH0KIAogI2RlZmluZSBORVdfQ1RYICgweDEgPDwgMCkKQEAgLTQxMSw3ICsz OTUsNyBAQCBzdGF0aWMgdm9pZCBwcm9tb3Rpb24oaW50IGZkLCB1bnNpZ25lZCByaW5nKQogc3Rh dGljIHZvaWQgcHJlZW1wdChpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIHVuc2lnbmVkIGZsYWdzKQog ewogCXVpbnQzMl90IHJlc3VsdCA9IGdlbV9jcmVhdGUoZmQsIDQwOTYpOwotCXVpbnQzMl90ICpw dHIgPSBnZW1fbW1hcF9fZ3R0KGZkLCByZXN1bHQsIDQwOTYsIFBST1RfUkVBRCk7CisJdWludDMy X3QgcmVzdWx0X3JlYWQ7CiAJaWd0X3NwaW5fdCAqc3BpbltNQVhfRUxTUF9RTEVOXTsKIAl1aW50 MzJfdCBjdHhbMl07CiAJaWd0X2hhbmdfdCBoYW5nOwpAQCAtNDM4LDggKzQyMiw4IEBAIHN0YXRp YyB2b2lkIHByZWVtcHQoaW50IGZkLCB1bnNpZ25lZCByaW5nLCB1bnNpZ25lZCBmbGFncykKIAog CQlzdG9yZV9kd29yZChmZCwgY3R4W0hJXSwgcmluZywgcmVzdWx0LCAwLCBuICsgMSwgMCwgSTkx NV9HRU1fRE9NQUlOX1JFTkRFUik7CiAKLQkJZ2VtX3NldF9kb21haW4oZmQsIHJlc3VsdCwgSTkx NV9HRU1fRE9NQUlOX0dUVCwgMCk7Ci0JCWlndF9hc3NlcnRfZXFfdTMyKHB0clswXSwgbiArIDEp OworCQlnZW1fcmVhZChmZCwgcmVzdWx0LCAwLCAmcmVzdWx0X3JlYWQsIHNpemVvZihyZXN1bHRf cmVhZCkpOworCQlpZ3RfYXNzZXJ0X2VxX3UzMihyZXN1bHRfcmVhZCwgbiArIDEpOwogCQlpZ3Rf YXNzZXJ0KGdlbV9ib19idXN5KGZkLCBzcGluWzBdLT5oYW5kbGUpKTsKIAl9CiAKQEAgLTQ1Miw3 ICs0MzYsNiBAQCBzdGF0aWMgdm9pZCBwcmVlbXB0KGludCBmZCwgdW5zaWduZWQgcmluZywgdW5z aWduZWQgZmxhZ3MpCiAJZ2VtX2NvbnRleHRfZGVzdHJveShmZCwgY3R4W0xPXSk7CiAJZ2VtX2Nv bnRleHRfZGVzdHJveShmZCwgY3R4W0hJXSk7CiAKLQltdW5tYXAocHRyLCA0MDk2KTsKIAlnZW1f Y2xvc2UoZmQsIHJlc3VsdCk7CiB9CiAKQEAgLTQ5Myw3ICs0NzYsNyBAQCBzdGF0aWMgdm9pZCBf X3ByZWVtcHRfb3RoZXIoaW50IGZkLAogCQkJICAgIHVuc2lnbmVkIGZsYWdzKQogewogCXVpbnQz Ml90IHJlc3VsdCA9IGdlbV9jcmVhdGUoZmQsIDQwOTYpOwotCXVpbnQzMl90ICpwdHIgPSBnZW1f bW1hcF9fZ3R0KGZkLCByZXN1bHQsIDQwOTYsIFBST1RfUkVBRCk7CisJdWludDMyX3QgcmVzdWx0 X3JlYWRbNDA5NiAvIHNpemVvZih1aW50MzJfdCldOwogCXVuc2lnbmVkIGludCBuLCBpLCBvdGhl cjsKIAogCW4gPSAwOwpAQCAtNTE5LDEwICs1MDIsMTEgQEAgc3RhdGljIHZvaWQgX19wcmVlbXB0 X290aGVyKGludCBmZCwKIAlnZW1fc2V0X2RvbWFpbihmZCwgcmVzdWx0LCBJOTE1X0dFTV9ET01B SU5fR1RULCAwKTsKIAogCW4rKzsKKworCWdlbV9yZWFkKGZkLCByZXN1bHQsIDAsIHJlc3VsdF9y ZWFkLCA0MDk2KTsKIAlmb3IgKGkgPSAwOyBpIDw9IG47IGkrKykKLQkJaWd0X2Fzc2VydF9lcV91 MzIocHRyW2ldLCBpKTsKKwkJaWd0X2Fzc2VydF9lcV91MzIocmVzdWx0X3JlYWRbaV0sIGkpOwog Ci0JbXVubWFwKHB0ciwgNDA5Nik7CiAJZ2VtX2Nsb3NlKGZkLCByZXN1bHQpOwogfQogCkBAIC01 NzAsNyArNTU0LDcgQEAgc3RhdGljIHZvaWQgX19wcmVlbXB0X3F1ZXVlKGludCBmZCwKIAkJCSAg ICB1bnNpZ25lZCBkZXB0aCwgdW5zaWduZWQgZmxhZ3MpCiB7CiAJdWludDMyX3QgcmVzdWx0ID0g Z2VtX2NyZWF0ZShmZCwgNDA5Nik7Ci0JdWludDMyX3QgKnB0ciA9IGdlbV9tbWFwX19ndHQoZmQs IHJlc3VsdCwgNDA5NiwgUFJPVF9SRUFEKTsKKwl1aW50MzJfdCByZXN1bHRfcmVhZFs0MDk2IC8g c2l6ZW9mKDQwOTYpXTsKIAlpZ3Rfc3Bpbl90ICphYm92ZSA9IE5VTEwsICpiZWxvdyA9IE5VTEw7 CiAJdW5zaWduZWQgaW50IG90aGVyLCBuLCBpOwogCWludCBwcmlvID0gTUFYX1BSSU87CkBAIC02 MjgsOSArNjEyLDExIEBAIHN0YXRpYyB2b2lkIF9fcHJlZW1wdF9xdWV1ZShpbnQgZmQsCiAKIAln ZW1fc2V0X2RvbWFpbihmZCwgcmVzdWx0LCBJOTE1X0dFTV9ET01BSU5fR1RULCAwKTsKIAorCWdl bV9yZWFkKGZkLCByZXN1bHQsIDAsIHJlc3VsdF9yZWFkLCA0MDk2KTsKKwogCW4rKzsKIAlmb3Ig KGkgPSAwOyBpIDw9IG47IGkrKykKLQkJaWd0X2Fzc2VydF9lcV91MzIocHRyW2ldLCBpKTsKKwkJ aWd0X2Fzc2VydF9lcV91MzIocmVzdWx0X3JlYWRbaV0sIGkpOwogCiAJaWYgKGJlbG93KSB7CiAJ CWlndF9hc3NlcnQoZ2VtX2JvX2J1c3koZmQsIGJlbG93LT5oYW5kbGUpKTsKQEAgLTY0MSw3ICs2 MjcsNiBAQCBzdGF0aWMgdm9pZCBfX3ByZWVtcHRfcXVldWUoaW50IGZkLAogCWdlbV9jb250ZXh0 X2Rlc3Ryb3koZmQsIGN0eFtOT0lTRV0pOwogCWdlbV9jb250ZXh0X2Rlc3Ryb3koZmQsIGN0eFtI SV0pOwogCi0JbXVubWFwKHB0ciwgNDA5Nik7CiAJZ2VtX2Nsb3NlKGZkLCByZXN1bHQpOwogfQog CkBAIC02NTgsNyArNjQzLDcgQEAgc3RhdGljIHZvaWQgcHJlZW1wdF9xdWV1ZShpbnQgZmQsIHVu c2lnbmVkIHJpbmcsIHVuc2lnbmVkIGludCBmbGFncykKIHN0YXRpYyB2b2lkIHByZWVtcHRfc2Vs ZihpbnQgZmQsIHVuc2lnbmVkIHJpbmcpCiB7CiAJdWludDMyX3QgcmVzdWx0ID0gZ2VtX2NyZWF0 ZShmZCwgNDA5Nik7Ci0JdWludDMyX3QgKnB0ciA9IGdlbV9tbWFwX19ndHQoZmQsIHJlc3VsdCwg NDA5NiwgUFJPVF9SRUFEKTsKKwl1aW50MzJfdCByZXN1bHRfcmVhZFs0MDk2IC8gc2l6ZW9mKHVp bnQzMl90KV07CiAJaWd0X3NwaW5fdCAqc3BpbltNQVhfRUxTUF9RTEVOXTsKIAl1bnNpZ25lZCBp bnQgb3RoZXI7CiAJdW5zaWduZWQgaW50IG4sIGk7CkBAIC02OTksMTQgKzY4NCwxNSBAQCBzdGF0 aWMgdm9pZCBwcmVlbXB0X3NlbGYoaW50IGZkLCB1bnNpZ25lZCByaW5nKQogCQlpZ3Rfc3Bpbl9i YXRjaF9mcmVlKGZkLCBzcGluW2ldKTsKIAl9CiAKKwlnZW1fcmVhZChmZCwgcmVzdWx0LCAwLCBy ZXN1bHRfcmVhZCwgNDA5Nik7CisKIAluKys7CiAJZm9yIChpID0gMDsgaSA8PSBuOyBpKyspCi0J CWlndF9hc3NlcnRfZXFfdTMyKHB0cltpXSwgaSk7CisJCWlndF9hc3NlcnRfZXFfdTMyKHJlc3Vs dF9yZWFkW2ldLCBpKTsKIAogCWdlbV9jb250ZXh0X2Rlc3Ryb3koZmQsIGN0eFtOT0lTRV0pOwog CWdlbV9jb250ZXh0X2Rlc3Ryb3koZmQsIGN0eFtISV0pOwogCi0JbXVubWFwKHB0ciwgNDA5Nik7 CiAJZ2VtX2Nsb3NlKGZkLCByZXN1bHQpOwogfQogCkBAIC03NTUsOCArNzQxLDggQEAgc3RhdGlj IHZvaWQgZGVlcChpbnQgZmQsIHVuc2lnbmVkIHJpbmcpCiAJdW5zaWduZWQgaW50IG5yZXE7CiAJ dWludDMyX3QgcGx1ZzsKIAl1aW50MzJfdCByZXN1bHQsIGRlcFtYU107CisJdWludDMyX3QgcmVz dWx0X3JlYWRbc2l6ZV0sIGRlcF9yZWFkW3NpemVdOwogCXVpbnQzMl90IGV4cGVjdGVkID0gMDsK LQl1aW50MzJfdCAqcHRyOwogCXVpbnQzMl90ICpjdHg7CiAJaW50IGRlcF9ucmVxOwogCWludCBu OwpAQCAtODc5LDI1ICs4NjUsMjAgQEAgc3RhdGljIHZvaWQgZGVlcChpbnQgZmQsIHVuc2lnbmVk IHJpbmcpCiAJCWdlbV9jb250ZXh0X2Rlc3Ryb3koZmQsIGN0eFtuXSk7CiAKIAlmb3IgKGludCBt ID0gMDsgbSA8IFhTOyBtKyspIHsKLQkJcHRyID0gZ2VtX21tYXBfX2d0dChmZCwgZGVwW21dLCBz aXplLCBQUk9UX1JFQUQpOwotCQlnZW1fc2V0X2RvbWFpbihmZCwgZGVwW21dLCAvKiBubyB3cml0 ZSBoYXphcmQgbGllcyEgKi8KLQkJCQlJOTE1X0dFTV9ET01BSU5fR1RULCBJOTE1X0dFTV9ET01B SU5fR1RUKTsKKworCQlnZW1fcmVhZChmZCwgZGVwW21dLCAwLCBkZXBfcmVhZCwgc2l6ZSk7CiAJ CWdlbV9jbG9zZShmZCwgZGVwW21dKTsKIAogCQlmb3IgKG4gPSAwOyBuIDwgZGVwX25yZXE7IG4r KykKLQkJCWlndF9hc3NlcnRfZXFfdTMyKHB0cltuXSwgY3R4W24gJSBNQVhfQ09OVEVYVFNdKTsK LQkJbXVubWFwKHB0ciwgc2l6ZSk7CisJCQlpZ3RfYXNzZXJ0X2VxX3UzMihkZXBfcmVhZFtuXSwg Y3R4W24gJSBNQVhfQ09OVEVYVFNdKTsKIAl9CiAKLQlwdHIgPSBnZW1fbW1hcF9fZ3R0KGZkLCBy ZXN1bHQsIHNpemUsIFBST1RfUkVBRCk7Ci0JZ2VtX3NldF9kb21haW4oZmQsIHJlc3VsdCwgLyog bm8gd3JpdGUgaGF6YXJkIGxpZXMhICovCi0JCQlJOTE1X0dFTV9ET01BSU5fR1RULCBJOTE1X0dF TV9ET01BSU5fR1RUKTsKIAlnZW1fY2xvc2UoZmQsIHJlc3VsdCk7CiAKKwlnZW1fcmVhZChmZCwg cmVzdWx0LCAwLCByZXN1bHRfcmVhZCwgc2l6ZSk7CiAJLyogTm8gcmVvcmRlcmluZyBkdWUgdG8g UEkgb24gYWxsIGNvbnRleHRzIGJlY2F1c2Ugb2YgdGhlIGNvbW1vbiBkZXAgKi8KIAlmb3IgKGlu dCBtID0gMDsgbSA8IFhTOyBtKyspCi0JCWlndF9hc3NlcnRfZXFfdTMyKHB0clttXSwgZXhwZWN0 ZWQpOwotCW11bm1hcChwdHIsIHNpemUpOworCQlpZ3RfYXNzZXJ0X2VxX3UzMihyZXN1bHRfcmVh ZFttXSwgZXhwZWN0ZWQpOwogCiAJZnJlZShjdHgpOwogI3VuZGVmIFhTCkBAIC05MjMsNyArOTA0 LDcgQEAgc3RhdGljIHZvaWQgd2lkZShpbnQgZmQsIHVuc2lnbmVkIHJpbmcpCiAJSUdUX0NPUktf SEFORExFKGNvcmspOwogCXVpbnQzMl90IHBsdWc7CiAJdWludDMyX3QgcmVzdWx0OwotCXVpbnQz Ml90ICpwdHI7CisJdWludDMyX3QgcmVzdWx0X3JlYWRbNCpNQVhfQ09OVEVYVFNdOwogCXVpbnQz Ml90ICpjdHg7CiAJdW5zaWduZWQgaW50IGNvdW50OwogCkBAIC05NTIsMTIgKzkzMyw5IEBAIHN0 YXRpYyB2b2lkIHdpZGUoaW50IGZkLCB1bnNpZ25lZCByaW5nKQogCWZvciAoaW50IG4gPSAwOyBu IDwgTUFYX0NPTlRFWFRTOyBuKyspCiAJCWdlbV9jb250ZXh0X2Rlc3Ryb3koZmQsIGN0eFtuXSk7 CiAKLQlwdHIgPSBnZW1fbW1hcF9fZ3R0KGZkLCByZXN1bHQsIDQqTUFYX0NPTlRFWFRTLCBQUk9U X1JFQUQpOwotCWdlbV9zZXRfZG9tYWluKGZkLCByZXN1bHQsIC8qIG5vIHdyaXRlIGhhemFyZCBs aWVzISAqLwotCQkJSTkxNV9HRU1fRE9NQUlOX0dUVCwgSTkxNV9HRU1fRE9NQUlOX0dUVCk7CisJ Z2VtX3JlYWQoZmQsIHJlc3VsdCwgbiwgcmVzdWx0X3JlYWQsIDQqTUFYX0NPTlRFWFRTKTsKIAlm b3IgKGludCBuID0gMDsgbiA8IE1BWF9DT05URVhUUzsgbisrKQotCQlpZ3RfYXNzZXJ0X2VxX3Uz MihwdHJbbl0sIGN0eFtuXSk7Ci0JbXVubWFwKHB0ciwgNCpNQVhfQ09OVEVYVFMpOworCQlpZ3Rf YXNzZXJ0X2VxX3UzMihyZXN1bHRfcmVhZFtuXSwgY3R4W25dKTsKIAogCWdlbV9jbG9zZShmZCwg cmVzdWx0KTsKIAlmcmVlKGN0eCk7CkBAIC05NzMsNyArOTUxLDggQEAgc3RhdGljIHZvaWQgcmVv cmRlcl93aWRlKGludCBmZCwgdW5zaWduZWQgcmluZykKIAl1bnNpZ25lZCBpbnQgcmluZ19zaXpl ID0gZ2VtX21lYXN1cmVfcmluZ19pbmZsaWdodChmZCwgcmluZywgTUVBU1VSRV9SSU5HX05FV19D VFgpOwogCUlHVF9DT1JLX0hBTkRMRShjb3JrKTsKIAl1aW50MzJfdCByZXN1bHQsIHRhcmdldCwg cGx1ZzsKLQl1aW50MzJfdCAqZm91bmQsICpleHBlY3RlZDsKKwl1aW50MzJfdCByZXN1bHRfcmVh ZFs0MDk2IC8gc2l6ZW9mKHVpbnQzMl90KV07CisJdWludDMyX3QgKmV4cGVjdGVkOwogCiAJcmVz dWx0ID0gZ2VtX2NyZWF0ZShmZCwgNDA5Nik7CiAJdGFyZ2V0ID0gZ2VtX2NyZWF0ZShmZCwgNDA5 Nik7CkBAIC0xMDUzLDEyICsxMDMyLDEwIEBAIHN0YXRpYyB2b2lkIHJlb3JkZXJfd2lkZShpbnQg ZmQsIHVuc2lnbmVkIHJpbmcpCiAJdW5wbHVnX3Nob3dfcXVldWUoZmQsICZjb3JrLCByaW5nKTsK IAlnZW1fY2xvc2UoZmQsIHBsdWcpOwogCi0JZm91bmQgPSBnZW1fbW1hcF9fZ3R0KGZkLCByZXN1 bHQsIDQwOTYsIFBST1RfUkVBRCk7Ci0JZ2VtX3NldF9kb21haW4oZmQsIHJlc3VsdCwgLyogbm8g d3JpdGUgaGF6YXJkIGxpZXMhICovCi0JCQlJOTE1X0dFTV9ET01BSU5fR1RULCBJOTE1X0dFTV9E T01BSU5fR1RUKTsKKwlnZW1fcmVhZChmZCwgcmVzdWx0LCAwLCByZXN1bHRfcmVhZCwgNDA5Nik7 CiAJZm9yIChpbnQgbiA9IDA7IG4gPCAxMDI0OyBuKyspCi0JCWlndF9hc3NlcnRfZXFfdTMyKGZv dW5kW25dLCBleHBlY3RlZFtuXSk7Ci0JbXVubWFwKGZvdW5kLCA0MDk2KTsKKwkJaWd0X2Fzc2Vy dF9lcV91MzIocmVzdWx0X3JlYWRbbl0sIGV4cGVjdGVkW25dKTsKKwogCW11bm1hcChleHBlY3Rl ZCwgNDA5Nik7CiAKIAlnZW1fY2xvc2UoZmQsIHJlc3VsdCk7Ci0tIAoyLjIwLjEKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBs aXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldg==