From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH 1/2] drm/i915/selftests: Refactor common flush_test() Date: Tue, 08 May 2018 14:39:08 +0300 Message-ID: <87wowewf4z.fsf@gaia.fi.intel.com> References: <20180505091014.26126-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 383876E76E for ; Tue, 8 May 2018 11:39:23 +0000 (UTC) In-Reply-To: <20180505091014.26126-1-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+IHdyaXRlczoKCj4gUHVsbCBp Z3RfZmx1c2hfdGVzdCgpIG91dCBpbnRvIGl0cyBvd24gbGlicmFyeSBiZWZvcmUgY29weWluZyBh bmQKPiBwYXN0aW5nIHRoZSBjb2RlIGZvciBhIHRoaXJkIHRpbWUuCj4KPiBTaWduZWQtb2ZmLWJ5 OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KClJldmlld2VkLWJ5OiBN aWthIEt1b3BwYWxhIDxtaWthLmt1b3BwYWxhQGxpbnV4LmludGVsLmNvbT4KCj4gLS0tCj4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlICAgICAgICAgICAgICAgICB8ICAzICstCj4gIC4u Li9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lndF9mbHVzaF90ZXN0LmMgICB8IDY0ICsrKysrKysr KysrKysrKysrCj4gIC4uLi9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lndF9mbHVzaF90ZXN0Lmgg ICB8IDE0ICsrKysKPiAgLi4uL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfaGFuZ2NoZWNr LmMgIHwgNjYgKystLS0tLS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0 ZXN0cy9pbnRlbF9scmMuYyAgICB8IDY4ICsrLS0tLS0tLS0tLS0tLS0tLS0KPiAgNSBmaWxlcyBj aGFuZ2VkLCA5MyBpbnNlcnRpb25zKCspLCAxMjIgZGVsZXRpb25zKC0pCj4gIGNyZWF0ZSBtb2Rl IDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaWd0X2ZsdXNoX3Rlc3QuYwo+ ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lndF9m bHVzaF90ZXN0LmgKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmls ZSBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCj4gaW5kZXggMDBjMTMzODJiMDA4Li40 YzZhZGFlMjNlMTggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQo+IEBAIC0xNTgsNyArMTU4LDgg QEAgaTkxNS15ICs9IGR2b19jaDcwMTcubyBcCj4gIGk5MTUtJChDT05GSUdfRFJNX0k5MTVfQ0FQ VFVSRV9FUlJPUikgKz0gaTkxNV9ncHVfZXJyb3Iubwo+ICBpOTE1LSQoQ09ORklHX0RSTV9JOTE1 X1NFTEZURVNUKSArPSBcCj4gIAlzZWxmdGVzdHMvaTkxNV9yYW5kb20ubyBcCj4gLQlzZWxmdGVz dHMvaTkxNV9zZWxmdGVzdC5vCj4gKwlzZWxmdGVzdHMvaTkxNV9zZWxmdGVzdC5vIFwKPiArCXNl bGZ0ZXN0cy9pZ3RfZmx1c2hfdGVzdC5vCj4gIAo+ICAjIHZpcnR1YWwgZ3B1IGNvZGUKPiAgaTkx NS15ICs9IGk5MTVfdmdwdS5vCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3Nl bGZ0ZXN0cy9pZ3RfZmx1c2hfdGVzdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3Rz L2lndF9mbHVzaF90ZXN0LmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAw MDAwMC4uYWJmZjJmMDRlYTg0Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L3NlbGZ0ZXN0cy9pZ3RfZmx1c2hfdGVzdC5jCj4gQEAgLTAsMCArMSw2NCBAQAo+ICsv Kgo+ICsgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCj4gKyAqCj4gKyAqIENvcHlyaWdo dCDCqSAyMDE4IEludGVsIENvcnBvcmF0aW9uCj4gKyAqLwo+ICsKPiArI2luY2x1ZGUgIi4uL2k5 MTVfZHJ2LmgiCj4gKwo+ICsjaW5jbHVkZSAiLi4vaTkxNV9zZWxmdGVzdC5oIgo+ICsjaW5jbHVk ZSAiaWd0X2ZsdXNoX3Rlc3QuaCIKPiArCj4gK3N0cnVjdCB3ZWRnZV9tZSB7Cj4gKwlzdHJ1Y3Qg ZGVsYXllZF93b3JrIHdvcms7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNTsKPiAr CWNvbnN0IHZvaWQgKnN5bWJvbDsKPiArfTsKPiArCj4gK3N0YXRpYyB2b2lkIHdlZGdlX21lKHN0 cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiArewo+ICsJc3RydWN0IHdlZGdlX21lICp3ID0gY29u dGFpbmVyX29mKHdvcmssIHR5cGVvZigqdyksIHdvcmsud29yayk7Cj4gKwo+ICsJcHJfZXJyKCIl cFMgdGltZWQgb3V0LCBjYW5jZWxsaW5nIGFsbCBmdXJ0aGVyIHRlc3RpbmcuXG4iLCB3LT5zeW1i b2wpOwo+ICsKPiArCUdFTV9UUkFDRSgiJXBTIHRpbWVkIG91dC5cbiIsIHctPnN5bWJvbCk7Cj4g KwlHRU1fVFJBQ0VfRFVNUCgpOwo+ICsKPiArCWk5MTVfZ2VtX3NldF93ZWRnZWQody0+aTkxNSk7 Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIF9faW5pdF93ZWRnZShzdHJ1Y3Qgd2VkZ2VfbWUgKncs Cj4gKwkJCSBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKPiArCQkJIGxvbmcgdGltZW91 dCwKPiArCQkJIGNvbnN0IHZvaWQgKnN5bWJvbCkKPiArewo+ICsJdy0+aTkxNSA9IGk5MTU7Cj4g Kwl3LT5zeW1ib2wgPSBzeW1ib2w7Cj4gKwo+ICsJSU5JVF9ERUxBWUVEX1dPUktfT05TVEFDSygm dy0+d29yaywgd2VkZ2VfbWUpOwo+ICsJc2NoZWR1bGVfZGVsYXllZF93b3JrKCZ3LT53b3JrLCB0 aW1lb3V0KTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgX19maW5pX3dlZGdlKHN0cnVjdCB3ZWRn ZV9tZSAqdykKPiArewo+ICsJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZ3LT53b3JrKTsKPiAr CWRlc3Ryb3lfZGVsYXllZF93b3JrX29uX3N0YWNrKCZ3LT53b3JrKTsKPiArCXctPmk5MTUgPSBO VUxMOwo+ICt9Cj4gKwo+ICsjZGVmaW5lIHdlZGdlX29uX3RpbWVvdXQoVywgREVWLCBUSU1FT1VU KQkJCQlcCj4gKwlmb3IgKF9faW5pdF93ZWRnZSgoVyksIChERVYpLCAoVElNRU9VVCksIF9fYnVp bHRpbl9yZXR1cm5fYWRkcmVzcygwKSk7IFwKPiArCSAgICAgKFcpLT5pOTE1OwkJCQkJCQlcCj4g KwkgICAgIF9fZmluaV93ZWRnZSgoVykpKQo+ICsKPiAraW50IGlndF9mbHVzaF90ZXN0KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1LCB1bnNpZ25lZCBpbnQgZmxhZ3MpCj4gK3sKPiArCXN0 cnVjdCB3ZWRnZV9tZSB3Owo+ICsKPiArCWNvbmRfcmVzY2hlZCgpOwo+ICsKPiArCXdlZGdlX29u X3RpbWVvdXQoJncsIGk5MTUsIEhaKQo+ICsJCWk5MTVfZ2VtX3dhaXRfZm9yX2lkbGUoaTkxNSwg ZmxhZ3MpOwo+ICsKPiArCXJldHVybiBpOTE1X3Rlcm1pbmFsbHlfd2VkZ2VkKCZpOTE1LT5ncHVf ZXJyb3IpID8gLUVJTyA6IDA7Cj4gK30KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvc2VsZnRlc3RzL2lndF9mbHVzaF90ZXN0LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxm dGVzdHMvaWd0X2ZsdXNoX3Rlc3QuaAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAw MDAwMDAwMDAwLi42M2UwMDk5MjdjNDMKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lndF9mbHVzaF90ZXN0LmgKPiBAQCAtMCwwICsxLDE0IEBA Cj4gKy8qCj4gKyAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKPiArICoKPiArICogQ29w eXJpZ2h0IMKpIDIwMTggSW50ZWwgQ29ycG9yYXRpb24KPiArICovCj4gKwo+ICsjaWZuZGVmIElH VF9GTFVTSF9URVNUX0gKPiArI2RlZmluZSBJR1RfRkxVU0hfVEVTVF9ICj4gKwo+ICtzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZTsKPiArCj4gK2ludCBpZ3RfZmx1c2hfdGVzdChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqaTkxNSwgdW5zaWduZWQgaW50IGZsYWdzKTsKPiArCj4gKyNlbmRpZiAvKiBJ R1RfRkxVU0hfVEVTVF9IICovCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3Nl bGZ0ZXN0cy9pbnRlbF9oYW5nY2hlY2suYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0 cy9pbnRlbF9oYW5nY2hlY2suYwo+IGluZGV4IGM2MWJmNjU0NTRhOS4uNDM4ZTBiMDQ1YTJjIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9oYW5nY2hl Y2suYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9oYW5nY2hl Y2suYwo+IEBAIC0yNiw2ICsyNiw3IEBACj4gIAo+ICAjaW5jbHVkZSAiLi4vaTkxNV9zZWxmdGVz dC5oIgo+ICAjaW5jbHVkZSAiaTkxNV9yYW5kb20uaCIKPiArI2luY2x1ZGUgImlndF9mbHVzaF90 ZXN0LmgiCj4gIAo+ICAjaW5jbHVkZSAibW9ja19jb250ZXh0LmgiCj4gICNpbmNsdWRlICJtb2Nr X2RybS5oIgo+IEBAIC0yNTMsNjEgKzI1NCw2IEBAIHN0YXRpYyB1MzIgaHdzX3NlcW5vKGNvbnN0 IHN0cnVjdCBoYW5nICpoLCBjb25zdCBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycSkKPiAgCXJldHVy biBSRUFEX09OQ0UoaC0+c2Vxbm9bcnEtPmZlbmNlLmNvbnRleHQgJSAoUEFHRV9TSVpFL3NpemVv Zih1MzIpKV0pOwo+ICB9Cj4gIAo+IC1zdHJ1Y3Qgd2VkZ2VfbWUgewo+IC0Jc3RydWN0IGRlbGF5 ZWRfd29yayB3b3JrOwo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTU7Cj4gLQljb25z dCB2b2lkICpzeW1ib2w7Cj4gLX07Cj4gLQo+IC1zdGF0aWMgdm9pZCB3ZWRnZV9tZShzdHJ1Y3Qg d29ya19zdHJ1Y3QgKndvcmspCj4gLXsKPiAtCXN0cnVjdCB3ZWRnZV9tZSAqdyA9IGNvbnRhaW5l cl9vZih3b3JrLCB0eXBlb2YoKncpLCB3b3JrLndvcmspOwo+IC0KPiAtCXByX2VycigiJXBTIHRp bWVkIG91dCwgY2FuY2VsbGluZyBhbGwgZnVydGhlciB0ZXN0aW5nLlxuIiwgdy0+c3ltYm9sKTsK PiAtCj4gLQlHRU1fVFJBQ0UoIiVwUyB0aW1lZCBvdXQuXG4iLCB3LT5zeW1ib2wpOwo+IC0JR0VN X1RSQUNFX0RVTVAoKTsKPiAtCj4gLQlpOTE1X2dlbV9zZXRfd2VkZ2VkKHctPmk5MTUpOwo+IC19 Cj4gLQo+IC1zdGF0aWMgdm9pZCBfX2luaXRfd2VkZ2Uoc3RydWN0IHdlZGdlX21lICp3LAo+IC0J CQkgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4gLQkJCSBsb25nIHRpbWVvdXQsCj4g LQkJCSBjb25zdCB2b2lkICpzeW1ib2wpCj4gLXsKPiAtCXctPmk5MTUgPSBpOTE1Owo+IC0Jdy0+ c3ltYm9sID0gc3ltYm9sOwo+IC0KPiAtCUlOSVRfREVMQVlFRF9XT1JLX09OU1RBQ0soJnctPndv cmssIHdlZGdlX21lKTsKPiAtCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmdy0+d29yaywgdGltZW91 dCk7Cj4gLX0KPiAtCj4gLXN0YXRpYyB2b2lkIF9fZmluaV93ZWRnZShzdHJ1Y3Qgd2VkZ2VfbWUg KncpCj4gLXsKPiAtCWNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygmdy0+d29yayk7Cj4gLQlkZXN0 cm95X2RlbGF5ZWRfd29ya19vbl9zdGFjaygmdy0+d29yayk7Cj4gLQl3LT5pOTE1ID0gTlVMTDsK PiAtfQo+IC0KPiAtI2RlZmluZSB3ZWRnZV9vbl90aW1lb3V0KFcsIERFViwgVElNRU9VVCkJCQkJ XAo+IC0JZm9yIChfX2luaXRfd2VkZ2UoKFcpLCAoREVWKSwgKFRJTUVPVVQpLCBfX2J1aWx0aW5f cmV0dXJuX2FkZHJlc3MoMCkpOyBcCj4gLQkgICAgIChXKS0+aTkxNTsJCQkJCQkJXAo+IC0JICAg ICBfX2Zpbmlfd2VkZ2UoKFcpKSkKPiAtCj4gLXN0YXRpYyBub2lubGluZSBpbnQKPiAtZmx1c2hf dGVzdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgdW5zaWduZWQgaW50IGZsYWdzKQo+ IC17Cj4gLQlzdHJ1Y3Qgd2VkZ2VfbWUgdzsKPiAtCj4gLQljb25kX3Jlc2NoZWQoKTsKPiAtCj4g LQl3ZWRnZV9vbl90aW1lb3V0KCZ3LCBpOTE1LCBIWikKPiAtCQlpOTE1X2dlbV93YWl0X2Zvcl9p ZGxlKGk5MTUsIGZsYWdzKTsKPiAtCj4gLQlyZXR1cm4gaTkxNV90ZXJtaW5hbGx5X3dlZGdlZCgm aTkxNS0+Z3B1X2Vycm9yKSA/IC1FSU8gOiAwOwo+IC19Cj4gLQo+ICBzdGF0aWMgdm9pZCBoYW5n X2Zpbmkoc3RydWN0IGhhbmcgKmgpCj4gIHsKPiAgCSpoLT5iYXRjaCA9IE1JX0JBVENIX0JVRkZF Ul9FTkQ7Cj4gQEAgLTMyMSw3ICsyNjcsNyBAQCBzdGF0aWMgdm9pZCBoYW5nX2Zpbmkoc3RydWN0 IGhhbmcgKmgpCj4gIAo+ICAJa2VybmVsX2NvbnRleHRfY2xvc2UoaC0+Y3R4KTsKPiAgCj4gLQlm bHVzaF90ZXN0KGgtPmk5MTUsIEk5MTVfV0FJVF9MT0NLRUQpOwo+ICsJaWd0X2ZsdXNoX3Rlc3Qo aC0+aTkxNSwgSTkxNV9XQUlUX0xPQ0tFRCk7Cj4gIH0KPiAgCj4gIHN0YXRpYyBib29sIHdhaXRf dW50aWxfcnVubmluZyhzdHJ1Y3QgaGFuZyAqaCwgc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCj4g QEAgLTU3NSw3ICs1MjEsNyBAQCBzdGF0aWMgaW50IF9faWd0X3Jlc2V0X2VuZ2luZShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgYm9vbCBhY3RpdmUpCj4gIAkJaWYgKGVycikKPiAgCQkJ YnJlYWs7Cj4gIAo+IC0JCWVyciA9IGZsdXNoX3Rlc3QoaTkxNSwgMCk7Cj4gKwkJZXJyID0gaWd0 X2ZsdXNoX3Rlc3QoaTkxNSwgMCk7Cj4gIAkJaWYgKGVycikKPiAgCQkJYnJlYWs7Cj4gIAl9Cj4g QEAgLTg3NCw3ICs4MjAsNyBAQCBzdGF0aWMgaW50IF9faWd0X3Jlc2V0X2VuZ2luZXMoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4gIAkJaWYgKGVycikKPiAgCQkJYnJlYWs7Cj4gIAo+ IC0JCWVyciA9IGZsdXNoX3Rlc3QoaTkxNSwgMCk7Cj4gKwkJZXJyID0gaWd0X2ZsdXNoX3Rlc3Qo aTkxNSwgMCk7Cj4gIAkJaWYgKGVycikKPiAgCQkJYnJlYWs7Cj4gIAl9Cj4gQEAgLTExNjgsNyAr MTExNCw3IEBAIHN0YXRpYyBpbnQgaWd0X3Jlc2V0X3F1ZXVlKHZvaWQgKmFyZykKPiAgCj4gIAkJ aTkxNV9yZXF1ZXN0X3B1dChwcmV2KTsKPiAgCj4gLQkJZXJyID0gZmx1c2hfdGVzdChpOTE1LCBJ OTE1X1dBSVRfTE9DS0VEKTsKPiArCQllcnIgPSBpZ3RfZmx1c2hfdGVzdChpOTE1LCBJOTE1X1dB SVRfTE9DS0VEKTsKPiAgCQlpZiAoZXJyKQo+ICAJCQlicmVhazsKPiAgCX0KPiBAQCAtMTI4MCw3 ICsxMjI2LDcgQEAgaW50IGludGVsX2hhbmdjaGVja19saXZlX3NlbGZ0ZXN0cyhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqaTkxNSkKPiAgCWVyciA9IGk5MTVfc3VidGVzdHModGVzdHMsIGk5MTUp Owo+ICAKPiAgCW11dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwo+IC0JZmx1c2hf dGVzdChpOTE1LCBJOTE1X1dBSVRfTE9DS0VEKTsKPiArCWlndF9mbHVzaF90ZXN0KGk5MTUsIEk5 MTVfV0FJVF9MT0NLRUQpOwo+ICAJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4 KTsKPiAgCj4gIAlpOTE1X21vZHBhcmFtcy5lbmFibGVfaGFuZ2NoZWNrID0gc2F2ZWRfaGFuZ2No ZWNrOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxf bHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfbHJjLmMKPiBpbmRl eCBiNzQ2MGI1ZGQ0ZjcuLjFiOGEwNzEyNTE1MCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfbHJjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9zZWxmdGVzdHMvaW50ZWxfbHJjLmMKPiBAQCAtNSw2ICs1LDcgQEAKPiAgICovCj4gIAo+ICAj aW5jbHVkZSAiLi4vaTkxNV9zZWxmdGVzdC5oIgo+ICsjaW5jbHVkZSAiaWd0X2ZsdXNoX3Rlc3Qu aCIKPiAgCj4gICNpbmNsdWRlICJtb2NrX2NvbnRleHQuaCIKPiAgCj4gQEAgLTE2OCw2MSArMTY5 LDYgQEAgc3RhdGljIHUzMiBod3Nfc2Vxbm8oY29uc3Qgc3RydWN0IHNwaW5uZXIgKnNwaW4sIGNv bnN0IHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQo+ICAJcmV0dXJuIFJFQURfT05DRSgqc2Vxbm8p Owo+ICB9Cj4gIAo+IC1zdHJ1Y3Qgd2VkZ2VfbWUgewo+IC0Jc3RydWN0IGRlbGF5ZWRfd29yayB3 b3JrOwo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTU7Cj4gLQljb25zdCB2b2lkICpz eW1ib2w7Cj4gLX07Cj4gLQo+IC1zdGF0aWMgdm9pZCB3ZWRnZV9tZShzdHJ1Y3Qgd29ya19zdHJ1 Y3QgKndvcmspCj4gLXsKPiAtCXN0cnVjdCB3ZWRnZV9tZSAqdyA9IGNvbnRhaW5lcl9vZih3b3Jr LCB0eXBlb2YoKncpLCB3b3JrLndvcmspOwo+IC0KPiAtCXByX2VycigiJXBTIHRpbWVkIG91dCwg Y2FuY2VsbGluZyBhbGwgZnVydGhlciB0ZXN0aW5nLlxuIiwgdy0+c3ltYm9sKTsKPiAtCj4gLQlH RU1fVFJBQ0UoIiVwUyB0aW1lZCBvdXQuXG4iLCB3LT5zeW1ib2wpOwo+IC0JR0VNX1RSQUNFX0RV TVAoKTsKPiAtCj4gLQlpOTE1X2dlbV9zZXRfd2VkZ2VkKHctPmk5MTUpOwo+IC19Cj4gLQo+IC1z dGF0aWMgdm9pZCBfX2luaXRfd2VkZ2Uoc3RydWN0IHdlZGdlX21lICp3LAo+IC0JCQkgc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4gLQkJCSBsb25nIHRpbWVvdXQsCj4gLQkJCSBjb25z dCB2b2lkICpzeW1ib2wpCj4gLXsKPiAtCXctPmk5MTUgPSBpOTE1Owo+IC0Jdy0+c3ltYm9sID0g c3ltYm9sOwo+IC0KPiAtCUlOSVRfREVMQVlFRF9XT1JLX09OU1RBQ0soJnctPndvcmssIHdlZGdl X21lKTsKPiAtCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmdy0+d29yaywgdGltZW91dCk7Cj4gLX0K PiAtCj4gLXN0YXRpYyB2b2lkIF9fZmluaV93ZWRnZShzdHJ1Y3Qgd2VkZ2VfbWUgKncpCj4gLXsK PiAtCWNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygmdy0+d29yayk7Cj4gLQlkZXN0cm95X2RlbGF5 ZWRfd29ya19vbl9zdGFjaygmdy0+d29yayk7Cj4gLQl3LT5pOTE1ID0gTlVMTDsKPiAtfQo+IC0K PiAtI2RlZmluZSB3ZWRnZV9vbl90aW1lb3V0KFcsIERFViwgVElNRU9VVCkJCQkJXAo+IC0JZm9y IChfX2luaXRfd2VkZ2UoKFcpLCAoREVWKSwgKFRJTUVPVVQpLCBfX2J1aWx0aW5fcmV0dXJuX2Fk ZHJlc3MoMCkpOyBcCj4gLQkgICAgIChXKS0+aTkxNTsJCQkJCQkJXAo+IC0JICAgICBfX2Zpbmlf d2VkZ2UoKFcpKSkKPiAtCj4gLXN0YXRpYyBub2lubGluZSBpbnQKPiAtZmx1c2hfdGVzdChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgdW5zaWduZWQgaW50IGZsYWdzKQo+IC17Cj4gLQlz dHJ1Y3Qgd2VkZ2VfbWUgdzsKPiAtCj4gLQljb25kX3Jlc2NoZWQoKTsKPiAtCj4gLQl3ZWRnZV9v bl90aW1lb3V0KCZ3LCBpOTE1LCBIWikKPiAtCQlpOTE1X2dlbV93YWl0X2Zvcl9pZGxlKGk5MTUs IGZsYWdzKTsKPiAtCj4gLQlyZXR1cm4gaTkxNV90ZXJtaW5hbGx5X3dlZGdlZCgmaTkxNS0+Z3B1 X2Vycm9yKSA/IC1FSU8gOiAwOwo+IC19Cj4gLQo+ICBzdGF0aWMgdm9pZCBzcGlubmVyX2VuZChz dHJ1Y3Qgc3Bpbm5lciAqc3BpbikKPiAgewo+ICAJKnNwaW4tPmJhdGNoID0gTUlfQkFUQ0hfQlVG RkVSX0VORDsKPiBAQCAtMjk1LDcgKzI0MSw3IEBAIHN0YXRpYyBpbnQgbGl2ZV9zYW5pdHljaGVj ayh2b2lkICphcmcpCj4gIAkJfQo+ICAKPiAgCQlzcGlubmVyX2VuZCgmc3Bpbik7Cj4gLQkJaWYg KGZsdXNoX3Rlc3QoaTkxNSwgSTkxNV9XQUlUX0xPQ0tFRCkpIHsKPiArCQlpZiAoaWd0X2ZsdXNo X3Rlc3QoaTkxNSwgSTkxNV9XQUlUX0xPQ0tFRCkpIHsKPiAgCQkJZXJyID0gLUVJTzsKPiAgCQkJ Z290byBlcnJfY3R4Owo+ICAJCX0KPiBAQCAtMzA3LDcgKzI1Myw3IEBAIHN0YXRpYyBpbnQgbGl2 ZV9zYW5pdHljaGVjayh2b2lkICphcmcpCj4gIGVycl9zcGluOgo+ICAJc3Bpbm5lcl9maW5pKCZz cGluKTsKPiAgZXJyX3VubG9jazoKPiAtCWZsdXNoX3Rlc3QoaTkxNSwgSTkxNV9XQUlUX0xPQ0tF RCk7Cj4gKwlpZ3RfZmx1c2hfdGVzdChpOTE1LCBJOTE1X1dBSVRfTE9DS0VEKTsKPiAgCW11dGV4 X3VubG9jaygmaTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4gIAlyZXR1cm4gZXJyOwo+ICB9Cj4g QEAgLTM4MCw3ICszMjYsNyBAQCBzdGF0aWMgaW50IGxpdmVfcHJlZW1wdCh2b2lkICphcmcpCj4g IAo+ICAJCXNwaW5uZXJfZW5kKCZzcGluX2hpKTsKPiAgCQlzcGlubmVyX2VuZCgmc3Bpbl9sbyk7 Cj4gLQkJaWYgKGZsdXNoX3Rlc3QoaTkxNSwgSTkxNV9XQUlUX0xPQ0tFRCkpIHsKPiArCQlpZiAo aWd0X2ZsdXNoX3Rlc3QoaTkxNSwgSTkxNV9XQUlUX0xPQ0tFRCkpIHsKPiAgCQkJZXJyID0gLUVJ TzsKPiAgCQkJZ290byBlcnJfY3R4X2xvOwo+ICAJCX0KPiBAQCAtMzk2LDcgKzM0Miw3IEBAIHN0 YXRpYyBpbnQgbGl2ZV9wcmVlbXB0KHZvaWQgKmFyZykKPiAgZXJyX3NwaW5faGk6Cj4gIAlzcGlu bmVyX2ZpbmkoJnNwaW5faGkpOwo+ICBlcnJfdW5sb2NrOgo+IC0JZmx1c2hfdGVzdChpOTE1LCBJ OTE1X1dBSVRfTE9DS0VEKTsKPiArCWlndF9mbHVzaF90ZXN0KGk5MTUsIEk5MTVfV0FJVF9MT0NL RUQpOwo+ICAJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKPiAgCXJldHVy biBlcnI7Cj4gIH0KPiBAQCAtNDcwLDcgKzQxNiw3IEBAIHN0YXRpYyBpbnQgbGl2ZV9sYXRlX3By ZWVtcHQodm9pZCAqYXJnKQo+ICAKPiAgCQlzcGlubmVyX2VuZCgmc3Bpbl9oaSk7Cj4gIAkJc3Bp bm5lcl9lbmQoJnNwaW5fbG8pOwo+IC0JCWlmIChmbHVzaF90ZXN0KGk5MTUsIEk5MTVfV0FJVF9M T0NLRUQpKSB7Cj4gKwkJaWYgKGlndF9mbHVzaF90ZXN0KGk5MTUsIEk5MTVfV0FJVF9MT0NLRUQp KSB7Cj4gIAkJCWVyciA9IC1FSU87Cj4gIAkJCWdvdG8gZXJyX2N0eF9sbzsKPiAgCQl9Cj4gQEAg LTQ4Niw3ICs0MzIsNyBAQCBzdGF0aWMgaW50IGxpdmVfbGF0ZV9wcmVlbXB0KHZvaWQgKmFyZykK PiAgZXJyX3NwaW5faGk6Cj4gIAlzcGlubmVyX2ZpbmkoJnNwaW5faGkpOwo+ICBlcnJfdW5sb2Nr Ogo+IC0JZmx1c2hfdGVzdChpOTE1LCBJOTE1X1dBSVRfTE9DS0VEKTsKPiArCWlndF9mbHVzaF90 ZXN0KGk5MTUsIEk5MTVfV0FJVF9MT0NLRUQpOwo+ICAJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0u c3RydWN0X211dGV4KTsKPiAgCXJldHVybiBlcnI7Cj4gIAo+IC0tIAo+IDIuMTcuMAo+Cj4gX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZngg bWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=