From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id B23C46E6FE for ; Wed, 21 Feb 2018 23:19:53 +0000 (UTC) From: Antonio Argenziano Date: Wed, 21 Feb 2018 15:19:39 -0800 Message-Id: <20180221231947.4184-3-antonio.argenziano@intel.com> In-Reply-To: <20180221231947.4184-1-antonio.argenziano@intel.com> References: <20180221231947.4184-1-antonio.argenziano@intel.com> Subject: [igt-dev] [PATCH i-g-t v4 03/11] tests/gem_exec_schedule: use new common functions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 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: RnJvbTogRGFuaWVsZSBDZXJhb2xvIFNwdXJpbyA8ZGFuaWVsZS5jZXJhb2xvc3B1cmlvQGludGVs LmNvbT4KCldpdGggaW50ZWxfbWVhc3VyZV9yaW5nX3NpemUgYW5kIGlndF9jb3JrIGFkZGVkIGFz IGNvbW1vbiB1dGlsaXRpZXMgd2UKY2FuIHVzZSB0aGVtIGluc3RlYWQgb2YgdGhlIGxvY2FsIGNv cHkgb2YgdGhvc2UgdXRpbGl0aWVzCgpTaWduZWQtb2ZmLWJ5OiBEYW5pZWxlIENlcmFvbG8gU3B1 cmlvIDxkYW5pZWxlLmNlcmFvbG9zcHVyaW9AaW50ZWwuY29tPgoKQ2M6IERhbmllbGUgQ2VyYW9s byBTcHVyaW8gPGRhbmllbGUuY2VyYW9sb3NwdXJpb0BpbnRlbC5jb20+CkNjOiBDaHJpcyBXaWxz b24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KLS0tCiB0ZXN0cy9nZW1fZXhlY19zY2hlZHVs ZS5jIHwgMTYyICsrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K IDEgZmlsZSBjaGFuZ2VkLCA0MSBpbnNlcnRpb25zKCspLCAxMjEgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvdGVzdHMvZ2VtX2V4ZWNfc2NoZWR1bGUuYyBiL3Rlc3RzL2dlbV9leGVjX3NjaGVk dWxlLmMKaW5kZXggNWYyNGRmMzMuLjk0YTgwZWNkIDEwMDY0NAotLS0gYS90ZXN0cy9nZW1fZXhl Y19zY2hlZHVsZS5jCisrKyBiL3Rlc3RzL2dlbV9leGVjX3NjaGVkdWxlLmMKQEAgLTMyLDYgKzMy LDcgQEAKICNpbmNsdWRlICJpZ3RfdmdlbS5oIgogI2luY2x1ZGUgImlndF9yYW5kLmgiCiAjaW5j bHVkZSAiaWd0X3N5c2ZzLmgiCisjaW5jbHVkZSAiaTkxNS9nZW1fcmluZy5oIgogCiAjZGVmaW5l IExPIDAKICNkZWZpbmUgSEkgMQpAQCAtMTAyLDM1ICsxMDMsNiBAQCBzdGF0aWMgdm9pZCBzdG9y ZV9kd29yZChpbnQgZmQsIHVpbnQzMl90IGN0eCwgdW5zaWduZWQgcmluZywKIAlnZW1fY2xvc2Uo ZmQsIG9ialsyXS5oYW5kbGUpOwogfQogCi1zdHJ1Y3QgY29yayB7Ci0JaW50IGRldmljZTsKLQl1 aW50MzJfdCBoYW5kbGU7Ci0JdWludDMyX3QgZmVuY2U7Ci19OwotCi1zdGF0aWMgdm9pZCBwbHVn KGludCBmZCwgc3RydWN0IGNvcmsgKmMpCi17Ci0Jc3RydWN0IHZnZW1fYm8gYm87Ci0JaW50IGRt YWJ1ZjsKLQotCWMtPmRldmljZSA9IGRybV9vcGVuX2RyaXZlcihEUklWRVJfVkdFTSk7Ci0KLQli by53aWR0aCA9IGJvLmhlaWdodCA9IDE7Ci0JYm8uYnBwID0gNDsKLQl2Z2VtX2NyZWF0ZShjLT5k ZXZpY2UsICZibyk7Ci0JYy0+ZmVuY2UgPSB2Z2VtX2ZlbmNlX2F0dGFjaChjLT5kZXZpY2UsICZi bywgVkdFTV9GRU5DRV9XUklURSk7Ci0KLQlkbWFidWYgPSBwcmltZV9oYW5kbGVfdG9fZmQoYy0+ ZGV2aWNlLCBiby5oYW5kbGUpOwotCWMtPmhhbmRsZSA9IHByaW1lX2ZkX3RvX2hhbmRsZShmZCwg ZG1hYnVmKTsKLQljbG9zZShkbWFidWYpOwotfQotCi1zdGF0aWMgdm9pZCB1bnBsdWcoc3RydWN0 IGNvcmsgKmMpCi17Ci0JdmdlbV9mZW5jZV9zaWduYWwoYy0+ZGV2aWNlLCBjLT5mZW5jZSk7Ci0J Y2xvc2UoYy0+ZGV2aWNlKTsKLX0KLQogc3RhdGljIHVpbnQzMl90IGNyZWF0ZV9oaWdoZXN0X3By aW9yaXR5KGludCBmZCkKIHsKIAl1aW50MzJfdCBjdHggPSBnZW1fY29udGV4dF9jcmVhdGUoZmQp OwpAQCAtMTQ1LDcgKzExNyw3IEBAIHN0YXRpYyB1aW50MzJfdCBjcmVhdGVfaGlnaGVzdF9wcmlv cml0eShpbnQgZmQpCiAJcmV0dXJuIGN0eDsKIH0KIAotc3RhdGljIHZvaWQgdW5wbHVnX3Nob3df cXVldWUoaW50IGZkLCBzdHJ1Y3QgY29yayAqYywgdW5zaWduZWQgaW50IGVuZ2luZSkKK3N0YXRp YyB2b2lkIHVucGx1Z19zaG93X3F1ZXVlKGludCBmZCwgc3RydWN0IGlndF9jb3JrICpjLCB1bnNp Z25lZCBpbnQgZW5naW5lKQogewogCWlndF9zcGluX3QgKnNwaW5bTUFYX0VMU1BfUUxFTl07CiAK QEAgLTE1NSw3ICsxMjcsNyBAQCBzdGF0aWMgdm9pZCB1bnBsdWdfc2hvd19xdWV1ZShpbnQgZmQs IHN0cnVjdCBjb3JrICpjLCB1bnNpZ25lZCBpbnQgZW5naW5lKQogCQlnZW1fY29udGV4dF9kZXN0 cm95KGZkLCBjdHgpOwogCX0KIAotCXVucGx1ZyhjKTsgLyogYmF0Y2hlcyB3aWxsIG5vdyBiZSBx dWV1ZWQgb24gdGhlIGVuZ2luZSAqLworCWlndF9jb3JrX3VucGx1ZyhjKTsgLyogYmF0Y2hlcyB3 aWxsIG5vdyBiZSBxdWV1ZWQgb24gdGhlIGVuZ2luZSAqLwogCWlndF9kZWJ1Z2ZzX2R1bXAoZmQs ICJpOTE1X2VuZ2luZV9pbmZvIik7CiAKIAlmb3IgKGludCBuID0gMDsgbiA8IEFSUkFZX1NJWkUo c3Bpbik7IG4rKykKQEAgLTE2NSwxOSArMTM3LDIwIEBAIHN0YXRpYyB2b2lkIHVucGx1Z19zaG93 X3F1ZXVlKGludCBmZCwgc3RydWN0IGNvcmsgKmMsIHVuc2lnbmVkIGludCBlbmdpbmUpCiAKIHN0 YXRpYyB2b2lkIGZpZm8oaW50IGZkLCB1bnNpZ25lZCByaW5nKQogewotCXN0cnVjdCBjb3JrIGNv cms7Ci0JdWludDMyX3Qgc2NyYXRjaDsKKwlJR1RfQ09SS19IQU5ETEUoY29yayk7CisJdWludDMy X3Qgc2NyYXRjaCwgcGx1ZzsKIAl1aW50MzJfdCAqcHRyOwogCiAJc2NyYXRjaCA9IGdlbV9jcmVh dGUoZmQsIDQwOTYpOwogCi0JcGx1ZyhmZCwgJmNvcmspOworCXBsdWcgPSBpZ3RfY29ya19wbHVn KCZjb3JrLCBmZCk7CiAKIAkvKiBTYW1lIHByaW9yaXR5LCBzYW1lIHRpbWVsaW5lLCBmaW5hbCBy ZXN1bHQgd2lsbCBiZSB0aGUgc2Vjb25kIGViICovCi0Jc3RvcmVfZHdvcmQoZmQsIDAsIHJpbmcs IHNjcmF0Y2gsIDAsIDEsIGNvcmsuaGFuZGxlLCAwKTsKLQlzdG9yZV9kd29yZChmZCwgMCwgcmlu Zywgc2NyYXRjaCwgMCwgMiwgY29yay5oYW5kbGUsIDApOworCXN0b3JlX2R3b3JkKGZkLCAwLCBy aW5nLCBzY3JhdGNoLCAwLCAxLCBwbHVnLCAwKTsKKwlzdG9yZV9kd29yZChmZCwgMCwgcmluZywg c2NyYXRjaCwgMCwgMiwgcGx1ZywgMCk7CiAKIAl1bnBsdWdfc2hvd19xdWV1ZShmZCwgJmNvcmss IHJpbmcpOworCWdlbV9jbG9zZShmZCwgcGx1Zyk7CiAKIAlwdHIgPSBnZW1fbW1hcF9fZ3R0KGZk LCBzY3JhdGNoLCA0MDk2LCBQUk9UX1JFQUQpOwogCWdlbV9zZXRfZG9tYWluKGZkLCBzY3JhdGNo LCAvKiBubyB3cml0ZSBoYXphcmQgbGllcyEgKi8KQEAgLTI2OSw4ICsyNDIsOCBAQCBzdGF0aWMg dm9pZCBzbW9rZXRlc3QoaW50IGZkLCB1bnNpZ25lZCByaW5nLCB1bnNpZ25lZCB0aW1lb3V0KQog c3RhdGljIHZvaWQgcmVvcmRlcihpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIHVuc2lnbmVkIGZsYWdz KQogI2RlZmluZSBFUVVBTCAxCiB7Ci0Jc3RydWN0IGNvcmsgY29yazsKLQl1aW50MzJfdCBzY3Jh dGNoOworCUlHVF9DT1JLX0hBTkRMRShjb3JrKTsKKwl1aW50MzJfdCBzY3JhdGNoLCBwbHVnOwog CXVpbnQzMl90ICpwdHI7CiAJdWludDMyX3QgY3R4WzJdOwogCkBAIC0yODEsMTUgKzI1NCwxNiBA QCBzdGF0aWMgdm9pZCByZW9yZGVyKGludCBmZCwgdW5zaWduZWQgcmluZywgdW5zaWduZWQgZmxh Z3MpCiAJZ2VtX2NvbnRleHRfc2V0X3ByaW9yaXR5KGZkLCBjdHhbSEldLCBmbGFncyAmIEVRVUFM ID8gTUlOX1BSSU8gOiAwKTsKIAogCXNjcmF0Y2ggPSBnZW1fY3JlYXRlKGZkLCA0MDk2KTsKLQlw bHVnKGZkLCAmY29yayk7CisJcGx1ZyA9IGlndF9jb3JrX3BsdWcoJmNvcmssIGZkKTsKIAogCS8q IFdlIGV4cGVjdCB0aGUgaGlnaCBwcmlvcml0eSBjb250ZXh0IHRvIGJlIGV4ZWN1dGVkIGZpcnN0 LCBhbmQKIAkgKiBzbyB0aGUgZmluYWwgcmVzdWx0IHdpbGwgYmUgdmFsdWUgZnJvbSB0aGUgbG93 IHByaW9yaXR5IGNvbnRleHQuCiAJICovCi0Jc3RvcmVfZHdvcmQoZmQsIGN0eFtMT10sIHJpbmcs IHNjcmF0Y2gsIDAsIGN0eFtMT10sIGNvcmsuaGFuZGxlLCAwKTsKLQlzdG9yZV9kd29yZChmZCwg Y3R4W0hJXSwgcmluZywgc2NyYXRjaCwgMCwgY3R4W0hJXSwgY29yay5oYW5kbGUsIDApOworCXN0 b3JlX2R3b3JkKGZkLCBjdHhbTE9dLCByaW5nLCBzY3JhdGNoLCAwLCBjdHhbTE9dLCBwbHVnLCAw KTsKKwlzdG9yZV9kd29yZChmZCwgY3R4W0hJXSwgcmluZywgc2NyYXRjaCwgMCwgY3R4W0hJXSwg cGx1ZywgMCk7CiAKIAl1bnBsdWdfc2hvd19xdWV1ZShmZCwgJmNvcmssIHJpbmcpOworCWdlbV9j bG9zZShmZCwgcGx1Zyk7CiAKIAlnZW1fY29udGV4dF9kZXN0cm95KGZkLCBjdHhbTE9dKTsKIAln ZW1fY29udGV4dF9kZXN0cm95KGZkLCBjdHhbSEldKTsKQEAgLTMwOCwxMCArMjgyLDExIEBAIHN0 YXRpYyB2b2lkIHJlb3JkZXIoaW50IGZkLCB1bnNpZ25lZCByaW5nLCB1bnNpZ25lZCBmbGFncykK IAogc3RhdGljIHZvaWQgcHJvbW90aW9uKGludCBmZCwgdW5zaWduZWQgcmluZykKIHsKLQlzdHJ1 Y3QgY29yayBjb3JrOworCUlHVF9DT1JLX0hBTkRMRShjb3JrKTsKIAl1aW50MzJfdCByZXN1bHQs IGRlcDsKIAl1aW50MzJfdCAqcHRyOwogCXVpbnQzMl90IGN0eFszXTsKKwl1aW50MzJfdCBwbHVn OwogCiAJY3R4W0xPXSA9IGdlbV9jb250ZXh0X2NyZWF0ZShmZCk7CiAJZ2VtX2NvbnRleHRfc2V0 X3ByaW9yaXR5KGZkLCBjdHhbTE9dLCBNSU5fUFJJTyk7CkBAIC0zMjUsMTUgKzMwMCwxNSBAQCBz dGF0aWMgdm9pZCBwcm9tb3Rpb24oaW50IGZkLCB1bnNpZ25lZCByaW5nKQogCXJlc3VsdCA9IGdl bV9jcmVhdGUoZmQsIDQwOTYpOwogCWRlcCA9IGdlbV9jcmVhdGUoZmQsIDQwOTYpOwogCi0JcGx1 ZyhmZCwgJmNvcmspOworCXBsdWcgPSBpZ3RfY29ya19wbHVnKCZjb3JrLCBmZCk7CiAKIAkvKiBF eHBlY3QgdGhhdCBISSBwcm9tb3RlcyBMTywgc28gdGhlIG9yZGVyIHdpbGwgYmUgTE8sIEhJLCBO T0lTRS4KIAkgKgogCSAqIGZpZm8gd291bGQgYmUgTk9JU0UsIExPLCBISS4KIAkgKiBzdHJpY3Qg cHJpb3JpdHkgd291bGQgYmUgIEhJLCBOT0lTRSwgTE8KIAkgKi8KLQlzdG9yZV9kd29yZChmZCwg Y3R4W05PSVNFXSwgcmluZywgcmVzdWx0LCAwLCBjdHhbTk9JU0VdLCBjb3JrLmhhbmRsZSwgMCk7 Ci0Jc3RvcmVfZHdvcmQoZmQsIGN0eFtMT10sIHJpbmcsIHJlc3VsdCwgMCwgY3R4W0xPXSwgY29y ay5oYW5kbGUsIDApOworCXN0b3JlX2R3b3JkKGZkLCBjdHhbTk9JU0VdLCByaW5nLCByZXN1bHQs IDAsIGN0eFtOT0lTRV0sIHBsdWcsIDApOworCXN0b3JlX2R3b3JkKGZkLCBjdHhbTE9dLCByaW5n LCByZXN1bHQsIDAsIGN0eFtMT10sIHBsdWcsIDApOwogCiAJLyogbGluayBMTyA8LT4gSEkgdmlh IGEgZGVwZW5kZW5jeSBvbiBhbm90aGVyIGJ1ZmZlciAqLwogCXN0b3JlX2R3b3JkKGZkLCBjdHhb TE9dLCByaW5nLCBkZXAsIDAsIGN0eFtMT10sIDAsIEk5MTVfR0VNX0RPTUFJTl9JTlNUUlVDVElP Tik7CkBAIC0zNDIsNiArMzE3LDcgQEAgc3RhdGljIHZvaWQgcHJvbW90aW9uKGludCBmZCwgdW5z aWduZWQgcmluZykKIAlzdG9yZV9kd29yZChmZCwgY3R4W0hJXSwgcmluZywgcmVzdWx0LCAwLCBj dHhbSEldLCAwLCAwKTsKIAogCXVucGx1Z19zaG93X3F1ZXVlKGZkLCAmY29yaywgcmluZyk7CisJ Z2VtX2Nsb3NlKGZkLCBwbHVnKTsKIAogCWdlbV9jb250ZXh0X2Rlc3Ryb3koZmQsIGN0eFtOT0lT RV0pOwogCWdlbV9jb250ZXh0X2Rlc3Ryb3koZmQsIGN0eFtMT10pOwpAQCAtNTY1LDcgKzU0MSw4 IEBAIHN0YXRpYyB2b2lkIGRlZXAoaW50IGZkLCB1bnNpZ25lZCByaW5nKQogCWNvbnN0IHVuc2ln bmVkIGludCBucmVxID0gTUFYX1BSSU8gLSBNSU5fUFJJTzsKIAljb25zdCB1bnNpZ25lZCBzaXpl ID0gQUxJR04oNCpucmVxLCA0MDk2KTsKIAlzdHJ1Y3QgdGltZXNwZWMgdHYgPSB7fTsKLQlzdHJ1 Y3QgY29yayBjb3JrOworCUlHVF9DT1JLX0hBTkRMRShjb3JrKTsKKwl1aW50MzJfdCBwbHVnOwog CXVpbnQzMl90IHJlc3VsdCwgZGVwW1hTXTsKIAl1aW50MzJfdCBleHBlY3RlZCA9IDA7CiAJdWlu dDMyX3QgKnB0cjsKQEAgLTYwNSw3ICs1ODIsNyBAQCBzdGF0aWMgdm9pZCBkZWVwKGludCBmZCwg dW5zaWduZWQgcmluZykKIAkJZ2VtX3N5bmMoZmQsIHJlc3VsdCk7CiAJfQogCi0JcGx1ZyhmZCwg JmNvcmspOworCXBsdWcgPSBpZ3RfY29ya19wbHVnKCZjb3JrLCBmZCk7CiAKIAkvKiBDcmVhdGUg YSBkZWVwIGRlcGVuZGVuY3kgY2hhaW4sIHdpdGggYSBmZXcgYnJhbmNoZXMgKi8KIAlmb3IgKGlu dCBuID0gMDsgbiA8IG5yZXEgJiYgaWd0X3NlY29uZHNfZWxhcHNlZCgmdHYpIDwgODsgbisrKSB7 CkBAIC02MTMsNyArNTkwLDcgQEAgc3RhdGljIHZvaWQgZGVlcChpbnQgZmQsIHVuc2lnbmVkIHJp bmcpCiAJCWdlbV9jb250ZXh0X3NldF9wcmlvcml0eShmZCwgY29udGV4dCwgTUFYX1BSSU8gLSBu cmVxICsgbik7CiAKIAkJZm9yIChpbnQgbSA9IDA7IG0gPCBYUzsgbSsrKQotCQkJc3RvcmVfZHdv cmQoZmQsIGNvbnRleHQsIHJpbmcsIGRlcFttXSwgNCpuLCBjb250ZXh0LCBjb3JrLmhhbmRsZSwg STkxNV9HRU1fRE9NQUlOX0lOU1RSVUNUSU9OKTsKKwkJCXN0b3JlX2R3b3JkKGZkLCBjb250ZXh0 LCByaW5nLCBkZXBbbV0sIDQqbiwgY29udGV4dCwgcGx1ZywgSTkxNV9HRU1fRE9NQUlOX0lOU1RS VUNUSU9OKTsKIAl9CiAKIAlmb3IgKGludCBuID0gMDsgbiA8IG5yZXEgJiYgaWd0X3NlY29uZHNf ZWxhcHNlZCgmdHYpIDwgNjsgbisrKSB7CkBAIC02MjgsNiArNjA1LDcgQEAgc3RhdGljIHZvaWQg ZGVlcChpbnQgZmQsIHVuc2lnbmVkIHJpbmcpCiAJfQogCiAJdW5wbHVnX3Nob3dfcXVldWUoZmQs ICZjb3JrLCByaW5nKTsKKwlnZW1fY2xvc2UoZmQsIHBsdWcpOwogCWlndF9yZXF1aXJlKGV4cGVj dGVkKTsgLyogdG9vIHNsb3cgKi8KIAogCWZvciAoaW50IG4gPSAwOyBuIDwgTUFYX0NPTlRFWFRT OyBuKyspCkBAIC02NzAsNzEgKzY0OCwxMyBAQCBzdGF0aWMgaW50IF9fZXhlY2J1ZihpbnQgZmQs IHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIgKmV4ZWNidWYpCiAJcmV0dXJuIGVycjsK IH0KIAotc3RhdGljIHVuc2lnbmVkIGludCBtZWFzdXJlX3Jpbmdfc2l6ZShpbnQgZmQsIHVuc2ln bmVkIGludCByaW5nKQotewotCXN0cnVjdCBzaWdhY3Rpb24gc2EgPSB7IC5zYV9oYW5kbGVyID0g YWxhcm1faGFuZGxlciB9OwotCXN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY19vYmplY3QyIG9ialsy XTsKLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyIGV4ZWNidWY7Ci0JY29uc3QgdWlu dDMyX3QgYmJlID0gTUlfQkFUQ0hfQlVGRkVSX0VORDsKLQl1bnNpZ25lZCBpbnQgY291bnQsIGxh c3Q7Ci0Jc3RydWN0IGl0aW1lcnZhbCBpdHY7Ci0Jc3RydWN0IGNvcmsgYzsKLQotCW1lbXNldChv YmosIDAsIHNpemVvZihvYmopKTsKLQlvYmpbMV0uaGFuZGxlID0gZ2VtX2NyZWF0ZShmZCwgNDA5 Nik7Ci0JZ2VtX3dyaXRlKGZkLCBvYmpbMV0uaGFuZGxlLCAwLCAmYmJlLCBzaXplb2YoYmJlKSk7 Ci0KLQltZW1zZXQoJmV4ZWNidWYsIDAsIHNpemVvZihleGVjYnVmKSk7Ci0JZXhlY2J1Zi5idWZm ZXJzX3B0ciA9IHRvX3VzZXJfcG9pbnRlcihvYmogKyAxKTsKLQlleGVjYnVmLmJ1ZmZlcl9jb3Vu dCA9IDE7Ci0JZXhlY2J1Zi5mbGFncyA9IHJpbmc7Ci0JZ2VtX2V4ZWNidWYoZmQsICZleGVjYnVm KTsKLQlnZW1fc3luYyhmZCwgb2JqWzFdLmhhbmRsZSk7Ci0KLQlwbHVnKGZkLCAmYyk7Ci0Jb2Jq WzBdLmhhbmRsZSA9IGMuaGFuZGxlOwotCi0JZXhlY2J1Zi5idWZmZXJzX3B0ciA9IHRvX3VzZXJf cG9pbnRlcihvYmopOwotCWV4ZWNidWYuYnVmZmVyX2NvdW50ID0gMjsKLQlleGVjYnVmLnJzdmQx ID0gZ2VtX2NvbnRleHRfY3JlYXRlKGZkKTsKLQotCXNpZ2FjdGlvbihTSUdBTFJNLCAmc2EsIE5V TEwpOwotCWl0di5pdF9pbnRlcnZhbC50dl9zZWMgPSAwOwotCWl0di5pdF9pbnRlcnZhbC50dl91 c2VjID0gMTAwOwotCWl0di5pdF92YWx1ZS50dl9zZWMgPSAwOwotCWl0di5pdF92YWx1ZS50dl91 c2VjID0gMTAwMDsKLQlzZXRpdGltZXIoSVRJTUVSX1JFQUwsICZpdHYsIE5VTEwpOwotCi0JbGFz dCA9IC0xOwotCWNvdW50ID0gMDsKLQlkbyB7Ci0JCWlmIChfX2V4ZWNidWYoZmQsICZleGVjYnVm KSA9PSAwKSB7Ci0JCQljb3VudCsrOwotCQkJY29udGludWU7Ci0JCX0KLQotCQlpZiAobGFzdCA9 PSBjb3VudCkKLQkJCWJyZWFrOwotCi0JCWxhc3QgPSBjb3VudDsKLQl9IHdoaWxlICgxKTsKLQot CW1lbXNldCgmaXR2LCAwLCBzaXplb2YoaXR2KSk7Ci0Jc2V0aXRpbWVyKElUSU1FUl9SRUFMLCAm aXR2LCBOVUxMKTsKLQotCXVucGx1ZygmYyk7Ci0JZ2VtX2Nsb3NlKGZkLCBvYmpbMV0uaGFuZGxl KTsKLQlnZW1fY29udGV4dF9kZXN0cm95KGZkLCBleGVjYnVmLnJzdmQxKTsKLQotCXJldHVybiBj b3VudDsKLX0KLQogc3RhdGljIHZvaWQgd2lkZShpbnQgZmQsIHVuc2lnbmVkIHJpbmcpCiB7CiAJ c3RydWN0IHRpbWVzcGVjIHR2ID0ge307Ci0JdW5zaWduZWQgaW50IHJpbmdfc2l6ZSA9IG1lYXN1 cmVfcmluZ19zaXplKGZkLCByaW5nKTsKKwl1bnNpZ25lZCBpbnQgcmluZ19zaXplID0gZ2VtX21l YXN1cmVfcmluZ19pbmZsaWdodChmZCwgcmluZywgTUVBU1VSRV9SSU5HX05FV19DVFgpOwogCi0J c3RydWN0IGNvcmsgY29yazsKKwlJR1RfQ09SS19IQU5ETEUoY29yayk7CisJdWludDMyX3QgcGx1 ZzsKIAl1aW50MzJfdCByZXN1bHQ7CiAJdWludDMyX3QgKnB0cjsKIAl1aW50MzJfdCAqY3R4OwpA QCAtNzQ2LDIwICs2NjYsMjEgQEAgc3RhdGljIHZvaWQgd2lkZShpbnQgZmQsIHVuc2lnbmVkIHJp bmcpCiAKIAlyZXN1bHQgPSBnZW1fY3JlYXRlKGZkLCA0Kk1BWF9DT05URVhUUyk7CiAKLQlwbHVn KGZkLCAmY29yayk7CisJcGx1ZyA9IGlndF9jb3JrX3BsdWcoJmNvcmssIGZkKTsKIAogCS8qIExv dHMgb2YgaW4tb3JkZXIgcmVxdWVzdHMsIHBsdWdnZWQgYW5kIHN1Ym1pdHRlZCBzaW11bHRhbmVv dXNseSAqLwogCWZvciAoY291bnQgPSAwOwogCSAgICAgaWd0X3NlY29uZHNfZWxhcHNlZCgmdHYp IDwgNSAmJiBjb3VudCA8IHJpbmdfc2l6ZTsKIAkgICAgIGNvdW50KyspIHsKIAkJZm9yIChpbnQg biA9IDA7IG4gPCBNQVhfQ09OVEVYVFM7IG4rKykgewotCQkJc3RvcmVfZHdvcmQoZmQsIGN0eFtu XSwgcmluZywgcmVzdWx0LCA0Km4sIGN0eFtuXSwgY29yay5oYW5kbGUsIEk5MTVfR0VNX0RPTUFJ Tl9JTlNUUlVDVElPTik7CisJCQlzdG9yZV9kd29yZChmZCwgY3R4W25dLCByaW5nLCByZXN1bHQs IDQqbiwgY3R4W25dLCBwbHVnLCBJOTE1X0dFTV9ET01BSU5fSU5TVFJVQ1RJT04pOwogCQl9CiAJ fQogCWlndF9pbmZvKCJTdWJtaXR0ZWQgJWQgcmVxdWVzdHMgb3ZlciAlZCBjb250ZXh0cyBpbiAl LjFmbXNcbiIsCiAJCSBjb3VudCwgTUFYX0NPTlRFWFRTLCBpZ3RfbnNlY19lbGFwc2VkKCZ0dikg KiAxZS02KTsKIAogCXVucGx1Z19zaG93X3F1ZXVlKGZkLCAmY29yaywgcmluZyk7CisJZ2VtX2Ns b3NlKGZkLCBwbHVnKTsKIAogCWZvciAoaW50IG4gPSAwOyBuIDwgTUFYX0NPTlRFWFRTOyBuKysp CiAJCWdlbV9jb250ZXh0X2Rlc3Ryb3koZmQsIGN0eFtuXSk7CkBAIC03ODIsMjEgKzcwMywyMCBA QCBzdGF0aWMgdm9pZCByZW9yZGVyX3dpZGUoaW50IGZkLCB1bnNpZ25lZCByaW5nKQogCXN0cnVj dCBkcm1faTkxNV9nZW1fZXhlY19vYmplY3QyIG9ialszXTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X2V4ZWNidWZmZXIyIGV4ZWNidWY7CiAJc3RydWN0IHRpbWVzcGVjIHR2ID0ge307Ci0JdW5zaWdu ZWQgaW50IHJpbmdfc2l6ZSA9IG1lYXN1cmVfcmluZ19zaXplKGZkLCByaW5nKTsKLQlzdHJ1Y3Qg Y29yayBjb3JrOwotCXVpbnQzMl90IHJlc3VsdCwgdGFyZ2V0OworCXVuc2lnbmVkIGludCByaW5n X3NpemUgPSBnZW1fbWVhc3VyZV9yaW5nX2luZmxpZ2h0KGZkLCByaW5nLCBNRUFTVVJFX1JJTkdf TkVXX0NUWCk7CisJSUdUX0NPUktfSEFORExFKGNvcmspOworCXVpbnQzMl90IHJlc3VsdCwgdGFy Z2V0LCBwbHVnOwogCXVpbnQzMl90ICpmb3VuZCwgKmV4cGVjdGVkOwogCiAJcmVzdWx0ID0gZ2Vt X2NyZWF0ZShmZCwgNDA5Nik7CiAJdGFyZ2V0ID0gZ2VtX2NyZWF0ZShmZCwgNDA5Nik7Ci0KLQlw bHVnKGZkLCAmY29yayk7CisJcGx1ZyA9IGlndF9jb3JrX3BsdWcoJmNvcmssIGZkKTsKIAogCWV4 cGVjdGVkID0gZ2VtX21tYXBfX2NwdShmZCwgdGFyZ2V0LCAwLCA0MDk2LCBQUk9UX1dSSVRFKTsK IAlnZW1fc2V0X2RvbWFpbihmZCwgdGFyZ2V0LCBJOTE1X0dFTV9ET01BSU5fQ1BVLCBJOTE1X0dF TV9ET01BSU5fQ1BVKTsKIAogCW1lbXNldChvYmosIDAsIHNpemVvZihvYmopKTsKLQlvYmpbMF0u aGFuZGxlID0gY29yay5oYW5kbGU7CisJb2JqWzBdLmhhbmRsZSA9IHBsdWc7CiAJb2JqWzFdLmhh bmRsZSA9IHJlc3VsdDsKIAlvYmpbMl0ucmVsb2NzX3B0ciA9IHRvX3VzZXJfcG9pbnRlcigmcmVs b2MpOwogCW9ialsyXS5yZWxvY2F0aW9uX2NvdW50ID0gMTsKQEAgLTg2NCw2ICs3ODQsNyBAQCBz dGF0aWMgdm9pZCByZW9yZGVyX3dpZGUoaW50IGZkLCB1bnNpZ25lZCByaW5nKQogCX0KIAogCXVu cGx1Z19zaG93X3F1ZXVlKGZkLCAmY29yaywgcmluZyk7CisJZ2VtX2Nsb3NlKGZkLCBwbHVnKTsK IAogCWZvdW5kID0gZ2VtX21tYXBfX2d0dChmZCwgcmVzdWx0LCA0MDk2LCBQUk9UX1JFQUQpOwog CWdlbV9zZXRfZG9tYWluKGZkLCByZXN1bHQsIC8qIG5vIHdyaXRlIGhhemFyZCBsaWVzISAqLwpA QCAtODk4LDcgKzgxOSw3IEBAIHN0YXRpYyB2b2lkIHRlc3RfcGlfcmluZ2Z1bGwoaW50IGZkLCB1 bnNpZ25lZCBpbnQgZW5naW5lKQogCXN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY19vYmplY3QyIG9i alsyXTsKIAl1bnNpZ25lZCBpbnQgbGFzdCwgY291bnQ7CiAJc3RydWN0IGl0aW1lcnZhbCBpdHY7 Ci0Jc3RydWN0IGNvcmsgYzsKKwlJR1RfQ09SS19IQU5ETEUoYyk7CiAJYm9vbCAqcmVzdWx0Owog CiAJcmVzdWx0ID0gbW1hcChOVUxMLCA0MDk2LCBQUk9UX1dSSVRFLCBNQVBfU0hBUkVEIHwgTUFQ X0FOT04sIC0xLCAwKTsKQEAgLTkyMCw4ICs4NDEsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0X3BpX3Jp bmdmdWxsKGludCBmZCwgdW5zaWduZWQgaW50IGVuZ2luZSkKIAlnZW1fc3luYyhmZCwgb2JqWzFd LmhhbmRsZSk7CiAKIAkvKiBGaWxsIHRoZSBsb3ctcHJpb3JpdHkgcmluZyAqLwotCXBsdWcoZmQs ICZjKTsKLQlvYmpbMF0uaGFuZGxlID0gYy5oYW5kbGU7CisJb2JqWzBdLmhhbmRsZSA9IGlndF9j b3JrX3BsdWcoJmMsIGZkKTsKIAogCWV4ZWNidWYuYnVmZmVyc19wdHIgPSB0b191c2VyX3BvaW50 ZXIob2JqKTsKIAlleGVjYnVmLmJ1ZmZlcl9jb3VudCA9IDI7CkBAIC05OTUsNyArOTE1LDcgQEAg c3RhdGljIHZvaWQgdGVzdF9waV9yaW5nZnVsbChpbnQgZmQsIHVuc2lnbmVkIGludCBlbmdpbmUp CiAJaWd0X2Fzc2VydF9mKHJlc3VsdFsyXSwKIAkJICAgICAiSGlnaCBwcmlvcml0eSBjaGlsZCB1 bmFibGUgdG8gc3VibWl0IHdpdGhpbiAxMG1zXG4iKTsKIAotCXVucGx1ZygmYyk7CisJaWd0X2Nv cmtfdW5wbHVnKCZjKTsKIAlpZ3Rfd2FpdGNoaWxkcmVuKCk7CiAKIAlnZW1fY29udGV4dF9kZXN0 cm95KGZkLCBleGVjYnVmLnJzdmQxKTsKLS0gCjIuMTQuMgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pZ3QtZGV2Cg==