From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id C6DAC6E036 for ; Wed, 14 Feb 2018 17:07:46 +0000 (UTC) From: Martin Peres Date: Wed, 14 Feb 2018 19:07:36 +0200 Message-Id: <20180214170736.30859-2-martin.peres@linux.intel.com> In-Reply-To: <20180214170736.30859-1-martin.peres@linux.intel.com> References: <20180214170736.30859-1-martin.peres@linux.intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v2 2/2] 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 IGZyb20gNEsgdG8gMTZLKS4KCkFueSB0aG91Z2h0cz8KCnYyOgogLSBTS0lQIHdoZW4gYSBzdHJp ZGUvZm9ybWF0IGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGtlcm5lbAogLSBwZXJmb3JtIGEgbW9k ZXNldCBhdCBhIGxvdyByZXNvbHV0aW9uIG9uIGFsbCBwaXBlcyBiZWZvcmUgcnVubmluZwogICBh IHRlc3QgaW4gb3JkZXIgdG8gYmUgZmFzdCBhbmQgcHJvdmlkZSBjb3ZlcmFnZSBldmVuIHdpdGhv dXQKICAgYSBkaXNwbGF5IGF0dGFjaGVkIChyZXF1aXJlcyBhIFZHQSBvciBIRE1JIGNvbm5lY3Rv cikuCiAtIGdlbmVyYXRlIGEgc3VidGVzdCBwZXIgcGlwZSwgcGxhbmUsIGZvcm1hdCBhbmQgc3Ry aWRlCgpTaWduZWQtb2ZmLWJ5OiBNYXJ0aW4gUGVyZXMgPG1hcnRpbi5wZXJlc0BsaW51eC5pbnRl bC5jb20+Ci0tLQogdGVzdHMvTWFrZWZpbGUuc291cmNlcyB8ICAgMSArCiB0ZXN0cy9rbXNfZmJf c3RyaWRlLmMgIHwgMzEyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKIHRlc3RzL21lc29uLmJ1aWxkICAgICAgfCAgIDEgKwogMyBmaWxlcyBjaGFuZ2Vk LCAzMTQgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2ttc19mYl9zdHJp ZGUuYwoKZGlmZiAtLWdpdCBhL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMgYi90ZXN0cy9NYWtlZmls ZS5zb3VyY2VzCmluZGV4IDg3MGM5MDkzLi4wZTFlZWI5NSAxMDA2NDQKLS0tIGEvdGVzdHMvTWFr ZWZpbGUuc291cmNlcworKysgYi90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzCkBAIC0xODEsNiArMTgx LDcgQEAgVEVTVFNfcHJvZ3MgPSBcCiAJa21zX2N1cnNvcl9sZWdhY3kgXAogCWttc19kcmF3X2Ny YyBcCiAJa21zX2ZiY29uX2ZidCBcCisJa21zX2ZiX3N0cmlkZSBcCiAJa21zX2ZlbmNlX3Bpbl9s ZWFrIFwKIAlrbXNfZmxpcCBcCiAJa21zX2ZsaXBfZXZlbnRfbGVhayBcCmRpZmYgLS1naXQgYS90 ZXN0cy9rbXNfZmJfc3RyaWRlLmMgYi90ZXN0cy9rbXNfZmJfc3RyaWRlLmMKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLmE4NmQ2OGRkCi0tLSAvZGV2L251bGwKKysrIGIvdGVz dHMva21zX2ZiX3N0cmlkZS5jCkBAIC0wLDAgKzEsMzEyIEBACisvKgorICogQ29weXJpZ2h0IMKp IDIwMTggSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFu dGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBv ZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAi U29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rp b24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBj b3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICog YW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25z IHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3Qg dG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQg bm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAq IHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlh bCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQ Uk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9S CisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVT IE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF IEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIEFVVEhPUlMg T1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1Ig T1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRP UlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElP TiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCisgKiBJTiBU SEUgU09GVFdBUkUuCisgKgorICogQXV0aG9yczoKKyAqICAgTWFydGluIFBlcmVzIDxtYXJ0aW4u cGVyZXNAbGludXguaW50ZWwuY29tPgorICovCisKKyNpbmNsdWRlICJpZ3QuaCIKKyNpbmNsdWRl IDxlcnJuby5oPgorI2luY2x1ZGUgPHN0ZGJvb2wuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2lu Y2x1ZGUgPHN0cmluZy5oPgorCit0eXBlZGVmIGVudW0geworCVRFU1RfU1RSSURFX0NSVEMgPSAw LAorCVRFU1RfU1RSSURFXzJLID0gMiwKKwlURVNUX1NUUklERV80SyA9IDQsCisJVEVTVF9TVFJJ REVfOEsgPSA4LAorCVRFU1RfU1RSSURFXzE2SyA9IDE2LAorCVRFU1RfU1RSSURFXzMySyA9IDMy LAorfSBzdHJpZGVfdDsKKwordHlwZWRlZiBzdHJ1Y3QgeworCWludCBkcm1fZmQ7CisJaWd0X2Rp c3BsYXlfdCBkaXNwbGF5OworCWlndF9waXBlX2NyY190ICpwaXBlX2NyYzsKK30gZGF0YV90Owor CitzdGF0aWMgZHJtTW9kZU1vZGVJbmZvCitnZXRfbG93cmVzX21vZGUoaW50IGRybWZkLCBpbnQg bWF4X2hkaXNwbGF5KQoreworCWRybU1vZGVSZXMgKm1vZGVfcmVzb3VyY2VzID0gZHJtTW9kZUdl dFJlc291cmNlcyhkcm1mZCk7CisJZHJtTW9kZU1vZGVJbmZvIG1vZGU7CisJZHJtTW9kZU1vZGVJ bmZvIHN0ZF8xMDI0X21vZGUgPSB7CisJCS5jbG9jayA9IDY1MDAwLAorCQkuaGRpc3BsYXkgPSAx MDI0LAorCQkuaHN5bmNfc3RhcnQgPSAxMDQ4LAorCQkuaHN5bmNfZW5kID0gMTE4NCwKKwkJLmh0 b3RhbCA9IDEzNDQsCisJCS5oc2tldyA9IDAsCisJCS52ZGlzcGxheSA9IDc2OCwKKwkJLnZzeW5j X3N0YXJ0ID0gNzcxLAorCQkudnN5bmNfZW5kID0gNzc3LAorCQkudnRvdGFsID0gODA2LAorCQku dnNjYW4gPSAwLAorCQkudnJlZnJlc2ggPSA2MCwKKwkJLmZsYWdzID0gMHhBLAorCQkudHlwZSA9 IDB4NDAsCisJCS5uYW1lID0gIkN1c3RvbSAxMDI0eDc2OCIsCisJfTsKKwlib29sIGZvdW5kOwor CWludCBpLCBqOworCisJaWYgKCFtb2RlX3Jlc291cmNlcykgeworCQlpZ3Rfd2FybigiZHJtTW9k ZUdldFJlc291cmNlcyBmYWlsZWQ6ICVzXG4iLCBzdHJlcnJvcihlcnJubykpOworCQlyZXR1cm4g c3RkXzEwMjRfbW9kZTsKKwl9CisKKwlmb3VuZCA9IGZhbHNlOworCWZvciAoaSA9IDA7IGkgPCBt b2RlX3Jlc291cmNlcy0+Y291bnRfY29ubmVjdG9yczsgaSsrKSB7CisJCWRybU1vZGVDb25uZWN0 b3IgKmNvbm5lY3RvcjsKKworCQljb25uZWN0b3IgPSBkcm1Nb2RlR2V0Q29ubmVjdG9yQ3VycmVu dChkcm1mZCwKKwkJCQkJCSAgICAgICBtb2RlX3Jlc291cmNlcy0+Y29ubmVjdG9yc1tpXSk7CisJ CWlmICghY29ubmVjdG9yKSB7CisJCQlpZ3Rfd2FybigiY291bGQgbm90IGdldCBjb25uZWN0b3Ig JWk6ICVzXG4iLAorCQkJCSBtb2RlX3Jlc291cmNlcy0+Y29ubmVjdG9yc1tpXSwgc3RyZXJyb3Io ZXJybm8pKTsKKwkJCWNvbnRpbnVlOworCQl9CisKKwkJaWYgKCFjb25uZWN0b3ItPmNvdW50X21v ZGVzKQorCQkJY29udGludWU7CisKKwkJZm9yIChqID0gMDsgaiA8IGNvbm5lY3Rvci0+Y291bnRf bW9kZXM7IGorKykgeworCQkJbW9kZSA9IGNvbm5lY3Rvci0+bW9kZXNbal07CisJCQlpZiAobW9k ZS5oZGlzcGxheSA8IG1heF9oZGlzcGxheSkgeworCQkJCWZvdW5kID0gdHJ1ZTsKKwkJCQlicmVh azsKKwkJCX0KKwkJfQorCisJCWRybU1vZGVGcmVlQ29ubmVjdG9yKGNvbm5lY3Rvcik7CisJfQor CisJZHJtTW9kZUZyZWVSZXNvdXJjZXMobW9kZV9yZXNvdXJjZXMpOworCisJaWYgKCFmb3VuZCkK KwkJcmV0dXJuIHN0ZF8xMDI0X21vZGU7CisKKwlyZXR1cm4gbW9kZTsKK30KKworc3RhdGljIHZv aWQgdGVzdF9jbGVhbnVwKGRhdGFfdCAqZGF0YSwgaWd0X3BsYW5lX3QgKnBsYW5lLCBzdHJ1Y3Qg aWd0X2ZiICpmYikgeworCWlndF9wbGFuZV9zZXRfZmIocGxhbmUsIE5VTEwpOworCWlndF9kaXNw bGF5X2NvbW1pdDIoJmRhdGEtPmRpc3BsYXksIENPTU1JVF9VTklWRVJTQUwpOworCWlndF9yZW1v dmVfZmIoZGF0YS0+ZHJtX2ZkLCBmYik7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3RfZm9ybWF0X3Bs YW5lX2dldF9jcmMoZGF0YV90ICpkYXRhLCBpZ3Rfb3V0cHV0X3QgKm91dHB1dCwKKwkJCQkgICAg ICBpZ3RfcGxhbmVfdCAqcGxhbmUsIHVpbnQzMl90IGZvcm1hdCwKKwkJCQkgICAgICBzdHJpZGVf dCBzdHJpZGUsCisJCQkJICAgICAgaWd0X2NyY190ICpjcmMgLyogb3V0ICovKSB7CisJZHJtTW9k ZU1vZGVJbmZvICptb2RlOworCXN0cnVjdCBpZ3RfZmIgZmI7CisJY2Fpcm9fdCAqY3I7CisJaW50 IHdpZHRoLCByZXQ7CisKKwltb2RlID0gaWd0X291dHB1dF9nZXRfbW9kZShvdXRwdXQpOworCisJ d2lkdGggPSAoc3RyaWRlID09IFRFU1RfU1RSSURFX0NSVEMgPyBtb2RlLT5oZGlzcGxheSA6IHN0 cmlkZSAqIDEwMjQpOworCisJaWd0X3NraXBfb24oX19pZ3RfY3JlYXRlX2ZiKGRhdGEtPmRybV9m ZCwgd2lkdGgsIG1vZGUtPnZkaXNwbGF5LAorCQkgICAgICAgICAgICAgICAgICAgIGZvcm1hdCwg TE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9ORSwgJmZiLAorCQkgICAgICAgICAgICAgICAgICAgIE5V TEwpKTsKKworCWNyID0gaWd0X2dldF9jYWlyb19jdHgoZGF0YS0+ZHJtX2ZkLCAmZmIpOworCWln dF9wYWludF90ZXN0X3BhdHRlcm4oY3IsIG1vZGUtPmhkaXNwbGF5LCBtb2RlLT52ZGlzcGxheSk7 CisJaWd0X2Fzc2VydChjYWlyb19zdGF0dXMoY3IpID09IDApOworCWNhaXJvX2Rlc3Ryb3koY3Ip OworCisJLyogc2V0IHRoZSBmYiB3aXRoIHRoZSB3YW50ZWQgc3RyaWRlLiBJZiB0aGUgc3RyaWRl IGlzIG5lZ2F0aXZlLCB3ZSB3YW50CisJICogdG8gZmFpbCBiZWNhdXNlIGl0IG1lYW5zIHRoZSBw aXBlIGRvZXMgbm90IHN1cHBvcnQgdGhlIHJlc29sdXRpb24gb2YKKwkgKiB0aGUgc2NyZWVuLiBJ ZiB0aGUgc3RyaWRlIGlzIHBvc2l0aXZlLCB0aGlzIG1lYW5zIHdlIGFyZSB0ZXN0aW5nIGFuCisJ ICogaW5jcmVhc2VkIHN0cmlkZSBhbmQgd2Ugd2FudCB0byBza2lwIGlmIHRoZSBrZXJuZWwgY29u c2lkZXJzIHRoZSBtb2RlCisJICogaW52YWxpZC4KKwkgKi8KKwlpZ3RfcGxhbmVfc2V0X2ZiKHBs YW5lLCAmZmIpOworCisJcmV0ID0gaWd0X2Rpc3BsYXlfdHJ5X2NvbW1pdDIoJmRhdGEtPmRpc3Bs YXksIENPTU1JVF9VTklWRVJTQUwpOworCWlmIChyZXQpIHsKKwkJLyogcmVzZXQgdGhlIHN0YXRl IGFuZCBmcmVlIHRoZSBmcmFtZWJ1ZmZlciAqLworCQl0ZXN0X2NsZWFudXAoZGF0YSwgcGxhbmUs ICZmYik7CisKKwkJaWd0X3NraXAoIlRoZSBrZXJuZWwgcmVqZWN0ZWQgc2V0dGluZyBhICVpeCVp IGZyYW1lYnVmZmVyXG4iLAorCQkgICAgICAgICB3aWR0aCwgbW9kZS0+dmRpc3BsYXkpOworCX0K KworCWlndF9waXBlX2NyY19jb2xsZWN0X2NyYyhkYXRhLT5waXBlX2NyYywgY3JjKTsKKworCS8q IHJlc2V0IHRoZSBzdGF0ZSBhbmQgZnJlZSB0aGUgZnJhbWVidWZmZXIgKi8KKwl0ZXN0X2NsZWFu dXAoZGF0YSwgcGxhbmUsICZmYik7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3RfZm9ybWF0X3BsYW5l KGRhdGFfdCAqZGF0YSwgZW51bSBwaXBlIHBpcGUsCisJCQkgICAgICBpZ3Rfb3V0cHV0X3QgKm91 dHB1dCwgaWd0X3BsYW5lX3QgKnBsYW5lLAorCQkJICAgICAgdWludDMyX3QgZm9ybWF0LCBzdHJp ZGVfdCBzdHJpZGUpCit7CisJZHJtTW9kZU1vZGVJbmZvIG1vZGU7CisJaWd0X2NyY190IGNyY19y ZWYsIGNyYzsKKworCW1vZGUgPSBnZXRfbG93cmVzX21vZGUoZGF0YS0+ZHJtX2ZkLCAxMDI1KTsK KwlpZ3Rfb3V0cHV0X292ZXJyaWRlX21vZGUob3V0cHV0LCAmbW9kZSk7CisJaWd0X291dHB1dF9z ZXRfcGlwZShvdXRwdXQsIHBpcGUpOworCWlndF9kaXNwbGF5X2NvbW1pdDIoJmRhdGEtPmRpc3Bs YXksIGRhdGEtPmRpc3BsYXkuaXNfYXRvbWljID8gQ09NTUlUX0FUT01JQyA6IENPTU1JVF9MRUdB Q1kpOworCisJZGF0YS0+cGlwZV9jcmMgPSBpZ3RfcGlwZV9jcmNfbmV3KGRhdGEtPmRybV9mZCwg cGlwZSwKKwkJCQkJCUlOVEVMX1BJUEVfQ1JDX1NPVVJDRV9BVVRPKTsKKworCXRlc3RfZm9ybWF0 X3BsYW5lX2dldF9jcmMoZGF0YSwgb3V0cHV0LCBwbGFuZSwgZm9ybWF0LAorCSAgICAgICAgICAg ICAgICAgICAgICAgICAgVEVTVF9TVFJJREVfQ1JUQywgJmNyY19yZWYpOworCXRlc3RfZm9ybWF0 X3BsYW5lX2dldF9jcmMoZGF0YSwgb3V0cHV0LCBwbGFuZSwgZm9ybWF0LAorCSAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RyaWRlLCAmY3JjKTsKKwlpZ3RfYXNzZXJ0X2NyY19lcXVhbCgmY3Jj X3JlZiwgJmNyYyk7CisKKwlpZ3RfcGlwZV9jcmNfc3RvcChkYXRhLT5waXBlX2NyYyk7CisJaWd0 X3BpcGVfY3JjX2ZyZWUoZGF0YS0+cGlwZV9jcmMpOworCisJaWd0X291dHB1dF9zZXRfcGlwZShv dXRwdXQsIFBJUEVfQU5ZKTsKK30KKworCitzdGF0aWMgaWd0X291dHB1dF90ICoKK2ZpbmRfc3Vp dGFibGVfY29ubmVjdG9yKGRhdGFfdCAqZGF0YSwgZW51bSBwaXBlIHBpcGUpIHsKKwlpZ3Rfb3V0 cHV0X3QgKm91dHB1dDsKKwlkcm1Nb2RlUmVzICpyZXM7CisKKwkvKiBtYWtlIHN1cmUgYWxsIGNv bm5lY3RvcnMgYXJlIGZyZWUgZm9yIG91ciB0ZXN0aW5nICovCisJcmVzID0gZHJtTW9kZUdldFJl c291cmNlcyhkYXRhLT5kcm1fZmQpOworCWlndF9hc3NlcnQocmVzKTsKKwlrbXN0ZXN0X3Vuc2V0 X2FsbF9jcnRjcyhkYXRhLT5kcm1fZmQsIHJlcyk7CisKKwkvKiBmaW5kIGEgY29ubmVjdG9yIHRo YXQgc3VwcG9ydHMgbW9kZSBpbmplY3Rpb24gKi8KKwlmb3JfZWFjaF92YWxpZF9vdXRwdXRfb25f cGlwZSgmZGF0YS0+ZGlzcGxheSwgcGlwZSwgb3V0cHV0KSB7CisJCWRybU1vZGVDb25uZWN0b3Ig KmM7CisKKwkJLyogZmluZCB0aGUgZmlyc3QgVkdBIG9yIEhETUkgY29ubmVjdG9yLCBzaW5jZSB0 aGV5IGFyZSBmYXN0IHRvCisJCSAqIGRvIGEgbW9kZXNldCBmb3IsIGFuZCB3ZSBjYW4gZm9yY2Ug YSBtb2RlIG9uIHRoZW0uCisJCSAqLworCQljID0gb3V0cHV0LT5jb25maWcuY29ubmVjdG9yOwor CQlpZiAoIWMgfHwgKGMtPmNvbm5lY3Rvcl90eXBlICE9IERSTV9NT0RFX0NPTk5FQ1RPUl9WR0Eg JiYKKwkJCSAgIGMtPmNvbm5lY3Rvcl90eXBlICE9IERSTV9NT0RFX0NPTk5FQ1RPUl9IRE1JQSAm JgorCQkJICAgYy0+Y29ubmVjdG9yX3R5cGUgIT0gRFJNX01PREVfQ09OTkVDVE9SX0hETUlCKSkK KwkJCWNvbnRpbnVlOworCisJCXJldHVybiBvdXRwdXQ7CisJfQorCisJaWd0X3NraXAoIk5vIGFj Y2VwdGFibGUgY29ubmVjdG9yIGZvdW5kIG9uIHBpcGUgJXNcbiIsCisJCSBrbXN0ZXN0X3BpcGVf bmFtZShwaXBlKSk7Cit9CisKK3N0YXRpYyBpZ3RfcGxhbmVfdCAqCitmaW5kX3BsYW5lKGRhdGFf dCAqZGF0YSwgZW51bSBwaXBlIHBpcGUsIGludCBwbGFuZV9pZCkgeworCWlndF9wbGFuZV90ICpw bGFuZTsKKworCWZvcl9lYWNoX3BsYW5lX29uX3BpcGUoJmRhdGEtPmRpc3BsYXksIHBpcGUsIHBs YW5lKQorCQlpZiAocGxhbmUtPmluZGV4ID09IHBsYW5lX2lkKSB7CisJCQlpZiAocGxhbmUtPnR5 cGUgPT0gRFJNX1BMQU5FX1RZUEVfQ1VSU09SKQorCQkJCWlndF9za2lwKCJUaGUgcGxhbmUgJXMu JWQgaXMgYSBjdXJzb3IgcGxhbmVcbiIsCisJCQkJCSBrbXN0ZXN0X3BpcGVfbmFtZShwaXBlKSwg cGxhbmUtPmluZGV4KTsKKwkJCXJldHVybiBwbGFuZTsKKwkJfQorCisJaWd0X3NraXAoIlRoZSBw bGFuZSAlcy4lZCBjb3VsZCBub3QgYmUgZm91bmRcbiIsCisJCSAgICBrbXN0ZXN0X3BpcGVfbmFt ZShwaXBlKSwgcGxhbmUtPmluZGV4KTsKKworCXJldHVybiBOVUxMOworfQorCitzdGF0aWMgdm9p ZAorc2V0dXBfdGVzdChkYXRhX3QgKmRhdGEsIGVudW0gcGlwZSBwaXBlLCBzdHJpZGVfdCBzdHJp ZGUsIGludCBwbGFuZV9pZCwgdWludDMyX3QgZm9ybWF0KSB7CisJaWd0X291dHB1dF90ICpvdXRw dXQ7CisJaWd0X3BsYW5lX3QgKnBsYW5lOworCisJLyogbWFrZSBzdXJlIHRvIHNraXAgZWFybHkg aWYgdGhlIHBsYW5lIG9yIGZvcm1hdCBpcyBub3QgYXZhaWxhYmxlICovCisJaWd0X3NraXBfb24o cGxhbmVfaWQgPj0gZGF0YS0+ZGlzcGxheS5waXBlc1twaXBlXS5uX3BsYW5lcyk7CisJaWd0X3Nr aXBfb24oIWlndF9mYl9zdXBwb3J0ZWRfZm9ybWF0KGZvcm1hdCkpOworCisJLyogZ2V0IGFsbCB0 aGUgc3BlY2lmaWVkIHJlc291cmNlcyAqLworCW91dHB1dCA9IGZpbmRfc3VpdGFibGVfY29ubmVj dG9yKGRhdGEsIHBpcGUpOworCXBsYW5lID0gZmluZF9wbGFuZShkYXRhLCBwaXBlLCBwbGFuZV9p ZCk7CisKKwl0ZXN0X2Zvcm1hdF9wbGFuZShkYXRhLCBwaXBlLCBvdXRwdXQsIHBsYW5lLCBmb3Jt YXQsIHN0cmlkZSk7Cit9CisKKy8qIGZvcm1hdHMgYW5kIHN0cmlkZXMgdGhhdCB3aWxsIGJlIHRl c3RlZCBvbiBhbGwgcGlwZXMgYW5kIGFsbCBub24tY3Vyc29yCisgKiBwbGFuZXMKKyAqLworc3Ry aWRlX3Qgc3RyaWRlc1tdID0geyBURVNUX1NUUklERV80SywgVEVTVF9TVFJJREVfOEssIFRFU1Rf U1RSSURFXzE2SyB9OwordWludDMyX3QgZm9ybWF0c1tdID0geyBEUk1fRk9STUFUX1JHQjU2NSwg RFJNX0ZPUk1BVF9YUkdCODg4OCB9OworI2RlZmluZSBOX1BMQU5FU19NQVggNAorCitzdGF0aWMg dm9pZAorcnVuX3Rlc3RzX2Zvcl9waXBlKGRhdGFfdCAqZGF0YSwgZW51bSBwaXBlIHBpcGUpCit7 CisJc3RyaWRlX3Qgc3RyaWRlOworCXVpbnQzMl90IGZvcm1hdDsKKwlpbnQgcGxhbmVfaWQsIHMs IGY7CisKKwlpZ3RfZml4dHVyZSB7CisJCWlndF9za2lwX29uKHBpcGUgPj0gZGF0YS0+ZGlzcGxh eS5uX3BpcGVzKTsKKwkJaWd0X3JlcXVpcmUoZGF0YS0+ZGlzcGxheS5waXBlc1twaXBlXS5uX3Bs YW5lcyA+IDApOworCX0KKworCWZvciAocGxhbmVfaWQgPSAwOyBwbGFuZV9pZCA8IE5fUExBTkVT X01BWDsgcGxhbmVfaWQrKykgeworCQlmb3IgKGYgPSAwOyBmIDwgQVJSQVlfU0laRShmb3JtYXRz KTsgZisrKSB7CisJCQlmb3JtYXQgPSBmb3JtYXRzW2ZdOworCisJCQlmb3IgKHMgPSAwOyBzIDwg QVJSQVlfU0laRShzdHJpZGVzKTsgcysrKSB7CisJCQkJc3RyaWRlID0gc3RyaWRlc1tzXTsKKwor CQkJCWlndF9zdWJ0ZXN0X2YoInBpcGUtJXMtcGxhbmUtJWQtJWMlYyVjJWMtc3RyaWRlLSVkSyIs CisJCQkJCWttc3Rlc3RfcGlwZV9uYW1lKHBpcGUpLCBwbGFuZV9pZCwgZm9ybWF0LAorCQkJCQlm b3JtYXQgPj4gOCwgZm9ybWF0ID4+IDE2LCBmb3JtYXQgPj4gMjQsCisJCQkJCXN0cmlkZSkKKwkJ CQkJc2V0dXBfdGVzdChkYXRhLCBwaXBlLCBzdHJpZGUsIHBsYW5lX2lkLCBmb3JtYXQpOworCQkJ fQorCQl9CisJfQorfQorCitzdGF0aWMgZGF0YV90IGRhdGE7CisKK2lndF9tYWluCit7CisJZW51 bSBwaXBlIHBpcGU7CisKKwlpZ3RfZml4dHVyZSB7CisJCWRhdGEuZHJtX2ZkID0gZHJtX29wZW5f ZHJpdmVyX21hc3RlcihEUklWRVJfSU5URUwpOworCisJCWttc3Rlc3Rfc2V0X3Z0X2dyYXBoaWNz X21vZGUoKTsKKworCQlpZ3RfcmVxdWlyZV9waXBlX2NyYyhkYXRhLmRybV9mZCk7CisJCWlndF9k aXNwbGF5X2luaXQoJmRhdGEuZGlzcGxheSwgZGF0YS5kcm1fZmQpOworCX0KKworCWZvcl9lYWNo X3BpcGVfc3RhdGljKHBpcGUpCisJCXJ1bl90ZXN0c19mb3JfcGlwZSgmZGF0YSwgcGlwZSk7CisK KwlpZ3RfZml4dHVyZSB7CisJCWlndF9kaXNwbGF5X2ZpbmkoJmRhdGEuZGlzcGxheSk7CisJfQor fQpkaWZmIC0tZ2l0IGEvdGVzdHMvbWVzb24uYnVpbGQgYi90ZXN0cy9tZXNvbi5idWlsZAppbmRl eCA1MjFhNGM0Mi4uOGIwNDgzMDAgMTAwNjQ0Ci0tLSBhL3Rlc3RzL21lc29uLmJ1aWxkCisrKyBi L3Rlc3RzL21lc29uLmJ1aWxkCkBAIC0xNTksNiArMTU5LDcgQEAgdGVzdF9wcm9ncyA9IFsKIAkn a21zX2N1cnNvcl9sZWdhY3knLAogCSdrbXNfZHJhd19jcmMnLAogCSdrbXNfZmJjb25fZmJ0JywK Kwkna21zX2ZiX3N0cmlkZScsCiAJJ2ttc19mZW5jZV9waW5fbGVhaycsCiAJJ2ttc19mbGlwJywK IAkna21zX2ZsaXBfZXZlbnRfbGVhaycsCi0tIAoyLjE2LjEKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaWd0LWRldgo=