From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [PATCH i-g-t v10] tests/kms_frontbuffer_tracking: Including DRRS test coverage Date: Tue, 2 Jan 2018 12:34:01 -0800 Message-ID: <20180102203401.gaxpylqsrkqbjfo4@intel.com> References: <1512997950-26366-1-git-send-email-lohith.bs@intel.com> <1514814332-31840-1-git-send-email-lohith.bs@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id CEE8389AB5 for ; Tue, 2 Jan 2018 20:34:00 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1514814332-31840-1-git-send-email-lohith.bs@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Lohith BS Cc: paulo.r.zanoni@intel.com, jari.tahvanainen@intel.com, daniel.vetter@ffwll.ch, intel-gfx@lists.freedesktop.org, marius.c.vlad@intel.com, ankit.k.nautiyal@intel.com List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBKYW4gMDEsIDIwMTggYXQgMDE6NDU6MzJQTSArMDAwMCwgTG9oaXRoIEJTIHdyb3Rl Ogo+IER5bmFtaWMgUmVmcmVzaCBSYXRlIFN3aXRjaChEUlJTKSBpcyB1c2VkIHRvIHN3aXRjaCB0 aGUgcGFuZWwncwo+IHJlZnJlc2ggcmF0ZSB0byB0aGUgbG93ZXN0IHZyZWZyZXNoIHN1cHBvcnRl ZCBieSBwYW5lbCwgd2hlbiBmcmFtZSBpcwo+IG5vdCBmbGlwcGVkIGZvciBtb3JlIHRoYW4gYSBT ZWMuCj4gCj4gSW4ga2VybmVsLCBEUlJTIHVzZXMgdGhlIGZyb250IGJ1ZmZlciB0cmFja2luZyBp bmZyYXN0cnVjdHVyZS4KPiBIZW5jZSBEUlJTIHRlc3QgY292ZXJhZ2UgaXMgYWRkZWQgYWxvbmcg d2l0aCBvdGhlciBmcm9udGJ1ZmZlciB0cmFja2luZwo+IGJhc2VkIGZlYXR1cmVzIHN1Y2ggYXMg RkJDIGFuZCBQU1IgdGVzdHMuCj4gCj4gSGVyZSwgd2UgYXJlIHRlc3RpbmcgRFJSUyB3aXRoIG90 aGVyIGZlYXR1cmVzIGluIGFsbCBwb3NzaWJsZQo+IGNvbWJpbmF0aW9ucywgaW4gYWxsIHJlcXVp cmVkIHRlc3QgY2FzZXMsIHRvIGNhcHR1cmUgYW55IHBvc3NpYmxlCj4gcmVncmVzc2lvbi4KPiAK PiB2MjogQWRkcmVzc2VkIHRoZSBjb21tZW50cyBhbmQgc3VnZ2VzdGlvbnMgZnJvbSBWbGFkLCBN YXJpdXMuCj4gICAgIFRoZSBzaWdub2ZmIGRldGFpbHMgZnJvbSB0aGUgZWFybGllciB3b3JrIGFy ZSBhbHNvIGluY2x1ZGVkLgo+IAo+IHYzOiBNb2RpZmllZCB2YmxhbmsgcmF0ZSBjYWxjdWxhdGlv biBieSB1c2luZyByZXBseS1zZXF1ZW5jZSwKPiAgICAgcHJvdmlkZWQgYnkgZHJtV2FpdFZCbGFu aywgYXMgc3VnZ2VzdGVkIGJ5IENocmlzIFdpbHNvbi4KPiAKPiB2NDogQXMgc3VnZ2VzdGVkIGZy b20gQ2hyaXMgV2lsc29uIGFuZCBEYW5pZWwgVmV0dGVyCj4gICAgIDEpIEF2b2lkZWQgdXNpbmcg cHRocmVhZCBmb3IgY2FsY3VsYXRpbmcgdmJsYW5rIHJlZnJlc2ggcmF0ZSwKPiAgICAgICAgaW5z dGVhZCB1c2VkIGRybVdhaXRWQmxhbmsgcmVwbHkgc2VxdWVuY2UuCj4gICAgIDIpIEF2b2lkZWQg dXNpbmcga2VybmVsLXNwZWNpZmljIGluZm8gbGlrZSB0cmFuc2l0aW9uYWwgZGVsYXlzLAo+ICAg ICAgICBpbnN0ZWFkIHBvbGxpbmcgbWVjaGFuaXNtIHdpdGggdGltZW91dCBpcyB1c2VkLgo+ICAg ICAzKSBJbmNsdWRlZCBlZHAtRFJSUyBhcyBhIHN1YnRlc3QgaW4ga21zX2Zyb250YnVmZmVyX3Ry YWNraW5nLmMsCj4gICAgICAgIGluc3RlYWQgb2YgaGF2aW5nIGEgc2VwYXJhdGUgdGVzdC4KPiAK PiB2NTogVGhpcyBwYXRjaCBhZGRzIERSUlMgYXMgYSBuZXcgZmVhdHVyZSBpbiB0aGUKPiAgICAg a21zX2Zyb250YnVmZmVyX3RyYWNraW5nIElHVC4KPiAgICAgRFJSUyBzd2l0Y2ggdG8gbG93ZXIg dnJlZnJlc2ggcmF0ZSBpcyB0ZXN0ZWQgYXQgc2xvdy1kcmF3IHN1YnRlc3QuCj4gCj4gICAgIE5v dGU6Cj4gICAgIDEpIEN1cnJlbnRseSBrZXJuZWwgZG9lc24ndCBoYXZlIHN1cHBvcnQgdG8gZW5h YmxlIGFuZCBkaXNhYmxlCj4gICAgICAgIHRoZSBEUlJTIGZlYXR1cmUgZHluYW1pY2FsbHkoYXMg aW4gY2FzZSBvZiBQU1IpLiBIZW5jZSBpZiB0aGUKPiAgICAgICAgcGFuZWwgc3VwcG9ydHMgRFJS UyBpdCB3aWxsIGJlIGVuYWJsZWQgYnkgZGVmYXVsdC4KPiAKPiAgICAgVGhpcyBpcyBpbiBjb250 aW51YXRpb24gb2YgbGFzdCBwYXRjaAo+IAkiaHR0cHM6Ly9wYXRjaHdvcmsuZnJlZWRlc2t0b3Au b3JnL3BhdGNoLzE2MjcyNi8iCj4gCj4gdjY6IFRoaXMgcGF0Y2ggYWRkcyBydW50aW1lIGVuYWJs ZSBhbmQgZGlzYWJsZSBmZWF0dXJlIGZvciB0ZXN0aW5nIERSUlMKPiAKPiB2NzogVGhpcyBwYXRj aCBhZGRzIHJ1bnRpbWUgZW5hYmxlIGFuZCBkaXNhYmxlIGZlYXR1cmUgZm9yIHRlc3RpbmcgRFJS Uwo+ICAgICB0aHJvdWdoIGRlYnVnZnMgZW50cnkgImk5MTVfZHJyc19jdGwiLgo+IAo+IHY4OiBD b21taXQgbWVzc2FnZSBpcyB1cGRhdGVkIHRvIHJlZmxlY3QgY3VycmVudCBpbXBsZW1lbnRhdGlv bi4KPiAKPiB2OTogQWRkcmVzc2VkIFBhdWxvIFphbm9uaSBjb21tZW50cy4KPiAgICAgQ2hlY2sg Zm9yIERSUlNfTE9XIGF0IHRlc3RzIHdpdGggT0ZGU0NSRUVOICsgRkJTX0lORElWSURVQUwuCj4g Cj4gdjEwOiBDb3JyZWN0ZWQgRFJSUyBzdGF0ZSBleHBlY3RhdGlvbiBpbiBzdXNwZW5kIHJlbGF0 ZWQgc3VidGVzdHMuCj4gCj4gU2lnbmVkLW9mZi1ieTogTG9oaXRoIEJTIDxsb2hpdGguYnNAaW50 ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IGFrbmF1dGl5IDxhbmtpdC5rLm5hdXRpeWFsQGludGVs LmNvbT4KPiAtLS0KPiAgdGVzdHMva21zX2Zyb250YnVmZmVyX3RyYWNraW5nLmMgfCAxODggKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCj4gIDEgZmlsZSBjaGFuZ2VkLCAx NzkgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvdGVzdHMv a21zX2Zyb250YnVmZmVyX3RyYWNraW5nLmMgYi90ZXN0cy9rbXNfZnJvbnRidWZmZXJfdHJhY2tp bmcuYwo+IGluZGV4IDE2MDFjYWIuLjEwMzljOWUgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMva21zX2Zy b250YnVmZmVyX3RyYWNraW5nLmMKPiArKysgYi90ZXN0cy9rbXNfZnJvbnRidWZmZXJfdHJhY2tp bmcuYwo+IEBAIC0zNCw3ICszNCw3IEBACj4gIAo+ICAKPiAgSUdUX1RFU1RfREVTQ1JJUFRJT04o IlRlc3QgdGhlIEtlcm5lbCdzIGZyb250YnVmZmVyIHRyYWNraW5nIG1lY2hhbmlzbSBhbmQgIgo+ IC0JCSAgICAgIml0cyByZWxhdGVkIGZlYXR1cmVzOiBGQkMgYW5kIFBTUiIpOwo+ICsJCSAgICAg Iml0cyByZWxhdGVkIGZlYXR1cmVzOiBGQkMsIFBTUiBhbmQgRFJSUyIpOwo+ICAKPiAgLyoKPiAg ICogT25lIG9mIHRoZSBhc3BlY3RzIG9mIHRoaXMgdGVzdCBpcyB0aGF0LCBmb3IgZXZlcnkgc3Vi dGVzdCwgd2UgdHJ5IGRpZmZlcmVudAo+IEBAIC0xMDUsOCArMTA1LDkgQEAgc3RydWN0IHRlc3Rf bW9kZSB7Cj4gIAkJRkVBVFVSRV9OT05FICA9IDAsCj4gIAkJRkVBVFVSRV9GQkMgICA9IDEsCj4g IAkJRkVBVFVSRV9QU1IgICA9IDIsCj4gLQkJRkVBVFVSRV9DT1VOVCA9IDQsCj4gLQkJRkVBVFVS RV9ERUZBVUxUID0gNCwKPiArCQlGRUFUVVJFX0RSUlMgID0gNCwKPiArCQlGRUFUVVJFX0NPVU5U ID0gOCwKPiArCQlGRUFUVVJFX0RFRkFVTFQgPSA4LAo+ICAJfSBmZWF0dXJlOwo+ICAKPiAgCS8q IFBvc3NpYmxlIHBpeGVsIGZvcm1hdHMuIFdlIGp1c3QgdXNlIEZPUk1BVF9ERUZBVUxUIGZvciBt b3N0IHRlc3RzIGFuZAo+IEBAIC0xNTYsNiArMTU3LDcgQEAgc3RydWN0IHJlY3Qgewo+ICBzdHJ1 Y3Qgewo+ICAJaW50IGZkOwo+ICAJaW50IGRlYnVnZnM7Cj4gKwlpbnQgZHJyc19kZWJ1Z2ZzX2Zk Owo+ICAJZHJtTW9kZVJlc1B0ciByZXM7Cj4gIAlkcm1Nb2RlQ29ubmVjdG9yUHRyIGNvbm5lY3Rv cnNbTUFYX0NPTk5FQ1RPUlNdOwo+ICAJZHJtTW9kZUVuY29kZXJQdHIgZW5jb2RlcnNbTUFYX0VO Q09ERVJTXTsKPiBAQCAtMTgyLDYgKzE4NCwxNSBAQCBzdHJ1Y3Qgewo+ICAJLmNhbl90ZXN0ID0g ZmFsc2UsCj4gIH07Cj4gIAo+ICsjZGVmaW5lIE1BWF9EUlJTX1NUQVRVU19CVUZfTEVOIDI1Ngo+ ICsKPiArc3RydWN0IHsKPiArCWJvb2wgY2FuX3Rlc3Q7Cj4gKwlib29sIGlzX3Bzcl9kcnJzX2Nv bWJvOwoKV2h5IGRvIHlvdSBuZWVkIHRoaXMgaXNfcHNyX2RycnNfY29tYm8gYXQgYWxsPwoKPiAr fSBkcnJzID0gewo+ICsJLmNhbl90ZXN0ID0gZmFsc2UsCj4gKwkuaXNfcHNyX2RycnNfY29tYm8g PSBmYWxzZSwKPiArfTsKPiAgCj4gICNkZWZpbmUgU0lOS19DUkNfU0laRSAxMgo+ICB0eXBlZGVm IHN0cnVjdCB7Cj4gQEAgLTgyNSw2ICs4MzYsNjQgQEAgc3RhdGljIHZvaWQgcHNyX3ByaW50X3N0 YXR1cyh2b2lkKQo+ICAJaWd0X2luZm8oIlBTUiBzdGF0dXM6XG4lc1xuIiwgYnVmKTsKPiAgfQo+ ICAKPiArdm9pZCBkcnJzX3NldCh1bnNpZ25lZCBpbnQgdmFsKQo+ICt7Cj4gKwljaGFyIGJ1Zlsy XTsKPiArCj4gKwlpZ3RfZGVidWcoIk1hbnVhbGx5ICVzYWJsaW5nIERSUlMuICVsbHVcbiIsIHZh bCA/ICJlbiIgOiAiZGlzIiwgdmFsKTsKPiArCXNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICIl ZCIsIHZhbCk7Cj4gKwlpZ3RfYXNzZXJ0X2VxKHdyaXRlKGRybS5kcnJzX2RlYnVnZnNfZmQsCj4g KwkJICAgICAgYnVmLCBzdHJsZW4oYnVmKSksIHN0cmxlbihidWYpKTsKPiArfQo+ICsKPiArc3Rh dGljIGJvb2wgaXNfZHJyc19oaWdoKHZvaWQpCj4gK3sKPiArCWNoYXIgYnVmW01BWF9EUlJTX1NU QVRVU19CVUZfTEVOXTsKPiArCj4gKwlkZWJ1Z2ZzX3JlYWQoImk5MTVfZHJyc19zdGF0dXMiLCBi dWYpOwo+ICsJcmV0dXJuIHN0cnN0cihidWYsICJEUlJTX0hJR0hfUlIiKTsKPiArfQo+ICsKPiAr c3RhdGljIGJvb2wgaXNfZHJyc19sb3codm9pZCkKPiArewo+ICsJY2hhciBidWZbTUFYX0RSUlNf U1RBVFVTX0JVRl9MRU5dOwo+ICsKPiArCWRlYnVnZnNfcmVhZCgiaTkxNV9kcnJzX3N0YXR1cyIs IGJ1Zik7Cj4gKwlyZXR1cm4gc3Ryc3RyKGJ1ZiwgIkRSUlNfTE9XX1JSIik7Cj4gK30KPiArCj4g K3N0YXRpYyBib29sIGlzX2RycnNfc3VwcG9ydGVkKHZvaWQpCj4gK3sKPiArCWNoYXIgYnVmW01B WF9EUlJTX1NUQVRVU19CVUZfTEVOXTsKPiArCj4gKwlkZWJ1Z2ZzX3JlYWQoImk5MTVfZHJyc19z dGF0dXMiLCBidWYpOwo+ICsJcmV0dXJuIHN0cnN0cihidWYsICJEUlJTIFN1cHBvcnRlZDogWWVz Iik7Cj4gK30KPiArCj4gK3N0YXRpYyBib29sIGlzX2RycnNfaW5hY3RpdmUodm9pZCkKPiArewo+ ICsJY2hhciBidWZbTUFYX0RSUlNfU1RBVFVTX0JVRl9MRU5dOwo+ICsKPiArCWRlYnVnZnNfcmVh ZCgiaTkxNV9kcnJzX3N0YXR1cyIsIGJ1Zik7Cj4gKwo+ICsJaWYgKHN0cnN0cihidWYsICJObyBh Y3RpdmUgY3J0YyBmb3VuZCIpKQo+ICsJCXJldHVybiB0cnVlOwo+ICsJaWYgKHN0cnN0cihidWYs ICJJZGxlbmVzcyBEUlJTOiBEaXNhYmxlZCIpKQo+ICsJCXJldHVybiB0cnVlOwo+ICsJaWYgKHN0 cnN0cihidWYsICJEUlJTIFN1cHBvcnRlZCA6IE5vIikpCj4gKwkJcmV0dXJuIHRydWU7Cj4gKwo+ ICsJcmV0dXJuIGZhbHNlOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBkcnJzX3ByaW50X3N0YXR1 cyh2b2lkKQo+ICt7Cj4gKwljaGFyIGJ1ZltNQVhfRFJSU19TVEFUVVNfQlVGX0xFTl07Cj4gKwo+ ICsJZGVidWdmc19yZWFkKCJpOTE1X2RycnNfc3RhdHVzIiwgYnVmKTsKPiArCWlndF9pbmZvKCJE UlJTIFNUQVRVUyA6XG4lc1xuIiwgYnVmKTsKPiArfQo+ICsKPiAgc3RhdGljIHN0cnVjdCB0aW1l c3BlYyBmYmNfZ2V0X2xhc3RfYWN0aW9uKHZvaWQpCj4gIHsKPiAgCXN0cnVjdCB0aW1lc3BlYyBy ZXQgPSB7IDAsIDAgfTsKPiBAQCAtOTM1LDEwICsxMDA0LDE3IEBAIHN0YXRpYyBib29sIHBzcl93 YWl0X3VudGlsX2VuYWJsZWQodm9pZCkKPiAgCXJldHVybiBpZ3Rfd2FpdChwc3JfaXNfZW5hYmxl ZCgpLCA1MDAwLCAxKTsKPiAgfQo+ICAKPiArc3RhdGljIGJvb2wgZHJyc193YWl0X3VudGlsX3Jy X3N3aXRjaF90b19sb3codm9pZCkKPiArewo+ICsJcmV0dXJuIGlndF93YWl0KGlzX2RycnNfbG93 KCksIDUwMDAsIDEpOwo+ICt9Cj4gKwo+ICAjZGVmaW5lIGZiY19lbmFibGUoKSBpZ3Rfc2V0X21v ZHVsZV9wYXJhbV9pbnQoImVuYWJsZV9mYmMiLCAxKQo+ICAjZGVmaW5lIGZiY19kaXNhYmxlKCkg aWd0X3NldF9tb2R1bGVfcGFyYW1faW50KCJlbmFibGVfZmJjIiwgMCkKPiAgI2RlZmluZSBwc3Jf ZW5hYmxlKCkgaWd0X3NldF9tb2R1bGVfcGFyYW1faW50KCJlbmFibGVfcHNyIiwgMSkKPiAgI2Rl ZmluZSBwc3JfZGlzYWJsZSgpIGlndF9zZXRfbW9kdWxlX3BhcmFtX2ludCgiZW5hYmxlX3BzciIs IDApCj4gKyNkZWZpbmUgZHJyc19lbmFibGUoKQlkcnJzX3NldCgxKQo+ICsjZGVmaW5lIGRycnNf ZGlzYWJsZSgpCWRycnNfc2V0KDApCj4gIAo+ICBzdGF0aWMgdm9pZCBnZXRfc2lua19jcmMoc2lu a19jcmNfdCAqY3JjLCBib29sIG1hbmRhdG9yeSkKPiAgewo+IEBAIC0xMTg0LDYgKzEyNjAsNyBA QCBzdGF0aWMgdm9pZCBkaXNhYmxlX2ZlYXR1cmVzKGNvbnN0IHN0cnVjdCB0ZXN0X21vZGUgKnQp Cj4gIAo+ICAJZmJjX2Rpc2FibGUoKTsKPiAgCXBzcl9kaXNhYmxlKCk7Cj4gKwlkcnJzX2Rpc2Fi bGUoKTsKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQgKmJ1c3lfdGhyZWFkX2Z1bmModm9pZCAqZGF0 YSkKPiBAQCAtMTUwOCw2ICsxNTg1LDEyIEBAIHN0YXRpYyB2b2lkIHRlYXJkb3duX2NyY3Modm9p ZCkKPiAgCWlndF9waXBlX2NyY19mcmVlKHBpcGVfY3JjKTsKPiAgfQo+ICAKPiArc3RhdGljIHZv aWQgdGVhcmRvd25fZHJycyh2b2lkKQo+ICt7Cj4gKwlpZiAoZHJtLmRycnNfZGVidWdmc19mZCAh PSAtMSkKPiArCQljbG9zZShkcm0uZHJyc19kZWJ1Z2ZzX2ZkKTsKPiArfQo+ICsKPiAgc3RhdGlj IGJvb2wgZmJjX3N1cHBvcnRlZF9vbl9jaGlwc2V0KHZvaWQpCj4gIHsKPiAgCWNoYXIgYnVmWzEy OF07Cj4gQEAgLTE1NzcsNiArMTY2MCwyOSBAQCBzdGF0aWMgdm9pZCB0ZWFyZG93bl9wc3Iodm9p ZCkKPiAgewo+ICB9Cj4gIAo+ICtzdGF0aWMgdm9pZCBzZXR1cF9kcnJzKHZvaWQpCj4gK3sKPiAr CWlmIChnZXRfY29ubmVjdG9yKHByaW1fbW9kZV9wYXJhbXMuY29ubmVjdG9yX2lkKS0+Y29ubmVj dG9yX3R5cGUgIT0KPiArCSAgICBEUk1fTU9ERV9DT05ORUNUT1JfZURQKSB7Cj4gKwkJaWd0X2lu Zm8oIkNhbid0IHRlc3QgRFJSUzogbm8gdXNhYmxlIGVEUCBzY3JlZW4uXG4iKTsKPiArCQlyZXR1 cm47Cj4gKwl9Cj4gKwo+ICsJaWYgKCFpc19kcnJzX3N1cHBvcnRlZCgpKSB7Cj4gKwkJaWd0X2lu Zm8oIkNhbid0IHRlc3QgRFJSUzogTm90IHN1cHBvcnRlZC5cbiIpOwo+ICsJCXJldHVybjsKPiAr CX0KPiArCj4gKwlkcm0uZHJyc19kZWJ1Z2ZzX2ZkID0gb3BlbmF0KGRybS5kZWJ1Z2ZzLCAiaTkx NV9kcnJzX2N0bCIsIE9fV1JPTkxZKTsKPiArCj4gKwlpZiAoZHJtLmRycnNfZGVidWdmc19mZCA+ IDApIHsKPiArCQlkcnJzLmNhbl90ZXN0ID0gdHJ1ZTsKPiArCX0gZWxzZSB7Cj4gKwkJaWd0X2lu Zm8oIkNhbid0IHRlc3QgRFJSUzogRGVidWdmcyBlbnRyeSBpOTE1X2RycnNfY3RsIG5vdCBmb3Vu ZC5cbiIpOwo+ICsJCWRycnMuY2FuX3Rlc3QgPSBmYWxzZTsKPiArCX0KPiArfQo+ICsKPiAgc3Rh dGljIHZvaWQgc2V0dXBfZW52aXJvbm1lbnQodm9pZCkKPiAgewo+ICAJc2V0dXBfZHJtKCk7Cj4g QEAgLTE1ODQsNiArMTY5MCw3IEBAIHN0YXRpYyB2b2lkIHNldHVwX2Vudmlyb25tZW50KHZvaWQp Cj4gIAo+ICAJc2V0dXBfZmJjKCk7Cj4gIAlzZXR1cF9wc3IoKTsKPiArCXNldHVwX2RycnMoKTsK PiAgCj4gIAlzZXR1cF9jcmNzKCk7Cj4gIH0KPiBAQCAtMTU5Niw2ICsxNzAzLDcgQEAgc3RhdGlj IHZvaWQgdGVhcmRvd25fZW52aXJvbm1lbnQodm9pZCkKPiAgCXRlYXJkb3duX3BzcigpOwo+ICAJ dGVhcmRvd25fZmJjKCk7Cj4gIAl0ZWFyZG93bl9tb2Rlc2V0KCk7Cj4gKwl0ZWFyZG93bl9kcnJz KCk7Cj4gIAl0ZWFyZG93bl9kcm0oKTsKPiAgfQo+ICAKPiBAQCAtMTY2Miw2ICsxNzcwLDExIEBA IHN0YXRpYyB2b2lkIGRvX2ZsdXNoKGNvbnN0IHN0cnVjdCB0ZXN0X21vZGUgKnQpCj4gICNkZWZp bmUgQVNTRVJUX1BTUl9FTkFCTEVECQkoMSA8PCA2KQo+ICAjZGVmaW5lIEFTU0VSVF9QU1JfRElT QUJMRUQJCSgxIDw8IDcpCj4gIAo+ICsjZGVmaW5lIERSUlNfQVNTRVJUX0ZMQUdTCQkoNyA8PCA4 KQo+ICsjZGVmaW5lIEFTU0VSVF9EUlJTX0hJR0gJCSgxIDw8IDgpCj4gKyNkZWZpbmUgQVNTRVJU X0RSUlNfTE9XCQkoMSA8PCA5KQo+ICsjZGVmaW5lIEFTU0VSVF9EUlJTX0lOQUNUSVZFCQkoMSA8 PCAxMCkKPiArCj4gIHN0YXRpYyBpbnQgYWRqdXN0X2Fzc2VydGlvbl9mbGFncyhjb25zdCBzdHJ1 Y3QgdGVzdF9tb2RlICp0LCBpbnQgZmxhZ3MpCj4gIHsKPiAgCWlmICghKGZsYWdzICYgRE9OVF9B U1NFUlRfRkVBVFVSRV9TVEFUVVMpKSB7Cj4gQEAgLTE2NjksMTIgKzE3ODIsMTcgQEAgc3RhdGlj IGludCBhZGp1c3RfYXNzZXJ0aW9uX2ZsYWdzKGNvbnN0IHN0cnVjdCB0ZXN0X21vZGUgKnQsIGlu dCBmbGFncykKPiAgCQkJZmxhZ3MgfD0gQVNTRVJUX0ZCQ19FTkFCTEVEOwo+ICAJCWlmICghKGZs YWdzICYgQVNTRVJUX1BTUl9ESVNBQkxFRCkpCj4gIAkJCWZsYWdzIHw9IEFTU0VSVF9QU1JfRU5B QkxFRDsKPiArCQlpZiAoISgoZmxhZ3MgJiBBU1NFUlRfRFJSU19MT1cpIHx8Cj4gKwkJICAgIChm bGFncyAmIEFTU0VSVF9EUlJTX0lOQUNUSVZFKSkpCj4gKwkJCWZsYWdzIHw9IEFTU0VSVF9EUlJT X0hJR0g7Cj4gIAl9Cj4gIAo+ICAJaWYgKCh0LT5mZWF0dXJlICYgRkVBVFVSRV9GQkMpID09IDAp Cj4gIAkJZmxhZ3MgJj0gfkZCQ19BU1NFUlRfRkxBR1M7Cj4gIAlpZiAoKHQtPmZlYXR1cmUgJiBG RUFUVVJFX1BTUikgPT0gMCkKPiAgCQlmbGFncyAmPSB+UFNSX0FTU0VSVF9GTEFHUzsKPiArCWlm ICgodC0+ZmVhdHVyZSAmIEZFQVRVUkVfRFJSUykgPT0gMCkKPiArCQlmbGFncyAmPSB+RFJSU19B U1NFUlRfRkxBR1M7Cj4gIAo+ICAJcmV0dXJuIGZsYWdzOwo+ICB9Cj4gQEAgLTE3MDYsNiArMTgy NCwyMyBAQCBzdGF0aWMgdm9pZCBkb19zdGF0dXNfYXNzZXJ0aW9ucyhpbnQgZmxhZ3MpCj4gIAkJ cmV0dXJuOwo+ICAJfQo+ICAKPiArCWlmIChmbGFncyAmIEFTU0VSVF9EUlJTX0hJR0gpIHsKPiAr CQlpZiAoIWlzX2RycnNfaGlnaCgpKSB7Cj4gKwkJCWRycnNfcHJpbnRfc3RhdHVzKCk7Cj4gKwkJ CWlndF9hc3NlcnRfZihmYWxzZSwgIkRSUlMgSElHSFxuIik7Cj4gKwkJfQo+ICsJfSBlbHNlIGlm IChmbGFncyAmIEFTU0VSVF9EUlJTX0xPVykgewo+ICsJCWlmICghZHJyc193YWl0X3VudGlsX3Jy X3N3aXRjaF90b19sb3coKSkgewo+ICsJCQlkcnJzX3ByaW50X3N0YXR1cygpOwo+ICsJCQlpZ3Rf YXNzZXJ0X2YoZmFsc2UsICJEUlJTIExPV1xuIik7Cj4gKwkJfQo+ICsJfSBlbHNlIGlmIChmbGFn cyAmIEFTU0VSVF9EUlJTX0lOQUNUSVZFKSB7Cj4gKwkJaWYgKCFpc19kcnJzX2luYWN0aXZlKCkp IHsKPiArCQkJZHJyc19wcmludF9zdGF0dXMoKTsKPiArCQkJaWd0X2Fzc2VydF9mKGZhbHNlLCAi RFJSUyBJTkFDVElWRVxuIik7Cj4gKwkJfQo+ICsJfQo+ICsKPiAgCWlmIChmbGFncyAmIEFTU0VS VF9GQkNfRU5BQkxFRCkgewo+ICAJCWlndF9yZXF1aXJlKCFmYmNfbm90X2Vub3VnaF9zdG9sZW4o KSk7Cj4gIAkJaWd0X3JlcXVpcmUoIWZiY19zdHJpZGVfbm90X3N1cHBvcnRlZCgpKTsKPiBAQCAt MTgzMyw2ICsxOTY4LDggQEAgc3RhdGljIHZvaWQgZW5hYmxlX2ZlYXR1cmVzX2Zvcl90ZXN0KGNv bnN0IHN0cnVjdCB0ZXN0X21vZGUgKnQpCj4gIAkJZmJjX2VuYWJsZSgpOwo+ICAJaWYgKHQtPmZl YXR1cmUgJiBGRUFUVVJFX1BTUikKPiAgCQlwc3JfZW5hYmxlKCk7Cj4gKwlpZiAodC0+ZmVhdHVy ZSAmIEZFQVRVUkVfRFJSUykKPiArCQlkcnJzX2VuYWJsZSgpOwo+ICB9Cj4gIAo+ICBzdGF0aWMg dm9pZCBjaGVja190ZXN0X3JlcXVpcmVtZW50cyhjb25zdCBzdHJ1Y3QgdGVzdF9tb2RlICp0KQo+ IEBAIC0xODUyLDYgKzE5ODksMjAgQEAgc3RhdGljIHZvaWQgY2hlY2tfdGVzdF9yZXF1aXJlbWVu dHMoY29uc3Qgc3RydWN0IHRlc3RfbW9kZSAqdCkKPiAgCQkJICAgICAgIkNhbid0IHRlc3QgUFNS IHdpdGhvdXQgc2luayBDUkNzXG4iKTsKPiAgCX0KPiAgCj4gKwlpZiAodC0+ZmVhdHVyZSAmIEZF QVRVUkVfRFJSUykKPiArCQlpZ3RfcmVxdWlyZV9mKGRycnMuY2FuX3Rlc3QsCj4gKwkJCSAgICAg ICJDYW4ndCB0ZXN0IERSUlMgd2l0aCB0aGUgY3VycmVudCBvdXRwdXRzXG4iKTsKPiArCj4gKwkv Kgo+ICsJICogSW4ga2VybmVsLCBXaGVuIFBTUiBpcyBlbmFibGVkLCBEUlJTIHdpbGwgYmUgZGlz YWJsZWQuIFNvIElmIGEgdGVzdAo+ICsJICogY2FzZSBuZWVkcyBEUlJTICsgUFNSIGVuYWJsZWQs IHRoYXQgd2lsbCBiZSBza2lwcGVkLgo+ICsJICovCj4gKwlkcnJzLmlzX3Bzcl9kcnJzX2NvbWJv ID0gKCh0LT5mZWF0dXJlICYgRkVBVFVSRV9QU1IpICYmCj4gKwkJCQkgICh0LT5mZWF0dXJlICYg RkVBVFVSRV9EUlJTKSk7Cj4gKwo+ICsJaWd0X3JlcXVpcmVfZighZHJycy5pc19wc3JfZHJyc19j b21ibywKPiArCQkgICAgICAiQ2FuJ3QgdGVzdCBQU1IgYW5kIERSUlMgdG9nZXRoZXJcbiIpOwoK aXQgc2VlbXMgeW91IGRvbid0IGhhdmUgdG8gc2F2ZSB0aGF0IG9uIGdsb2JhbCBzY3J1Y3QgZm9y IHRoaXMgbG9jYWwKdXNhZ2Ugb25seS4KCmJ1dCBhbHNvIHdoeSBub3QganVzdAoKCS8qCgkgKiBJ biBrZXJuZWwsIFdoZW4gUFNSIGlzIGVuYWJsZWQsIERSUlMgd2lsbCBiZSBkaXNhYmxlZC4gU28g SWYgYSB0ZXN0CgkgKiBjYXNlIG5lZWRzIERSUlMgKyBQU1IgZW5hYmxlZCwgdGhhdCB3aWxsIGJl IHNraXBwZWQuCgkgKi8KCWlndF9yZXF1aXJlX2YoISgodC0+ZmVhdHVyZSAmIEZFQVRVUkVfUFNS KSAmJgoJCQkJICAodC0+ZmVhdHVyZSAmIEZFQVRVUkVfRFJSUykpLAoJCSAgICAgICJDYW4ndCB0 ZXN0IFBTUiBhbmQgRFJSUyB0b2dldGhlclxuIik7CgoKZXZlcnl0aGluZyBlbHNlIGxndG0uLi4K Cj4gKwo+ICAJaWYgKG9wdC5vbmx5X3BpcGVzICE9IFBJUEVfQ09VTlQpCj4gIAkJaWd0X3JlcXVp cmUodC0+cGlwZXMgPT0gb3B0Lm9ubHlfcGlwZXMpOwo+ICB9Cj4gQEAgLTE5NzMsNyArMjEyNCw3 IEBAIHN0YXRpYyB2b2lkIHJ0ZV9zdWJ0ZXN0KGNvbnN0IHN0cnVjdCB0ZXN0X21vZGUgKnQpCj4g IAo+ICAJdW5zZXRfYWxsX2NydGNzKCk7Cj4gIAlkb19hc3NlcnRpb25zKEFTU0VSVF9GQkNfRElT QUJMRUQgfCBBU1NFUlRfUFNSX0RJU0FCTEVEIHwKPiAtCQkgICAgICBET05UX0FTU0VSVF9DUkMp Owo+ICsJCSAgICAgIERPTlRfQVNTRVJUX0NSQyB8IEFTU0VSVF9EUlJTX0lOQUNUSVZFKTsKPiAg Cj4gIAllbmFibGVfcHJpbV9zY3JlZW5fYW5kX3dhaXQodCk7Cj4gIAlzZXRfY3Vyc29yX2Zvcl90 ZXN0KHQsICZwcmltX21vZGVfcGFyYW1zKTsKPiBAQCAtMjA2NSw2ICsyMjE2LDEzIEBAIHN0YXRp YyB2b2lkIGRyYXdfc3VidGVzdChjb25zdCBzdHJ1Y3QgdGVzdF9tb2RlICp0KQo+ICAJaWYgKG9w X2Rpc2FibGVzX3Bzcih0LCB0LT5tZXRob2QpKQo+ICAJCWFzc2VydGlvbnMgfD0gQVNTRVJUX1BT Ul9ESVNBQkxFRDsKPiAgCj4gKwkvKgo+ICsJICogT24gRkJTX0lORElWSURVQUwsIHdyaXRlIHRv IG9mZnNjcmVlbiBwbGFuZSB3aWxsIG5vdCB0b3VjaCB0aGUKPiArCSAqIGN1cnJlbnQgZnJhbWJ1 ZmZlci4gSGVuY2UgYXNzZXJ0IGZvciBEUlJTX0xPVy4KPiArCSAqLwo+ICsJaWYgKCh0LT5mYnMg PT0gRkJTX0lORElWSURVQUwpICYmICh0LT5zY3JlZW4gPT0gU0NSRUVOX09GRlNDUkVFTikpCj4g KwkJYXNzZXJ0aW9ucyB8PSBBU1NFUlRfRFJSU19MT1c7Cj4gKwo+ICAJcHJlcGFyZV9zdWJ0ZXN0 KHQsIHBhdHRlcm4pOwo+ICAJdGFyZ2V0ID0gcGlja190YXJnZXQodCwgcGFyYW1zKTsKPiAgCj4g QEAgLTIyNzMsNyArMjQzMSwxMSBAQCBzdGF0aWMgdm9pZCBzbG93X2RyYXdfc3VidGVzdChjb25z dCBzdHJ1Y3QgdGVzdF9tb2RlICp0KQo+ICAJCXNsZWVwKDIpOwo+ICAKPiAgCQl1cGRhdGVfd2Fu dGVkX2NyYyh0LCAmcGF0dGVybi0+Y3Jjc1t0LT5mb3JtYXRdW3JdKTsKPiAtCQlkb19hc3NlcnRp b25zKDApOwo+ICsKPiArCQlpZiAodC0+ZmVhdHVyZSAmIEZFQVRVUkVfRFJSUykKPiArCQkJZG9f YXNzZXJ0aW9ucyhBU1NFUlRfRFJSU19MT1cpOwo+ICsJCWVsc2UKPiArCQkJZG9fYXNzZXJ0aW9u cygwKTsKPiAgCX0KPiAgfQo+ICAKPiBAQCAtMjg4MiwxNyArMzA0NCwxNyBAQCBzdGF0aWMgdm9p ZCBzdXNwZW5kX3N1YnRlc3QoY29uc3Qgc3RydWN0IHRlc3RfbW9kZSAqdCkKPiAgCXNsZWVwKDUp Owo+ICAJaWd0X3N5c3RlbV9zdXNwZW5kX2F1dG9yZXN1bWUoU1VTUEVORF9TVEFURV9NRU0sIFNV U1BFTkRfVEVTVF9OT05FKTsKPiAgCXNsZWVwKDUpOwo+IC0JZG9fYXNzZXJ0aW9ucygwKTsKPiAr CWRvX2Fzc2VydGlvbnMoQVNTRVJUX0RSUlNfTE9XKTsKPiAgCj4gIAl1bnNldF9hbGxfY3J0Y3Mo KTsKPiAgCXNsZWVwKDUpOwo+ICAJaWd0X3N5c3RlbV9zdXNwZW5kX2F1dG9yZXN1bWUoU1VTUEVO RF9TVEFURV9NRU0sIFNVU1BFTkRfVEVTVF9OT05FKTsKPiAgCXNsZWVwKDUpOwo+ICAJZG9fYXNz ZXJ0aW9ucyhBU1NFUlRfRkJDX0RJU0FCTEVEIHwgQVNTRVJUX1BTUl9ESVNBQkxFRCB8Cj4gLQkJ ICAgICAgRE9OVF9BU1NFUlRfQ1JDKTsKPiArCQkgICAgICBET05UX0FTU0VSVF9DUkMgfCBBU1NF UlRfRFJSU19JTkFDVElWRSk7Cj4gIAo+ICAJc2V0X21vZGVfZm9yX3BhcmFtcyhwYXJhbXMpOwo+ IC0JZG9fYXNzZXJ0aW9ucygwKTsKPiArCWRvX2Fzc2VydGlvbnMoQVNTRVJUX0RSUlNfSElHSCk7 Cj4gIH0KPiAgCj4gIC8qKgo+IEBAIC0zMzcxLDYgKzM1MzMsMTQgQEAgc3RhdGljIGNvbnN0IGNo YXIgKmZlYXR1cmVfc3RyKGludCBmZWF0dXJlKQo+ICAJCXJldHVybiAicHNyIjsKPiAgCWNhc2Ug RkVBVFVSRV9GQkMgfCBGRUFUVVJFX1BTUjoKPiAgCQlyZXR1cm4gImZiY3BzciI7Cj4gKwljYXNl IEZFQVRVUkVfRFJSUzoKPiArCQlyZXR1cm4gImRycnMiOwo+ICsJY2FzZSBGRUFUVVJFX0ZCQyB8 IEZFQVRVUkVfRFJSUzoKPiArCQlyZXR1cm4gImZiY2RycnMiOwo+ICsJY2FzZSBGRUFUVVJFX1BT UiB8IEZFQVRVUkVfRFJSUzoKPiArCQlyZXR1cm4gInBzcmRycnMiOwo+ICsJY2FzZSBGRUFUVVJF X0ZCQyB8IEZFQVRVUkVfUFNSIHwgRkVBVFVSRV9EUlJTOgo+ICsJCXJldHVybiAiZmJjcHNyZHJy cyI7Cj4gIAlkZWZhdWx0Ogo+ICAJCWlndF9hc3NlcnQoZmFsc2UpOwo+ICAJfQo+IEBAIC0zNjM1 LDcgKzM4MDUsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQo+ICAJCQkJdGls aW5nY2hhbmdlX3N1YnRlc3QoJnQpOwo+ICAJCX0KPiAgCj4gLQkJaWYgKHQuZmVhdHVyZSAmIEZF QVRVUkVfUFNSKQo+ICsJCWlmICgodC5mZWF0dXJlICYgRkVBVFVSRV9QU1IpIHx8ICh0LmZlYXR1 cmUgJiBGRUFUVVJFX0RSUlMpKQo+ICAJCQlpZ3Rfc3VidGVzdF9mKCIlcy1zbG93ZHJhdyIsIGZl YXR1cmVfc3RyKHQuZmVhdHVyZSkpCj4gIAkJCQlzbG93X2RyYXdfc3VidGVzdCgmdCk7Cj4gIAo+ IC0tIAo+IDEuOS4xCj4gCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAo=