From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulo Zanoni Subject: Re: [PATCH i-g-t v8] tests/kms_frontbuffer_tracking: Including DRRS test coverage Date: Wed, 06 Dec 2017 16:30:01 -0200 Message-ID: <1512585001.2626.1.camel@intel.com> References: <1510330921-22710-1-git-send-email-lohith.bs@intel.com> <1512573205-12069-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 mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id B8FCB6E675 for ; Wed, 6 Dec 2017 18:30:09 +0000 (UTC) In-Reply-To: <1512573205-12069-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 , intel-gfx@lists.freedesktop.org, rodrigo.vivi@intel.com, jani.saarinen@intel.com, daniel.vetter@ffwll.ch, chris@chris-wilson.co.uk, marius.c.vlad@intel.com Cc: ankit.k.nautiyal@intel.com List-Id: intel-gfx@lists.freedesktop.org RW0gUXVhLCAyMDE3LTEyLTA2IMOgcyAyMDo0MyArMDUzMCwgTG9oaXRoIEJTIGVzY3JldmV1Ogo+ IER5bmFtaWMgUmVmcmVzaCBSYXRlIFN3aXRjaChEUlJTKSBpcyB1c2VkIHRvIHN3aXRjaCB0aGUg cGFuZWwncwo+IHJlZnJlc2ggcmF0ZSB0byB0aGUgbG93ZXN0IHZyZWZyZXNoIHN1cHBvcnRlZCBi eSBwYW5lbCwgd2hlbiBmcmFtZSBpcwo+IG5vdCBmbGlwcGVkIGZvciBtb3JlIHRoYW4gYSBTZWMu Cj4gCj4gSW4ga2VybmVsLCBEUlJTIHVzZXMgdGhlIGZyb250IGJ1ZmZlciB0cmFja2luZyBpbmZy YXN0cnVjdHVyZS4KPiBIZW5jZSBEUlJTIHRlc3QgY292ZXJhZ2UgaXMgYWRkZWQgYWxvbmcgd2l0 aCBvdGhlciBmcm9udGJ1ZmZlcgo+IHRyYWNraW5nCj4gYmFzZWQgZmVhdHVyZXMgc3VjaCBhcyBG QkMgYW5kIFBTUiB0ZXN0cy4KPiAKPiBIZXJlLCB3ZSBhcmUgdGVzdGluZyBEUlJTIHdpdGggb3Ro ZXIgZmVhdHVyZXMgaW4gYWxsIHBvc3NpYmxlCj4gY29tYmluYXRpb25zLCBpbiBhbGwgcmVxdWly ZWQgdGVzdCBjYXNlcywgdG8gY2FwdHVyZSBhbnkgcG9zc2libGUKPiByZWdyZXNzaW9uLgo+IAo+ IHYyOiBBZGRyZXNzZWQgdGhlIGNvbW1lbnRzIGFuZCBzdWdnZXN0aW9ucyBmcm9tIFZsYWQsIE1h cml1cy4KPiDCoMKgwqDCoFRoZSBzaWdub2ZmIGRldGFpbHMgZnJvbSB0aGUgZWFybGllciB3b3Jr IGFyZSBhbHNvIGluY2x1ZGVkLgo+IAo+IHYzOiBNb2RpZmllZCB2YmxhbmsgcmF0ZSBjYWxjdWxh dGlvbiBieSB1c2luZyByZXBseS1zZXF1ZW5jZSwKPiDCoMKgwqDCoHByb3ZpZGVkIGJ5IGRybVdh aXRWQmxhbmssIGFzIHN1Z2dlc3RlZCBieSBDaHJpcyBXaWxzb24uCj4gCj4gdjQ6IEFzIHN1Z2dl c3RlZCBmcm9tIENocmlzIFdpbHNvbiBhbmQgRGFuaWVsIFZldHRlcgo+IMKgwqDCoMKgMSkgQXZv aWRlZCB1c2luZyBwdGhyZWFkIGZvciBjYWxjdWxhdGluZyB2YmxhbmsgcmVmcmVzaCByYXRlLAo+ IMKgwqDCoMKgwqDCoMKgaW5zdGVhZCB1c2VkIGRybVdhaXRWQmxhbmsgcmVwbHkgc2VxdWVuY2Uu Cj4gwqDCoMKgwqAyKSBBdm9pZGVkIHVzaW5nIGtlcm5lbC1zcGVjaWZpYyBpbmZvIGxpa2UgdHJh bnNpdGlvbmFsIGRlbGF5cywKPiDCoMKgwqDCoMKgwqDCoGluc3RlYWQgcG9sbGluZyBtZWNoYW5p c20gd2l0aCB0aW1lb3V0IGlzIHVzZWQuCj4gwqDCoMKgwqAzKSBJbmNsdWRlZCBlZHAtRFJSUyBh cyBhIHN1YnRlc3QgaW4ga21zX2Zyb250YnVmZmVyX3RyYWNraW5nLmMsCj4gwqDCoMKgwqDCoMKg wqBpbnN0ZWFkIG9mIGhhdmluZyBhIHNlcGFyYXRlIHRlc3QuCj4gCj4gdjU6IFRoaXMgcGF0Y2gg YWRkcyBEUlJTIGFzIGEgbmV3IGZlYXR1cmUgaW4gdGhlCj4gwqDCoMKgwqBrbXNfZnJvbnRidWZm ZXJfdHJhY2tpbmcgSUdULgo+IMKgwqDCoMKgRFJSUyBzd2l0Y2ggdG8gbG93ZXIgdnJlZnJlc2gg cmF0ZSBpcyB0ZXN0ZWQgYXQgc2xvdy1kcmF3Cj4gc3VidGVzdC4KPiAKPiDCoMKgwqDCoE5vdGU6 Cj4gwqDCoMKgwqAxKSBDdXJyZW50bHkga2VybmVsIGRvZXNuJ3QgaGF2ZSBzdXBwb3J0IHRvIGVu YWJsZSBhbmQgZGlzYWJsZQo+IMKgwqDCoMKgwqDCoMKgdGhlIERSUlMgZmVhdHVyZSBkeW5hbWlj YWxseShhcyBpbiBjYXNlIG9mIFBTUikuIEhlbmNlIGlmIHRoZQo+IMKgwqDCoMKgwqDCoMKgcGFu ZWwgc3VwcG9ydHMgRFJSUyBpdCB3aWxsIGJlIGVuYWJsZWQgYnkgZGVmYXVsdC4KPiAKPiDCoMKg wqDCoFRoaXMgaXMgaW4gY29udGludWF0aW9uIG9mIGxhc3QgcGF0Y2gKPiAJImh0dHBzOi8vcGF0 Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9wYXRjaC8xNjI3MjYvIgo+IAo+IHY2OiBUaGlzIHBhdGNo IGFkZHMgcnVudGltZSBlbmFibGUgYW5kIGRpc2FibGUgZmVhdHVyZSBmb3IgdGVzdGluZwo+IERS UlMKPiAKPiB2NzogVGhpcyBwYXRjaCBhZGRzIHJ1bnRpbWUgZW5hYmxlIGFuZCBkaXNhYmxlIGZl YXR1cmUgZm9yIHRlc3RpbmcKPiBEUlJTCj4gwqDCoMKgwqB0aHJvdWdoIGRlYnVnZnMgZW50cnkg Imk5MTVfZHJyc19jdGwiLgo+IAo+IHY4OiBDb21taXQgbWVzc2FnZSBpcyB1cGRhdGVkIHRvIHJl ZmxlY3QgY3VycmVudCBpbXBsZW1lbnRhdGlvbi4KCgpOb3QgYSBmdWxsIHJldmlldywgYnV0OiBj b2Rpbmcgc3R5bGUgYW5kIGluZGVudGF0aW9uIG5lZWRzIHRvIGJlIGZpeGVkLgoKVGhlcmUgYXJl IGEgZmV3IGNodW5rcyB3aGVyZSB0aGUgb25seSB0aGluZyB0aGUgcGF0Y2ggZG9lcyBpcyBtYWtl CmluZGVudGF0aW9uIHdyb25nLgoKVGhlcmUgYXJlIGNodW5rcyB0aGF0IG9ubHkgYWRkIGJsYW5r IGxpbmVzLgoKVGhlcmUgYXJlIGNodW5rcyB0aGF0IGxlYXZlIGZ1bmN0aW9ucyB3aXRob3V0IGVt cHR5IGxpbmVzIGJldHdlZW4gdGhlbS4KClRoZXJlIGFyZSBjaHVua3MgdGhhdCBhZGQgY29kZSB0 aGF0IGRvIG5vdCBmb2xsb3cgdGhlIGNvZGluZyBzdHlsZSB1c2VkCmJ5IHRoZSByZXN0IG9mIHRo ZSBmaWxlICh3aGljaCBpcyB0aGUgc2FtZSBzdHlsZSB1c2VkIGJ5IHRoZSBLZXJuZWwpLgoKVGhl cmUgYXJlIGNodW5rcyB0aGF0IHVzZSB3aGl0ZSBzcGFjZXMgaW4gcGxhY2VzIHdoZXJlIHRhYnMg c2hvdWxkIGJlCnVzZWQuCgpQbGVhc2UgcmV2aWV3IHlvdXIgb3duIHBhdGNoIGJlZm9yZSB3ZSBj YW4gcmV2aWV3IGl0LgoKRkVBVFVSRV9DT1VOVCBuZWVkcyB0byBiZSA4LiBBbnkgdW5kZXNpcmVk IGNvbWJpbmF0aW9ucyBuZWVkIGV4cGxpY2l0CmNvZGUgdG8gYXZvaWQgdGhlbSB3aXRoIGEgbmlj ZSBjb21tZW50IGV4cGxhaW5pbmcgd2h5LgoKPiAKPiBTaWduZWQtb2ZmLWJ5OiBMb2hpdGggQlMg PGxvaGl0aC5ic0BpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogYWtuYXV0aXkgPGFua2l0Lmsu bmF1dGl5YWxAaW50ZWwuY29tPgo+IC0tLQo+IMKgdGVzdHMva21zX2Zyb250YnVmZmVyX3RyYWNr aW5nLmMgfCAxNjYKPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0KPiDC oDEgZmlsZSBjaGFuZ2VkLCAxNTEgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCj4gCj4g ZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19mcm9udGJ1ZmZlcl90cmFja2luZy5jCj4gYi90ZXN0cy9r bXNfZnJvbnRidWZmZXJfdHJhY2tpbmcuYwo+IGluZGV4IGEwNjhjOGEuLmIwNmQzMDQgMTAwNjQ0 Cj4gLS0tIGEvdGVzdHMva21zX2Zyb250YnVmZmVyX3RyYWNraW5nLmMKPiArKysgYi90ZXN0cy9r bXNfZnJvbnRidWZmZXJfdHJhY2tpbmcuYwo+IEBAIC0zNCw3ICszNCw3IEBACj4gwqAKPiDCoAo+ IMKgSUdUX1RFU1RfREVTQ1JJUFRJT04oIlRlc3QgdGhlIEtlcm5lbCdzIGZyb250YnVmZmVyIHRy YWNraW5nCj4gbWVjaGFuaXNtIGFuZCAiCj4gLQkJwqDCoMKgwqDCoCJpdHMgcmVsYXRlZCBmZWF0 dXJlczogRkJDIGFuZCBQU1IiKTsKPiArCQkJIml0cyByZWxhdGVkIGZlYXR1cmVzOiBGQkMsIERS UlMgYW5kIFBTUiIpOwo+IMKgCj4gwqAvKgo+IMKgICogT25lIG9mIHRoZSBhc3BlY3RzIG9mIHRo aXMgdGVzdCBpcyB0aGF0LCBmb3IgZXZlcnkgc3VidGVzdCwgd2UKPiB0cnkgZGlmZmVyZW50Cj4g QEAgLTEwNSw4ICsxMDUsOSBAQCBzdHJ1Y3QgdGVzdF9tb2RlIHsKPiDCoAkJRkVBVFVSRV9OT05F wqDCoD0gMCwKPiDCoAkJRkVBVFVSRV9GQkPCoMKgwqA9IDEsCj4gwqAJCUZFQVRVUkVfUFNSwqDC oMKgPSAyLAo+IC0JCUZFQVRVUkVfQ09VTlQgPSA0LAo+IC0JCUZFQVRVUkVfREVGQVVMVCA9IDQs Cj4gKwkJRkVBVFVSRV9EUlJTwqDCoD0gNCwKPiArCQlGRUFUVVJFX0NPVU5UID0gNiwKPiArCQlG RUFUVVJFX0RFRkFVTFQgPSA2LAo+IMKgCX0gZmVhdHVyZTsKPiDCoAo+IMKgCS8qIFBvc3NpYmxl IHBpeGVsIGZvcm1hdHMuIFdlIGp1c3QgdXNlIEZPUk1BVF9ERUZBVUxUIGZvcgo+IG1vc3QgdGVz dHMgYW5kCj4gQEAgLTE1Niw2ICsxNTcsNyBAQCBzdHJ1Y3QgcmVjdCB7Cj4gwqBzdHJ1Y3Qgewo+ IMKgCWludCBmZDsKPiDCoAlpbnQgZGVidWdmczsKPiArCWludCBkcnJzX2RlYnVnZnNfZmQ7Cj4g wqAJZHJtTW9kZVJlc1B0ciByZXM7Cj4gwqAJZHJtTW9kZUNvbm5lY3RvclB0ciBjb25uZWN0b3Jz W01BWF9DT05ORUNUT1JTXTsKPiDCoAlkcm1Nb2RlRW5jb2RlclB0ciBlbmNvZGVyc1tNQVhfRU5D T0RFUlNdOwo+IEBAIC0xNzgsMTAgKzE4MCw4IEBAIHN0cnVjdCB7Cj4gwqAKPiDCoHN0cnVjdCB7 Cj4gwqAJYm9vbCBjYW5fdGVzdDsKPiAtfSBwc3IgPSB7Cj4gLQkuY2FuX3Rlc3QgPSBmYWxzZSwK PiAtfTsKPiAtCj4gK30gcHNyID0geyAuY2FuX3Rlc3QgPSBmYWxzZSx9LAo+ICtkcnJzID0geyAu Y2FuX3Rlc3QgPSBmYWxzZSx9Owo+IMKgCj4gwqAjZGVmaW5lIFNJTktfQ1JDX1NJWkUgMTIKPiDC oHR5cGVkZWYgc3RydWN0IHsKPiBAQCAtNzc1LDggKzc3NSw4IEBAIHN0YXRpYyBib29sIHNldF9t b2RlX2Zvcl9wYXJhbXMoc3RydWN0Cj4gbW9kZXNldF9wYXJhbXMgKnBhcmFtcykKPiDCoAlpbnQg cmM7Cj4gwqAKPiDCoAlyYyA9IGRybU1vZGVTZXRDcnRjKGRybS5mZCwgcGFyYW1zLT5jcnRjX2lk LCBwYXJhbXMtPmZiLmZiLQo+ID5mYl9pZCwKPiAtCQkJwqDCoMKgwqBwYXJhbXMtPmZiLngsIHBh cmFtcy0+ZmIueSwKPiAtCQkJwqDCoMKgwqAmcGFyYW1zLT5jb25uZWN0b3JfaWQsIDEsIHBhcmFt cy0+bW9kZSk7Cj4gKwkJCQlwYXJhbXMtPmZiLngsIHBhcmFtcy0+ZmIueSwKPiArCQkJCSZwYXJh bXMtPmNvbm5lY3Rvcl9pZCwgMSwgcGFyYW1zLQo+ID5tb2RlKTsKPiDCoAlyZXR1cm4gKHJjID09 IDApOwo+IMKgfQo+IMKgCj4gQEAgLTgyMiw2ICs4MjIsNjMgQEAgc3RhdGljIHZvaWQgcHNyX3By aW50X3N0YXR1cyh2b2lkKQo+IMKgCWlndF9pbmZvKCJQU1Igc3RhdHVzOlxuJXNcbiIsIGJ1Zik7 Cj4gwqB9Cj4gwqAKPiArdm9pZCBkcnJzX3NldCh1bnNpZ25lZCBpbnQgdmFsKQo+ICt7Cj4gKwlj aGFyIGJ1ZlsxNl07Cj4gKwo+ICsJaWd0X2RlYnVnKCJNYW51YWxseSAlc2FibGluZyBEUlJTLiAl bGx1XG4iLCB2YWwgPyAiZW4iIDoKPiAiZGlzIiwgdmFsKTsKPiArCXNucHJpbnRmKGJ1Ziwgc2l6 ZW9mKGJ1ZiksICIlZCIsIHZhbCk7Cj4gKwlpZ3RfYXNzZXJ0X2VxKHdyaXRlKGRybS5kcnJzX2Rl YnVnZnNfZmQsIGJ1Ziwgc3RybGVuKGJ1ZikpLAo+IHN0cmxlbihidWYpKTsKPiArfQo+ICsKPiAr c3RhdGljIGJvb2wgaXNfZHJyc19oaWdoKHZvaWQpCj4gK3sKPiArCWNoYXIgYnVmWzI1Nl07Cj4g Kwo+ICsJZGVidWdmc19yZWFkKCJpOTE1X2RycnNfc3RhdHVzIiwgYnVmKTsKPiArCXJldHVybiBz dHJzdHIoYnVmLCAiRFJSU19ISUdIX1JSIik7Cj4gK30KPiArCj4gK3N0YXRpYyBib29sIGlzX2Ry cnNfbG93KHZvaWQpCj4gK3sKPiArCWNoYXIgYnVmWzI1Nl07Cj4gKwo+ICsJZGVidWdmc19yZWFk KCJpOTE1X2RycnNfc3RhdHVzIiwgYnVmKTsKPiArCXJldHVybiBzdHJzdHIoYnVmLCAiRFJSU19M T1dfUlIiKTsKPiArfQo+ICsKPiArc3RhdGljIGJvb2wgaXNfZHJyc19zdXBwb3J0ZWQodm9pZCkK PiArewo+ICsJY2hhciBidWZbMjU2XTsKPiArCj4gKwlkZWJ1Z2ZzX3JlYWQoImk5MTVfZHJyc19z dGF0dXMiLCBidWYpOwo+ICsJcmV0dXJuIHN0cnN0cihidWYsICJEUlJTIFN1cHBvcnRlZDogWWVz Iik7Cj4gK30KPiArCj4gK3N0YXRpYyBib29sIGlzX2RycnNfaW5hY3RpdmUodm9pZCkKPiArewo+ ICsJY2hhciBidWZbMjU2XTsKPiArCj4gKwlkZWJ1Z2ZzX3JlYWQoImk5MTVfZHJyc19zdGF0dXMi LCBidWYpOwo+ICsKPiArCWlmIChzdHJzdHIoYnVmLCAiTm8gYWN0aXZlIGNydGMgZm91bmQiKSkK PiArCQlyZXR1cm4gdHJ1ZTsKPiArCWlmIChzdHJzdHIoYnVmLCAiSWRsZW5lc3MgRFJSUzogRGlz YWJsZWQiKSkKPiArCQlyZXR1cm4gdHJ1ZTsKPiArCWlmIChzdHJzdHIoYnVmLCAiRFJSUyBTdXBw b3J0ZWQgOiBObyIpKQo+ICsJCXJldHVybiB0cnVlOwo+ICsKPiArCXJldHVybiBmYWxzZTsKPiAr fQo+ICsKPiArc3RhdGljIHZvaWQgZHJyc19wcmludF9zdGF0dXModm9pZCkKPiArewo+ICsJY2hh ciBidWZbMjU2XTsKPiArCj4gKwlkZWJ1Z2ZzX3JlYWQoImk5MTVfZHJyc19zdGF0dXMiLCBidWYp Owo+ICsJaWd0X2luZm8oIkRSUlMgU1RBVFVTIDpcbiVzXG4iLCBidWYpOwo+ICt9Cj4gKwo+IMKg c3RhdGljIHN0cnVjdCB0aW1lc3BlYyBmYmNfZ2V0X2xhc3RfYWN0aW9uKHZvaWQpCj4gwqB7Cj4g wqAJc3RydWN0IHRpbWVzcGVjIHJldCA9IHsgMCwgMCB9Owo+IEBAIC05MzIsMTAgKzk4OSwxNyBA QCBzdGF0aWMgYm9vbCBwc3Jfd2FpdF91bnRpbF9lbmFibGVkKHZvaWQpCj4gwqAJcmV0dXJuIGln dF93YWl0KHBzcl9pc19lbmFibGVkKCksIDUwMDAsIDEpOwo+IMKgfQo+IMKgCj4gK3N0YXRpYyBi b29sIGRycnNfd2FpdF91bnRpbF9ycl9zd2l0Y2hfdG9fbG93KHZvaWQpCj4gK3sKPiArCXJldHVy biBpZ3Rfd2FpdChpc19kcnJzX2xvdygpLCA1MDAwLCAxKTsKPiArfQo+ICsKPiDCoCNkZWZpbmUg ZmJjX2VuYWJsZSgpIGlndF9zZXRfbW9kdWxlX3BhcmFtX2ludCgiZW5hYmxlX2ZiYyIsIDEpCj4g wqAjZGVmaW5lIGZiY19kaXNhYmxlKCkgaWd0X3NldF9tb2R1bGVfcGFyYW1faW50KCJlbmFibGVf ZmJjIiwgMCkKPiDCoCNkZWZpbmUgcHNyX2VuYWJsZSgpIGlndF9zZXRfbW9kdWxlX3BhcmFtX2lu dCgiZW5hYmxlX3BzciIsIDEpCj4gwqAjZGVmaW5lIHBzcl9kaXNhYmxlKCkgaWd0X3NldF9tb2R1 bGVfcGFyYW1faW50KCJlbmFibGVfcHNyIiwgMCkKPiArI2RlZmluZSBkcnJzX2VuYWJsZSgpIGRy cnNfc2V0KDEpCj4gKyNkZWZpbmUgZHJyc19kaXNhYmxlKCkgZHJyc19zZXQoMCkKPiDCoAo+IMKg c3RhdGljIHZvaWQgZ2V0X3NpbmtfY3JjKHNpbmtfY3JjX3QgKmNyYywgYm9vbCBtYW5kYXRvcnkp Cj4gwqB7Cj4gQEAgLTExODIsNiArMTI0Niw3IEBAIHN0YXRpYyB2b2lkIGRpc2FibGVfZmVhdHVy ZXMoY29uc3Qgc3RydWN0Cj4gdGVzdF9tb2RlICp0KQo+IMKgCj4gwqAJZmJjX2Rpc2FibGUoKTsK PiDCoAlwc3JfZGlzYWJsZSgpOwo+ICsJZHJyc19kaXNhYmxlKCk7Cj4gwqB9Cj4gwqAKPiDCoHN0 YXRpYyB2b2lkICpidXN5X3RocmVhZF9mdW5jKHZvaWQgKmRhdGEpCj4gQEAgLTE1MDYsNiArMTU3 MSwxMSBAQCBzdGF0aWMgdm9pZCB0ZWFyZG93bl9jcmNzKHZvaWQpCj4gwqAJaWd0X3BpcGVfY3Jj X2ZyZWUocGlwZV9jcmMpOwo+IMKgfQo+IMKgCj4gK3N0YXRpYyB2b2lkIHRlYXJkb3duX2RycnMo dm9pZCkKPiArewo+ICsJaWYgKGRybS5kcnJzX2RlYnVnZnNfZmQgIT0gLTEpCj4gKwkJY2xvc2Uo ZHJtLmRycnNfZGVidWdmc19mZCk7Cj4gK30KPiDCoHN0YXRpYyBib29sIGZiY19zdXBwb3J0ZWRf b25fY2hpcHNldCh2b2lkKQo+IMKgewo+IMKgCWNoYXIgYnVmWzEyOF07Cj4gQEAgLTE1NzUsNiAr MTY0NSwzMCBAQCBzdGF0aWMgdm9pZCB0ZWFyZG93bl9wc3Iodm9pZCkKPiDCoHsKPiDCoH0KPiDC oAo+ICtzdGF0aWMgdm9pZCBzZXR1cF9kcnJzKHZvaWQpCj4gK3sKPiArCWludCBpc19kcnJzX2Rl YnVnX2N0bDsKPiArCWlmIChnZXRfY29ubmVjdG9yKHByaW1fbW9kZV9wYXJhbXMuY29ubmVjdG9y X2lkKS0KPiA+Y29ubmVjdG9yX3R5cGUgIT0KPiArCQkJRFJNX01PREVfQ09OTkVDVE9SX2VEUCkg ewo+ICsJCWlndF9pbmZvKCJDYW4ndCB0ZXN0IERSUlM6IG5vIHVzYWJsZSBlRFAKPiBzY3JlZW4u XG4iKTsKPiArCQlyZXR1cm47Cj4gKwl9Cj4gKwo+ICsJaWYgKCFpc19kcnJzX3N1cHBvcnRlZCgp KSB7Cj4gKwkJaWd0X2luZm8oIkNhbid0IHRlc3QgRFJSUzogTm90IHN1cHBvcnRlZC5cbiIpOwo+ ICsJCXJldHVybjsKPiArCX0KPiArCj4gKwlkcm0uZHJyc19kZWJ1Z2ZzX2ZkID0gb3BlbmF0KGRy bS5kZWJ1Z2ZzLCAiaTkxNV9kcnJzX2N0bCIsCj4gT19XUk9OTFkpOwo+ICsKPiArCWlmIChkcm0u ZHJyc19kZWJ1Z2ZzX2ZkID4gMCkgewo+ICsJCWRycnMuY2FuX3Rlc3QgPSB0cnVlOwo+ICsJfSBl bHNlIHsKPiArCQlpZ3RfaW5mbygiQ2FuJ3QgdGVzdCBEUlJTOiBEZWJ1Z2ZzIGVudHJ5Cj4gaTkx NV9kcnJzX2N0bCBub3QgZm91bmQuXG4iKTsKPiArCQlkcnJzLmNhbl90ZXN0ID0gZmFsc2U7Cj4g Kwl9Cj4gK30KPiArCj4gwqBzdGF0aWMgdm9pZCBzZXR1cF9lbnZpcm9ubWVudCh2b2lkKQo+IMKg ewo+IMKgCXNldHVwX2RybSgpOwo+IEBAIC0xNTgyLDcgKzE2NzYsNyBAQCBzdGF0aWMgdm9pZCBz ZXR1cF9lbnZpcm9ubWVudCh2b2lkKQo+IMKgCj4gwqAJc2V0dXBfZmJjKCk7Cj4gwqAJc2V0dXBf cHNyKCk7Cj4gLQo+ICsJc2V0dXBfZHJycygpOwo+IMKgCXNldHVwX2NyY3MoKTsKPiDCoH0KPiDC oAo+IEBAIC0xNTk0LDYgKzE2ODgsNyBAQCBzdGF0aWMgdm9pZCB0ZWFyZG93bl9lbnZpcm9ubWVu dCh2b2lkKQo+IMKgCXRlYXJkb3duX3BzcigpOwo+IMKgCXRlYXJkb3duX2ZiYygpOwo+IMKgCXRl YXJkb3duX21vZGVzZXQoKTsKPiArCXRlYXJkb3duX2RycnMoKTsKPiDCoAl0ZWFyZG93bl9kcm0o KTsKPiDCoH0KPiDCoAo+IEBAIC0xNjYwLDYgKzE3NTUsMTEgQEAgc3RhdGljIHZvaWQgZG9fZmx1 c2goY29uc3Qgc3RydWN0IHRlc3RfbW9kZQo+ICp0KQo+IMKgI2RlZmluZSBBU1NFUlRfUFNSX0VO QUJMRUQJCSgxIDw8IDYpCj4gwqAjZGVmaW5lIEFTU0VSVF9QU1JfRElTQUJMRUQJCSgxIDw8IDcp Cj4gwqAKPiArI2RlZmluZSBEUlJTX0FTU0VSVF9GTEFHU8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCg3IDw8IDgpCj4gKyNkZWZpbmUgQVNTRVJUX0RSUlNfSElHSMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgKDEgPDwgOCkKPiArI2RlZmluZSBBU1NFUlRfRFJSU19MT1fCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgKDEgPDwgOSkKPiArI2RlZmluZSBBU1NFUlRf RFJSU19JTkFDVElWRcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCgxIDw8IDEwKQo+ICsKPiDCoHN0 YXRpYyBpbnQgYWRqdXN0X2Fzc2VydGlvbl9mbGFncyhjb25zdCBzdHJ1Y3QgdGVzdF9tb2RlICp0 LCBpbnQKPiBmbGFncykKPiDCoHsKPiDCoAlpZiAoIShmbGFncyAmIERPTlRfQVNTRVJUX0ZFQVRV UkVfU1RBVFVTKSkgewo+IEBAIC0xNjY3LDEyICsxNzY3LDE3IEBAIHN0YXRpYyBpbnQgYWRqdXN0 X2Fzc2VydGlvbl9mbGFncyhjb25zdAo+IHN0cnVjdCB0ZXN0X21vZGUgKnQsIGludCBmbGFncykK PiDCoAkJCWZsYWdzIHw9IEFTU0VSVF9GQkNfRU5BQkxFRDsKPiDCoAkJaWYgKCEoZmxhZ3MgJiBB U1NFUlRfUFNSX0RJU0FCTEVEKSkKPiDCoAkJCWZsYWdzIHw9IEFTU0VSVF9QU1JfRU5BQkxFRDsK PiArCQlpZiAoISgoZmxhZ3MgJiBBU1NFUlRfRFJSU19MT1cpIHx8IChmbGFncyAmCj4gQVNTRVJU X0RSUlNfSU5BQ1RJVkUpKSkgewo+ICsJCQlmbGFncyB8PSBBU1NFUlRfRFJSU19ISUdIOwo+ICsJ CX0KPiDCoAl9Cj4gwqAKPiDCoAlpZiAoKHQtPmZlYXR1cmUgJiBGRUFUVVJFX0ZCQykgPT0gMCkK PiDCoAkJZmxhZ3MgJj0gfkZCQ19BU1NFUlRfRkxBR1M7Cj4gwqAJaWYgKCh0LT5mZWF0dXJlICYg RkVBVFVSRV9QU1IpID09IDApCj4gwqAJCWZsYWdzICY9IH5QU1JfQVNTRVJUX0ZMQUdTOwo+ICsJ aWYgKCh0LT5mZWF0dXJlICYgRkVBVFVSRV9EUlJTKSA9PSAwKQo+ICsJCWZsYWdzICY9IH5EUlJT X0FTU0VSVF9GTEFHUzsKPiDCoAo+IMKgCXJldHVybiBmbGFnczsKPiDCoH0KPiBAQCAtMTcwNCw2 ICsxODA5LDIzIEBAIHN0YXRpYyB2b2lkIGRvX3N0YXR1c19hc3NlcnRpb25zKGludCBmbGFncykK PiDCoAkJcmV0dXJuOwo+IMKgCX0KPiDCoAo+ICsJaWYgKGZsYWdzICYgQVNTRVJUX0RSUlNfSElH SCkgewo+ICsJCWlmICghaXNfZHJyc19oaWdoKCkpIHsKPiArCQkJZHJyc19wcmludF9zdGF0dXMo KTsKPiArCQkJaWd0X2Fzc2VydF9mKGZhbHNlLCAiRFJSUyBISUdIXG4iKTsKPiArCQl9Cj4gKwl9 IGVsc2UgaWYgKGZsYWdzICYgQVNTRVJUX0RSUlNfTE9XKSB7Cj4gKwkJaWYgKCFkcnJzX3dhaXRf dW50aWxfcnJfc3dpdGNoX3RvX2xvdygpKSB7Cj4gKwkJCWRycnNfcHJpbnRfc3RhdHVzKCk7Cj4g KwkJCWlndF9hc3NlcnRfZihmYWxzZSwgIkRSUlMgTE9XXG4iKTsKPiArCQl9Cj4gKwl9IGVsc2Ug aWYgKGZsYWdzICYgQVNTRVJUX0RSUlNfSU5BQ1RJVkUpIHsKPiArCQlpZiAoIWlzX2RycnNfaW5h Y3RpdmUoKSkgewo+ICsJCQlkcnJzX3ByaW50X3N0YXR1cygpOwo+ICsJCQlpZ3RfYXNzZXJ0X2Yo ZmFsc2UsICJEUlJTIElOQUNUSVZFXG4iKTsKPiArCQl9Cj4gKwl9Cj4gKwo+IMKgCWlmIChmbGFn cyAmIEFTU0VSVF9GQkNfRU5BQkxFRCkgewo+IMKgCQlpZ3RfcmVxdWlyZSghZmJjX25vdF9lbm91 Z2hfc3RvbGVuKCkpOwo+IMKgCQlpZ3RfcmVxdWlyZSghZmJjX3N0cmlkZV9ub3Rfc3VwcG9ydGVk KCkpOwo+IEBAIC0xODMxLDYgKzE5NTMsOCBAQCBzdGF0aWMgdm9pZCBlbmFibGVfZmVhdHVyZXNf Zm9yX3Rlc3QoY29uc3QKPiBzdHJ1Y3QgdGVzdF9tb2RlICp0KQo+IMKgCQlmYmNfZW5hYmxlKCk7 Cj4gwqAJaWYgKHQtPmZlYXR1cmUgJiBGRUFUVVJFX1BTUikKPiDCoAkJcHNyX2VuYWJsZSgpOwo+ ICsJaWYgKHQtPmZlYXR1cmUgJiBGRUFUVVJFX0RSUlMpCj4gKwkJZHJyc19lbmFibGUoKTsKPiDC oH0KPiDCoAo+IMKgc3RhdGljIHZvaWQgY2hlY2tfdGVzdF9yZXF1aXJlbWVudHMoY29uc3Qgc3Ry dWN0IHRlc3RfbW9kZSAqdCkKPiBAQCAtMTg1MCw2ICsxOTc0LDEwIEBAIHN0YXRpYyB2b2lkIGNo ZWNrX3Rlc3RfcmVxdWlyZW1lbnRzKGNvbnN0Cj4gc3RydWN0IHRlc3RfbW9kZSAqdCkKPiDCoAkJ CcKgwqDCoMKgwqDCoCJDYW4ndCB0ZXN0IFBTUiB3aXRob3V0IHNpbmsgQ1JDc1xuIik7Cj4gwqAJ fQo+IMKgCj4gKwlpZiAodC0+ZmVhdHVyZSAmIEZFQVRVUkVfRFJSUykKPiArCQlpZ3RfcmVxdWly ZV9mKGRycnMuY2FuX3Rlc3QsCj4gKwkJCQkiQ2FuJ3QgdGVzdCBEUlJTIHdpdGggdGhlIGN1cnJl bnQKPiBvdXRwdXRzXG4iKTsKPiArCj4gwqAJaWYgKG9wdC5vbmx5X3BpcGVzICE9IFBJUEVfQ09V TlQpCj4gwqAJCWlndF9yZXF1aXJlKHQtPnBpcGVzID09IG9wdC5vbmx5X3BpcGVzKTsKPiDCoH0K PiBAQCAtMTk3MSw3ICsyMDk5LDcgQEAgc3RhdGljIHZvaWQgcnRlX3N1YnRlc3QoY29uc3Qgc3Ry dWN0IHRlc3RfbW9kZQo+ICp0KQo+IMKgCj4gwqAJdW5zZXRfYWxsX2NydGNzKCk7Cj4gwqAJZG9f YXNzZXJ0aW9ucyhBU1NFUlRfRkJDX0RJU0FCTEVEIHwgQVNTRVJUX1BTUl9ESVNBQkxFRCB8Cj4g LQkJwqDCoMKgwqDCoMKgRE9OVF9BU1NFUlRfQ1JDKTsKPiArCQnCoMKgwqDCoMKgwqBET05UX0FT U0VSVF9DUkMgfCBBU1NFUlRfRFJSU19JTkFDVElWRSk7Cj4gwqAKPiDCoAllbmFibGVfcHJpbV9z Y3JlZW5fYW5kX3dhaXQodCk7Cj4gwqAJc2V0X2N1cnNvcl9mb3JfdGVzdCh0LCAmcHJpbV9tb2Rl X3BhcmFtcyk7Cj4gQEAgLTIyMTksNiArMjM0Nyw3IEBAIHN0YXRpYyB2b2lkIGJhZGZvcm1hdF9z dWJ0ZXN0KGNvbnN0IHN0cnVjdAo+IHRlc3RfbW9kZSAqdCkKPiDCoAkJYXNzZXJ0aW9ucyB8PSBB U1NFUlRfRkJDX0RJU0FCTEVEOwo+IMKgCWlmICghcHNyX3ZhbGlkKQo+IMKgCQlhc3NlcnRpb25z IHw9IEFTU0VSVF9QU1JfRElTQUJMRUQ7Cj4gKwo+IMKgCWRvX2Fzc2VydGlvbnMoYXNzZXJ0aW9u cyk7Cj4gwqB9Cj4gwqAKPiBAQCAtMjI3Nyw3ICsyNDA2LDExIEBAIHN0YXRpYyB2b2lkIHNsb3df ZHJhd19zdWJ0ZXN0KGNvbnN0IHN0cnVjdAo+IHRlc3RfbW9kZSAqdCkKPiDCoAkJc2xlZXAoMik7 Cj4gwqAKPiDCoAkJdXBkYXRlX3dhbnRlZF9jcmModCwgJnBhdHRlcm4tPmNyY3NbdC0+Zm9ybWF0 XVtyXSk7Cj4gLQkJZG9fYXNzZXJ0aW9ucygwKTsKPiArCj4gKwkJaWYgKHQtPmZlYXR1cmUgJiBG RUFUVVJFX0RSUlMpCj4gKwkJCWRvX2Fzc2VydGlvbnMoQVNTRVJUX0RSUlNfTE9XKTsKPiArCQll bHNlCj4gKwkJCWRvX2Fzc2VydGlvbnMoMCk7Cj4gwqAJfQo+IMKgfQo+IMKgCj4gQEAgLTI4OTIs OCArMzAyNSw3IEBAIHN0YXRpYyB2b2lkIHN1c3BlbmRfc3VidGVzdChjb25zdCBzdHJ1Y3QKPiB0 ZXN0X21vZGUgKnQpCj4gwqAJc2xlZXAoNSk7Cj4gwqAJaWd0X3N5c3RlbV9zdXNwZW5kX2F1dG9y ZXN1bWUoU1VTUEVORF9TVEFURV9NRU0sCj4gU1VTUEVORF9URVNUX05PTkUpOwo+IMKgCXNsZWVw KDUpOwo+IC0JZG9fYXNzZXJ0aW9ucyhBU1NFUlRfRkJDX0RJU0FCTEVEIHwgQVNTRVJUX1BTUl9E SVNBQkxFRCB8Cj4gLQkJwqDCoMKgwqDCoMKgRE9OVF9BU1NFUlRfQ1JDKTsKPiArCWRvX2Fzc2Vy dGlvbnMoQVNTRVJUX0ZCQ19ESVNBQkxFRCB8IEFTU0VSVF9QU1JfRElTQUJMRUQgfAo+IERPTlRf QVNTRVJUX0NSQyk7Cj4gwqAKPiDCoAlzZXRfbW9kZV9mb3JfcGFyYW1zKHBhcmFtcyk7Cj4gwqAJ ZG9fYXNzZXJ0aW9ucygwKTsKPiBAQCAtMzM3NSw2ICszNTA3LDEwIEBAIHN0YXRpYyBjb25zdCBj aGFyICpmZWF0dXJlX3N0cihpbnQgZmVhdHVyZSkKPiDCoAkJcmV0dXJuICJwc3IiOwo+IMKgCWNh c2UgRkVBVFVSRV9GQkMgfCBGRUFUVVJFX1BTUjoKPiDCoAkJcmV0dXJuICJmYmNwc3IiOwo+ICsJ Y2FzZSBGRUFUVVJFX0RSUlM6Cj4gKwkJcmV0dXJuICJkcnJzIjsKPiArCWNhc2UgRkVBVFVSRV9G QkMgfCBGRUFUVVJFX0RSUlM6Cj4gKwkJcmV0dXJuICJmYmNkcnJzIjsKPiDCoAlkZWZhdWx0Ogo+ IMKgCQlpZ3RfYXNzZXJ0KGZhbHNlKTsKPiDCoAl9Cj4gQEAgLTM2MzksNyArMzc3NSw3IEBAIGlu dCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCj4gwqAJCQkJdGlsaW5nY2hhbmdlX3N1YnRl c3QoJnQpOwo+IMKgCQl9Cj4gwqAKPiAtCQlpZiAodC5mZWF0dXJlICYgRkVBVFVSRV9QU1IpCj4g KwkJaWYgKCh0LmZlYXR1cmUgJiBGRUFUVVJFX1BTUikgfHwgKHQuZmVhdHVyZSAmCj4gRkVBVFVS RV9EUlJTKSkKPiDCoAkJCWlndF9zdWJ0ZXN0X2YoIiVzLXNsb3dkcmF3IiwKPiBmZWF0dXJlX3N0 cih0LmZlYXR1cmUpKQo+IMKgCQkJCXNsb3dfZHJhd19zdWJ0ZXN0KCZ0KTsKPiDCoApfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK