From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1C6366E0A4 for ; Fri, 15 Feb 2019 15:42:05 +0000 (UTC) Date: Fri, 15 Feb 2019 07:42:02 -0800 Message-Id: <20190215154202.26053-1-antonio.argenziano@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v5] 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 YSBiYXRjaCwgdGhpcwp3aWxsIGhlbHAgdGVzdGluZyBwbGF0Zm9ybXMgdGhhdCBtaWdodCBub3Qg ZXhwb3NlIGd0dCBtYXBwaW5nLgoKdjI6CgktIHVzZSBhIGxvY2FsIGhlbHBlciBmb3IgcmVhZGlu ZyBmcm9tIEJPcy4gKENocmlzKQoJLSBBbHdheXMgc3luYyBiZWZvcmUgcmVhZGluZy4gKENocmlz KQoKdjM6CgktIEJldHRlciBoZWxwZXIgbmFtaW5nLiAoQ2hyaXMpCgktIFN0YXJ0IHJlYWQgZnJv bSBhY3R1YWwgb2Zmc2V0LiAoQ2hyaXMpCgp2NDoKCS0gQWx3YXlzIHVzZSBieXRlIHNpemUgaW4g aGVscGVyLiAoQ2hyaXMpCgp2NToKCS0gRml4IGJ5dGU8LT5jb3VudCBjb252ZXJzaW9uLiAoQ2hy aXMpCgpTaWduZWQtb2ZmLWJ5OiBBbnRvbmlvIEFyZ2Vuemlhbm8gPGFudG9uaW8uYXJnZW56aWFu b0BpbnRlbC5jb20+CgpDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+ Ci0tLQogdGVzdHMvaTkxNS9nZW1fZXhlY19zY2hlZHVsZS5jIHwgMTMwICsrKysrKysrKysrKysr KystLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDYyIGluc2VydGlvbnMoKyksIDY4 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfc2NoZWR1bGUu YyBiL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfc2NoZWR1bGUuYwppbmRleCAwMGY5NTI4YS4uNTkxMDJi NmIgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfc2NoZWR1bGUuYworKysgYi90ZXN0 cy9pOTE1L2dlbV9leGVjX3NjaGVkdWxlLmMKQEAgLTQ5LDYgKzQ5LDI0IEBACiAKIElHVF9URVNU X0RFU0NSSVBUSU9OKCJDaGVjayB0aGF0IHdlIGNhbiBjb250cm9sIHRoZSBvcmRlciBvZiBleGVj dXRpb24iKTsKIAorc3RhdGljIGlubGluZQordWludDMyX3QgX19zeW5jX3JlYWRfdTMyKGludCBm ZCwgdWludDMyX3QgaGFuZGxlLCB1aW50NjRfdCBvZmZzZXQpCit7CisJdWludDMyX3QgdmFsdWU7 CisKKwlnZW1fc3luYyhmZCwgaGFuZGxlKTsgLyogTm8gd3JpdGUgaGF6YXJkIGxpZXMhICovCisJ Z2VtX3JlYWQoZmQsIGhhbmRsZSwgb2Zmc2V0LCAmdmFsdWUsIHNpemVvZih2YWx1ZSkpOworCisJ cmV0dXJuIHZhbHVlOworfQorCitzdGF0aWMgaW5saW5lCit2b2lkIF9fc3luY19yZWFkX3UzMl9j b3VudChpbnQgZmQsIHVpbnQzMl90IGhhbmRsZSwgdWludDMyX3QgKmRzdCwgdWludDY0X3Qgc2l6 ZSkKK3sKKwlnZW1fc3luYyhmZCwgaGFuZGxlKTsgLyogTm8gd3JpdGUgaGF6YXJkIGxpZXMhICov CisJZ2VtX3JlYWQoZmQsIGhhbmRsZSwgMCwgZHN0LCBzaXplKTsKK30KKwogc3RhdGljIHVpbnQz Ml90IF9fc3RvcmVfZHdvcmQoaW50IGZkLCB1aW50MzJfdCBjdHgsIHVuc2lnbmVkIHJpbmcsCiAJ CQkgICAgICB1aW50MzJfdCB0YXJnZXQsIHVpbnQzMl90IG9mZnNldCwgdWludDMyX3QgdmFsdWUs CiAJCQkgICAgICB1aW50MzJfdCBjb3JrLCB1bnNpZ25lZCB3cml0ZV9kb21haW4pCkBAIC0xNTIs NyArMTcwLDcgQEAgc3RhdGljIHZvaWQgZmlmbyhpbnQgZmQsIHVuc2lnbmVkIHJpbmcpCiB7CiAJ SUdUX0NPUktfSEFORExFKGNvcmspOwogCXVpbnQzMl90IHNjcmF0Y2gsIHBsdWc7Ci0JdWludDMy X3QgKnB0cjsKKwl1aW50MzJfdCByZXN1bHQ7CiAKIAlzY3JhdGNoID0gZ2VtX2NyZWF0ZShmZCwg NDA5Nik7CiAKQEAgLTE2NSwxMyArMTgzLDEwIEBAIHN0YXRpYyB2b2lkIGZpZm8oaW50IGZkLCB1 bnNpZ25lZCByaW5nKQogCXVucGx1Z19zaG93X3F1ZXVlKGZkLCAmY29yaywgcmluZyk7CiAJZ2Vt X2Nsb3NlKGZkLCBwbHVnKTsKIAotCXB0ciA9IGdlbV9tbWFwX19ndHQoZmQsIHNjcmF0Y2gsIDQw OTYsIFBST1RfUkVBRCk7Ci0JZ2VtX3NldF9kb21haW4oZmQsIHNjcmF0Y2gsIC8qIG5vIHdyaXRl IGhhemFyZCBsaWVzISAqLwotCQkJSTkxNV9HRU1fRE9NQUlOX0dUVCwgSTkxNV9HRU1fRE9NQUlO X0dUVCk7CisJcmVzdWx0ID0gIF9fc3luY19yZWFkX3UzMihmZCwgc2NyYXRjaCwgMCk7CiAJZ2Vt X2Nsb3NlKGZkLCBzY3JhdGNoKTsKIAotCWlndF9hc3NlcnRfZXFfdTMyKHB0clswXSwgMik7Ci0J bXVubWFwKHB0ciwgNDA5Nik7CisJaWd0X2Fzc2VydF9lcV91MzIocmVzdWx0LCAyKTsKIH0KIAog c3RhdGljIHZvaWQgaW5kZXBlbmRlbnQoaW50IGZkLCB1bnNpZ25lZCBpbnQgZW5naW5lKQpAQCAt MjQ5LDcgKzI2NCw3IEBAIHN0YXRpYyB2b2lkIHNtb2tldGVzdChpbnQgZmQsIHVuc2lnbmVkIHJp bmcsIHVuc2lnbmVkIHRpbWVvdXQpCiAJdW5zaWduZWQgbmVuZ2luZTsKIAl1bnNpZ25lZCBlbmdp bmU7CiAJdWludDMyX3Qgc2NyYXRjaDsKLQl1aW50MzJfdCAqcHRyOworCXVpbnQzMl90IHJlc3Vs dFsyICogbmNwdXNdOwogCiAJbmVuZ2luZSA9IDA7CiAJaWYgKHJpbmcgPT0gQUxMX0VOR0lORVMp IHsKQEAgLTI4NywyMiArMzAyLDE5IEBAIHN0YXRpYyB2b2lkIHNtb2tldGVzdChpbnQgZmQsIHVu c2lnbmVkIHJpbmcsIHVuc2lnbmVkIHRpbWVvdXQpCiAJfQogCWlndF93YWl0Y2hpbGRyZW4oKTsK IAotCXB0ciA9IGdlbV9tbWFwX19ndHQoZmQsIHNjcmF0Y2gsIDQwOTYsIFBST1RfUkVBRCk7Ci0J Z2VtX3NldF9kb21haW4oZmQsIHNjcmF0Y2gsIC8qIG5vIHdyaXRlIGhhemFyZCBsaWVzISAqLwot CQkJSTkxNV9HRU1fRE9NQUlOX0dUVCwgSTkxNV9HRU1fRE9NQUlOX0dUVCk7CisJX19zeW5jX3Jl YWRfdTMyX2NvdW50KGZkLCBzY3JhdGNoLCByZXN1bHQsIHNpemVvZihyZXN1bHQpKTsKIAlnZW1f Y2xvc2UoZmQsIHNjcmF0Y2gpOwogCiAJZm9yICh1bnNpZ25lZCBuID0gMDsgbiA8IG5jcHVzOyBu KyspIHsKLQkJaWd0X2Fzc2VydF9lcV91MzIocHRyWzIqbl0sIH5uKTsKKwkJaWd0X2Fzc2VydF9l cV91MzIocmVzdWx0WzIgKiBuXSwgfm4pOwogCQkvKgogCQkgKiBOb3RlIHRoaXMgY291bnQgaXMg YXBwcm94aW1hdGUgZHVlIHRvIHVuY29uc3RyYWluZWQKIAkJICogb3JkZXJpbmcgb2YgdGhlIGR3 b3JkIHdyaXRlcyBiZXR3ZWVuIGVuZ2luZXMuCiAJCSAqCiAJCSAqIFRha2UgdGhlIHJlc3VsdCB3 aXRoIGEgcGluY2ggb2Ygc2FsdC4KIAkJICovCi0JCWlndF9pbmZvKCJDaGlsZFslZF0gY29tcGxl dGVkICV1IGN5Y2xlc1xuIiwgIG4sIHB0clsyKm4rMV0pOworCQlpZ3RfaW5mbygiQ2hpbGRbJWRd IGNvbXBsZXRlZCAldSBjeWNsZXNcbiIsICBuLCByZXN1bHRbKDIgKiBuKSArIDFdKTsKIAl9Ci0J bXVubWFwKHB0ciwgNDA5Nik7CiB9CiAKIHN0YXRpYyB2b2lkIHJlb3JkZXIoaW50IGZkLCB1bnNp Z25lZCByaW5nLCB1bnNpZ25lZCBmbGFncykKQEAgLTMxMCw3ICszMjIsNyBAQCBzdGF0aWMgdm9p ZCByZW9yZGVyKGludCBmZCwgdW5zaWduZWQgcmluZywgdW5zaWduZWQgZmxhZ3MpCiB7CiAJSUdU X0NPUktfSEFORExFKGNvcmspOwogCXVpbnQzMl90IHNjcmF0Y2gsIHBsdWc7Ci0JdWludDMyX3Qg KnB0cjsKKwl1aW50MzJfdCByZXN1bHQ7CiAJdWludDMyX3QgY3R4WzJdOwogCiAJY3R4W0xPXSA9 IGdlbV9jb250ZXh0X2NyZWF0ZShmZCk7CkBAIC0zMzQsMjMgKzM0NiwyMCBAQCBzdGF0aWMgdm9p ZCByZW9yZGVyKGludCBmZCwgdW5zaWduZWQgcmluZywgdW5zaWduZWQgZmxhZ3MpCiAJZ2VtX2Nv bnRleHRfZGVzdHJveShmZCwgY3R4W0xPXSk7CiAJZ2VtX2NvbnRleHRfZGVzdHJveShmZCwgY3R4 W0hJXSk7CiAKLQlwdHIgPSBnZW1fbW1hcF9fZ3R0KGZkLCBzY3JhdGNoLCA0MDk2LCBQUk9UX1JF QUQpOwotCWdlbV9zZXRfZG9tYWluKGZkLCBzY3JhdGNoLCAvKiBubyB3cml0ZSBoYXphcmQgbGll cyEgKi8KLQkJCUk5MTVfR0VNX0RPTUFJTl9HVFQsIEk5MTVfR0VNX0RPTUFJTl9HVFQpOworCXJl c3VsdCA9ICBfX3N5bmNfcmVhZF91MzIoZmQsIHNjcmF0Y2gsIDApOwogCWdlbV9jbG9zZShmZCwg c2NyYXRjaCk7CiAKIAlpZiAoZmxhZ3MgJiBFUVVBTCkgLyogZXF1YWwgcHJpb3JpdHksIHJlc3Vs dCB3aWxsIGJlIGZpZm8gKi8KLQkJaWd0X2Fzc2VydF9lcV91MzIocHRyWzBdLCBjdHhbSEldKTsK KwkJaWd0X2Fzc2VydF9lcV91MzIocmVzdWx0LCBjdHhbSEldKTsKIAllbHNlCi0JCWlndF9hc3Nl cnRfZXFfdTMyKHB0clswXSwgY3R4W0xPXSk7Ci0JbXVubWFwKHB0ciwgNDA5Nik7CisJCWlndF9h c3NlcnRfZXFfdTMyKHJlc3VsdCwgY3R4W0xPXSk7CiB9CiAKIHN0YXRpYyB2b2lkIHByb21vdGlv bihpbnQgZmQsIHVuc2lnbmVkIHJpbmcpCiB7CiAJSUdUX0NPUktfSEFORExFKGNvcmspOwogCXVp bnQzMl90IHJlc3VsdCwgZGVwOwotCXVpbnQzMl90ICpwdHI7CisJdWludDMyX3QgcmVzdWx0X3Jl YWQsIGRlcF9yZWFkOwogCXVpbnQzMl90IGN0eFszXTsKIAl1aW50MzJfdCBwbHVnOwogCkBAIC0z ODksMjEgKzM5OCwxNCBAQCBzdGF0aWMgdm9pZCBwcm9tb3Rpb24oaW50IGZkLCB1bnNpZ25lZCBy aW5nKQogCWdlbV9jb250ZXh0X2Rlc3Ryb3koZmQsIGN0eFtMT10pOwogCWdlbV9jb250ZXh0X2Rl c3Ryb3koZmQsIGN0eFtISV0pOwogCi0JcHRyID0gZ2VtX21tYXBfX2d0dChmZCwgZGVwLCA0MDk2 LCBQUk9UX1JFQUQpOwotCWdlbV9zZXRfZG9tYWluKGZkLCBkZXAsIC8qIG5vIHdyaXRlIGhhemFy ZCBsaWVzISAqLwotCQkJSTkxNV9HRU1fRE9NQUlOX0dUVCwgSTkxNV9HRU1fRE9NQUlOX0dUVCk7 CisJZGVwX3JlYWQgPSBfX3N5bmNfcmVhZF91MzIoZmQsIGRlcCwgMCk7CiAJZ2VtX2Nsb3NlKGZk LCBkZXApOwogCi0JaWd0X2Fzc2VydF9lcV91MzIocHRyWzBdLCBjdHhbSEldKTsKLQltdW5tYXAo cHRyLCA0MDk2KTsKLQotCXB0ciA9IGdlbV9tbWFwX19ndHQoZmQsIHJlc3VsdCwgNDA5NiwgUFJP VF9SRUFEKTsKLQlnZW1fc2V0X2RvbWFpbihmZCwgcmVzdWx0LCAvKiBubyB3cml0ZSBoYXphcmQg bGllcyEgKi8KLQkJCUk5MTVfR0VNX0RPTUFJTl9HVFQsIEk5MTVfR0VNX0RPTUFJTl9HVFQpOwor CXJlc3VsdF9yZWFkID0gX19zeW5jX3JlYWRfdTMyKGZkLCByZXN1bHQsIDApOwogCWdlbV9jbG9z ZShmZCwgcmVzdWx0KTsKIAotCWlndF9hc3NlcnRfZXFfdTMyKHB0clswXSwgY3R4W05PSVNFXSk7 Ci0JbXVubWFwKHB0ciwgNDA5Nik7CisJaWd0X2Fzc2VydF9lcV91MzIoZGVwX3JlYWQsIGN0eFtI SV0pOworCWlndF9hc3NlcnRfZXFfdTMyKHJlc3VsdF9yZWFkLCBjdHhbTk9JU0VdKTsKIH0KIAog I2RlZmluZSBORVdfQ1RYICgweDEgPDwgMCkKQEAgLTQxMSw3ICs0MTMsNyBAQCBzdGF0aWMgdm9p ZCBwcm9tb3Rpb24oaW50IGZkLCB1bnNpZ25lZCByaW5nKQogc3RhdGljIHZvaWQgcHJlZW1wdChp bnQgZmQsIHVuc2lnbmVkIHJpbmcsIHVuc2lnbmVkIGZsYWdzKQogewogCXVpbnQzMl90IHJlc3Vs dCA9IGdlbV9jcmVhdGUoZmQsIDQwOTYpOwotCXVpbnQzMl90ICpwdHIgPSBnZW1fbW1hcF9fZ3R0 KGZkLCByZXN1bHQsIDQwOTYsIFBST1RfUkVBRCk7CisJdWludDMyX3QgcmVzdWx0X3JlYWQ7CiAJ aWd0X3NwaW5fdCAqc3BpbltNQVhfRUxTUF9RTEVOXTsKIAl1aW50MzJfdCBjdHhbMl07CiAJaWd0 X2hhbmdfdCBoYW5nOwpAQCAtNDM4LDggKzQ0MCw4IEBAIHN0YXRpYyB2b2lkIHByZWVtcHQoaW50 IGZkLCB1bnNpZ25lZCByaW5nLCB1bnNpZ25lZCBmbGFncykKIAogCQlzdG9yZV9kd29yZChmZCwg Y3R4W0hJXSwgcmluZywgcmVzdWx0LCAwLCBuICsgMSwgMCwgSTkxNV9HRU1fRE9NQUlOX1JFTkRF Uik7CiAKLQkJZ2VtX3NldF9kb21haW4oZmQsIHJlc3VsdCwgSTkxNV9HRU1fRE9NQUlOX0dUVCwg MCk7Ci0JCWlndF9hc3NlcnRfZXFfdTMyKHB0clswXSwgbiArIDEpOworCQlyZXN1bHRfcmVhZCA9 IF9fc3luY19yZWFkX3UzMihmZCwgcmVzdWx0LCAwKTsKKwkJaWd0X2Fzc2VydF9lcV91MzIocmVz dWx0X3JlYWQsIG4gKyAxKTsKIAkJaWd0X2Fzc2VydChnZW1fYm9fYnVzeShmZCwgc3BpblswXS0+ aGFuZGxlKSk7CiAJfQogCkBAIC00NTIsNyArNDU0LDYgQEAgc3RhdGljIHZvaWQgcHJlZW1wdChp bnQgZmQsIHVuc2lnbmVkIHJpbmcsIHVuc2lnbmVkIGZsYWdzKQogCWdlbV9jb250ZXh0X2Rlc3Ry b3koZmQsIGN0eFtMT10pOwogCWdlbV9jb250ZXh0X2Rlc3Ryb3koZmQsIGN0eFtISV0pOwogCi0J bXVubWFwKHB0ciwgNDA5Nik7CiAJZ2VtX2Nsb3NlKGZkLCByZXN1bHQpOwogfQogCkBAIC00OTMs NyArNDk0LDcgQEAgc3RhdGljIHZvaWQgX19wcmVlbXB0X290aGVyKGludCBmZCwKIAkJCSAgICB1 bnNpZ25lZCBmbGFncykKIHsKIAl1aW50MzJfdCByZXN1bHQgPSBnZW1fY3JlYXRlKGZkLCA0MDk2 KTsKLQl1aW50MzJfdCAqcHRyID0gZ2VtX21tYXBfX2d0dChmZCwgcmVzdWx0LCA0MDk2LCBQUk9U X1JFQUQpOworCXVpbnQzMl90IHJlc3VsdF9yZWFkWzQwOTYgLyBzaXplb2YodWludDMyX3QpXTsK IAl1bnNpZ25lZCBpbnQgbiwgaSwgb3RoZXI7CiAKIAluID0gMDsKQEAgLTUxOSwxMCArNTIwLDEx IEBAIHN0YXRpYyB2b2lkIF9fcHJlZW1wdF9vdGhlcihpbnQgZmQsCiAJZ2VtX3NldF9kb21haW4o ZmQsIHJlc3VsdCwgSTkxNV9HRU1fRE9NQUlOX0dUVCwgMCk7CiAKIAluKys7CisKKwlfX3N5bmNf cmVhZF91MzJfY291bnQoZmQsIHJlc3VsdCwgcmVzdWx0X3JlYWQsIHNpemVvZihyZXN1bHRfcmVh ZCkpOwogCWZvciAoaSA9IDA7IGkgPD0gbjsgaSsrKQotCQlpZ3RfYXNzZXJ0X2VxX3UzMihwdHJb aV0sIGkpOworCQlpZ3RfYXNzZXJ0X2VxX3UzMihyZXN1bHRfcmVhZFtpXSwgaSk7CiAKLQltdW5t YXAocHRyLCA0MDk2KTsKIAlnZW1fY2xvc2UoZmQsIHJlc3VsdCk7CiB9CiAKQEAgLTU3MCw3ICs1 NzIsNyBAQCBzdGF0aWMgdm9pZCBfX3ByZWVtcHRfcXVldWUoaW50IGZkLAogCQkJICAgIHVuc2ln bmVkIGRlcHRoLCB1bnNpZ25lZCBmbGFncykKIHsKIAl1aW50MzJfdCByZXN1bHQgPSBnZW1fY3Jl YXRlKGZkLCA0MDk2KTsKLQl1aW50MzJfdCAqcHRyID0gZ2VtX21tYXBfX2d0dChmZCwgcmVzdWx0 LCA0MDk2LCBQUk9UX1JFQUQpOworCXVpbnQzMl90IHJlc3VsdF9yZWFkWzQwOTYgLyBzaXplb2Yo dWludDMyX3QpXTsKIAlpZ3Rfc3Bpbl90ICphYm92ZSA9IE5VTEwsICpiZWxvdyA9IE5VTEw7CiAJ dW5zaWduZWQgaW50IG90aGVyLCBuLCBpOwogCWludCBwcmlvID0gTUFYX1BSSU87CkBAIC02Mjgs OSArNjMwLDExIEBAIHN0YXRpYyB2b2lkIF9fcHJlZW1wdF9xdWV1ZShpbnQgZmQsCiAKIAlnZW1f c2V0X2RvbWFpbihmZCwgcmVzdWx0LCBJOTE1X0dFTV9ET01BSU5fR1RULCAwKTsKIAorCV9fc3lu Y19yZWFkX3UzMl9jb3VudChmZCwgcmVzdWx0LCByZXN1bHRfcmVhZCwgc2l6ZW9mKHJlc3VsdF9y ZWFkKSk7CisKIAluKys7CiAJZm9yIChpID0gMDsgaSA8PSBuOyBpKyspCi0JCWlndF9hc3NlcnRf ZXFfdTMyKHB0cltpXSwgaSk7CisJCWlndF9hc3NlcnRfZXFfdTMyKHJlc3VsdF9yZWFkW2ldLCBp KTsKIAogCWlmIChiZWxvdykgewogCQlpZ3RfYXNzZXJ0KGdlbV9ib19idXN5KGZkLCBiZWxvdy0+ aGFuZGxlKSk7CkBAIC02NDEsNyArNjQ1LDYgQEAgc3RhdGljIHZvaWQgX19wcmVlbXB0X3F1ZXVl KGludCBmZCwKIAlnZW1fY29udGV4dF9kZXN0cm95KGZkLCBjdHhbTk9JU0VdKTsKIAlnZW1fY29u dGV4dF9kZXN0cm95KGZkLCBjdHhbSEldKTsKIAotCW11bm1hcChwdHIsIDQwOTYpOwogCWdlbV9j bG9zZShmZCwgcmVzdWx0KTsKIH0KIApAQCAtNjU4LDcgKzY2MSw3IEBAIHN0YXRpYyB2b2lkIHBy ZWVtcHRfcXVldWUoaW50IGZkLCB1bnNpZ25lZCByaW5nLCB1bnNpZ25lZCBpbnQgZmxhZ3MpCiBz dGF0aWMgdm9pZCBwcmVlbXB0X3NlbGYoaW50IGZkLCB1bnNpZ25lZCByaW5nKQogewogCXVpbnQz Ml90IHJlc3VsdCA9IGdlbV9jcmVhdGUoZmQsIDQwOTYpOwotCXVpbnQzMl90ICpwdHIgPSBnZW1f bW1hcF9fZ3R0KGZkLCByZXN1bHQsIDQwOTYsIFBST1RfUkVBRCk7CisJdWludDMyX3QgcmVzdWx0 X3JlYWRbNDA5NiAvIHNpemVvZih1aW50MzJfdCldOwogCWlndF9zcGluX3QgKnNwaW5bTUFYX0VM U1BfUUxFTl07CiAJdW5zaWduZWQgaW50IG90aGVyOwogCXVuc2lnbmVkIGludCBuLCBpOwpAQCAt Njk5LDE0ICs3MDIsMTUgQEAgc3RhdGljIHZvaWQgcHJlZW1wdF9zZWxmKGludCBmZCwgdW5zaWdu ZWQgcmluZykKIAkJaWd0X3NwaW5fYmF0Y2hfZnJlZShmZCwgc3BpbltpXSk7CiAJfQogCisJX19z eW5jX3JlYWRfdTMyX2NvdW50KGZkLCByZXN1bHQsIHJlc3VsdF9yZWFkLCBzaXplb2YocmVzdWx0 X3JlYWQpKTsKKwogCW4rKzsKIAlmb3IgKGkgPSAwOyBpIDw9IG47IGkrKykKLQkJaWd0X2Fzc2Vy dF9lcV91MzIocHRyW2ldLCBpKTsKKwkJaWd0X2Fzc2VydF9lcV91MzIocmVzdWx0X3JlYWRbaV0s IGkpOwogCiAJZ2VtX2NvbnRleHRfZGVzdHJveShmZCwgY3R4W05PSVNFXSk7CiAJZ2VtX2NvbnRl eHRfZGVzdHJveShmZCwgY3R4W0hJXSk7CiAKLQltdW5tYXAocHRyLCA0MDk2KTsKIAlnZW1fY2xv c2UoZmQsIHJlc3VsdCk7CiB9CiAKQEAgLTc1NSw4ICs3NTksOCBAQCBzdGF0aWMgdm9pZCBkZWVw KGludCBmZCwgdW5zaWduZWQgcmluZykKIAl1bnNpZ25lZCBpbnQgbnJlcTsKIAl1aW50MzJfdCBw bHVnOwogCXVpbnQzMl90IHJlc3VsdCwgZGVwW1hTXTsKKwl1aW50MzJfdCByZWFkX2J1ZltzaXpl IC8gc2l6ZW9mKHVpbnQzMl90KV07CiAJdWludDMyX3QgZXhwZWN0ZWQgPSAwOwotCXVpbnQzMl90 ICpwdHI7CiAJdWludDMyX3QgKmN0eDsKIAlpbnQgZGVwX25yZXE7CiAJaW50IG47CkBAIC04Nzks MjUgKzg4MywxOSBAQCBzdGF0aWMgdm9pZCBkZWVwKGludCBmZCwgdW5zaWduZWQgcmluZykKIAkJ Z2VtX2NvbnRleHRfZGVzdHJveShmZCwgY3R4W25dKTsKIAogCWZvciAoaW50IG0gPSAwOyBtIDwg WFM7IG0rKykgewotCQlwdHIgPSBnZW1fbW1hcF9fZ3R0KGZkLCBkZXBbbV0sIHNpemUsIFBST1Rf UkVBRCk7Ci0JCWdlbV9zZXRfZG9tYWluKGZkLCBkZXBbbV0sIC8qIG5vIHdyaXRlIGhhemFyZCBs aWVzISAqLwotCQkJCUk5MTVfR0VNX0RPTUFJTl9HVFQsIEk5MTVfR0VNX0RPTUFJTl9HVFQpOwor CQlfX3N5bmNfcmVhZF91MzJfY291bnQoZmQsIGRlcFttXSwgcmVhZF9idWYsIHNpemVvZihyZWFk X2J1ZikpOwogCQlnZW1fY2xvc2UoZmQsIGRlcFttXSk7CiAKIAkJZm9yIChuID0gMDsgbiA8IGRl cF9ucmVxOyBuKyspCi0JCQlpZ3RfYXNzZXJ0X2VxX3UzMihwdHJbbl0sIGN0eFtuICUgTUFYX0NP TlRFWFRTXSk7Ci0JCW11bm1hcChwdHIsIHNpemUpOworCQkJaWd0X2Fzc2VydF9lcV91MzIocmVh ZF9idWZbbl0sIGN0eFtuICUgTUFYX0NPTlRFWFRTXSk7CiAJfQogCi0JcHRyID0gZ2VtX21tYXBf X2d0dChmZCwgcmVzdWx0LCBzaXplLCBQUk9UX1JFQUQpOwotCWdlbV9zZXRfZG9tYWluKGZkLCBy ZXN1bHQsIC8qIG5vIHdyaXRlIGhhemFyZCBsaWVzISAqLwotCQkJSTkxNV9HRU1fRE9NQUlOX0dU VCwgSTkxNV9HRU1fRE9NQUlOX0dUVCk7CisJX19zeW5jX3JlYWRfdTMyX2NvdW50KGZkLCByZXN1 bHQsIHJlYWRfYnVmLCBzaXplb2YocmVhZF9idWYpKTsKIAlnZW1fY2xvc2UoZmQsIHJlc3VsdCk7 CiAKIAkvKiBObyByZW9yZGVyaW5nIGR1ZSB0byBQSSBvbiBhbGwgY29udGV4dHMgYmVjYXVzZSBv ZiB0aGUgY29tbW9uIGRlcCAqLwogCWZvciAoaW50IG0gPSAwOyBtIDwgWFM7IG0rKykKLQkJaWd0 X2Fzc2VydF9lcV91MzIocHRyW21dLCBleHBlY3RlZCk7Ci0JbXVubWFwKHB0ciwgc2l6ZSk7CisJ CWlndF9hc3NlcnRfZXFfdTMyKHJlYWRfYnVmW21dLCBleHBlY3RlZCk7CiAKIAlmcmVlKGN0eCk7 CiAjdW5kZWYgWFMKQEAgLTkyMyw3ICs5MjEsNyBAQCBzdGF0aWMgdm9pZCB3aWRlKGludCBmZCwg dW5zaWduZWQgcmluZykKIAlJR1RfQ09SS19IQU5ETEUoY29yayk7CiAJdWludDMyX3QgcGx1ZzsK IAl1aW50MzJfdCByZXN1bHQ7Ci0JdWludDMyX3QgKnB0cjsKKwl1aW50MzJfdCByZXN1bHRfcmVh ZFtNQVhfQ09OVEVYVFNdOwogCXVpbnQzMl90ICpjdHg7CiAJdW5zaWduZWQgaW50IGNvdW50Owog CkBAIC05NTIsMTIgKzk1MCw5IEBAIHN0YXRpYyB2b2lkIHdpZGUoaW50IGZkLCB1bnNpZ25lZCBy aW5nKQogCWZvciAoaW50IG4gPSAwOyBuIDwgTUFYX0NPTlRFWFRTOyBuKyspCiAJCWdlbV9jb250 ZXh0X2Rlc3Ryb3koZmQsIGN0eFtuXSk7CiAKLQlwdHIgPSBnZW1fbW1hcF9fZ3R0KGZkLCByZXN1 bHQsIDQqTUFYX0NPTlRFWFRTLCBQUk9UX1JFQUQpOwotCWdlbV9zZXRfZG9tYWluKGZkLCByZXN1 bHQsIC8qIG5vIHdyaXRlIGhhemFyZCBsaWVzISAqLwotCQkJSTkxNV9HRU1fRE9NQUlOX0dUVCwg STkxNV9HRU1fRE9NQUlOX0dUVCk7CisJX19zeW5jX3JlYWRfdTMyX2NvdW50KGZkLCByZXN1bHQs IHJlc3VsdF9yZWFkLCBzaXplb2YocmVzdWx0X3JlYWQpKTsKIAlmb3IgKGludCBuID0gMDsgbiA8 IE1BWF9DT05URVhUUzsgbisrKQotCQlpZ3RfYXNzZXJ0X2VxX3UzMihwdHJbbl0sIGN0eFtuXSk7 Ci0JbXVubWFwKHB0ciwgNCpNQVhfQ09OVEVYVFMpOworCQlpZ3RfYXNzZXJ0X2VxX3UzMihyZXN1 bHRfcmVhZFtuXSwgY3R4W25dKTsKIAogCWdlbV9jbG9zZShmZCwgcmVzdWx0KTsKIAlmcmVlKGN0 eCk7CkBAIC05NzMsNyArOTY4LDggQEAgc3RhdGljIHZvaWQgcmVvcmRlcl93aWRlKGludCBmZCwg dW5zaWduZWQgcmluZykKIAl1bnNpZ25lZCBpbnQgcmluZ19zaXplID0gZ2VtX21lYXN1cmVfcmlu Z19pbmZsaWdodChmZCwgcmluZywgTUVBU1VSRV9SSU5HX05FV19DVFgpOwogCUlHVF9DT1JLX0hB TkRMRShjb3JrKTsKIAl1aW50MzJfdCByZXN1bHQsIHRhcmdldCwgcGx1ZzsKLQl1aW50MzJfdCAq Zm91bmQsICpleHBlY3RlZDsKKwl1aW50MzJfdCByZXN1bHRfcmVhZFsxMDI0XTsKKwl1aW50MzJf dCAqZXhwZWN0ZWQ7CiAKIAlyZXN1bHQgPSBnZW1fY3JlYXRlKGZkLCA0MDk2KTsKIAl0YXJnZXQg PSBnZW1fY3JlYXRlKGZkLCA0MDk2KTsKQEAgLTEwNTMsMTIgKzEwNDksMTAgQEAgc3RhdGljIHZv aWQgcmVvcmRlcl93aWRlKGludCBmZCwgdW5zaWduZWQgcmluZykKIAl1bnBsdWdfc2hvd19xdWV1 ZShmZCwgJmNvcmssIHJpbmcpOwogCWdlbV9jbG9zZShmZCwgcGx1Zyk7CiAKLQlmb3VuZCA9IGdl bV9tbWFwX19ndHQoZmQsIHJlc3VsdCwgNDA5NiwgUFJPVF9SRUFEKTsKLQlnZW1fc2V0X2RvbWFp bihmZCwgcmVzdWx0LCAvKiBubyB3cml0ZSBoYXphcmQgbGllcyEgKi8KLQkJCUk5MTVfR0VNX0RP TUFJTl9HVFQsIEk5MTVfR0VNX0RPTUFJTl9HVFQpOworCV9fc3luY19yZWFkX3UzMl9jb3VudChm ZCwgcmVzdWx0LCByZXN1bHRfcmVhZCwgc2l6ZW9mKHJlc3VsdF9yZWFkKSk7CiAJZm9yIChpbnQg biA9IDA7IG4gPCAxMDI0OyBuKyspCi0JCWlndF9hc3NlcnRfZXFfdTMyKGZvdW5kW25dLCBleHBl Y3RlZFtuXSk7Ci0JbXVubWFwKGZvdW5kLCA0MDk2KTsKKwkJaWd0X2Fzc2VydF9lcV91MzIocmVz dWx0X3JlYWRbbl0sIGV4cGVjdGVkW25dKTsKKwogCW11bm1hcChleHBlY3RlZCwgNDA5Nik7CiAK IAlnZW1fY2xvc2UoZmQsIHJlc3VsdCk7Ci0tIAoyLjIwLjEKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaWd0LWRldg==