From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH i-g-t v13] tests/kms_frontbuffer_tracking: Including DRRS test coverage Date: Thu, 11 Jan 2018 09:40:48 +0100 Message-ID: <20180111084048.GE13066@phenom.ffwll.local> References: <1515152429-3157-1-git-send-email-lohith.bs@intel.com> <1515595620-23742-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 mail-wm0-x241.google.com (mail-wm0-x241.google.com [IPv6:2a00:1450:400c:c09::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id EBB6089149 for ; Thu, 11 Jan 2018 08:40:52 +0000 (UTC) Received: by mail-wm0-x241.google.com with SMTP id 143so3749475wma.5 for ; Thu, 11 Jan 2018 00:40:52 -0800 (PST) Content-Disposition: inline In-Reply-To: <1515595620-23742-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, rodrigo.vivi@intel.com, ankit.k.nautiyal@intel.com List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBKYW4gMTAsIDIwMTggYXQgMDg6MTc6MDBQTSArMDUzMCwgTG9oaXRoIEJTIHdyb3Rl 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 ZWQgc3VidGVzdHMuCj4gCj4gdjExOiBSZW1vdmluZyB0aGUgZ2xvYmFsIGZsYWcgaXNfcHNyX2Ry cnNfY29tYm8gW1JvZHJpZ29dLgo+IAo+IHYxMjogUmV3cml0aW5nIHRoZSBEUlJTIGluYWN0aXZl IGRlZHVjdGlvbiBbUm9kcmlnb10uCj4gCj4gdjEzOiBFbi9EaXMtYWJsZSBEUlJTIG9ubHkgd2hl biBEUlJTIGlzIGNhcGFibGUgb24gdGhlIHNldHVwLgo+IAo+IFNpZ25lZC1vZmYtYnk6IExvaGl0 aCBCUyA8bG9oaXRoLmJzQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBha25hdXRpeSA8YW5r aXQuay5uYXV0aXlhbEBpbnRlbC5jb20+CgpCdHcgcGxzIHJlc3VibWl0IG5ldyB2ZXJzaW9ucyBh cyBhIG5ldyB0aHJlYWQsIGl0IHRlbmRzIHRvIGNvbmZ1c2UKcGF0Y2h3b3JrIGEgYml0IGlmIHlv dSBpbi1yZXBseS10byBmb3JldmVyLiBpbi1yZXBseS10byBpcyBraW5kYSBqdXN0IHRvCnVwZGF0 ZSBpbmRpdmlkdWFsIHBhdGNoZXMgaW4gYSBiaWcgcGF0Y2ggc2VyaWVzIHdoaWxlIGl0J3MgYmVp bmcKZGlzY3Vzc2VkLgoKVGhhbmtzLCBEYW5pZWwKPiAtLS0KPiAgdGVzdHMva21zX2Zyb250YnVm ZmVyX3RyYWNraW5nLmMgfCAxNzIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0tCj4gIDEgZmlsZSBjaGFuZ2VkLCAxNjQgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkK PiAKPiBkaWZmIC0tZ2l0IGEvdGVzdHMva21zX2Zyb250YnVmZmVyX3RyYWNraW5nLmMgYi90ZXN0 cy9rbXNfZnJvbnRidWZmZXJfdHJhY2tpbmcuYwo+IGluZGV4IDE2MDFjYWIuLjZiMjI5OWIgMTAw NjQ0Cj4gLS0tIGEvdGVzdHMva21zX2Zyb250YnVmZmVyX3RyYWNraW5nLmMKPiArKysgYi90ZXN0 cy9rbXNfZnJvbnRidWZmZXJfdHJhY2tpbmcuYwo+IEBAIC0zNCw3ICszNCw3IEBACj4gIAo+ICAK PiAgSUdUX1RFU1RfREVTQ1JJUFRJT04oIlRlc3QgdGhlIEtlcm5lbCdzIGZyb250YnVmZmVyIHRy YWNraW5nIG1lY2hhbmlzbSBhbmQgIgo+IC0JCSAgICAgIml0cyByZWxhdGVkIGZlYXR1cmVzOiBG QkMgYW5kIFBTUiIpOwo+ICsJCSAgICAgIml0cyByZWxhdGVkIGZlYXR1cmVzOiBGQkMsIFBTUiBh bmQgRFJSUyIpOwo+ICAKPiAgLyoKPiAgICogT25lIG9mIHRoZSBhc3BlY3RzIG9mIHRoaXMgdGVz dCBpcyB0aGF0LCBmb3IgZXZlcnkgc3VidGVzdCwgd2UgdHJ5IGRpZmZlcmVudAo+IEBAIC0xMDUs OCArMTA1LDkgQEAgc3RydWN0IHRlc3RfbW9kZSB7Cj4gIAkJRkVBVFVSRV9OT05FICA9IDAsCj4g IAkJRkVBVFVSRV9GQkMgICA9IDEsCj4gIAkJRkVBVFVSRV9QU1IgICA9IDIsCj4gLQkJRkVBVFVS RV9DT1VOVCA9IDQsCj4gLQkJRkVBVFVSRV9ERUZBVUxUID0gNCwKPiArCQlGRUFUVVJFX0RSUlMg ID0gNCwKPiArCQlGRUFUVVJFX0NPVU5UID0gOCwKPiArCQlGRUFUVVJFX0RFRkFVTFQgPSA4LAo+ ICAJfSBmZWF0dXJlOwo+ICAKPiAgCS8qIFBvc3NpYmxlIHBpeGVsIGZvcm1hdHMuIFdlIGp1c3Qg dXNlIEZPUk1BVF9ERUZBVUxUIGZvciBtb3N0IHRlc3RzIGFuZAo+IEBAIC0xODIsNiArMTgzLDEz IEBAIHN0cnVjdCB7Cj4gIAkuY2FuX3Rlc3QgPSBmYWxzZSwKPiAgfTsKPiAgCj4gKyNkZWZpbmUg TUFYX0RSUlNfU1RBVFVTX0JVRl9MRU4gMjU2Cj4gKwo+ICtzdHJ1Y3Qgewo+ICsJYm9vbCBjYW5f dGVzdDsKPiArfSBkcnJzID0gewo+ICsJLmNhbl90ZXN0ID0gZmFsc2UsCj4gK307Cj4gIAo+ICAj ZGVmaW5lIFNJTktfQ1JDX1NJWkUgMTIKPiAgdHlwZWRlZiBzdHJ1Y3Qgewo+IEBAIC03OTAsNyAr Nzk4LDE0IEBAIHN0YXRpYyB2b2lkIF9fZGVidWdmc19yZWFkKGNvbnN0IGNoYXIgKnBhcmFtLCBj aGFyICpidWYsIGludCBsZW4pCj4gIAlidWZbbGVuXSA9ICdcMCc7Cj4gIH0KPiAgCj4gK3N0YXRp YyB2b2lkIF9fZGVidWdmc193cml0ZShjb25zdCBjaGFyICpwYXJhbSwgY2hhciAqYnVmLCBpbnQg bGVuKQo+ICt7Cj4gKwlpZ3RfYXNzZXJ0X2VxKGlndF9zeXNmc193cml0ZShkcm0uZGVidWdmcywg cGFyYW0sIGJ1ZiwgbGVuIC0gMSksCj4gKwkJICAgICAgbGVuIC0gMSk7Cj4gK30KPiArCj4gICNk ZWZpbmUgZGVidWdmc19yZWFkKHAsIGFycikgX19kZWJ1Z2ZzX3JlYWQocCwgYXJyLCBzaXplb2Yo YXJyKSkKPiArI2RlZmluZSBkZWJ1Z2ZzX3dyaXRlKHAsIGFycikgX19kZWJ1Z2ZzX3dyaXRlKHAs IGFyciwgc2l6ZW9mKGFycikpCj4gIAo+ICBzdGF0aWMgYm9vbCBmYmNfaXNfZW5hYmxlZCh2b2lk KQo+ICB7Cj4gQEAgLTgyNSw2ICs4NDAsNjIgQEAgc3RhdGljIHZvaWQgcHNyX3ByaW50X3N0YXR1 cyh2b2lkKQo+ICAJaWd0X2luZm8oIlBTUiBzdGF0dXM6XG4lc1xuIiwgYnVmKTsKPiAgfQo+ICAK PiArdm9pZCBkcnJzX3NldCh1bnNpZ25lZCBpbnQgdmFsKQo+ICt7Cj4gKwljaGFyIGJ1ZlsyXTsK PiArCj4gKwlpZiAoIWRycnMuY2FuX3Rlc3QpCj4gKwkJcmV0dXJuOwo+ICsKPiArCWlndF9kZWJ1 ZygiTWFudWFsbHkgJXNhYmxpbmcgRFJSUy4gJWxsdVxuIiwgdmFsID8gImVuIiA6ICJkaXMiLCB2 YWwpOwo+ICsJc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIiVkIiwgdmFsKTsKPiArCWRlYnVn ZnNfd3JpdGUoImk5MTVfZHJyc19jdGwiLCBidWYpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgYm9vbCBp c19kcnJzX2hpZ2godm9pZCkKPiArewo+ICsJY2hhciBidWZbTUFYX0RSUlNfU1RBVFVTX0JVRl9M RU5dOwo+ICsKPiArCWRlYnVnZnNfcmVhZCgiaTkxNV9kcnJzX3N0YXR1cyIsIGJ1Zik7Cj4gKwly ZXR1cm4gc3Ryc3RyKGJ1ZiwgIkRSUlNfSElHSF9SUiIpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgYm9v bCBpc19kcnJzX2xvdyh2b2lkKQo+ICt7Cj4gKwljaGFyIGJ1ZltNQVhfRFJSU19TVEFUVVNfQlVG X0xFTl07Cj4gKwo+ICsJZGVidWdmc19yZWFkKCJpOTE1X2RycnNfc3RhdHVzIiwgYnVmKTsKPiAr CXJldHVybiBzdHJzdHIoYnVmLCAiRFJSU19MT1dfUlIiKTsKPiArfQo+ICsKPiArc3RhdGljIGJv b2wgaXNfZHJyc19zdXBwb3J0ZWQodm9pZCkKPiArewo+ICsJY2hhciBidWZbTUFYX0RSUlNfU1RB VFVTX0JVRl9MRU5dOwo+ICsKPiArCWRlYnVnZnNfcmVhZCgiaTkxNV9kcnJzX3N0YXR1cyIsIGJ1 Zik7Cj4gKwlyZXR1cm4gc3Ryc3RyKGJ1ZiwgIkRSUlMgU3VwcG9ydGVkOiBZZXMiKTsKPiArfQo+ ICsKPiArc3RhdGljIGJvb2wgaXNfZHJyc19pbmFjdGl2ZSh2b2lkKQo+ICt7Cj4gKwljaGFyIGJ1 ZltNQVhfRFJSU19TVEFUVVNfQlVGX0xFTl07Cj4gKwo+ICsJZGVidWdmc19yZWFkKCJpOTE1X2Ry cnNfc3RhdHVzIiwgYnVmKTsKPiArCj4gKwlpZiAoc3Ryc3RyKGJ1ZiwgIkRSUlNfU3RhdGU6ICIp KQo+ICsJCXJldHVybiBmYWxzZTsKPiArCj4gKwlyZXR1cm4gdHJ1ZTsKPiArfQo+ICsKPiArc3Rh dGljIHZvaWQgZHJyc19wcmludF9zdGF0dXModm9pZCkKPiArewo+ICsJY2hhciBidWZbTUFYX0RS UlNfU1RBVFVTX0JVRl9MRU5dOwo+ICsKPiArCWRlYnVnZnNfcmVhZCgiaTkxNV9kcnJzX3N0YXR1 cyIsIGJ1Zik7Cj4gKwlpZ3RfaW5mbygiRFJSUyBTVEFUVVMgOlxuJXNcbiIsIGJ1Zik7Cj4gK30K PiArCj4gIHN0YXRpYyBzdHJ1Y3QgdGltZXNwZWMgZmJjX2dldF9sYXN0X2FjdGlvbih2b2lkKQo+ ICB7Cj4gIAlzdHJ1Y3QgdGltZXNwZWMgcmV0ID0geyAwLCAwIH07Cj4gQEAgLTkzNSwxMCArMTAw NiwxNyBAQCBzdGF0aWMgYm9vbCBwc3Jfd2FpdF91bnRpbF9lbmFibGVkKHZvaWQpCj4gIAlyZXR1 cm4gaWd0X3dhaXQocHNyX2lzX2VuYWJsZWQoKSwgNTAwMCwgMSk7Cj4gIH0KPiAgCj4gK3N0YXRp YyBib29sIGRycnNfd2FpdF91bnRpbF9ycl9zd2l0Y2hfdG9fbG93KHZvaWQpCj4gK3sKPiArCXJl dHVybiBpZ3Rfd2FpdChpc19kcnJzX2xvdygpLCA1MDAwLCAxKTsKPiArfQo+ICsKPiAgI2RlZmlu ZSBmYmNfZW5hYmxlKCkgaWd0X3NldF9tb2R1bGVfcGFyYW1faW50KCJlbmFibGVfZmJjIiwgMSkK PiAgI2RlZmluZSBmYmNfZGlzYWJsZSgpIGlndF9zZXRfbW9kdWxlX3BhcmFtX2ludCgiZW5hYmxl X2ZiYyIsIDApCj4gICNkZWZpbmUgcHNyX2VuYWJsZSgpIGlndF9zZXRfbW9kdWxlX3BhcmFtX2lu dCgiZW5hYmxlX3BzciIsIDEpCj4gICNkZWZpbmUgcHNyX2Rpc2FibGUoKSBpZ3Rfc2V0X21vZHVs ZV9wYXJhbV9pbnQoImVuYWJsZV9wc3IiLCAwKQo+ICsjZGVmaW5lIGRycnNfZW5hYmxlKCkJZHJy c19zZXQoMSkKPiArI2RlZmluZSBkcnJzX2Rpc2FibGUoKQlkcnJzX3NldCgwKQo+ICAKPiAgc3Rh dGljIHZvaWQgZ2V0X3NpbmtfY3JjKHNpbmtfY3JjX3QgKmNyYywgYm9vbCBtYW5kYXRvcnkpCj4g IHsKPiBAQCAtMTE4NCw2ICsxMjYyLDcgQEAgc3RhdGljIHZvaWQgZGlzYWJsZV9mZWF0dXJlcyhj b25zdCBzdHJ1Y3QgdGVzdF9tb2RlICp0KQo+ICAKPiAgCWZiY19kaXNhYmxlKCk7Cj4gIAlwc3Jf ZGlzYWJsZSgpOwo+ICsJZHJyc19kaXNhYmxlKCk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkICpi dXN5X3RocmVhZF9mdW5jKHZvaWQgKmRhdGEpCj4gQEAgLTE1NzcsNiArMTY1NiwyMiBAQCBzdGF0 aWMgdm9pZCB0ZWFyZG93bl9wc3Iodm9pZCkKPiAgewo+ICB9Cj4gIAo+ICtzdGF0aWMgdm9pZCBz ZXR1cF9kcnJzKHZvaWQpCj4gK3sKPiArCWlmIChnZXRfY29ubmVjdG9yKHByaW1fbW9kZV9wYXJh bXMuY29ubmVjdG9yX2lkKS0+Y29ubmVjdG9yX3R5cGUgIT0KPiArCSAgICBEUk1fTU9ERV9DT05O RUNUT1JfZURQKSB7Cj4gKwkJaWd0X2luZm8oIkNhbid0IHRlc3QgRFJSUzogbm8gdXNhYmxlIGVE UCBzY3JlZW4uXG4iKTsKPiArCQlyZXR1cm47Cj4gKwl9Cj4gKwo+ICsJaWYgKCFpc19kcnJzX3N1 cHBvcnRlZCgpKSB7Cj4gKwkJaWd0X2luZm8oIkNhbid0IHRlc3QgRFJSUzogTm90IHN1cHBvcnRl ZC5cbiIpOwo+ICsJCXJldHVybjsKPiArCX0KPiArCj4gKwlkcnJzLmNhbl90ZXN0ID0gdHJ1ZTsK PiArfQo+ICsKPiAgc3RhdGljIHZvaWQgc2V0dXBfZW52aXJvbm1lbnQodm9pZCkKPiAgewo+ICAJ c2V0dXBfZHJtKCk7Cj4gQEAgLTE1ODQsNiArMTY3OSw3IEBAIHN0YXRpYyB2b2lkIHNldHVwX2Vu dmlyb25tZW50KHZvaWQpCj4gIAo+ICAJc2V0dXBfZmJjKCk7Cj4gIAlzZXR1cF9wc3IoKTsKPiAr CXNldHVwX2RycnMoKTsKPiAgCj4gIAlzZXR1cF9jcmNzKCk7Cj4gIH0KPiBAQCAtMTY2Miw2ICsx NzU4LDExIEBAIHN0YXRpYyB2b2lkIGRvX2ZsdXNoKGNvbnN0IHN0cnVjdCB0ZXN0X21vZGUgKnQp Cj4gICNkZWZpbmUgQVNTRVJUX1BTUl9FTkFCTEVECQkoMSA8PCA2KQo+ICAjZGVmaW5lIEFTU0VS VF9QU1JfRElTQUJMRUQJCSgxIDw8IDcpCj4gIAo+ICsjZGVmaW5lIERSUlNfQVNTRVJUX0ZMQUdT CQkoNyA8PCA4KQo+ICsjZGVmaW5lIEFTU0VSVF9EUlJTX0hJR0gJCSgxIDw8IDgpCj4gKyNkZWZp bmUgQVNTRVJUX0RSUlNfTE9XCQkoMSA8PCA5KQo+ICsjZGVmaW5lIEFTU0VSVF9EUlJTX0lOQUNU SVZFCQkoMSA8PCAxMCkKPiArCj4gIHN0YXRpYyBpbnQgYWRqdXN0X2Fzc2VydGlvbl9mbGFncyhj b25zdCBzdHJ1Y3QgdGVzdF9tb2RlICp0LCBpbnQgZmxhZ3MpCj4gIHsKPiAgCWlmICghKGZsYWdz ICYgRE9OVF9BU1NFUlRfRkVBVFVSRV9TVEFUVVMpKSB7Cj4gQEAgLTE2NjksMTIgKzE3NzAsMTcg QEAgc3RhdGljIGludCBhZGp1c3RfYXNzZXJ0aW9uX2ZsYWdzKGNvbnN0IHN0cnVjdCB0ZXN0X21v ZGUgKnQsIGludCBmbGFncykKPiAgCQkJZmxhZ3MgfD0gQVNTRVJUX0ZCQ19FTkFCTEVEOwo+ICAJ CWlmICghKGZsYWdzICYgQVNTRVJUX1BTUl9ESVNBQkxFRCkpCj4gIAkJCWZsYWdzIHw9IEFTU0VS VF9QU1JfRU5BQkxFRDsKPiArCQlpZiAoISgoZmxhZ3MgJiBBU1NFUlRfRFJSU19MT1cpIHx8Cj4g KwkJICAgIChmbGFncyAmIEFTU0VSVF9EUlJTX0lOQUNUSVZFKSkpCj4gKwkJCWZsYWdzIHw9IEFT U0VSVF9EUlJTX0hJR0g7Cj4gIAl9Cj4gIAo+ICAJaWYgKCh0LT5mZWF0dXJlICYgRkVBVFVSRV9G QkMpID09IDApCj4gIAkJZmxhZ3MgJj0gfkZCQ19BU1NFUlRfRkxBR1M7Cj4gIAlpZiAoKHQtPmZl YXR1cmUgJiBGRUFUVVJFX1BTUikgPT0gMCkKPiAgCQlmbGFncyAmPSB+UFNSX0FTU0VSVF9GTEFH UzsKPiArCWlmICgodC0+ZmVhdHVyZSAmIEZFQVRVUkVfRFJSUykgPT0gMCkKPiArCQlmbGFncyAm PSB+RFJSU19BU1NFUlRfRkxBR1M7Cj4gIAo+ICAJcmV0dXJuIGZsYWdzOwo+ICB9Cj4gQEAgLTE3 MDYsNiArMTgxMiwyMyBAQCBzdGF0aWMgdm9pZCBkb19zdGF0dXNfYXNzZXJ0aW9ucyhpbnQgZmxh Z3MpCj4gIAkJcmV0dXJuOwo+ICAJfQo+ICAKPiArCWlmIChmbGFncyAmIEFTU0VSVF9EUlJTX0hJ R0gpIHsKPiArCQlpZiAoIWlzX2RycnNfaGlnaCgpKSB7Cj4gKwkJCWRycnNfcHJpbnRfc3RhdHVz KCk7Cj4gKwkJCWlndF9hc3NlcnRfZihmYWxzZSwgIkRSUlMgSElHSFxuIik7Cj4gKwkJfQo+ICsJ fSBlbHNlIGlmIChmbGFncyAmIEFTU0VSVF9EUlJTX0xPVykgewo+ICsJCWlmICghZHJyc193YWl0 X3VudGlsX3JyX3N3aXRjaF90b19sb3coKSkgewo+ICsJCQlkcnJzX3ByaW50X3N0YXR1cygpOwo+ ICsJCQlpZ3RfYXNzZXJ0X2YoZmFsc2UsICJEUlJTIExPV1xuIik7Cj4gKwkJfQo+ICsJfSBlbHNl IGlmIChmbGFncyAmIEFTU0VSVF9EUlJTX0lOQUNUSVZFKSB7Cj4gKwkJaWYgKCFpc19kcnJzX2lu YWN0aXZlKCkpIHsKPiArCQkJZHJyc19wcmludF9zdGF0dXMoKTsKPiArCQkJaWd0X2Fzc2VydF9m KGZhbHNlLCAiRFJSUyBJTkFDVElWRVxuIik7Cj4gKwkJfQo+ICsJfQo+ICsKPiAgCWlmIChmbGFn cyAmIEFTU0VSVF9GQkNfRU5BQkxFRCkgewo+ICAJCWlndF9yZXF1aXJlKCFmYmNfbm90X2Vub3Vn aF9zdG9sZW4oKSk7Cj4gIAkJaWd0X3JlcXVpcmUoIWZiY19zdHJpZGVfbm90X3N1cHBvcnRlZCgp KTsKPiBAQCAtMTgzMyw2ICsxOTU2LDggQEAgc3RhdGljIHZvaWQgZW5hYmxlX2ZlYXR1cmVzX2Zv cl90ZXN0KGNvbnN0IHN0cnVjdCB0ZXN0X21vZGUgKnQpCj4gIAkJZmJjX2VuYWJsZSgpOwo+ICAJ aWYgKHQtPmZlYXR1cmUgJiBGRUFUVVJFX1BTUikKPiAgCQlwc3JfZW5hYmxlKCk7Cj4gKwlpZiAo dC0+ZmVhdHVyZSAmIEZFQVRVUkVfRFJSUykKPiArCQlkcnJzX2VuYWJsZSgpOwo+ICB9Cj4gIAo+ ICBzdGF0aWMgdm9pZCBjaGVja190ZXN0X3JlcXVpcmVtZW50cyhjb25zdCBzdHJ1Y3QgdGVzdF9t b2RlICp0KQo+IEBAIC0xODUyLDYgKzE5NzcsMTggQEAgc3RhdGljIHZvaWQgY2hlY2tfdGVzdF9y ZXF1aXJlbWVudHMoY29uc3Qgc3RydWN0IHRlc3RfbW9kZSAqdCkKPiAgCQkJICAgICAgIkNhbid0 IHRlc3QgUFNSIHdpdGhvdXQgc2luayBDUkNzXG4iKTsKPiAgCX0KPiAgCj4gKwlpZiAodC0+ZmVh dHVyZSAmIEZFQVRVUkVfRFJSUykKPiArCQlpZ3RfcmVxdWlyZV9mKGRycnMuY2FuX3Rlc3QsCj4g KwkJCSAgICAgICJDYW4ndCB0ZXN0IERSUlMgd2l0aCB0aGUgY3VycmVudCBvdXRwdXRzXG4iKTsK PiArCj4gKwkvKgo+ICsJICogSW4ga2VybmVsLCBXaGVuIFBTUiBpcyBlbmFibGVkLCBEUlJTIHdp bGwgYmUgZGlzYWJsZWQuIFNvIElmIGEgdGVzdAo+ICsJICogY2FzZSBuZWVkcyBEUlJTICsgUFNS IGVuYWJsZWQsIHRoYXQgd2lsbCBiZSBza2lwcGVkLgo+ICsJICovCj4gKwlpZ3RfcmVxdWlyZV9m KCEoKHQtPmZlYXR1cmUgJiBGRUFUVVJFX1BTUikgJiYKPiArCQkgICAgICAodC0+ZmVhdHVyZSAm IEZFQVRVUkVfRFJSUykpLAo+ICsJCSAgICAgICJDYW4ndCB0ZXN0IFBTUiBhbmQgRFJSUyB0b2dl dGhlclxuIik7Cj4gKwo+ICAJaWYgKG9wdC5vbmx5X3BpcGVzICE9IFBJUEVfQ09VTlQpCj4gIAkJ aWd0X3JlcXVpcmUodC0+cGlwZXMgPT0gb3B0Lm9ubHlfcGlwZXMpOwo+ICB9Cj4gQEAgLTE5NzMs NyArMjExMCw3IEBAIHN0YXRpYyB2b2lkIHJ0ZV9zdWJ0ZXN0KGNvbnN0IHN0cnVjdCB0ZXN0X21v ZGUgKnQpCj4gIAo+ICAJdW5zZXRfYWxsX2NydGNzKCk7Cj4gIAlkb19hc3NlcnRpb25zKEFTU0VS VF9GQkNfRElTQUJMRUQgfCBBU1NFUlRfUFNSX0RJU0FCTEVEIHwKPiAtCQkgICAgICBET05UX0FT U0VSVF9DUkMpOwo+ICsJCSAgICAgIERPTlRfQVNTRVJUX0NSQyB8IEFTU0VSVF9EUlJTX0lOQUNU SVZFKTsKPiAgCj4gIAllbmFibGVfcHJpbV9zY3JlZW5fYW5kX3dhaXQodCk7Cj4gIAlzZXRfY3Vy c29yX2Zvcl90ZXN0KHQsICZwcmltX21vZGVfcGFyYW1zKTsKPiBAQCAtMjA2NSw2ICsyMjAyLDEz IEBAIHN0YXRpYyB2b2lkIGRyYXdfc3VidGVzdChjb25zdCBzdHJ1Y3QgdGVzdF9tb2RlICp0KQo+ ICAJaWYgKG9wX2Rpc2FibGVzX3Bzcih0LCB0LT5tZXRob2QpKQo+ICAJCWFzc2VydGlvbnMgfD0g QVNTRVJUX1BTUl9ESVNBQkxFRDsKPiAgCj4gKwkvKgo+ICsJICogT24gRkJTX0lORElWSURVQUws IHdyaXRlIHRvIG9mZnNjcmVlbiBwbGFuZSB3aWxsIG5vdCB0b3VjaCB0aGUKPiArCSAqIGN1cnJl bnQgZnJhbWJ1ZmZlci4gSGVuY2UgYXNzZXJ0IGZvciBEUlJTX0xPVy4KPiArCSAqLwo+ICsJaWYg KCh0LT5mYnMgPT0gRkJTX0lORElWSURVQUwpICYmICh0LT5zY3JlZW4gPT0gU0NSRUVOX09GRlND UkVFTikpCj4gKwkJYXNzZXJ0aW9ucyB8PSBBU1NFUlRfRFJSU19MT1c7Cj4gKwo+ICAJcHJlcGFy ZV9zdWJ0ZXN0KHQsIHBhdHRlcm4pOwo+ICAJdGFyZ2V0ID0gcGlja190YXJnZXQodCwgcGFyYW1z KTsKPiAgCj4gQEAgLTIyNzMsNyArMjQxNywxMSBAQCBzdGF0aWMgdm9pZCBzbG93X2RyYXdfc3Vi dGVzdChjb25zdCBzdHJ1Y3QgdGVzdF9tb2RlICp0KQo+ICAJCXNsZWVwKDIpOwo+ICAKPiAgCQl1 cGRhdGVfd2FudGVkX2NyYyh0LCAmcGF0dGVybi0+Y3Jjc1t0LT5mb3JtYXRdW3JdKTsKPiAtCQlk b19hc3NlcnRpb25zKDApOwo+ICsKPiArCQlpZiAodC0+ZmVhdHVyZSAmIEZFQVRVUkVfRFJSUykK PiArCQkJZG9fYXNzZXJ0aW9ucyhBU1NFUlRfRFJSU19MT1cpOwo+ICsJCWVsc2UKPiArCQkJZG9f YXNzZXJ0aW9ucygwKTsKPiAgCX0KPiAgfQo+ICAKPiBAQCAtMjg4MiwxNCArMzAzMCwxNCBAQCBz dGF0aWMgdm9pZCBzdXNwZW5kX3N1YnRlc3QoY29uc3Qgc3RydWN0IHRlc3RfbW9kZSAqdCkKPiAg CXNsZWVwKDUpOwo+ICAJaWd0X3N5c3RlbV9zdXNwZW5kX2F1dG9yZXN1bWUoU1VTUEVORF9TVEFU RV9NRU0sIFNVU1BFTkRfVEVTVF9OT05FKTsKPiAgCXNsZWVwKDUpOwo+IC0JZG9fYXNzZXJ0aW9u cygwKTsKPiArCWRvX2Fzc2VydGlvbnMoQVNTRVJUX0RSUlNfTE9XKTsKPiAgCj4gIAl1bnNldF9h bGxfY3J0Y3MoKTsKPiAgCXNsZWVwKDUpOwo+ICAJaWd0X3N5c3RlbV9zdXNwZW5kX2F1dG9yZXN1 bWUoU1VTUEVORF9TVEFURV9NRU0sIFNVU1BFTkRfVEVTVF9OT05FKTsKPiAgCXNsZWVwKDUpOwo+ ICAJZG9fYXNzZXJ0aW9ucyhBU1NFUlRfRkJDX0RJU0FCTEVEIHwgQVNTRVJUX1BTUl9ESVNBQkxF RCB8Cj4gLQkJICAgICAgRE9OVF9BU1NFUlRfQ1JDKTsKPiArCQkgICAgICBET05UX0FTU0VSVF9D UkMgfCBBU1NFUlRfRFJSU19JTkFDVElWRSk7Cj4gIAo+ICAJc2V0X21vZGVfZm9yX3BhcmFtcyhw YXJhbXMpOwo+ICAJZG9fYXNzZXJ0aW9ucygwKTsKPiBAQCAtMzM3MSw2ICszNTE5LDE0IEBAIHN0 YXRpYyBjb25zdCBjaGFyICpmZWF0dXJlX3N0cihpbnQgZmVhdHVyZSkKPiAgCQlyZXR1cm4gInBz ciI7Cj4gIAljYXNlIEZFQVRVUkVfRkJDIHwgRkVBVFVSRV9QU1I6Cj4gIAkJcmV0dXJuICJmYmNw c3IiOwo+ICsJY2FzZSBGRUFUVVJFX0RSUlM6Cj4gKwkJcmV0dXJuICJkcnJzIjsKPiArCWNhc2Ug RkVBVFVSRV9GQkMgfCBGRUFUVVJFX0RSUlM6Cj4gKwkJcmV0dXJuICJmYmNkcnJzIjsKPiArCWNh c2UgRkVBVFVSRV9QU1IgfCBGRUFUVVJFX0RSUlM6Cj4gKwkJcmV0dXJuICJwc3JkcnJzIjsKPiAr CWNhc2UgRkVBVFVSRV9GQkMgfCBGRUFUVVJFX1BTUiB8IEZFQVRVUkVfRFJSUzoKPiArCQlyZXR1 cm4gImZiY3BzcmRycnMiOwo+ICAJZGVmYXVsdDoKPiAgCQlpZ3RfYXNzZXJ0KGZhbHNlKTsKPiAg CX0KPiBAQCAtMzYzNSw3ICszNzkxLDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3Zb XSkKPiAgCQkJCXRpbGluZ2NoYW5nZV9zdWJ0ZXN0KCZ0KTsKPiAgCQl9Cj4gIAo+IC0JCWlmICh0 LmZlYXR1cmUgJiBGRUFUVVJFX1BTUikKPiArCQlpZiAoKHQuZmVhdHVyZSAmIEZFQVRVUkVfUFNS KSB8fCAodC5mZWF0dXJlICYgRkVBVFVSRV9EUlJTKSkKPiAgCQkJaWd0X3N1YnRlc3RfZigiJXMt c2xvd2RyYXciLCBmZWF0dXJlX3N0cih0LmZlYXR1cmUpKQo+ICAJCQkJc2xvd19kcmF3X3N1YnRl c3QoJnQpOwo+ICAKPiAtLSAKPiAxLjkuMQo+IAoKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUg RW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=