From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH 1/3] drm/i915: Provide a timeout to i915_gem_wait_for_idle() Date: Mon, 09 Jul 2018 14:38:10 +0300 Message-ID: <87muv0tza5.fsf@gaia.fi.intel.com> References: <20180709104237.21880-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 mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7B22B6E2D2 for ; Mon, 9 Jul 2018 11:39:02 +0000 (UTC) In-Reply-To: <20180709104237.21880-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+IHdyaXRlczoKCj4gVXN1YWxs eSB3ZSBoYXZlIG5vIGlkZWEgYWJvdXQgdGhlIHVwcGVyIGJvdW5kIHdlIG5lZWQgdG8gd2FpdCB0 byBjYXRjaAo+IHVwIHdpdGggdXNlcnNwYWNlIHdoZW4gaWRsaW5nIHRoZSBkZXZpY2UsIGJ1dCBp biBhIGZldyBzaXR1YXRpb25zIHdlCj4ga25vdyB0aGUgc3lzdGVtIHdhcyBpZGxlIGJlZm9yZWhh bmQgYW5kIGNhbiBwcm92aWRlIGEgc2hvcnQgdGltZW91dCBpbgo+IG9yZGVyIHRvIHZlcnkgcXVp Y2tseSBjYXRjaCBhIGZhaWx1cmUsIGxvbmcgYmVmb3JlIGhhbmdjaGVjayBraWNrcyBpbi4KPgo+ IEluIHRoZSBmb2xsb3dpbmcgcGF0Y2hlcywgd2Ugd2lsbCB1c2UgdGhlIHRpbWVvdXQgdG8gY3Vy dGFpbiB0d28gb3Zlcmx5Cj4gbG9uZyB3YWl0cywgd2hlcmUgd2Uga25vdyB3ZSBjYW4gZXhwZWN0 IHRoZSBHUFUgdG8gY29tcGxldGUgd2l0aGluIGEKPiByZWFzb25hYmxlIHRpbWUgb3IgZGVjbGFy ZSBpdCBicm9rZW4uCj4KPiBJbiBwYXJ0aWN1bGFyLCB3aXRoIGEgYnJva2VuIEdQVSB3ZSBleHBl Y3QgaXQgdG8gZmFpbCBkdXJpbmcgdGhlIGluaXRpYWwKPiBHUFUgc2V0dXAgd2hlcmUgZG8gYSBj b3VwbGUgb2YgY29udGV4dCBzd2l0Y2hlcyB0byByZWNvcmQgdGhlIGRlZmF1bHRzLgo+IFRoaXMg aXMgYSB0YXNrIHRoYXQgdGFrZXMgYSBmZXcgbWlsbGlzZWNvbmRzIGV2ZW4gb24gdGhlIHNsb3dl c3Qgb2YKPiBkZXZpY2VzLCBidXQgd2UgbWF5IGhhdmUgdG8gd2FpdCA2MHMgZm9yIGhhbmdjaGVj ayB0byBnaXZlIGluIGFuZAo+IGRlY2xhcmUgdGhlIG1hY2hpbmUgaW5vcGVyYWJsZS4gSW4gdGhp cyBhIGNhc2Ugd2hlcmUgYW55IGdwdSBoYW5nIGlzCj4gdW5hY2NlcHRhYmxlLCBib3RoIGZyb20g YSB0aW1lbGluZXNzIGFuZCBwcmFjdGljYWwgc3RhbmRwb2ludC4KPgo+IFRoZSBvdGhlciBpbXBy b3ZlbWVudCBpcyB0aGF0IGluIHNlbGZ0ZXN0cywgd2UgZG8gbm90IG5lZWQgdG8gYXJtIGFuCj4g aW5kZXBlbmRlbnQgdGltZXIgdG8gaW5qZWN0IGEgd2VkZ2UsIGFzIHdlIGNhbiBqdXN0IGxpbWl0 IHRoZSB0aW1lb3V0IG9uCj4gdGhlIHdhaXQgZGlyZWN0bHkuCj4KPiBTaWduZWQtb2ZmLWJ5OiBD aHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiBDYzogSm9vbmFzIExhaHRp bmVuIDxqb29uYXMubGFodGluZW5AbGludXguaW50ZWwuY29tPgo+IENjOiBNaWthIEt1b3BwYWxh IDxtaWthLmt1b3BwYWxhQGxpbnV4LmludGVsLmNvbT4KPiBDYzogVHZydGtvIFVyc3VsaW4gPHR2 cnRrby51cnN1bGluQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kZWJ1Z2ZzLmMgICAgICAgICAgIHwgIDYgKystCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmggICAgICAgICAgICAgICB8ICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtLmMgICAgICAgICAgICAgICB8IDQzICsrKysrKysrKysrLS0tLS0tLS0KPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXZpY3QuYyAgICAgICAgIHwgIDMgKy0KPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgICAgICAgICAgIHwgIDIgKy0KPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc2hyaW5rZXIuYyAgICAgIHwgMTEgKysrLS0KPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMgICAgICAgICAgICAgIHwgIDQgKy0KPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMgICAgICAgICAgIHwgIDYgKystCj4gIC4u Li9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2NvbnRleHQuYyB8ICA0ICstCj4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X3JlcXVlc3QuYyB8ICA0ICstCj4gIC4u Li9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lndF9mbHVzaF90ZXN0LmMgICB8ICAyICstCj4gIDEx IGZpbGVzIGNoYW5nZWQsIDU2IGluc2VydGlvbnMoKyksIDMxIGRlbGV0aW9ucygtKQo+Cj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBpbmRleCA1NDRlNWU3ZjAxMWYuLjA5OWY5N2Vm MjMwMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gQEAgLTQxMDUsNyAr NDEwNSw4IEBAIGZhdWx0X2lycV9zZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4g IAo+ICAJZXJyID0gaTkxNV9nZW1fd2FpdF9mb3JfaWRsZShpOTE1LAo+ICAJCQkJICAgICBJOTE1 X1dBSVRfTE9DS0VEIHwKPiAtCQkJCSAgICAgSTkxNV9XQUlUX0lOVEVSUlVQVElCTEUpOwo+ICsJ CQkJICAgICBJOTE1X1dBSVRfSU5URVJSVVBUSUJMRSwKPiArCQkJCSAgICAgTUFYX1NDSEVEVUxF X1RJTUVPVVQpOwo+ICAJaWYgKGVycikKPiAgCQlnb3RvIGVycl91bmxvY2s7Cj4gIAo+IEBAIC00 MjEwLDcgKzQyMTEsOCBAQCBpOTE1X2Ryb3BfY2FjaGVzX3NldCh2b2lkICpkYXRhLCB1NjQgdmFs KQo+ICAJCWlmICh2YWwgJiBEUk9QX0FDVElWRSkKPiAgCQkJcmV0ID0gaTkxNV9nZW1fd2FpdF9m b3JfaWRsZShkZXZfcHJpdiwKPiAgCQkJCQkJICAgICBJOTE1X1dBSVRfSU5URVJSVVBUSUJMRSB8 Cj4gLQkJCQkJCSAgICAgSTkxNV9XQUlUX0xPQ0tFRCk7Cj4gKwkJCQkJCSAgICAgSTkxNV9XQUlU X0xPQ0tFRCwKPiArCQkJCQkJICAgICBNQVhfU0NIRURVTEVfVElNRU9VVCk7Cj4gIAo+ICAJCWlm ICh2YWwgJiBEUk9QX1JFVElSRSkKPiAgCQkJaTkxNV9yZXRpcmVfcmVxdWVzdHMoZGV2X3ByaXYp Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IDA5YWIxMjQ1ODI0NC4uYmVjMGEyNzk2 YzM3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gQEAgLTMxNTQsNyArMzE1NCw3IEBA IHZvaWQgaTkxNV9nZW1faW5pdF9zd2l6emxpbmcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KTsKPiAgdm9pZCBpOTE1X2dlbV9maW5pKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdik7Cj4gIHZvaWQgaTkxNV9nZW1fY2xlYW51cF9lbmdpbmVzKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdik7Cj4gIGludCBpOTE1X2dlbV93YWl0X2Zvcl9pZGxlKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAtCQkJICAgdW5zaWduZWQgaW50IGZsYWdz KTsKPiArCQkJICAgdW5zaWduZWQgaW50IGZsYWdzLCBsb25nIHRpbWVvdXQpOwo+ICBpbnQgX19t dXN0X2NoZWNrIGk5MTVfZ2VtX3N1c3BlbmQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KTsKPiAgdm9pZCBpOTE1X2dlbV9zdXNwZW5kX2xhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KTsKPiAgdm9pZCBpOTE1X2dlbV9yZXN1bWUoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBpbmRleCAxYTlkYWIz MDI0MzMuLjA5M2Q5OGVkNzc1NSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IEBAIC0y MjY3LDcgKzIyNjcsOSBAQCBzdGF0aWMgaW50IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfbW1hcF9v ZmZzZXQoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKPiAgCj4gIAkvKiBBdHRlbXB0 IHRvIHJlYXAgc29tZSBtbWFwIHNwYWNlIGZyb20gZGVhZCBvYmplY3RzICovCj4gIAlkbyB7Cj4g LQkJZXJyID0gaTkxNV9nZW1fd2FpdF9mb3JfaWRsZShkZXZfcHJpdiwgSTkxNV9XQUlUX0lOVEVS UlVQVElCTEUpOwo+ICsJCWVyciA9IGk5MTVfZ2VtX3dhaXRfZm9yX2lkbGUoZGV2X3ByaXYsCj4g KwkJCQkJICAgICBJOTE1X1dBSVRfSU5URVJSVVBUSUJMRSwKPiArCQkJCQkgICAgIE1BWF9TQ0hF RFVMRV9USU1FT1VUKTsKPiAgCQlpZiAoZXJyKQo+ICAJCQlicmVhazsKPiAgCj4gQEAgLTM3NDIs MTQgKzM3NDQsMTQgQEAgaTkxNV9nZW1fd2FpdF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpCj4gIAlyZXR1cm4gcmV0Owo+ICB9 Cj4gIAo+IC1zdGF0aWMgaW50IHdhaXRfZm9yX3RpbWVsaW5lKHN0cnVjdCBpOTE1X3RpbWVsaW5l ICp0bCwgdW5zaWduZWQgaW50IGZsYWdzKQo+ICtzdGF0aWMgbG9uZyB3YWl0X2Zvcl90aW1lbGlu ZShzdHJ1Y3QgaTkxNV90aW1lbGluZSAqdGwsCj4gKwkJCSAgICAgIHVuc2lnbmVkIGludCBmbGFn cywgbG9uZyB0aW1lb3V0KQo+ICB7Cj4gIAlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsKPiAtCWxv bmcgcmV0Owo+ICAKPiAgCXJxID0gaTkxNV9nZW1fYWN0aXZlX2dldF91bmxvY2tlZCgmdGwtPmxh c3RfcmVxdWVzdCk7Cj4gIAlpZiAoIXJxKQo+IC0JCXJldHVybiAwOwo+ICsJCXJldHVybiB0aW1l b3V0Owo+ICAKPiAgCS8qCj4gIAkgKiAiUmFjZS10by1pZGxlIi4KPiBAQCAtMzc2MywxMCArMzc2 NSwxMCBAQCBzdGF0aWMgaW50IHdhaXRfZm9yX3RpbWVsaW5lKHN0cnVjdCBpOTE1X3RpbWVsaW5l ICp0bCwgdW5zaWduZWQgaW50IGZsYWdzKQo+ICAJaWYgKGZsYWdzICYgSTkxNV9XQUlUX0ZPUl9J RExFX0JPT1NUKQo+ICAJCWdlbjZfcnBzX2Jvb3N0KHJxLCBOVUxMKTsKPiAgCj4gLQlyZXQgPSBp OTE1X3JlcXVlc3Rfd2FpdChycSwgZmxhZ3MsIE1BWF9TQ0hFRFVMRV9USU1FT1VUKTsKPiArCXRp bWVvdXQgPSBpOTE1X3JlcXVlc3Rfd2FpdChycSwgZmxhZ3MsIHRpbWVvdXQpOwo+ICAJaTkxNV9y ZXF1ZXN0X3B1dChycSk7Cj4gIAo+IC0JcmV0dXJuIHJldCA8IDAgPyByZXQgOiAwOwo+ICsJcmV0 dXJuIHRpbWVvdXQ7Cj4gIH0KPiAgCj4gIHN0YXRpYyBpbnQgd2FpdF9mb3JfZW5naW5lcyhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPiBAQCAtMzc4Miw3ICszNzg0LDggQEAgc3RhdGlj IGludCB3YWl0X2Zvcl9lbmdpbmVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+ICAJ cmV0dXJuIDA7Cj4gIH0KPiAgCj4gLWludCBpOTE1X2dlbV93YWl0X2Zvcl9pZGxlKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICppOTE1LCB1bnNpZ25lZCBpbnQgZmxhZ3MpCj4gK2ludCBpOTE1X2dl bV93YWl0X2Zvcl9pZGxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAo+ICsJCQkgICB1 bnNpZ25lZCBpbnQgZmxhZ3MsIGxvbmcgdGltZW91dCkKPiAgewo+ICAJR0VNX1RSQUNFKCJmbGFn cz0leCAoJXMpXG4iLAo+ICAJCSAgZmxhZ3MsIGZsYWdzICYgSTkxNV9XQUlUX0xPQ0tFRCA/ICJs b2NrZWQiIDogInVubG9ja2VkIik7CgpEaWQgeW91IG9taXQgZW5oYW5jaW5nIHRoZSB0cmFjZSBv biBwdXJwb3NlPwoKRXZlbnR1YWxseSBpOTE1X3JlcXVlc3Rfd2FpdCB3aWxsIGFzc2VydCBmb3Ig c2lsbHkgdGltZW91dCB2YWx1ZXMsIGJ1dApzaG91bGQgd2UgYWRkIGFzc2VydGlvbiBoZXJlIHRv byBhcyB3YWl0X2Zvcl90aW1lbGluZSB3aWxsCnJldHVybiB3aGF0IHdlIHB1dCwgZm9yIG5vbmFj dGl2ZSB0aW1lbGluZXM/Cgo+IEBAIC0zNzk4LDkgKzM4MDEsOSBAQCBpbnQgaTkxNV9nZW1fd2Fp dF9mb3JfaWRsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgdW5zaWduZWQgaW50IGZs YWdzKQo+ICAJCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwo+ ICAKPiAgCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHRsLCAmaTkxNS0+Z3QudGltZWxpbmVzLCBsaW5r KSB7Cj4gLQkJCWVyciA9IHdhaXRfZm9yX3RpbWVsaW5lKHRsLCBmbGFncyk7Cj4gLQkJCWlmIChl cnIpCj4gLQkJCQlyZXR1cm4gZXJyOwo+ICsJCQl0aW1lb3V0ID0gd2FpdF9mb3JfdGltZWxpbmUo dGwsIGZsYWdzLCB0aW1lb3V0KTsKPiArCQkJaWYgKHRpbWVvdXQgPCAwKQo+ICsJCQkJcmV0dXJu IHRpbWVvdXQ7Cj4gIAkJfQo+ICAKPiAgCQllcnIgPSB3YWl0X2Zvcl9lbmdpbmVzKGk5MTUpOwoK VG8gdHJ1ZWx5IHNlcnZlIHRoZSBjYWxsZXIsIHRoZSByZW1haW5pbmcgdGltZW91dCBjb3VsZCBi ZSBwYXNzZWQgdG8Kd2FpdF9mb3JfZW5naW5lcyB0b28sIGJ1dCB0aGF0IGNhbiBiZSBmb2xsb3d1 cC4KClNvIHRoZSBvbmx5IHJlYWwgdGhpbmcgaXMgdGhlIG1pc3NpbmcgdHJhY2UuCi1NaWthCgoK PiBAQCAtMzgxMiwxMiArMzgxNSwxMyBAQCBpbnQgaTkxNV9nZW1fd2FpdF9mb3JfaWRsZShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgdW5zaWduZWQgaW50IGZsYWdzKQo+ICAJfSBlbHNl IHsKPiAgCQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Cj4gIAkJZW51bSBpbnRlbF9l bmdpbmVfaWQgaWQ7Cj4gLQkJaW50IGVycjsKPiAgCj4gIAkJZm9yX2VhY2hfZW5naW5lKGVuZ2lu ZSwgaTkxNSwgaWQpIHsKPiAtCQkJZXJyID0gd2FpdF9mb3JfdGltZWxpbmUoJmVuZ2luZS0+dGlt ZWxpbmUsIGZsYWdzKTsKPiAtCQkJaWYgKGVycikKPiAtCQkJCXJldHVybiBlcnI7Cj4gKwkJCXN0 cnVjdCBpOTE1X3RpbWVsaW5lICp0bCA9ICZlbmdpbmUtPnRpbWVsaW5lOwo+ICsKPiArCQkJdGlt ZW91dCA9IHdhaXRfZm9yX3RpbWVsaW5lKHRsLCBmbGFncywgdGltZW91dCk7Cj4gKwkJCWlmICh0 aW1lb3V0IDwgMCkKPiArCQkJCXJldHVybiB0aW1lb3V0Owo+ICAJCX0KPiAgCX0KPiAgCj4gQEAg LTUwNTIsNyArNTA1Niw4IEBAIGludCBpOTE1X2dlbV9zdXNwZW5kKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKPiAgCQlyZXQgPSBpOTE1X2dlbV93YWl0X2Zvcl9pZGxlKGRldl9w cml2LAo+ICAJCQkJCSAgICAgSTkxNV9XQUlUX0lOVEVSUlVQVElCTEUgfAo+ICAJCQkJCSAgICAg STkxNV9XQUlUX0xPQ0tFRCB8Cj4gLQkJCQkJICAgICBJOTE1X1dBSVRfRk9SX0lETEVfQk9PU1Qp Owo+ICsJCQkJCSAgICAgSTkxNV9XQUlUX0ZPUl9JRExFX0JPT1NULAo+ICsJCQkJCSAgICAgTUFY X1NDSEVEVUxFX1RJTUVPVVQpOwo+ICAJCWlmIChyZXQgJiYgcmV0ICE9IC1FSU8pCj4gIAkJCWdv dG8gZXJyX3VubG9jazsKPiAgCj4gQEAgLTUzNTYsNyArNTM2MSw5IEBAIHN0YXRpYyBpbnQgX19p bnRlbF9lbmdpbmVzX3JlY29yZF9kZWZhdWx0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSkKPiAgCWlmIChlcnIpCj4gIAkJZ290byBlcnJfYWN0aXZlOwo+ICAKPiAtCWVyciA9IGk5MTVf Z2VtX3dhaXRfZm9yX2lkbGUoaTkxNSwgSTkxNV9XQUlUX0xPQ0tFRCk7Cj4gKwllcnIgPSBpOTE1 X2dlbV93YWl0X2Zvcl9pZGxlKGk5MTUsCj4gKwkJCQkgICAgIEk5MTVfV0FJVF9MT0NLRUQsCj4g KwkJCQkgICAgIE1BWF9TQ0hFRFVMRV9USU1FT1VUKTsKPiAgCWlmIChlcnIpCj4gIAkJZ290byBl cnJfYWN0aXZlOwo+ICAKPiBAQCAtNTQyMSw3ICs1NDI4LDkgQEAgc3RhdGljIGludCBfX2ludGVs X2VuZ2luZXNfcmVjb3JkX2RlZmF1bHRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+ ICAJaWYgKFdBUk5fT04oaTkxNV9nZW1fc3dpdGNoX3RvX2tlcm5lbF9jb250ZXh0KGk5MTUpKSkK PiAgCQlnb3RvIG91dF9jdHg7Cj4gIAo+IC0JaWYgKFdBUk5fT04oaTkxNV9nZW1fd2FpdF9mb3Jf aWRsZShpOTE1LCBJOTE1X1dBSVRfTE9DS0VEKSkpCj4gKwlpZiAoV0FSTl9PTihpOTE1X2dlbV93 YWl0X2Zvcl9pZGxlKGk5MTUsCj4gKwkJCQkJICAgSTkxNV9XQUlUX0xPQ0tFRCwKPiArCQkJCQkg ICBNQVhfU0NIRURVTEVfVElNRU9VVCkpKQo+ICAJCWdvdG8gb3V0X2N0eDsKPiAgCj4gIAlpOTE1 X2dlbV9jb250ZXh0c19sb3N0KGk5MTUpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9ldmljdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXZp Y3QuYwo+IGluZGV4IDU0ODE0YTE5NmVlNC4uMDJiODNhNWVkOTZjIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V2aWN0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9ldmljdC5jCj4gQEAgLTY5LDcgKzY5LDggQEAgc3RhdGljIGludCBn Z3R0X2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQo+ICAKPiAgCWVyciA9IGk5 MTVfZ2VtX3dhaXRfZm9yX2lkbGUoaTkxNSwKPiAgCQkJCSAgICAgSTkxNV9XQUlUX0lOVEVSUlVQ VElCTEUgfAo+IC0JCQkJICAgICBJOTE1X1dBSVRfTE9DS0VEKTsKPiArCQkJCSAgICAgSTkxNV9X QUlUX0xPQ0tFRCwKPiArCQkJCSAgICAgTUFYX1NDSEVEVUxFX1RJTUVPVVQpOwo+ICAJaWYgKGVy cikKPiAgCQlyZXR1cm4gZXJyOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fZ3R0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwo+ IGluZGV4IDJhZDMxOWUxN2UzOS4uYWJkODFmYjliMGI2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZ3R0LmMKPiBAQCAtMjc5Myw3ICsyNzkzLDcgQEAgdm9pZCBpOTE1X2dlbV9ndHRf ZmluaXNoX3BhZ2VzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gIAlzdHJ1Y3Qg aTkxNV9nZ3R0ICpnZ3R0ID0gJmRldl9wcml2LT5nZ3R0Owo+ICAKPiAgCWlmICh1bmxpa2VseShn Z3R0LT5kb19pZGxlX21hcHMpKSB7Cj4gLQkJaWYgKGk5MTVfZ2VtX3dhaXRfZm9yX2lkbGUoZGV2 X3ByaXYsIDApKSB7Cj4gKwkJaWYgKGk5MTVfZ2VtX3dhaXRfZm9yX2lkbGUoZGV2X3ByaXYsIDAs IE1BWF9TQ0hFRFVMRV9USU1FT1VUKSkgewo+ICAJCQlEUk1fRVJST1IoIkZhaWxlZCB0byB3YWl0 IGZvciBpZGxlOyBWVCdkIG1heSBoYW5nLlxuIik7Cj4gIAkJCS8qIFdhaXQgYSBiaXQsIGluIGhv cGVzIGl0IGF2b2lkcyB0aGUgaGFuZyAqLwo+ICAJCQl1ZGVsYXkoMTApOwo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zaHJpbmtlci5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fc2hyaW5rZXIuYwo+IGluZGV4IDU1ZTg0ZTcxZjUyNi4uYzYxZjVi ODBmZWUzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3Nocmlu a2VyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zaHJpbmtlci5jCj4g QEAgLTE3Miw3ICsxNzIsOSBAQCBpOTE1X2dlbV9zaHJpbmsoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmk5MTUsCj4gIAkgKiB3ZSB3aWxsIGZyZWUgYXMgbXVjaCBhcyB3ZSBjYW4gYW5kIGhvcGUg dG8gZ2V0IGEgc2Vjb25kIGNoYW5jZS4KPiAgCSAqLwo+ICAJaWYgKGZsYWdzICYgSTkxNV9TSFJJ TktfQUNUSVZFKQo+IC0JCWk5MTVfZ2VtX3dhaXRfZm9yX2lkbGUoaTkxNSwgSTkxNV9XQUlUX0xP Q0tFRCk7Cj4gKwkJaTkxNV9nZW1fd2FpdF9mb3JfaWRsZShpOTE1LAo+ICsJCQkJICAgICAgIEk5 MTVfV0FJVF9MT0NLRUQsCj4gKwkJCQkgICAgICAgTUFYX1NDSEVEVUxFX1RJTUVPVVQpOwo+ICAK PiAgCXRyYWNlX2k5MTVfZ2VtX3NocmluayhpOTE1LCB0YXJnZXQsIGZsYWdzKTsKPiAgCWk5MTVf cmV0aXJlX3JlcXVlc3RzKGk5MTUpOwo+IEBAIC0zOTIsNyArMzk0LDggQEAgc2hyaW5rZXJfbG9j a191bmludGVycnVwdGlibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIGJvb2wgKnVu bG9jaywKPiAgCXVuc2lnbmVkIGxvbmcgdGltZW91dCA9IGppZmZpZXMgKyBtc2Vjc190b19qaWZm aWVzX3RpbWVvdXQodGltZW91dF9tcyk7Cj4gIAo+ICAJZG8gewo+IC0JCWlmIChpOTE1X2dlbV93 YWl0X2Zvcl9pZGxlKGk5MTUsIDApID09IDAgJiYKPiArCQlpZiAoaTkxNV9nZW1fd2FpdF9mb3Jf aWRsZShpOTE1LAo+ICsJCQkJCSAgIDAsIE1BWF9TQ0hFRFVMRV9USU1FT1VUKSA9PSAwICYmCj4g IAkJICAgIHNocmlua2VyX2xvY2soaTkxNSwgdW5sb2NrKSkKPiAgCQkJYnJlYWs7Cj4gIAo+IEBA IC00NjYsNyArNDY5LDkgQEAgaTkxNV9nZW1fc2hyaW5rZXJfdm1hcChzdHJ1Y3Qgbm90aWZpZXJf YmxvY2sgKm5iLCB1bnNpZ25lZCBsb25nIGV2ZW50LCB2b2lkICpwdHIKPiAgCQlyZXR1cm4gTk9U SUZZX0RPTkU7Cj4gIAo+ICAJLyogRm9yY2UgZXZlcnl0aGluZyBvbnRvIHRoZSBpbmFjdGl2ZSBs aXN0cyAqLwo+IC0JcmV0ID0gaTkxNV9nZW1fd2FpdF9mb3JfaWRsZShpOTE1LCBJOTE1X1dBSVRf TE9DS0VEKTsKPiArCXJldCA9IGk5MTVfZ2VtX3dhaXRfZm9yX2lkbGUoaTkxNSwKPiArCQkJCSAg ICAgSTkxNV9XQUlUX0xPQ0tFRCwKPiArCQkJCSAgICAgTUFYX1NDSEVEVUxFX1RJTUVPVVQpOwo+ ICAJaWYgKHJldCkKPiAgCQlnb3RvIG91dDsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfcGVyZi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMK PiBpbmRleCA0NDc0MDdmZWUzYjguLjZiZjEwOTUyYzcyNCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X3BlcmYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcGVyZi5jCj4gQEAgLTE4MzYsNyArMTgzNiw5IEBAIHN0YXRpYyBpbnQgZ2VuOF9jb25maWd1 cmVfYWxsX2NvbnRleHRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCSAq IFNvIGZhciB0aGUgYmVzdCB3YXkgdG8gd29yayBhcm91bmQgdGhpcyBpc3N1ZSBzZWVtcyB0byBi ZSBkcmFpbmluZwo+ICAJICogdGhlIEdQVSBmcm9tIGFueSBzdWJtaXR0ZWQgd29yay4KPiAgCSAq Lwo+IC0JcmV0ID0gaTkxNV9nZW1fd2FpdF9mb3JfaWRsZShkZXZfcHJpdiwgd2FpdF9mbGFncyk7 Cj4gKwlyZXQgPSBpOTE1X2dlbV93YWl0X2Zvcl9pZGxlKGRldl9wcml2LAo+ICsJCQkJICAgICB3 YWl0X2ZsYWdzLAo+ICsJCQkJICAgICBNQVhfU0NIRURVTEVfVElNRU9VVCk7Cj4gIAlpZiAocmV0 KQo+ICAJCWdvdG8gb3V0Owo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9yZXF1ZXN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYwo+IGlu ZGV4IDMyNDgzNjlkYmNmYi4uNWMyYzkzY2JhYjEyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9yZXF1ZXN0LmMKPiBAQCAtMjA2LDcgKzIwNiw4IEBAIHN0YXRpYyBpbnQgcmVzZXRfYWxsX2ds b2JhbF9zZXFubyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwgdTMyIHNlcW5vKQo+ICAJ LyogQ2FyZWZ1bGx5IHJldGlyZSBhbGwgcmVxdWVzdHMgd2l0aG91dCB3cml0aW5nIHRvIHRoZSBy aW5ncyAqLwo+ICAJcmV0ID0gaTkxNV9nZW1fd2FpdF9mb3JfaWRsZShpOTE1LAo+ICAJCQkJICAg ICBJOTE1X1dBSVRfSU5URVJSVVBUSUJMRSB8Cj4gLQkJCQkgICAgIEk5MTVfV0FJVF9MT0NLRUQp Owo+ICsJCQkJICAgICBJOTE1X1dBSVRfTE9DS0VELAo+ICsJCQkJICAgICBNQVhfU0NIRURVTEVf VElNRU9VVCk7Cj4gIAlpZiAocmV0KQo+ICAJCXJldHVybiByZXQ7Cj4gIAo+IEBAIC03MzUsNyAr NzM2LDggQEAgaTkxNV9yZXF1ZXN0X2FsbG9jKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSwgc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCkKPiAgCQkvKiBSYXRlbGltaXQgb3Vyc2Vs dmVzIHRvIHByZXZlbnQgb29tIGZyb20gbWFsaWNpb3VzIGNsaWVudHMgKi8KPiAgCQlyZXQgPSBp OTE1X2dlbV93YWl0X2Zvcl9pZGxlKGk5MTUsCj4gIAkJCQkJICAgICBJOTE1X1dBSVRfTE9DS0VE IHwKPiAtCQkJCQkgICAgIEk5MTVfV0FJVF9JTlRFUlJVUFRJQkxFKTsKPiArCQkJCQkgICAgIEk5 MTVfV0FJVF9JTlRFUlJVUFRJQkxFLAo+ICsJCQkJCSAgICAgTUFYX1NDSEVEVUxFX1RJTUVPVVQp Owo+ICAJCWlmIChyZXQpCj4gIAkJCWdvdG8gZXJyX3VucmVzZXJ2ZTsKPiAgCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2dlbV9jb250ZXh0LmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fY29udGV4dC5jCj4gaW5kZXgg NWZiZTE1ZjRlZmZkLi5hYjI1OTAyNDIwMzMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2NvbnRleHQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2dlbV9jb250ZXh0LmMKPiBAQCAtNDc4LDcgKzQ3OCw5IEBA IHN0YXRpYyBpbnQgX19pZ3Rfc3dpdGNoX3RvX2tlcm5lbF9jb250ZXh0KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICppOTE1LAo+ICAJCX0KPiAgCX0KPiAgCj4gLQllcnIgPSBpOTE1X2dlbV93YWl0 X2Zvcl9pZGxlKGk5MTUsIEk5MTVfV0FJVF9MT0NLRUQpOwo+ICsJZXJyID0gaTkxNV9nZW1fd2Fp dF9mb3JfaWRsZShpOTE1LAo+ICsJCQkJICAgICBJOTE1X1dBSVRfTE9DS0VELAo+ICsJCQkJICAg ICBNQVhfU0NIRURVTEVfVElNRU9VVCk7Cj4gIAlpZiAoZXJyKQo+ICAJCXJldHVybiBlcnI7Cj4g IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9yZXF1 ZXN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9yZXF1ZXN0LmMKPiBp bmRleCA0Mzk5NWZjMzUzNGQuLmM0YWFjNjE0MWUwNCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9yZXF1ZXN0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9yZXF1ZXN0LmMKPiBAQCAtMjg2LDcgKzI4Niw5IEBAIHN0 YXRpYyBpbnQgYmVnaW5fbGl2ZV90ZXN0KHN0cnVjdCBsaXZlX3Rlc3QgKnQsCj4gIAl0LT5mdW5j ID0gZnVuYzsKPiAgCXQtPm5hbWUgPSBuYW1lOwo+ICAKPiAtCWVyciA9IGk5MTVfZ2VtX3dhaXRf Zm9yX2lkbGUoaTkxNSwgSTkxNV9XQUlUX0xPQ0tFRCk7Cj4gKwllcnIgPSBpOTE1X2dlbV93YWl0 X2Zvcl9pZGxlKGk5MTUsCj4gKwkJCQkgICAgIEk5MTVfV0FJVF9MT0NLRUQsCj4gKwkJCQkgICAg IE1BWF9TQ0hFRFVMRV9USU1FT1VUKTsKPiAgCWlmIChlcnIpIHsKPiAgCQlwcl9lcnIoIiVzKCVz KTogZmFpbGVkIHRvIGlkbGUgYmVmb3JlLCB3aXRoIGVycj0lZCEiLAo+ICAJCSAgICAgICBmdW5j LCBuYW1lLCBlcnIpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVz dHMvaWd0X2ZsdXNoX3Rlc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pZ3Rf Zmx1c2hfdGVzdC5jCj4gaW5kZXggMGQwNmY1NTkyNDNmLi4wOWFiMDM3Y2U4MDMgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lndF9mbHVzaF90ZXN0LmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaWd0X2ZsdXNoX3Rlc3QuYwo+IEBA IC02NCw3ICs2NCw3IEBAIGludCBpZ3RfZmx1c2hfdGVzdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqaTkxNSwgdW5zaWduZWQgaW50IGZsYWdzKQo+ICAJfQo+ICAKPiAgCXdlZGdlX29uX3RpbWVv dXQoJncsIGk5MTUsIEhaKQo+IC0JCWk5MTVfZ2VtX3dhaXRfZm9yX2lkbGUoaTkxNSwgZmxhZ3Mp Owo+ICsJCWk5MTVfZ2VtX3dhaXRfZm9yX2lkbGUoaTkxNSwgZmxhZ3MsIE1BWF9TQ0hFRFVMRV9U SU1FT1VUKTsKPiAgCj4gIAlyZXR1cm4gaTkxNV90ZXJtaW5hbGx5X3dlZGdlZCgmaTkxNS0+Z3B1 X2Vycm9yKSA/IC1FSU8gOiAwOwo+ICB9Cj4gLS0gCj4gMi4xOC4wCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=