From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr1-x444.google.com (mail-wr1-x444.google.com [IPv6:2a00:1450:4864:20::444]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3BA5A89FCA for ; Mon, 6 Apr 2020 14:26:26 +0000 (UTC) Received: by mail-wr1-x444.google.com with SMTP id 31so502519wre.5 for ; Mon, 06 Apr 2020 07:26:26 -0700 (PDT) Received: from [0.0.0.0] (jfdmzpr05-ext.jf.intel.com. [134.134.139.74]) by smtp.googlemail.com with ESMTPSA id e8sm18414760wrw.40.2020.04.06.07.26.22 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 06 Apr 2020 07:26:24 -0700 (PDT) References: <20200325191819.10196-1-jose.souza@intel.com> From: Juha-Pekka Heikkila Message-ID: <69830c0d-6dc5-5332-32f2-35e7fe5615d7@gmail.com> Date: Mon, 6 Apr 2020 17:26:19 +0300 MIME-Version: 1.0 In-Reply-To: <20200325191819.10196-1-jose.souza@intel.com> Content-Language: en-US Subject: Re: [igt-dev] [PATCH i-g-t v6 without-hack-patches 1/5] tests/kms_frontbuffer_tracking: Add tiling to test_mode List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: juhapekka.heikkila@gmail.com Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org List-ID: SSB3YXNuJ3QgYmlnIGZhbiBvZiBuZXcgaW50cm9kdWNlZCBlbnVtIGJ1dCBpdCBzZWVtcyB0byBi ZSBpbiBsaW5lIHdpdGggCnN0eWxlIG9mIHRoZSB0ZXN0LgoKcGF0Y2hlcyAxLCAyIGFuZCAzIGFy ZQpSZXZpZXdlZC1ieTogSnVoYS1QZWtrYSBIZWlra2lsYSA8anVoYXBla2thLmhlaWtraWxhQGdt YWlsLmNvbT4KCk9uIDI1LjMuMjAyMCAyMS4xOCwgSm9zw6kgUm9iZXJ0byBkZSBTb3V6YSB3cm90 ZToKPiBUaGlzIHdpbGwgYWxsb3cgdXMgdG8gZG8gdGVzdHMgd2l0aCBkaWZmZXJlbnQgdGlsZSB0 eXBlcywgZm9yIG5vdwo+IGFsbCB0ZXN0cyB3aWxsIGNvbnRpbnVlIHRvIHJ1biB3aXRoIHRoZSBk ZWZhdWx0IFggdGlsaW5nLgo+IEl0IHdpbGwgYmUgdXNlZCBpbiB1cGNvbWluZyBwYXRjaGVzLgo+ IAo+IEl0IGFsc28gYWxsb3cgdXNlciB0byBydW4gYWxsIHRlc3RzIHdpdGggbGluZXIgdGlsaW5n IHdoZW4gc2V0IGJ5Cj4gcGFyYW1ldGVyLgo+IAo+IHYyOgo+IC0gcmVuYW1lZCB0aWxlIHRvIHRp bGluZyAoVmlsbGUpCj4gLSBhZGRlZCB0byB0aGUgY29tbWl0IG1lc3NhZ2UgdGhhdCB0aGlzIHdp bGwgYmUgdXNlZCBpbiB1cGNvbWluZwo+IHBhdGNoZXMKPiAKPiBDYzogVmlsbGUgU3lyasOkbMOk IDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBKb3PDqSBS b2JlcnRvIGRlIFNvdXphIDxqb3NlLnNvdXphQGludGVsLmNvbT4KPiAtLS0KPiAgIHRlc3RzL2tt c19mcm9udGJ1ZmZlcl90cmFja2luZy5jIHwgMTIyICsrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0KPiAgIDEgZmlsZSBjaGFuZ2VkLCA3OCBpbnNlcnRpb25zKCspLCA0NCBkZWxldGlvbnMo LSkKPiAKPiBkaWZmIC0tZ2l0IGEvdGVzdHMva21zX2Zyb250YnVmZmVyX3RyYWNraW5nLmMgYi90 ZXN0cy9rbXNfZnJvbnRidWZmZXJfdHJhY2tpbmcuYwo+IGluZGV4IGM0YjRhZjQzLi5jNGRlYjcy YiAxMDA2NDQKPiAtLS0gYS90ZXN0cy9rbXNfZnJvbnRidWZmZXJfdHJhY2tpbmcuYwo+ICsrKyBi L3Rlc3RzL2ttc19mcm9udGJ1ZmZlcl90cmFja2luZy5jCj4gQEAgLTEzMCw2ICsxMzAsMTQgQEAg c3RydWN0IHRlc3RfbW9kZSB7Cj4gICAJCUZMSVBfQ09VTlQsCj4gICAJfSBmbGlwOwo+ICAgCj4g KwllbnVtIHRpbGluZ190eXBlIHsKPiArCQlUSUxJTkdfTElORUFSID0gMCwKPiArCQlUSUxJTkdf WCwKPiArCQlUSUxJTkdfWSwKPiArCQlUSUxJTkdfQ09VTlQsCj4gKwkJVElMSU5HX0RFRkFVTFQg PSBUSUxJTkdfWCwKPiArCX0gdGlsaW5nOwo+ICsKPiAgIAllbnVtIGlndF9kcmF3X21ldGhvZCBt ZXRob2Q7Cj4gICB9Owo+ICAgCj4gQEAgLTIzNSw3ICsyNDMsNyBAQCBzdHJ1Y3Qgewo+ICAgCWlu dCBvbmx5X3BpcGVzOwo+ICAgCWludCBzaGFyZWRfZmJfeF9vZmZzZXQ7Cj4gICAJaW50IHNoYXJl ZF9mYl95X29mZnNldDsKPiAtCXVpbnQ2NF90IHRpbGluZzsKPiArCWVudW0gdGlsaW5nX3R5cGUg dGlsaW5nOwo+ICAgfSBvcHQgPSB7Cj4gICAJLmNoZWNrX3N0YXR1cyA9IHRydWUsCj4gICAJLmNo ZWNrX2NyYyA9IHRydWUsCj4gQEAgLTI0OCw3ICsyNTYsNyBAQCBzdHJ1Y3Qgewo+ICAgCS5vbmx5 X3BpcGVzID0gUElQRV9DT1VOVCwKPiAgIAkuc2hhcmVkX2ZiX3hfb2Zmc2V0ID0gMjQ4LAo+ICAg CS5zaGFyZWRfZmJfeV9vZmZzZXQgPSA1MDAsCj4gLQkudGlsaW5nID0gTE9DQUxfSTkxNV9GT1JN QVRfTU9EX1hfVElMRUQsCj4gKwkudGlsaW5nID0gVElMSU5HX0RFRkFVTFQsCj4gICB9Owo+ICAg Cj4gICBzdHJ1Y3QgbW9kZXNldF9wYXJhbXMgewo+IEBAIC00NDQsMTMgKzQ1MiwyNiBAQCBzdGF0 aWMgYm9vbCBpbml0X21vZGVzZXRfY2FjaGVkX3BhcmFtcyh2b2lkKQo+ICAgCXJldHVybiB0cnVl Owo+ICAgfQo+ICAgCj4gK3N0YXRpYyB1aW50NjRfdCB0aWxpbmdfdG9fbW9kaWZpZXIoZW51bSB0 aWxpbmdfdHlwZSB0aWxpbmcpCj4gK3sKPiArCXN3aXRjaCAodGlsaW5nKSB7Cj4gKwljYXNlIFRJ TElOR19MSU5FQVI6Cj4gKwkJcmV0dXJuIExPQ0FMX0RSTV9GT1JNQVRfTU9EX05PTkU7Cj4gKwlj YXNlIFRJTElOR19YOgo+ICsJCXJldHVybiBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWF9USUxFRDsK PiArCWNhc2UgVElMSU5HX1k6Cj4gKwkJcmV0dXJuIExPQ0FMX0k5MTVfRk9STUFUX01PRF9ZX1RJ TEVEOwo+ICsJZGVmYXVsdDoKPiArCQlpZ3RfYXNzZXJ0KGZhbHNlKTsKPiArCX0KPiArfQo+ICsK PiAgIHN0YXRpYyB2b2lkIGNyZWF0ZV9mYihlbnVtIHBpeGVsX2Zvcm1hdCBwZm9ybWF0LCBpbnQg d2lkdGgsIGludCBoZWlnaHQsCj4gLQkJICAgICAgdWludDY0X3QgdGlsaW5nLCBpbnQgcGxhbmUs IHN0cnVjdCBpZ3RfZmIgKmZiKQo+ICsJCSAgICAgIGVudW0gdGlsaW5nX3R5cGUgdGlsaW5nLCBp bnQgcGxhbmUsIHN0cnVjdCBpZ3RfZmIgKmZiKQo+ICAgewo+ICAgCXVpbnQzMl90IGZvcm1hdDsK PiAtCXVpbnQ2NF90IHNpemU7Cj4gKwl1aW50NjRfdCBzaXplLCBtb2RpZmllcjsKPiAgIAl1bnNp Z25lZCBpbnQgc3RyaWRlOwo+IC0JdWludDY0X3QgdGlsaW5nX2Zvcl9zaXplOwo+ICAgCj4gICAJ c3dpdGNoIChwZm9ybWF0KSB7Cj4gICAJY2FzZSBGT1JNQVRfUkdCODg4Ogo+IEBAIC00ODAsMTkg KzUwMSwxNCBAQCBzdGF0aWMgdm9pZCBjcmVhdGVfZmIoZW51bSBwaXhlbF9mb3JtYXQgcGZvcm1h dCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LAo+ICAgCQlpZ3RfYXNzZXJ0KGZhbHNlKTsKPiAgIAl9 Cj4gICAKPiAtCS8qIFdlIHdhbnQgYWxsIGZyb250YnVmZmVycyB3aXRoIHRoZSBzYW1lIHdpZHRo L2hlaWdodC9mb3JtYXQgdG8gaGF2ZQo+IC0JICogdGhlIHNhbWUgc2l6ZSByZWdhcmRsZXNzIG9m IHRpbGluZyBzaW5jZSB3ZSB3YW50IHRvIHByb3Blcmx5IGV4ZXJjaXNlCj4gLQkgKiB0aGUgS2Vy bmVsJ3Mgc3BlY2lmaWMgdGlsaW5nLWNoZWNraW5nIGNvZGUgcGF0aHMgd2l0aG91dCBhY2NpZGVu dGFsbHkKPiAtCSAqIGhpdHRpbmcgc2l6ZS1jaGVja2luZyBvbmVzIGZpcnN0LiAqLwo+IC0JaWYg KHBsYW5lID09IFBMQU5FX0NVUikKPiAtCQl0aWxpbmdfZm9yX3NpemUgPSBMT0NBTF9EUk1fRk9S TUFUX01PRF9OT05FOwo+IC0JZWxzZQo+IC0JCXRpbGluZ19mb3Jfc2l6ZSA9IG9wdC50aWxpbmc7 Cj4gKwltb2RpZmllciA9IHRpbGluZ190b19tb2RpZmllcih0aWxpbmcpOwo+ICAgCj4gLQlpZ3Rf Y2FsY19mYl9zaXplKGRybS5mZCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCB0aWxpbmdfZm9yX3Np emUsICZzaXplLAo+ICsJaWd0X3dhcm5fb24ocGxhbmUgPT0gUExBTkVfQ1VSICYmIHRpbGluZyAh PSBUSUxJTkdfTElORUFSKTsKPiArCj4gKwlpZ3RfY2FsY19mYl9zaXplKGRybS5mZCwgd2lkdGgs IGhlaWdodCwgZm9ybWF0LCBtb2RpZmllciwgJnNpemUsCj4gICAJCQkgJnN0cmlkZSk7Cj4gICAK PiAtCWlndF9jcmVhdGVfZmJfd2l0aF9ib19zaXplKGRybS5mZCwgd2lkdGgsIGhlaWdodCwgZm9y bWF0LCB0aWxpbmcsCj4gKwlpZ3RfY3JlYXRlX2ZiX3dpdGhfYm9fc2l6ZShkcm0uZmQsIHdpZHRo LCBoZWlnaHQsIGZvcm1hdCwgbW9kaWZpZXIsCj4gICAJCQkJICAgSUdUX0NPTE9SX1lDQkNSX0JU NzA5LAo+ICAgCQkJCSAgIElHVF9DT0xPUl9ZQ0JDUl9MSU1JVEVEX1JBTkdFLAo+ICAgCQkJCSAg IGZiLCBzaXplLCBzdHJpZGUpOwo+IEBAIC01OTQsNyArNjEwLDcgQEAgc3RhdGljIHZvaWQgZmls bF9mYihzdHJ1Y3QgaWd0X2ZiICpmYiwgZW51bSBjb2xvciBlY29sb3IpCj4gICAgKiBXZSBkbyBp dCB2ZXJ0aWNhbGx5IGluc3RlYWQgb2YgdGhlIG1vcmUgY29tbW9uIGhvcml6b250YWwgY2FzZSBp biBvcmRlciB0bwo+ICAgICogYXZvaWQgc3VwZXIgaHVnZSBzdHJpZGVzIG5vdCBzdXBwb3J0ZWQg YnkgRkJDLgo+ICAgICovCj4gLXN0YXRpYyB2b2lkIGNyZWF0ZV9zaGFyZWRfZmIoZW51bSBwaXhl bF9mb3JtYXQgZm9ybWF0KQo+ICtzdGF0aWMgdm9pZCBjcmVhdGVfc2hhcmVkX2ZiKGVudW0gcGl4 ZWxfZm9ybWF0IGZvcm1hdCwgZW51bSB0aWxpbmdfdHlwZSB0aWxpbmcpCj4gICB7Cj4gICAJaW50 IHByaW1fdywgcHJpbV9oLCBzY25kX3csIHNjbmRfaCwgb2Zmc193LCBvZmZzX2gsIGJpZ193LCBi aWdfaDsKPiAgIAlzdHJ1Y3Qgc2NyZWVuX2ZicyAqcyA9ICZmYnNbZm9ybWF0XTsKPiBAQCAtNjIx LDcgKzYzNyw3IEBAIHN0YXRpYyB2b2lkIGNyZWF0ZV9zaGFyZWRfZmIoZW51bSBwaXhlbF9mb3Jt YXQgZm9ybWF0KQo+ICAgCj4gICAJYmlnX2ggPSBwcmltX2ggKyBzY25kX2ggKyBvZmZzX2ggKyBv cHQuc2hhcmVkX2ZiX3lfb2Zmc2V0Owo+ICAgCj4gLQljcmVhdGVfZmIoZm9ybWF0LCBiaWdfdywg YmlnX2gsIG9wdC50aWxpbmcsIFBMQU5FX1BSSSwgJnMtPmJpZyk7Cj4gKwljcmVhdGVfZmIoZm9y bWF0LCBiaWdfdywgYmlnX2gsIHRpbGluZywgUExBTkVfUFJJLCAmcy0+YmlnKTsKPiAgIH0KPiAg IAo+ICAgc3RhdGljIHZvaWQgZGVzdHJveV9mYnMoZW51bSBwaXhlbF9mb3JtYXQgZm9ybWF0KQo+ IEBAIC02NDMsNyArNjU5LDcgQEAgc3RhdGljIHZvaWQgZGVzdHJveV9mYnMoZW51bSBwaXhlbF9m b3JtYXQgZm9ybWF0KQo+ICAgCWlndF9yZW1vdmVfZmIoZHJtLmZkLCAmcy0+YmlnKTsKPiAgIH0K PiAgIAo+IC1zdGF0aWMgdm9pZCBjcmVhdGVfZmJzKGVudW0gcGl4ZWxfZm9ybWF0IGZvcm1hdCkK PiArc3RhdGljIHZvaWQgY3JlYXRlX2ZicyhlbnVtIHBpeGVsX2Zvcm1hdCBmb3JtYXQsIGVudW0g dGlsaW5nX3R5cGUgdGlsaW5nKQo+ICAgewo+ICAgCXN0cnVjdCBzY3JlZW5fZmJzICpzID0gJmZi c1tmb3JtYXRdOwo+ICAgCj4gQEAgLTY1MywzMCArNjY5LDI5IEBAIHN0YXRpYyB2b2lkIGNyZWF0 ZV9mYnMoZW51bSBwaXhlbF9mb3JtYXQgZm9ybWF0KQo+ICAgCXMtPmluaXRpYWxpemVkID0gdHJ1 ZTsKPiAgIAo+ICAgCWNyZWF0ZV9mYihmb3JtYXQsIHByaW1fbW9kZV9wYXJhbXMubW9kZS0+aGRp c3BsYXksCj4gLQkJICBwcmltX21vZGVfcGFyYW1zLm1vZGUtPnZkaXNwbGF5LCBvcHQudGlsaW5n LCBQTEFORV9QUkksCj4gKwkJICBwcmltX21vZGVfcGFyYW1zLm1vZGUtPnZkaXNwbGF5LCB0aWxp bmcsIFBMQU5FX1BSSSwKPiAgIAkJICAmcy0+cHJpbV9wcmkpOwo+ICAgCWNyZWF0ZV9mYihmb3Jt YXQsIHByaW1fbW9kZV9wYXJhbXMuY3Vyc29yLncsCj4gICAJCSAgcHJpbV9tb2RlX3BhcmFtcy5j dXJzb3IuaCwgTE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9ORSwKPiAgIAkJICBQTEFORV9DVVIsICZz LT5wcmltX2N1cik7Cj4gICAJY3JlYXRlX2ZiKGZvcm1hdCwgcHJpbV9tb2RlX3BhcmFtcy5zcHJp dGUudywKPiAtCQkgIHByaW1fbW9kZV9wYXJhbXMuc3ByaXRlLmgsIG9wdC50aWxpbmcsIFBMQU5F X1NQUiwKPiAtCQkgICZzLT5wcmltX3Nwcik7Cj4gKwkJICBwcmltX21vZGVfcGFyYW1zLnNwcml0 ZS5oLCB0aWxpbmcsIFBMQU5FX1NQUiwgJnMtPnByaW1fc3ByKTsKPiAgIAo+IC0JY3JlYXRlX2Zi KGZvcm1hdCwgb2Zmc2NyZWVuX2ZiLncsIG9mZnNjcmVlbl9mYi5oLCBvcHQudGlsaW5nLCBQTEFO RV9QUkksCj4gKwljcmVhdGVfZmIoZm9ybWF0LCBvZmZzY3JlZW5fZmIudywgb2Zmc2NyZWVuX2Zi LmgsIHRpbGluZywgUExBTkVfUFJJLAo+ICAgCQkgICZzLT5vZmZzY3JlZW4pOwo+ICAgCj4gLQlj cmVhdGVfc2hhcmVkX2ZiKGZvcm1hdCk7Cj4gKwljcmVhdGVfc2hhcmVkX2ZiKGZvcm1hdCwgdGls aW5nKTsKPiAgIAo+ICAgCWlmICghc2NuZF9tb2RlX3BhcmFtcy5vdXRwdXQpCj4gICAJCXJldHVy bjsKPiAgIAo+ICAgCWNyZWF0ZV9mYihmb3JtYXQsIHNjbmRfbW9kZV9wYXJhbXMubW9kZS0+aGRp c3BsYXksCj4gLQkJICBzY25kX21vZGVfcGFyYW1zLm1vZGUtPnZkaXNwbGF5LCBvcHQudGlsaW5n LCBQTEFORV9QUkksCj4gKwkJICBzY25kX21vZGVfcGFyYW1zLm1vZGUtPnZkaXNwbGF5LCB0aWxp bmcsIFBMQU5FX1BSSSwKPiAgIAkJICAmcy0+c2NuZF9wcmkpOwo+ICAgCWNyZWF0ZV9mYihmb3Jt YXQsIHNjbmRfbW9kZV9wYXJhbXMuY3Vyc29yLncsIHNjbmRfbW9kZV9wYXJhbXMuY3Vyc29yLmgs Cj4gICAJCSAgTE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9ORSwgUExBTkVfQ1VSLCAmcy0+c2NuZF9j dXIpOwo+ICAgCWNyZWF0ZV9mYihmb3JtYXQsIHNjbmRfbW9kZV9wYXJhbXMuc3ByaXRlLncsIHNj bmRfbW9kZV9wYXJhbXMuc3ByaXRlLmgsCj4gLQkJICBvcHQudGlsaW5nLCBQTEFORV9TUFIsICZz LT5zY25kX3Nwcik7Cj4gKwkJICB0aWxpbmcsIFBMQU5FX1NQUiwgJnMtPnNjbmRfc3ByKTsKPiAg IH0KPiAgIAo+ICAgc3RhdGljIHZvaWQgX19zZXRfcHJpbV9wbGFuZV9mb3JfcGFyYW1zKHN0cnVj dCBtb2Rlc2V0X3BhcmFtcyAqcGFyYW1zKQo+IEBAIC0xMTc3LDcgKzExOTIsNyBAQCBzdGF0aWMg dm9pZCBjb2xsZWN0X2NyYyhpZ3RfY3JjX3QgKmNyYykKPiAgIAlpZ3RfcGlwZV9jcmNfY29sbGVj dF9jcmMocGlwZV9jcmMsIGNyYyk7Cj4gICB9Cj4gICAKPiAtc3RhdGljIHZvaWQgaW5pdF9ibHVl X2NyYyhlbnVtIHBpeGVsX2Zvcm1hdCBmb3JtYXQpCj4gK3N0YXRpYyB2b2lkIGluaXRfYmx1ZV9j cmMoZW51bSBwaXhlbF9mb3JtYXQgZm9ybWF0LCBlbnVtIHRpbGluZ190eXBlIHRpbGluZykKPiAg IHsKPiAgIAlzdHJ1Y3QgaWd0X2ZiIGJsdWU7Cj4gICAKPiBAQCAtMTE4NSw3ICsxMjAwLDcgQEAg c3RhdGljIHZvaWQgaW5pdF9ibHVlX2NyYyhlbnVtIHBpeGVsX2Zvcm1hdCBmb3JtYXQpCj4gICAJ CXJldHVybjsKPiAgIAo+ICAgCWNyZWF0ZV9mYihmb3JtYXQsIHByaW1fbW9kZV9wYXJhbXMubW9k ZS0+aGRpc3BsYXksCj4gLQkJICBwcmltX21vZGVfcGFyYW1zLm1vZGUtPnZkaXNwbGF5LCBvcHQu dGlsaW5nLCBQTEFORV9QUkksCj4gKwkJICBwcmltX21vZGVfcGFyYW1zLm1vZGUtPnZkaXNwbGF5 LCB0aWxpbmcsIFBMQU5FX1BSSSwKPiAgIAkJICAmYmx1ZSk7Cj4gICAKPiAgIAlmaWxsX2ZiKCZi bHVlLCBDT0xPUl9QUklNX0JHKTsKPiBAQCAtMTIxMSw3ICsxMjI2LDcgQEAgc3RhdGljIHZvaWQg aW5pdF9ibHVlX2NyYyhlbnVtIHBpeGVsX2Zvcm1hdCBmb3JtYXQpCj4gICAJYmx1ZV9jcmNzW2Zv cm1hdF0uaW5pdGlhbGl6ZWQgPSB0cnVlOwo+ICAgfQo+ICAgCj4gLXN0YXRpYyB2b2lkIGluaXRf Y3JjcyhlbnVtIHBpeGVsX2Zvcm1hdCBmb3JtYXQsCj4gK3N0YXRpYyB2b2lkIGluaXRfY3Jjcyhl bnVtIHBpeGVsX2Zvcm1hdCBmb3JtYXQsIGVudW0gdGlsaW5nX3R5cGUgdGlsaW5nLAo+ICAgCQkg ICAgICBzdHJ1Y3QgZHJhd19wYXR0ZXJuX2luZm8gKnBhdHRlcm4pCj4gICB7Cj4gICAJaW50IHIs IHJfOwo+IEBAIC0xMjI1LDcgKzEyNDAsNyBAQCBzdGF0aWMgdm9pZCBpbml0X2NyY3MoZW51bSBw aXhlbF9mb3JtYXQgZm9ybWF0LAo+ICAgCj4gICAJZm9yIChyID0gMDsgciA8IHBhdHRlcm4tPm5f cmVjdHM7IHIrKykKPiAgIAkJY3JlYXRlX2ZiKGZvcm1hdCwgcHJpbV9tb2RlX3BhcmFtcy5tb2Rl LT5oZGlzcGxheSwKPiAtCQkJICBwcmltX21vZGVfcGFyYW1zLm1vZGUtPnZkaXNwbGF5LCBvcHQu dGlsaW5nLAo+ICsJCQkgIHByaW1fbW9kZV9wYXJhbXMubW9kZS0+dmRpc3BsYXksIHRpbGluZywK PiAgIAkJCSAgUExBTkVfUFJJLCAmdG1wX2Zic1tyXSk7Cj4gICAKPiAgIAlmb3IgKHIgPSAwOyBy IDwgcGF0dGVybi0+bl9yZWN0czsgcisrKQo+IEBAIC0xMjkwLDcgKzEzMDUsNyBAQCBzdGF0aWMg dm9pZCBzZXR1cF9tb2Rlc2V0KHZvaWQpCj4gICAJb2Zmc2NyZWVuX2ZiLmZiID0gTlVMTDsKPiAg IAlvZmZzY3JlZW5fZmIudyA9IDEwMjQ7Cj4gICAJb2Zmc2NyZWVuX2ZiLmggPSAxMDI0Owo+IC0J Y3JlYXRlX2ZicyhGT1JNQVRfREVGQVVMVCk7Cj4gKwljcmVhdGVfZmJzKEZPUk1BVF9ERUZBVUxU LCBvcHQudGlsaW5nKTsKPiAgIH0KPiAgIAo+ICAgc3RhdGljIHZvaWQgdGVhcmRvd25fbW9kZXNl dCh2b2lkKQo+IEBAIC0xNzUxLDcgKzE3NjYsNyBAQCBzdGF0aWMgdm9pZCBzZXRfY3J0Y19mYnMo Y29uc3Qgc3RydWN0IHRlc3RfbW9kZSAqdCkKPiAgIHsKPiAgIAlzdHJ1Y3Qgc2NyZWVuX2ZicyAq cyA9ICZmYnNbdC0+Zm9ybWF0XTsKPiAgIAo+IC0JY3JlYXRlX2Zicyh0LT5mb3JtYXQpOwo+ICsJ Y3JlYXRlX2Zicyh0LT5mb3JtYXQsIHQtPnRpbGluZyk7Cj4gICAKPiAgIAlzd2l0Y2ggKHQtPmZi cykgewo+ICAgCWNhc2UgRkJTX0lORElWSURVQUw6Cj4gQEAgLTE4MTEsOSArMTgyNiw5IEBAIHN0 YXRpYyB2b2lkIHByZXBhcmVfc3VidGVzdF9kYXRhKGNvbnN0IHN0cnVjdCB0ZXN0X21vZGUgKnQs Cj4gICAJaWYgKG5lZWRfbW9kZXNldCkKPiAgIAkJaWd0X2Rpc3BsYXlfY29tbWl0KCZkcm0uZGlz cGxheSk7Cj4gICAKPiAtCWluaXRfYmx1ZV9jcmModC0+Zm9ybWF0KTsKPiArCWluaXRfYmx1ZV9j cmModC0+Zm9ybWF0LCB0LT50aWxpbmcpOwo+ICAgCWlmIChwYXR0ZXJuKQo+IC0JCWluaXRfY3Jj cyh0LT5mb3JtYXQsIHBhdHRlcm4pOwo+ICsJCWluaXRfY3Jjcyh0LT5mb3JtYXQsIHQtPnRpbGlu ZywgcGF0dGVybik7Cj4gICAKPiAgIAluZWVkX21vZGVzZXQgPSBlbmFibGVfZmVhdHVyZXNfZm9y X3Rlc3QodCk7Cj4gICAJaWYgKG5lZWRfbW9kZXNldCkKPiBAQCAtMjMwNCw3ICsyMzE5LDcgQEAg c3RhdGljIHZvaWQgZmxpcF9zdWJ0ZXN0KGNvbnN0IHN0cnVjdCB0ZXN0X21vZGUgKnQpCj4gICAJ cHJlcGFyZV9zdWJ0ZXN0KHQsIHBhdHRlcm4pOwo+ICAgCj4gICAJY3JlYXRlX2ZiKHQtPmZvcm1h dCwgcGFyYW1zLT5wcmltYXJ5LmZiLT53aWR0aCwgcGFyYW1zLT5wcmltYXJ5LmZiLT5oZWlnaHQs Cj4gLQkJICBvcHQudGlsaW5nLCB0LT5wbGFuZSwgJmZiMik7Cj4gKwkJICB0LT50aWxpbmcsIHQt PnBsYW5lLCAmZmIyKTsKPiAgIAlmaWxsX2ZiKCZmYjIsIGJnX2NvbG9yKTsKPiAgIAlvcmlnX2Zi ID0gcGFyYW1zLT5wcmltYXJ5LmZiOwo+ICAgCj4gQEAgLTIzNTMsNyArMjM2OCw3IEBAIHN0YXRp YyB2b2lkIGZsaXB0cmFja19zdWJ0ZXN0KGNvbnN0IHN0cnVjdCB0ZXN0X21vZGUgKnQsIGVudW0g ZmxpcF90eXBlIHR5cGUpCj4gICAJcHJlcGFyZV9zdWJ0ZXN0KHQsIHBhdHRlcm4pOwo+ICAgCj4g ICAJY3JlYXRlX2ZiKHQtPmZvcm1hdCwgcGFyYW1zLT5wcmltYXJ5LmZiLT53aWR0aCwgcGFyYW1z LT5wcmltYXJ5LmZiLT5oZWlnaHQsCj4gLQkJICBvcHQudGlsaW5nLCB0LT5wbGFuZSwgJmZiMik7 Cj4gKwkJICB0LT50aWxpbmcsIHQtPnBsYW5lLCAmZmIyKTsKPiAgIAlmaWxsX2ZiKCZmYjIsIENP TE9SX1BSSU1fQkcpOwo+ICAgCW9yaWdfZmIgPSBwYXJhbXMtPnByaW1hcnkuZmI7Cj4gICAKPiBA QCAtMjUxMSw3ICsyNTI2LDcgQEAgc3RhdGljIHZvaWQgZnVsbHNjcmVlbl9wbGFuZV9zdWJ0ZXN0 KGNvbnN0IHN0cnVjdCB0ZXN0X21vZGUgKnQpCj4gICAJcHJlcGFyZV9zdWJ0ZXN0KHQsIHBhdHRl cm4pOwo+ICAgCj4gICAJcmVjdCA9IHBhdHRlcm4tPmdldF9yZWN0KCZwYXJhbXMtPnByaW1hcnks IDApOwo+IC0JY3JlYXRlX2ZiKHQtPmZvcm1hdCwgcmVjdC53LCByZWN0LmgsIG9wdC50aWxpbmcs IHQtPnBsYW5lLAo+ICsJY3JlYXRlX2ZiKHQtPmZvcm1hdCwgcmVjdC53LCByZWN0LmgsIHQtPnRp bGluZywgdC0+cGxhbmUsCj4gICAJCSAgJmZ1bGxzY3JlZW5fZmIpOwo+ICAgCS8qIENhbGwgcGlj a19jb2xvcigpIGFnYWluIHNpbmNlIFBSSSBhbmQgU1BSIG1heSBub3Qgc3VwcG9ydCB0aGUgc2Ft ZQo+ICAgCSAqIHBpeGVsIGZvcm1hdHMuICovCj4gQEAgLTI1ODQsNyArMjU5OSw3IEBAIHN0YXRp YyB2b2lkIHNjYWxlZHByaW1hcnlfc3VidGVzdChjb25zdCBzdHJ1Y3QgdGVzdF9tb2RlICp0KQo+ ICAgCW9sZF9mYiA9IHJlZy0+ZmI7Cj4gICAKPiAgIAljcmVhdGVfZmIodC0+Zm9ybWF0LCByZWct PmZiLT53aWR0aCwgcmVnLT5mYi0+aGVpZ2h0LAo+IC0JCSAgb3B0LnRpbGluZywgdC0+cGxhbmUs ICZuZXdfZmIpOwo+ICsJCSAgdC0+dGlsaW5nLCB0LT5wbGFuZSwgJm5ld19mYik7Cj4gICAJZmls bF9mYigmbmV3X2ZiLCBDT0xPUl9CTFVFKTsKPiAgIAo+ICAgCWlndF9kcmF3X3JlY3RfZmIoZHJt LmZkLCBkcm0uYnVmbWdyLCBOVUxMLCAmbmV3X2ZiLCB0LT5tZXRob2QsCj4gQEAgLTI2NzksNyAr MjY5NCw3IEBAIHN0YXRpYyB2b2lkIG1vZGVzZXRmcm9tYnVzeV9zdWJ0ZXN0KGNvbnN0IHN0cnVj dCB0ZXN0X21vZGUgKnQpCj4gICAJcHJlcGFyZV9zdWJ0ZXN0KHQsIE5VTEwpOwo+ICAgCj4gICAJ Y3JlYXRlX2ZiKHQtPmZvcm1hdCwgcGFyYW1zLT5wcmltYXJ5LmZiLT53aWR0aCwgcGFyYW1zLT5w cmltYXJ5LmZiLT5oZWlnaHQsCj4gLQkJICBvcHQudGlsaW5nLCB0LT5wbGFuZSwgJmZiMik7Cj4g KwkJICB0LT50aWxpbmcsIHQtPnBsYW5lLCAmZmIyKTsKPiAgIAlmaWxsX2ZiKCZmYjIsIENPTE9S X1BSSU1fQkcpOwo+ICAgCj4gICAJc3RhcnRfYnVzeV90aHJlYWQocGFyYW1zLT5wcmltYXJ5LmZi KTsKPiBAQCAtMjc4Miw3ICsyNzk3LDcgQEAgc3RhdGljIHZvaWQgZmFyZnJvbWZlbmNlX3N1YnRl c3QoY29uc3Qgc3RydWN0IHRlc3RfbW9kZSAqdCkKPiAgIAlwcmVwYXJlX3N1YnRlc3QodCwgcGF0 dGVybik7Cj4gICAJdGFyZ2V0ID0gcGlja190YXJnZXQodCwgcGFyYW1zKTsKPiAgIAo+IC0JY3Jl YXRlX2ZiKHQtPmZvcm1hdCwgcGFyYW1zLT5tb2RlLT5oZGlzcGxheSwgbWF4X2hlaWdodCwgb3B0 LnRpbGluZywKPiArCWNyZWF0ZV9mYih0LT5mb3JtYXQsIHBhcmFtcy0+bW9kZS0+aGRpc3BsYXks IG1heF9oZWlnaHQsIHQtPnRpbGluZywKPiAgIAkJICB0LT5wbGFuZSwgJnRhbGxfZmIpOwo+ICAg Cj4gICAJZmlsbF9mYigmdGFsbF9mYiwgQ09MT1JfUFJJTV9CRyk7Cj4gQEAgLTI4NTksNyArMjg3 NCw3IEBAIHN0YXRpYyB2b2lkIGJhZHN0cmlkZV9zdWJ0ZXN0KGNvbnN0IHN0cnVjdCB0ZXN0X21v ZGUgKnQpCj4gICAJb2xkX2ZiID0gcGFyYW1zLT5wcmltYXJ5LmZiOwo+ICAgCj4gICAJY3JlYXRl X2ZiKHQtPmZvcm1hdCwgcGFyYW1zLT5wcmltYXJ5LmZiLT53aWR0aCArIDQwOTYsIHBhcmFtcy0+ cHJpbWFyeS5mYi0+aGVpZ2h0LAo+IC0JCSAgb3B0LnRpbGluZywgdC0+cGxhbmUsICZ3aWRlX2Zi KTsKPiArCQkgIHQtPnRpbGluZywgdC0+cGxhbmUsICZ3aWRlX2ZiKTsKPiAgIAlpZ3RfYXNzZXJ0 KHdpZGVfZmIuc3RyaWRlc1swXSA+IDE2Mzg0KTsKPiAgIAo+ICAgCWZpbGxfZmIoJndpZGVfZmIs IENPTE9SX1BSSU1fQkcpOwo+IEBAIC0zMDM5LDcgKzMwNTQsNyBAQCBzdGF0aWMgdm9pZCBiYXNp Y19zdWJ0ZXN0KGNvbnN0IHN0cnVjdCB0ZXN0X21vZGUgKnQpCj4gICAJcHJlcGFyZV9zdWJ0ZXN0 KHQsIHBhdHRlcm4pOwo+ICAgCj4gICAJY3JlYXRlX2ZiKHQtPmZvcm1hdCwgcGFyYW1zLT5wcmlt YXJ5LmZiLT53aWR0aCwgcGFyYW1zLT5wcmltYXJ5LmZiLT5oZWlnaHQsCj4gLQkJICBvcHQudGls aW5nLCB0LT5wbGFuZSwgJmZiMik7Cj4gKwkJICB0LT50aWxpbmcsIHQtPnBsYW5lLCAmZmIyKTsK PiAgIAlmYjEgPSBwYXJhbXMtPnByaW1hcnkuZmI7Cj4gICAKPiAgIAlmb3IgKHIgPSAwLCBtZXRo b2QgPSAwOyBtZXRob2QgPCBJR1RfRFJBV19NRVRIT0RfQ09VTlQ7IG1ldGhvZCsrKSB7Cj4gQEAg LTMxMjAsMTAgKzMxMzUsMTIgQEAgc3RhdGljIGludCBvcHRfaGFuZGxlcihpbnQgb3B0aW9uLCBp bnQgb3B0aW9uX2luZGV4LCB2b2lkICpkYXRhKQo+ICAgCQlicmVhazsKPiAgIAljYXNlICdsJzoK PiAgIAkJaWYgKCFzdHJjbXAob3B0YXJnLCAieCIpKQo+IC0JCQlvcHQudGlsaW5nID0gTE9DQUxf STkxNV9GT1JNQVRfTU9EX1hfVElMRUQ7Cj4gKwkJCW9wdC50aWxpbmcgPSBUSUxJTkdfWDsKPiAg IAkJZWxzZSBpZiAoIXN0cmNtcChvcHRhcmcsICJ5IikpCj4gLQkJCW9wdC50aWxpbmcgPSBMT0NB TF9JOTE1X0ZPUk1BVF9NT0RfWV9USUxFRDsKPiAtCQllbHNlIHsKPiArCQkJb3B0LnRpbGluZyA9 IFRJTElOR19ZOwo+ICsJCWVsc2UgaWYgKCFzdHJjbXAob3B0YXJnLCAibCIpKSB7Cj4gKwkJCW9w dC50aWxpbmcgPSBUSUxJTkdfTElORUFSOwo+ICsJCX0gZWxzZSB7Cj4gICAJCQlpZ3Rfd2Fybigi QmFkIHRpbGluZyB2YWx1ZTogJXNcbiIsIG9wdGFyZyk7Cj4gICAJCQlyZXR1cm4gSUdUX09QVF9I QU5ETEVSX0VSUk9SOwo+ICAgCQl9Cj4gQEAgLTMyNTUsOSArMzI3MiwyNCBAQCBzdGF0aWMgY29u c3QgY2hhciAqZmxpcF9zdHIoZW51bSBmbGlwX3R5cGUgZmxpcCkKPiAgIAl9Cj4gICB9Cj4gICAK PiArc3RhdGljIGNvbnN0IGNoYXIgKnRpbGluZ19zdHIoZW51bSB0aWxpbmdfdHlwZSB0aWxpbmcp Cj4gK3sKPiArCXN3aXRjaCAodGlsaW5nKSB7Cj4gKwljYXNlIFRJTElOR19MSU5FQVI6Cj4gKwkJ cmV0dXJuICJsaW5lYXIiOwo+ICsJY2FzZSBUSUxJTkdfWDoKPiArCQlyZXR1cm4gIngiOwo+ICsJ Y2FzZSBUSUxJTkdfWToKPiArCQlyZXR1cm4gInkiOwo+ICsJZGVmYXVsdDoKPiArCQlpZ3RfYXNz ZXJ0KGZhbHNlKTsKPiArCX0KPiArfQo+ICsKPiAgICNkZWZpbmUgVEVTVF9NT0RFX0lURVJfQkVH SU4odCkgXAo+ICAgCXQuZm9ybWF0ID0gRk9STUFUX0RFRkFVTFQ7CQkJCQkgICBcCj4gICAJdC5m bGlwID0gRkxJUF9QQUdFRkxJUDsJCQkJCQkgICBcCj4gKwl0LnRpbGluZyA9IG9wdC50aWxpbmc7 OwkJCQkJCSAgIFwKPiAgIAlmb3IgKHQuZmVhdHVyZSA9IDA7IHQuZmVhdHVyZSA8IEZFQVRVUkVf Q09VTlQ7IHQuZmVhdHVyZSsrKSB7CSAgIFwKPiAgIAlmb3IgKHQucGlwZXMgPSAwOyB0LnBpcGVz IDwgUElQRV9DT1VOVDsgdC5waXBlcysrKSB7CQkgICBcCj4gICAJZm9yICh0LnNjcmVlbiA9IDA7 IHQuc2NyZWVuIDwgU0NSRUVOX0NPVU5UOyB0LnNjcmVlbisrKSB7CSAgIFwKPiBAQCAtMzMxNSw2 ICszMzQ3LDcgQEAgaWd0X21haW5fYXJncygiIiwgbG9uZ19vcHRpb25zLCBoZWxwX3N0ciwgb3B0 X2hhbmRsZXIsIE5VTEwpCj4gICAJCQkvKiBNYWtlIHN1cmUgbm90aGluZyBpcyB1c2luZyB0aGVz ZSB2YWx1ZXMuICovCj4gICAJCQl0LmZsaXAgPSAtMTsKPiAgIAkJCXQubWV0aG9kID0gLTE7Cj4g KwkJCXQudGlsaW5nID0gb3B0LnRpbGluZzsKPiAgIAo+ICAgCQkJaWd0X3N1YnRlc3RfZigiJXMt JXMtcnRlIiwKPiAgIAkJCQkgICAgICBmZWF0dXJlX3N0cih0LmZlYXR1cmUpLAo+IEBAIC0zNDk5 LDYgKzM1MzIsNyBAQCBpZ3RfbWFpbl9hcmdzKCIiLCBsb25nX29wdGlvbnMsIGhlbHBfc3RyLCBv cHRfaGFuZGxlciwgTlVMTCkKPiAgIAl0LmZlYXR1cmUgPSBGRUFUVVJFX0RFRkFVTFQ7Cj4gICAJ dC5mb3JtYXQgPSBGT1JNQVRfREVGQVVMVDsKPiAgIAl0LmZsaXAgPSBGTElQX1BBR0VGTElQOwo+ ICsJdC50aWxpbmcgPSBvcHQudGlsaW5nOwo+ICAgCWlndF9zdWJ0ZXN0KCJiYXNpYyIpIHsKPiAg IAkJaWd0X3JlcXVpcmVfZ2VtKGRybS5mZCk7Cj4gICAJCWJhc2ljX3N1YnRlc3QoJnQpOwo+IAoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBt YWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2Cg==