From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id B53CD6E680 for ; Fri, 16 Feb 2018 16:19:37 +0000 (UTC) From: Martin Peres Date: Fri, 16 Feb 2018 18:19:21 +0200 Message-Id: <20180216161921.3695-1-martin.peres@linux.intel.com> In-Reply-To: <20180214170736.30859-2-martin.peres@linux.intel.com> References: <20180214170736.30859-2-martin.peres@linux.intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v3] add a kms_fb_stride test 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: Martin Peres List-ID: VGhpcyB0ZXN0IGNoZWNrcyB3aGF0IHN0cmlkZXMgYXJlIGFjdHVhbGx5IHN1cHBvcnRlZCBieSBl YWNoIHBsYW5lIG9mCmVhY2ggcGlwZS4gVGhlIHRlc3RlZCBzdHJpZGVzIGFyZSA0SywgOEssIGFu ZCAxNksuIFRoZSB0ZXN0ZWQgZm9ybWF0cwphcmUgRFJNX0ZPUk1BVF9SR0I1NjUgKDE2IGJpdHMp IGFuZCBEUk1fRk9STUFUX1hSR0I4ODg4ICgzMiBiaXRzKS4KClRvIHZlcmlmeSB0aGF0IHRoZSBk aXNwbGF5IGNvbnRyb2xlciBpcyBPSyB3aXRoIHRoZSBzdHJpZGUsIHRoZSB0ZXN0CnVzZXMgdGhl IHBpcGUgY3JjIGFuZCB2ZXJpZmllcyB0aGF0IGEgdGVzdCBpbWFnZSBibGl0dGVkIHRvIGEKaGRp c3BsYXkgeCB2ZGlzcGxheSBmcmFtZWJ1ZmZlciBhcHBlYXJzIHRoZSBzYW1lIHdoZW4gYmxpdHRl ZCB0byBhCnN0cmlkZSB4IHZkaXNwbGF5IGZyYW1lYnVmZmVyICh3aXRoIHN0cmlkZSB2YXJ5aW5n IGZyb20gNEsgdG8gMTZLKS4KCnYyOgogLSBTS0lQIHdoZW4gYSBzdHJpZGUvZm9ybWF0IGlzIG5v dCBzdXBwb3J0ZWQgYnkgdGhlIGtlcm5lbAogLSBwZXJmb3JtIGEgbW9kZXNldCBhdCBhIGxvdyBy ZXNvbHV0aW9uIG9uIGFsbCBwaXBlcyBiZWZvcmUgcnVubmluZwogICBhIHRlc3QgaW4gb3JkZXIg dG8gYmUgZmFzdCBhbmQgcHJvdmlkZSBjb3ZlcmFnZSBldmVuIHdpdGhvdXQKICAgYSBkaXNwbGF5 IGF0dGFjaGVkIChyZXF1aXJlcyBhIFZHQSBvciBIRE1JIGNvbm5lY3RvcikuCiAtIGdlbmVyYXRl IGEgc3VidGVzdCBwZXIgcGlwZSwgcGxhbmUsIGZvcm1hdCBhbmQgc3RyaWRlCgp2MzoKIC0gaWYg bm90IFZHQSBvciBIRE1JIGNvbm5lY3RvcnMgYXJlIGZvdW5kLCBmYWxsYmFjayB0byBhbnkgY29u bmVjdGVkCiAgIGNvbm5lY3RvcgoKU2lnbmVkLW9mZi1ieTogTWFydGluIFBlcmVzIDxtYXJ0aW4u cGVyZXNAbGludXguaW50ZWwuY29tPgotLS0KIHRlc3RzL01ha2VmaWxlLnNvdXJjZXMgfCAgIDEg KwogdGVzdHMva21zX2ZiX3N0cmlkZS5jICB8IDMyMyArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrCiB0ZXN0cy9tZXNvbi5idWlsZCAgICAgIHwgICAxICsK IDMgZmlsZXMgY2hhbmdlZCwgMzI1IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0 ZXN0cy9rbXNfZmJfc3RyaWRlLmMKCmRpZmYgLS1naXQgYS90ZXN0cy9NYWtlZmlsZS5zb3VyY2Vz IGIvdGVzdHMvTWFrZWZpbGUuc291cmNlcwppbmRleCA4NzBjOTA5My4uMGUxZWViOTUgMTAwNjQ0 Ci0tLSBhL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKKysrIGIvdGVzdHMvTWFrZWZpbGUuc291cmNl cwpAQCAtMTgxLDYgKzE4MSw3IEBAIFRFU1RTX3Byb2dzID0gXAogCWttc19jdXJzb3JfbGVnYWN5 IFwKIAlrbXNfZHJhd19jcmMgXAogCWttc19mYmNvbl9mYnQgXAorCWttc19mYl9zdHJpZGUgXAog CWttc19mZW5jZV9waW5fbGVhayBcCiAJa21zX2ZsaXAgXAogCWttc19mbGlwX2V2ZW50X2xlYWsg XApkaWZmIC0tZ2l0IGEvdGVzdHMva21zX2ZiX3N0cmlkZS5jIGIvdGVzdHMva21zX2ZiX3N0cmlk ZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwLi4xYzc4MjlmYwotLS0gL2Rl di9udWxsCisrKyBiL3Rlc3RzL2ttc19mYl9zdHJpZGUuYwpAQCAtMCwwICsxLDMyMyBAQAorLyoK KyAqIENvcHlyaWdodCDCqSAyMDE4IEludGVsIENvcnBvcmF0aW9uCisgKgorICogUGVybWlzc2lv biBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWlu aW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0 aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3 aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUg cmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwg c3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0 byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRv IGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUg YWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVk aW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3Bp ZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBU SEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkg S0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBU TyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwK KyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENM QUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9O IE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9G IE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBE RUFMSU5HUworICogSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqIEF1dGhvcnM6CisgKiAgIE1hcnRp biBQZXJlcyA8bWFydGluLnBlcmVzQGxpbnV4LmludGVsLmNvbT4KKyAqLworCisjaW5jbHVkZSAi aWd0LmgiCisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxzdGRib29sLmg+CisjaW5jbHVk ZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKwordHlwZWRlZiBlbnVtIHsKKwlURVNU X1NUUklERV9DUlRDID0gMCwKKwlURVNUX1NUUklERV8ySyA9IDIsCisJVEVTVF9TVFJJREVfNEsg PSA0LAorCVRFU1RfU1RSSURFXzhLID0gOCwKKwlURVNUX1NUUklERV8xNksgPSAxNiwKKwlURVNU X1NUUklERV8zMksgPSAzMiwKK30gc3RyaWRlX3Q7CisKK3R5cGVkZWYgc3RydWN0IHsKKwlpbnQg ZHJtX2ZkOworCWlndF9kaXNwbGF5X3QgZGlzcGxheTsKKwlpZ3RfcGlwZV9jcmNfdCAqcGlwZV9j cmM7Cit9IGRhdGFfdDsKKworc3RhdGljIGRybU1vZGVNb2RlSW5mbworZ2V0X2xvd3Jlc19tb2Rl KGludCBkcm1mZCwgaW50IG1heF9oZGlzcGxheSkKK3sKKwlkcm1Nb2RlUmVzICptb2RlX3Jlc291 cmNlcyA9IGRybU1vZGVHZXRSZXNvdXJjZXMoZHJtZmQpOworCWRybU1vZGVNb2RlSW5mbyBtb2Rl OworCWRybU1vZGVNb2RlSW5mbyBzdGRfMTAyNF9tb2RlID0geworCQkuY2xvY2sgPSA2NTAwMCwK KwkJLmhkaXNwbGF5ID0gMTAyNCwKKwkJLmhzeW5jX3N0YXJ0ID0gMTA0OCwKKwkJLmhzeW5jX2Vu ZCA9IDExODQsCisJCS5odG90YWwgPSAxMzQ0LAorCQkuaHNrZXcgPSAwLAorCQkudmRpc3BsYXkg PSA3NjgsCisJCS52c3luY19zdGFydCA9IDc3MSwKKwkJLnZzeW5jX2VuZCA9IDc3NywKKwkJLnZ0 b3RhbCA9IDgwNiwKKwkJLnZzY2FuID0gMCwKKwkJLnZyZWZyZXNoID0gNjAsCisJCS5mbGFncyA9 IDB4QSwKKwkJLnR5cGUgPSAweDQwLAorCQkubmFtZSA9ICJDdXN0b20gMTAyNHg3NjgiLAorCX07 CisJYm9vbCBmb3VuZDsKKwlpbnQgaSwgajsKKworCWlmICghbW9kZV9yZXNvdXJjZXMpIHsKKwkJ aWd0X3dhcm4oImRybU1vZGVHZXRSZXNvdXJjZXMgZmFpbGVkOiAlc1xuIiwgc3RyZXJyb3IoZXJy bm8pKTsKKwkJcmV0dXJuIHN0ZF8xMDI0X21vZGU7CisJfQorCisJZm91bmQgPSBmYWxzZTsKKwlm b3IgKGkgPSAwOyBpIDwgbW9kZV9yZXNvdXJjZXMtPmNvdW50X2Nvbm5lY3RvcnM7IGkrKykgewor CQlkcm1Nb2RlQ29ubmVjdG9yICpjb25uZWN0b3I7CisKKwkJY29ubmVjdG9yID0gZHJtTW9kZUdl dENvbm5lY3RvckN1cnJlbnQoZHJtZmQsCisJCQkJCQkgICAgICAgbW9kZV9yZXNvdXJjZXMtPmNv bm5lY3RvcnNbaV0pOworCQlpZiAoIWNvbm5lY3RvcikgeworCQkJaWd0X3dhcm4oImNvdWxkIG5v dCBnZXQgY29ubmVjdG9yICVpOiAlc1xuIiwKKwkJCQkgbW9kZV9yZXNvdXJjZXMtPmNvbm5lY3Rv cnNbaV0sIHN0cmVycm9yKGVycm5vKSk7CisJCQljb250aW51ZTsKKwkJfQorCisJCWlmICghY29u bmVjdG9yLT5jb3VudF9tb2RlcykKKwkJCWNvbnRpbnVlOworCisJCWZvciAoaiA9IDA7IGogPCBj b25uZWN0b3ItPmNvdW50X21vZGVzOyBqKyspIHsKKwkJCW1vZGUgPSBjb25uZWN0b3ItPm1vZGVz W2pdOworCQkJaWYgKG1vZGUuaGRpc3BsYXkgPCBtYXhfaGRpc3BsYXkpIHsKKwkJCQlmb3VuZCA9 IHRydWU7CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKworCQlkcm1Nb2RlRnJlZUNvbm5lY3Rvcihj b25uZWN0b3IpOworCX0KKworCWRybU1vZGVGcmVlUmVzb3VyY2VzKG1vZGVfcmVzb3VyY2VzKTsK KworCWlmICghZm91bmQpCisJCXJldHVybiBzdGRfMTAyNF9tb2RlOworCisJcmV0dXJuIG1vZGU7 Cit9CisKK3N0YXRpYyB2b2lkIHRlc3RfY2xlYW51cChkYXRhX3QgKmRhdGEsIGlndF9wbGFuZV90 ICpwbGFuZSwgc3RydWN0IGlndF9mYiAqZmIpIHsKKwlpZ3RfcGxhbmVfc2V0X2ZiKHBsYW5lLCBO VUxMKTsKKwlpZ3RfZGlzcGxheV9jb21taXQyKCZkYXRhLT5kaXNwbGF5LCBDT01NSVRfVU5JVkVS U0FMKTsKKwlpZ3RfcmVtb3ZlX2ZiKGRhdGEtPmRybV9mZCwgZmIpOworfQorCitzdGF0aWMgdm9p ZCB0ZXN0X2Zvcm1hdF9wbGFuZV9nZXRfY3JjKGRhdGFfdCAqZGF0YSwgaWd0X291dHB1dF90ICpv dXRwdXQsCisJCQkJICAgICAgaWd0X3BsYW5lX3QgKnBsYW5lLCB1aW50MzJfdCBmb3JtYXQsCisJ CQkJICAgICAgc3RyaWRlX3Qgc3RyaWRlLAorCQkJCSAgICAgIGlndF9jcmNfdCAqY3JjIC8qIG91 dCAqLykgeworCWRybU1vZGVNb2RlSW5mbyAqbW9kZTsKKwlzdHJ1Y3QgaWd0X2ZiIGZiOworCWNh aXJvX3QgKmNyOworCWludCB3aWR0aCwgcmV0OworCisJbW9kZSA9IGlndF9vdXRwdXRfZ2V0X21v ZGUob3V0cHV0KTsKKworCXdpZHRoID0gKHN0cmlkZSA9PSBURVNUX1NUUklERV9DUlRDID8gbW9k ZS0+aGRpc3BsYXkgOiBzdHJpZGUgKiAxMDI0KTsKKworCWlndF9za2lwX29uKF9faWd0X2NyZWF0 ZV9mYihkYXRhLT5kcm1fZmQsIHdpZHRoLCBtb2RlLT52ZGlzcGxheSwKKwkJICAgICAgICAgICAg ICAgICAgICBmb3JtYXQsIExPQ0FMX0RSTV9GT1JNQVRfTU9EX05PTkUsICZmYiwKKwkJICAgICAg ICAgICAgICAgICAgICBOVUxMKSk7CisKKwljciA9IGlndF9nZXRfY2Fpcm9fY3R4KGRhdGEtPmRy bV9mZCwgJmZiKTsKKwlpZ3RfcGFpbnRfdGVzdF9wYXR0ZXJuKGNyLCBtb2RlLT5oZGlzcGxheSwg bW9kZS0+dmRpc3BsYXkpOworCWlndF9hc3NlcnQoY2Fpcm9fc3RhdHVzKGNyKSA9PSAwKTsKKwlj YWlyb19kZXN0cm95KGNyKTsKKworCS8qIHNldCB0aGUgZmIgd2l0aCB0aGUgd2FudGVkIHN0cmlk ZS4gSWYgdGhlIHN0cmlkZSBpcyBuZWdhdGl2ZSwgd2Ugd2FudAorCSAqIHRvIGZhaWwgYmVjYXVz ZSBpdCBtZWFucyB0aGUgcGlwZSBkb2VzIG5vdCBzdXBwb3J0IHRoZSByZXNvbHV0aW9uIG9mCisJ ICogdGhlIHNjcmVlbi4gSWYgdGhlIHN0cmlkZSBpcyBwb3NpdGl2ZSwgdGhpcyBtZWFucyB3ZSBh cmUgdGVzdGluZyBhbgorCSAqIGluY3JlYXNlZCBzdHJpZGUgYW5kIHdlIHdhbnQgdG8gc2tpcCBp ZiB0aGUga2VybmVsIGNvbnNpZGVycyB0aGUgbW9kZQorCSAqIGludmFsaWQuCisJICovCisJaWd0 X3BsYW5lX3NldF9mYihwbGFuZSwgJmZiKTsKKworCXJldCA9IGlndF9kaXNwbGF5X3RyeV9jb21t aXQyKCZkYXRhLT5kaXNwbGF5LCBDT01NSVRfVU5JVkVSU0FMKTsKKwlpZiAocmV0KSB7CisJCS8q IHJlc2V0IHRoZSBzdGF0ZSBhbmQgZnJlZSB0aGUgZnJhbWVidWZmZXIgKi8KKwkJdGVzdF9jbGVh bnVwKGRhdGEsIHBsYW5lLCAmZmIpOworCisJCWlndF9za2lwKCJUaGUga2VybmVsIHJlamVjdGVk IHNldHRpbmcgYSAlaXglaSBmcmFtZWJ1ZmZlclxuIiwKKwkJICAgICAgICAgd2lkdGgsIG1vZGUt PnZkaXNwbGF5KTsKKwl9CisKKwlpZ3RfcGlwZV9jcmNfY29sbGVjdF9jcmMoZGF0YS0+cGlwZV9j cmMsIGNyYyk7CisKKwkvKiByZXNldCB0aGUgc3RhdGUgYW5kIGZyZWUgdGhlIGZyYW1lYnVmZmVy ICovCisJdGVzdF9jbGVhbnVwKGRhdGEsIHBsYW5lLCAmZmIpOworfQorCitzdGF0aWMgdm9pZCB0 ZXN0X2Zvcm1hdF9wbGFuZShkYXRhX3QgKmRhdGEsIGVudW0gcGlwZSBwaXBlLAorCQkJICAgICAg aWd0X291dHB1dF90ICpvdXRwdXQsIGlndF9wbGFuZV90ICpwbGFuZSwKKwkJCSAgICAgIHVpbnQz Ml90IGZvcm1hdCwgc3RyaWRlX3Qgc3RyaWRlKQoreworCWRybU1vZGVNb2RlSW5mbyBtb2RlOwor CWlndF9jcmNfdCBjcmNfcmVmLCBjcmM7CisKKwltb2RlID0gZ2V0X2xvd3Jlc19tb2RlKGRhdGEt PmRybV9mZCwgMTAyNSk7CisJaWd0X291dHB1dF9vdmVycmlkZV9tb2RlKG91dHB1dCwgJm1vZGUp OworCWlndF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LCBwaXBlKTsKKwlpZ3RfZGlzcGxheV9jb21t aXQyKCZkYXRhLT5kaXNwbGF5LCBkYXRhLT5kaXNwbGF5LmlzX2F0b21pYyA/IENPTU1JVF9BVE9N SUMgOiBDT01NSVRfTEVHQUNZKTsKKworCWRhdGEtPnBpcGVfY3JjID0gaWd0X3BpcGVfY3JjX25l dyhkYXRhLT5kcm1fZmQsIHBpcGUsCisJCQkJCQlJTlRFTF9QSVBFX0NSQ19TT1VSQ0VfQVVUTyk7 CisKKwl0ZXN0X2Zvcm1hdF9wbGFuZV9nZXRfY3JjKGRhdGEsIG91dHB1dCwgcGxhbmUsIGZvcm1h dCwKKwkgICAgICAgICAgICAgICAgICAgICAgICAgIFRFU1RfU1RSSURFX0NSVEMsICZjcmNfcmVm KTsKKwl0ZXN0X2Zvcm1hdF9wbGFuZV9nZXRfY3JjKGRhdGEsIG91dHB1dCwgcGxhbmUsIGZvcm1h dCwKKwkgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlkZSwgJmNyYyk7CisJaWd0X2Fzc2Vy dF9jcmNfZXF1YWwoJmNyY19yZWYsICZjcmMpOworCisJaWd0X3BpcGVfY3JjX3N0b3AoZGF0YS0+ cGlwZV9jcmMpOworCWlndF9waXBlX2NyY19mcmVlKGRhdGEtPnBpcGVfY3JjKTsKKworCWlndF9v dXRwdXRfc2V0X3BpcGUob3V0cHV0LCBQSVBFX0FOWSk7Cit9CisKKworc3RhdGljIGlndF9vdXRw dXRfdCAqCitmaW5kX3N1aXRhYmxlX2Nvbm5lY3RvcihkYXRhX3QgKmRhdGEsIGVudW0gcGlwZSBw aXBlKSB7CisJaWd0X291dHB1dF90ICpvdXRwdXQsICpvdXRwdXRfY29ubmVjdGVkID0gTlVMTDsK Kwlkcm1Nb2RlUmVzICpyZXM7CisKKwkvKiBtYWtlIHN1cmUgYWxsIGNvbm5lY3RvcnMgYXJlIGZy ZWUgZm9yIG91ciB0ZXN0aW5nICovCisJcmVzID0gZHJtTW9kZUdldFJlc291cmNlcyhkYXRhLT5k cm1fZmQpOworCWlndF9hc3NlcnQocmVzKTsKKwlrbXN0ZXN0X3Vuc2V0X2FsbF9jcnRjcyhkYXRh LT5kcm1fZmQsIHJlcyk7CisKKwkvKiBmaW5kIGEgY29ubmVjdG9yIHRoYXQgc3VwcG9ydHMgbW9k ZSBpbmplY3Rpb24gKi8KKwlmb3JfZWFjaF92YWxpZF9vdXRwdXRfb25fcGlwZSgmZGF0YS0+ZGlz cGxheSwgcGlwZSwgb3V0cHV0KSB7CisJCWRybU1vZGVDb25uZWN0b3IgKmMgPSBvdXRwdXQtPmNv bmZpZy5jb25uZWN0b3I7CisJCWlmICghYykKKwkJCWNvbnRpbnVlOworCisJCS8qIGZpbmQgdGhl IGZpcnN0IFZHQSBvciBIRE1JIGNvbm5lY3Rvciwgc2luY2UgdGhleSBhcmUgZmFzdCB0bworCQkg KiBkbyBhIG1vZGVzZXQgZm9yLCBhbmQgd2UgY2FuIGZvcmNlIGEgbW9kZSBvbiB0aGVtLgorCQkg Ki8KKwkJaWYgKGMtPmNvbm5lY3Rvcl90eXBlID09IERSTV9NT0RFX0NPTk5FQ1RPUl9WR0EgfHwK KwkJICAgIGMtPmNvbm5lY3Rvcl90eXBlID09IERSTV9NT0RFX0NPTk5FQ1RPUl9IRE1JQSB8fAor CQkgICAgYy0+Y29ubmVjdG9yX3R5cGUgPT0gRFJNX01PREVfQ09OTkVDVE9SX0hETUlCKQorCQkJ cmV0dXJuIG91dHB1dDsKKworCQkvKiB0aGlzIGNvbm5lY3RvciBpcyBub3QgaWRlYWwsIGJ1dCBp ZiBhIHNjcmVlbiBpcyBjb25uZWN0ZWQsCisJCSAqIHRoZW4gbWFyayB0aGUgY29ubmVjdG9yIGFz IHVzYWJsZQorCQkgKi8KKwkJaWYgKGMtPmNvbm5lY3Rpb24gPT0gRFJNX01PREVfQ09OTkVDVEVE KQorCQkJb3V0cHV0X2Nvbm5lY3RlZCA9IG91dHB1dDsKKwl9CisKKwkvKiB3ZSBkaWQgbm90IGZp bmQgYW4gaWRlYWwgY29ubmVjdG9yLCBzbyB1c2Ugb25lIHRoYXQgaGFzIGEgY29ubmVjdGVkCisJ ICogc2NyZWVuIG9uIGl0IChpZiBhdmFpbGFibGUpOgorCSAqLworCWlmIChvdXRwdXRfY29ubmVj dGVkKQorCQlyZXR1cm4gb3V0cHV0X2Nvbm5lY3RlZDsKKworCWlndF9za2lwKCJObyBhY2NlcHRh YmxlIGNvbm5lY3RvciBmb3VuZCBvbiBwaXBlICVzXG4iLAorCQkga21zdGVzdF9waXBlX25hbWUo cGlwZSkpOworfQorCitzdGF0aWMgaWd0X3BsYW5lX3QgKgorZmluZF9wbGFuZShkYXRhX3QgKmRh dGEsIGVudW0gcGlwZSBwaXBlLCBpbnQgcGxhbmVfaWQpIHsKKwlpZ3RfcGxhbmVfdCAqcGxhbmU7 CisKKwlmb3JfZWFjaF9wbGFuZV9vbl9waXBlKCZkYXRhLT5kaXNwbGF5LCBwaXBlLCBwbGFuZSkK KwkJaWYgKHBsYW5lLT5pbmRleCA9PSBwbGFuZV9pZCkgeworCQkJaWYgKHBsYW5lLT50eXBlID09 IERSTV9QTEFORV9UWVBFX0NVUlNPUikKKwkJCQlpZ3Rfc2tpcCgiVGhlIHBsYW5lICVzLiVkIGlz IGEgY3Vyc29yIHBsYW5lXG4iLAorCQkJCQkga21zdGVzdF9waXBlX25hbWUocGlwZSksIHBsYW5l LT5pbmRleCk7CisJCQlyZXR1cm4gcGxhbmU7CisJCX0KKworCWlndF9za2lwKCJUaGUgcGxhbmUg JXMuJWQgY291bGQgbm90IGJlIGZvdW5kXG4iLAorCQkgICAga21zdGVzdF9waXBlX25hbWUocGlw ZSksIHBsYW5lLT5pbmRleCk7CisKKwlyZXR1cm4gTlVMTDsKK30KKworc3RhdGljIHZvaWQKK3Nl dHVwX3Rlc3QoZGF0YV90ICpkYXRhLCBlbnVtIHBpcGUgcGlwZSwgc3RyaWRlX3Qgc3RyaWRlLCBp bnQgcGxhbmVfaWQsIHVpbnQzMl90IGZvcm1hdCkgeworCWlndF9vdXRwdXRfdCAqb3V0cHV0Owor CWlndF9wbGFuZV90ICpwbGFuZTsKKworCS8qIG1ha2Ugc3VyZSB0byBza2lwIGVhcmx5IGlmIHRo ZSBwbGFuZSBvciBmb3JtYXQgaXMgbm90IGF2YWlsYWJsZSAqLworCWlndF9za2lwX29uKHBsYW5l X2lkID49IGRhdGEtPmRpc3BsYXkucGlwZXNbcGlwZV0ubl9wbGFuZXMpOworCWlndF9za2lwX29u KCFpZ3RfZmJfc3VwcG9ydGVkX2Zvcm1hdChmb3JtYXQpKTsKKworCS8qIGdldCBhbGwgdGhlIHNw ZWNpZmllZCByZXNvdXJjZXMgKi8KKwlvdXRwdXQgPSBmaW5kX3N1aXRhYmxlX2Nvbm5lY3Rvcihk YXRhLCBwaXBlKTsKKwlwbGFuZSA9IGZpbmRfcGxhbmUoZGF0YSwgcGlwZSwgcGxhbmVfaWQpOwor CisJdGVzdF9mb3JtYXRfcGxhbmUoZGF0YSwgcGlwZSwgb3V0cHV0LCBwbGFuZSwgZm9ybWF0LCBz dHJpZGUpOworfQorCisvKiBmb3JtYXRzIGFuZCBzdHJpZGVzIHRoYXQgd2lsbCBiZSB0ZXN0ZWQg b24gYWxsIHBpcGVzIGFuZCBhbGwgbm9uLWN1cnNvcgorICogcGxhbmVzCisgKi8KK3N0cmlkZV90 IHN0cmlkZXNbXSA9IHsgVEVTVF9TVFJJREVfNEssIFRFU1RfU1RSSURFXzhLLCBURVNUX1NUUklE RV8xNksgfTsKK3VpbnQzMl90IGZvcm1hdHNbXSA9IHsgRFJNX0ZPUk1BVF9SR0I1NjUsIERSTV9G T1JNQVRfWFJHQjg4ODggfTsKKyNkZWZpbmUgTl9QTEFORVNfTUFYIDQKKworc3RhdGljIHZvaWQK K3J1bl90ZXN0c19mb3JfcGlwZShkYXRhX3QgKmRhdGEsIGVudW0gcGlwZSBwaXBlKQoreworCXN0 cmlkZV90IHN0cmlkZTsKKwl1aW50MzJfdCBmb3JtYXQ7CisJaW50IHBsYW5lX2lkLCBzLCBmOwor CisJaWd0X2ZpeHR1cmUgeworCQlpZ3Rfc2tpcF9vbihwaXBlID49IGRhdGEtPmRpc3BsYXkubl9w aXBlcyk7CisJCWlndF9yZXF1aXJlKGRhdGEtPmRpc3BsYXkucGlwZXNbcGlwZV0ubl9wbGFuZXMg PiAwKTsKKwl9CisKKwlmb3IgKHBsYW5lX2lkID0gMDsgcGxhbmVfaWQgPCBOX1BMQU5FU19NQVg7 IHBsYW5lX2lkKyspIHsKKwkJZm9yIChmID0gMDsgZiA8IEFSUkFZX1NJWkUoZm9ybWF0cyk7IGYr KykgeworCQkJZm9ybWF0ID0gZm9ybWF0c1tmXTsKKworCQkJZm9yIChzID0gMDsgcyA8IEFSUkFZ X1NJWkUoc3RyaWRlcyk7IHMrKykgeworCQkJCXN0cmlkZSA9IHN0cmlkZXNbc107CisKKwkJCQlp Z3Rfc3VidGVzdF9mKCJwaXBlLSVzLXBsYW5lLSVkLSVjJWMlYyVjLXN0cmlkZS0lZEsiLAorCQkJ CQlrbXN0ZXN0X3BpcGVfbmFtZShwaXBlKSwgcGxhbmVfaWQsIGZvcm1hdCwKKwkJCQkJZm9ybWF0 ID4+IDgsIGZvcm1hdCA+PiAxNiwgZm9ybWF0ID4+IDI0LAorCQkJCQlzdHJpZGUpCisJCQkJCXNl dHVwX3Rlc3QoZGF0YSwgcGlwZSwgc3RyaWRlLCBwbGFuZV9pZCwgZm9ybWF0KTsKKwkJCX0KKwkJ fQorCX0KK30KKworc3RhdGljIGRhdGFfdCBkYXRhOworCitpZ3RfbWFpbgoreworCWVudW0gcGlw ZSBwaXBlOworCisJaWd0X2ZpeHR1cmUgeworCQlkYXRhLmRybV9mZCA9IGRybV9vcGVuX2RyaXZl cl9tYXN0ZXIoRFJJVkVSX0lOVEVMKTsKKworCQlrbXN0ZXN0X3NldF92dF9ncmFwaGljc19tb2Rl KCk7CisKKwkJaWd0X3JlcXVpcmVfcGlwZV9jcmMoZGF0YS5kcm1fZmQpOworCQlpZ3RfZGlzcGxh eV9pbml0KCZkYXRhLmRpc3BsYXksIGRhdGEuZHJtX2ZkKTsKKwl9CisKKwlmb3JfZWFjaF9waXBl X3N0YXRpYyhwaXBlKQorCQlydW5fdGVzdHNfZm9yX3BpcGUoJmRhdGEsIHBpcGUpOworCisJaWd0 X2ZpeHR1cmUgeworCQlpZ3RfZGlzcGxheV9maW5pKCZkYXRhLmRpc3BsYXkpOworCX0KK30KZGlm ZiAtLWdpdCBhL3Rlc3RzL21lc29uLmJ1aWxkIGIvdGVzdHMvbWVzb24uYnVpbGQKaW5kZXggNTIx YTRjNDIuLjhiMDQ4MzAwIDEwMDY0NAotLS0gYS90ZXN0cy9tZXNvbi5idWlsZAorKysgYi90ZXN0 cy9tZXNvbi5idWlsZApAQCAtMTU5LDYgKzE1OSw3IEBAIHRlc3RfcHJvZ3MgPSBbCiAJJ2ttc19j dXJzb3JfbGVnYWN5JywKIAkna21zX2RyYXdfY3JjJywKIAkna21zX2ZiY29uX2ZidCcsCisJJ2tt c19mYl9zdHJpZGUnLAogCSdrbXNfZmVuY2VfcGluX2xlYWsnLAogCSdrbXNfZmxpcCcsCiAJJ2tt c19mbGlwX2V2ZW50X2xlYWsnLAotLSAKMi4xNi4xCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2lndC1kZXYK