From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH 03/26] drm/i915: Stop passing I915_WAIT_LOCKED to i915_request_wait() Date: Wed, 19 Jun 2019 14:44:10 +0300 Message-ID: <87k1dh7qb9.fsf@gaia.fi.intel.com> References: <20190618074153.16055-1-chris@chris-wilson.co.uk> <20190618074153.16055-3-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 147F16E34A for ; Wed, 19 Jun 2019 11:44:20 +0000 (UTC) In-Reply-To: <20190618074153.16055-3-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+IHdyaXRlczoKCj4gU2luY2Ug Y29tbWl0IGViOGQwZjVhZjRlYyAoImRybS9pOTE1OiBSZW1vdmUgR1BVIHJlc2V0IGRlcGVuZGVu Y2Ugb24KPiBzdHJ1Y3RfbXV0ZXgiKSwgdGhlIEk5MTVfV0FJVF9MT0NLRUQgZmxhZ3MgcGFzc2Vk IHRvIGk5MTVfcmVxdWVzdF93YWl0KCkKPiBoYXMgYmVlbiBkZWZ1bmN0LiBOb3cgZ28gYWhlYWQg YW5kIHJlbW92ZSBpdCBmcm9tIGFsbCBjYWxsZXJzLgo+Cj4gUmVmZXJlbmNlczogZWI4ZDBmNWFm NGVjICgiZHJtL2k5MTU6IFJlbW92ZSBHUFUgcmVzZXQgZGVwZW5kZW5jZSBvbiBzdHJ1Y3RfbXV0 ZXgiKQoKVGhpcyByZW1pbmRzIG1lIGFib3V0IHRoZSB3YXJtIGFuZCBzb290aGluZyBmZWVsaW5n IEkgZ290CnNlZWluZyBSRVNFVF9IQU5ET0ZGIHZhbmlzaGluZy4gSSBsaWtlIHNpbXBsZSB0aGlu Z3MuCgo+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNv LnVrPgoKQW5kIHRoZSBjb21tZW50IGFib3V0IGxvY2tlZCB3YXMgYW1lbmRlZCBhbHNvIHNvLAoK UmV2aWV3ZWQtYnk6IE1pa2EgS3VvcHBhbGEgPG1pa2Eua3VvcHBhbGFAbGludXguaW50ZWwuY29t PgoKPiAtLS0KPiAgLi4uL2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaTkxNV9nZW1fY29udGV4dC5j IHwgMTQgKysrLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3JpbmdidWZm ZXIuYyAgICB8ICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3dvcmthcm91 bmRzLmMgICB8ICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X2hhbmdj aGVjay5jICB8ICA5ICsrLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9s cmMuYyAgICAgICAgfCAyNCArKysrKystLS0tLS0tLS0KPiAgLi4uL2dwdS9kcm0vaTkxNS9ndC9z ZWxmdGVzdF93b3JrYXJvdW5kcy5jICAgIHwgIDYgKystLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2FjdGl2ZS5oICAgICAgICAgICAgfCAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3JlcXVlc3QuYyAgICAgICAgICAgfCAgNCAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV90cmFjZS5oICAgICAgICAgICAgIHwgIDMgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvc2VsZnRlc3RzL2k5MTVfcmVxdWVzdC5jIHwgMzAgKysrKysrKy0tLS0tLS0tLS0tLQo+ICAu Li4vZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X3RpbWVsaW5lLmMgICAgfCAgNiArKy0tCj4g IDExIGZpbGVzIGNoYW5nZWQsIDM2IGluc2VydGlvbnMoKyksIDY2IGRlbGV0aW9ucygtKQo+Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaTkxNV9nZW1f Y29udGV4dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL3NlbGZ0ZXN0cy9pOTE1X2dlbV9j b250ZXh0LmMKPiBpbmRleCAwM2FjNTAwM2FiZjEuLmVhYTJiMTY1NzRjNyAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX2NvbnRleHQuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaTkxNV9nZW1fY29udGV4 dC5jCj4gQEAgLTgzLDkgKzgzLDcgQEAgc3RhdGljIGludCBsaXZlX25vcF9zd2l0Y2godm9pZCAq YXJnKQo+ICAJCQl9Cj4gIAkJCWk5MTVfcmVxdWVzdF9hZGQocnEpOwo+ICAJCX0KPiAtCQlpZiAo aTkxNV9yZXF1ZXN0X3dhaXQocnEsCj4gLQkJCQkgICAgICBJOTE1X1dBSVRfTE9DS0VELAo+IC0J CQkJICAgICAgSFogLyA1KSA8IDApIHsKPiArCQlpZiAoaTkxNV9yZXF1ZXN0X3dhaXQocnEsIDAs IEhaIC8gNSkgPCAwKSB7Cj4gIAkJCXByX2VycigiRmFpbGVkIHRvIHBvcHVsYXRlZCAlZCBjb250 ZXh0c1xuIiwgbmN0eCk7Cj4gIAkJCWk5MTVfZ2VtX3NldF93ZWRnZWQoaTkxNSk7Cj4gIAkJCWVy ciA9IC1FSU87Cj4gQEAgLTEyOCw5ICsxMjYsNyBAQCBzdGF0aWMgaW50IGxpdmVfbm9wX3N3aXRj aCh2b2lkICphcmcpCj4gIAo+ICAJCQkJaTkxNV9yZXF1ZXN0X2FkZChycSk7Cj4gIAkJCX0KPiAt CQkJaWYgKGk5MTVfcmVxdWVzdF93YWl0KHJxLAo+IC0JCQkJCSAgICAgIEk5MTVfV0FJVF9MT0NL RUQsCj4gLQkJCQkJICAgICAgSFogLyA1KSA8IDApIHsKPiArCQkJaWYgKGk5MTVfcmVxdWVzdF93 YWl0KHJxLCAwLCBIWiAvIDUpIDwgMCkgewo+ICAJCQkJcHJfZXJyKCJTd2l0Y2hpbmcgYmV0d2Vl biAlbGQgY29udGV4dHMgdGltZWQgb3V0XG4iLAo+ICAJCQkJICAgICAgIHByaW1lKTsKPiAgCQkJ CWk5MTVfZ2VtX3NldF93ZWRnZWQoaTkxNSk7Cj4gQEAgLTg5Myw3ICs4ODksNyBAQCBfX3JlYWRf c2xpY2VfY291bnQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4gIAlpZiAoc3BpbikK PiAgCQlpZ3Rfc3Bpbm5lcl9lbmQoc3Bpbik7Cj4gIAo+IC0JcmV0ID0gaTkxNV9yZXF1ZXN0X3dh aXQocnEsIEk5MTVfV0FJVF9MT0NLRUQsIE1BWF9TQ0hFRFVMRV9USU1FT1VUKTsKPiArCXJldCA9 IGk5MTVfcmVxdWVzdF93YWl0KHJxLCAwLCBNQVhfU0NIRURVTEVfVElNRU9VVCk7Cj4gIAlpOTE1 X3JlcXVlc3RfcHV0KHJxKTsKPiAgCWlmIChyZXQgPCAwKQo+ICAJCXJldHVybiByZXQ7Cj4gQEAg LTk4MCw5ICs5NzYsNyBAQCBfX3NzZXVfZmluaXNoKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpp OTE1LAo+ICAJCWlndF9zcGlubmVyX2VuZChzcGluKTsKPiAgCj4gIAlpZiAoKGZsYWdzICYgVEVT VF9JRExFKSAmJiByZXQgPT0gMCkgewo+IC0JCXJldCA9IGk5MTVfZ2VtX3dhaXRfZm9yX2lkbGUo aTkxNSwKPiAtCQkJCQkgICAgIEk5MTVfV0FJVF9MT0NLRUQsCj4gLQkJCQkJICAgICBNQVhfU0NI RURVTEVfVElNRU9VVCk7Cj4gKwkJcmV0ID0gaTkxNV9nZW1fd2FpdF9mb3JfaWRsZShpOTE1LCAw LCBNQVhfU0NIRURVTEVfVElNRU9VVCk7Cj4gIAkJaWYgKHJldCkKPiAgCQkJcmV0dXJuIHJldDsK PiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3JpbmdidWZm ZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3JpbmdidWZmZXIuYwo+IGluZGV4 IGJkMzVhZDIwMjQ1OS4uYzYwMjNiYzk0NTJkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L2ludGVsX3JpbmdidWZmZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d0L2ludGVsX3JpbmdidWZmZXIuYwo+IEBAIC0xODE1LDcgKzE4MTUsNyBAQCBzdGF0aWMgbm9p bmxpbmUgaW50IHdhaXRfZm9yX3NwYWNlKHN0cnVjdCBpbnRlbF9yaW5nICpyaW5nLCB1bnNpZ25l ZCBpbnQgYnl0ZXMpCj4gIAkJcmV0dXJuIC1FTk9TUEM7Cj4gIAo+ICAJdGltZW91dCA9IGk5MTVf cmVxdWVzdF93YWl0KHRhcmdldCwKPiAtCQkJCSAgICBJOTE1X1dBSVRfSU5URVJSVVBUSUJMRSB8 IEk5MTVfV0FJVF9MT0NLRUQsCj4gKwkJCQkgICAgSTkxNV9XQUlUX0lOVEVSUlVQVElCTEUsCj4g IAkJCQkgICAgTUFYX1NDSEVEVUxFX1RJTUVPVVQpOwo+ICAJaWYgKHRpbWVvdXQgPCAwKQo+ICAJ CXJldHVybiB0aW1lb3V0Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9p bnRlbF93b3JrYXJvdW5kcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfd29ya2Fy b3VuZHMuYwo+IGluZGV4IDE2NWIwYTQ1ZTAwOS4uOTYyNGQ5ZTc3NmUzIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3dvcmthcm91bmRzLmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF93b3JrYXJvdW5kcy5jCj4gQEAgLTEzODQsNyArMTM4 NCw3IEBAIHN0YXRpYyBpbnQgZW5naW5lX3dhX2xpc3RfdmVyaWZ5KHN0cnVjdCBpbnRlbF9jb250 ZXh0ICpjZSwKPiAgCQlnb3RvIGVycl92bWE7Cj4gIAo+ICAJaTkxNV9yZXF1ZXN0X2FkZChycSk7 Cj4gLQlpZiAoaTkxNV9yZXF1ZXN0X3dhaXQocnEsIEk5MTVfV0FJVF9MT0NLRUQsIEhaIC8gNSkg PCAwKSB7Cj4gKwlpZiAoaTkxNV9yZXF1ZXN0X3dhaXQocnEsIDAsIEhaIC8gNSkgPCAwKSB7Cj4g IAkJZXJyID0gLUVUSU1FOwo+ICAJCWdvdG8gZXJyX3ZtYTsKPiAgCX0KPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfaGFuZ2NoZWNrLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9oYW5nY2hlY2suYwo+IGluZGV4IGIwYjI5OThlNTZiOC4u MWVlNGM5MjMwNDRmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0 ZXN0X2hhbmdjaGVjay5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3Rf aGFuZ2NoZWNrLmMKPiBAQCAtMzM5LDggKzMzOSw3IEBAIHN0YXRpYyBpbnQgaWd0X2hhbmdfc2Fu aXR5Y2hlY2sodm9pZCAqYXJnKQo+ICAKPiAgCQl0aW1lb3V0ID0gMDsKPiAgCQlpZ3Rfd2VkZ2Vf b25fdGltZW91dCgmdywgaTkxNSwgSFogLyAxMCAvKiAxMDBtcyB0aW1lb3V0Ki8pCj4gLQkJCXRp bWVvdXQgPSBpOTE1X3JlcXVlc3Rfd2FpdChycSwKPiAtCQkJCQkJICAgIEk5MTVfV0FJVF9MT0NL RUQsCj4gKwkJCXRpbWVvdXQgPSBpOTE1X3JlcXVlc3Rfd2FpdChycSwgMCwKPiAgCQkJCQkJICAg IE1BWF9TQ0hFRFVMRV9USU1FT1VUKTsKPiAgCQlpZiAoaTkxNV9yZXNldF9mYWlsZWQoaTkxNSkp Cj4gIAkJCXRpbWVvdXQgPSAtRUlPOwo+IEBAIC0xMDk4LDcgKzEwOTcsNyBAQCBzdGF0aWMgaW50 IGlndF9yZXNldF93YWl0KHZvaWQgKmFyZykKPiAgCj4gIAlyZXNldF9jb3VudCA9IGZha2VfaGFu Z2NoZWNrKGk5MTUsIEFMTF9FTkdJTkVTKTsKPiAgCj4gLQl0aW1lb3V0ID0gaTkxNV9yZXF1ZXN0 X3dhaXQocnEsIEk5MTVfV0FJVF9MT0NLRUQsIDEwKTsKPiArCXRpbWVvdXQgPSBpOTE1X3JlcXVl c3Rfd2FpdChycSwgMCwgMTApOwo+ICAJaWYgKHRpbWVvdXQgPCAwKSB7Cj4gIAkJcHJfZXJyKCJp OTE1X3JlcXVlc3Rfd2FpdCBmYWlsZWQgb24gYSBzdHVjayByZXF1ZXN0OiBlcnI9JWxkXG4iLAo+ ICAJCSAgICAgICB0aW1lb3V0KTsKPiBAQCAtMTY2Niw5ICsxNjY1LDcgQEAgc3RhdGljIGludCBp Z3RfYXRvbWljX3Jlc2V0X2VuZ2luZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCj4g IAkJc3RydWN0IGlndF93ZWRnZV9tZSB3Owo+ICAKPiAgCQlpZ3Rfd2VkZ2Vfb25fdGltZW91dCgm dywgaTkxNSwgSFogLyAyMCAvKiA1MG1zIHRpbWVvdXQqLykKPiAtCQkJaTkxNV9yZXF1ZXN0X3dh aXQocnEsCj4gLQkJCQkJICBJOTE1X1dBSVRfTE9DS0VELAo+IC0JCQkJCSAgTUFYX1NDSEVEVUxF X1RJTUVPVVQpOwo+ICsJCQlpOTE1X3JlcXVlc3Rfd2FpdChycSwgMCwgTUFYX1NDSEVEVUxFX1RJ TUVPVVQpOwo+ICAJCWlmIChpOTE1X3Jlc2V0X2ZhaWxlZChpOTE1KSkKPiAgCQkJZXJyID0gLUVJ TzsKPiAgCX0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3Rf bHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9scmMuYwo+IGluZGV4IGQ4 NGQzMWUzZGExOS4uNDAxZThiNTM5Mjk3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L3NlbGZ0ZXN0X2xyYy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2Vs ZnRlc3RfbHJjLmMKPiBAQCAtMTkyLDcgKzE5Miw3IEBAIHN0YXRpYyBpbnQgbGl2ZV9idXN5d2Fp dF9wcmVlbXB0KHZvaWQgKmFyZykKPiAgCQl9Cj4gIAo+ICAJCS8qIExvdyBwcmlvcml0eSByZXF1 ZXN0IHNob3VsZCBiZSBidXN5d2FpdGluZyBub3cgKi8KPiAtCQlpZiAoaTkxNV9yZXF1ZXN0X3dh aXQobG8sIEk5MTVfV0FJVF9MT0NLRUQsIDEpICE9IC1FVElNRSkgewo+ICsJCWlmIChpOTE1X3Jl cXVlc3Rfd2FpdChsbywgMCwgMSkgIT0gLUVUSU1FKSB7Cj4gIAkJCXByX2VycigiJXM6IEJ1c3l3 YWl0aW5nIHJlcXVlc3QgZGlkIG5vdCFcbiIsCj4gIAkJCSAgICAgICBlbmdpbmUtPm5hbWUpOwo+ ICAJCQllcnIgPSAtRUlPOwo+IEBAIC0yMjAsNyArMjIwLDcgQEAgc3RhdGljIGludCBsaXZlX2J1 c3l3YWl0X3ByZWVtcHQodm9pZCAqYXJnKQo+ICAJCWludGVsX3JpbmdfYWR2YW5jZShoaSwgY3Mp Owo+ICAJCWk5MTVfcmVxdWVzdF9hZGQoaGkpOwo+ICAKPiAtCQlpZiAoaTkxNV9yZXF1ZXN0X3dh aXQobG8sIEk5MTVfV0FJVF9MT0NLRUQsIEhaIC8gNSkgPCAwKSB7Cj4gKwkJaWYgKGk5MTVfcmVx dWVzdF93YWl0KGxvLCAwLCBIWiAvIDUpIDwgMCkgewo+ICAJCQlzdHJ1Y3QgZHJtX3ByaW50ZXIg cCA9IGRybV9pbmZvX3ByaW50ZXIoaTkxNS0+ZHJtLmRldik7Cj4gIAo+ICAJCQlwcl9lcnIoIiVz OiBGYWlsZWQgdG8gcHJlZW1wdCBzZW1hcGhvcmUgYnVzeXdhaXQhXG4iLAo+IEBAIC03MzksNyAr NzM5LDYgQEAgc3RhdGljIGludCBsaXZlX3N1cHByZXNzX3dhaXRfcHJlZW1wdCh2b2lkICphcmcp Cj4gIAkJCUdFTV9CVUdfT04oIWk5MTVfcmVxdWVzdF9zdGFydGVkKHJxWzBdKSk7Cj4gIAo+ICAJ CQlpZiAoaTkxNV9yZXF1ZXN0X3dhaXQocnFbZGVwdGhdLAo+IC0JCQkJCSAgICAgIEk5MTVfV0FJ VF9MT0NLRUQgfAo+ICAJCQkJCSAgICAgIEk5MTVfV0FJVF9QUklPUklUWSwKPiAgCQkJCQkgICAg ICAxKSAhPSAtRVRJTUUpIHsKPiAgCQkJCXByX2VycigiJXM6IFdhaXRlciBkZXB0aDolZCBjb21w bGV0ZWQhXG4iLAo+IEBAIC04NDEsNyArODQwLDcgQEAgc3RhdGljIGludCBsaXZlX2NoYWluX3By ZWVtcHQodm9pZCAqYXJnKQo+ICAJCQkgX19mdW5jX18sIGVuZ2luZS0+bmFtZSwgcmluZ19zaXpl KTsKPiAgCj4gIAkJaWd0X3NwaW5uZXJfZW5kKCZsby5zcGluKTsKPiAtCQlpZiAoaTkxNV9yZXF1 ZXN0X3dhaXQocnEsIEk5MTVfV0FJVF9MT0NLRUQsIEhaIC8gMikgPCAwKSB7Cj4gKwkJaWYgKGk5 MTVfcmVxdWVzdF93YWl0KHJxLCAwLCBIWiAvIDIpIDwgMCkgewo+ICAJCQlwcl9lcnIoIlRpbWVk IG91dCB3YWl0aW5nIHRvIGZsdXNoICVzXG4iLCBlbmdpbmUtPm5hbWUpOwo+ICAJCQlnb3RvIGVy cl93ZWRnZWQ7Cj4gIAkJfQo+IEBAIC04ODIsNyArODgxLDcgQEAgc3RhdGljIGludCBsaXZlX2No YWluX3ByZWVtcHQodm9pZCAqYXJnKQo+ICAJCQllbmdpbmUtPnNjaGVkdWxlKHJxLCAmYXR0cik7 Cj4gIAo+ICAJCQlpZ3Rfc3Bpbm5lcl9lbmQoJmhpLnNwaW4pOwo+IC0JCQlpZiAoaTkxNV9yZXF1 ZXN0X3dhaXQocnEsIEk5MTVfV0FJVF9MT0NLRUQsIEhaIC8gNSkgPCAwKSB7Cj4gKwkJCWlmIChp OTE1X3JlcXVlc3Rfd2FpdChycSwgMCwgSFogLyA1KSA8IDApIHsKPiAgCQkJCXN0cnVjdCBkcm1f cHJpbnRlciBwID0KPiAgCQkJCQlkcm1faW5mb19wcmludGVyKGk5MTUtPmRybS5kZXYpOwo+ICAK PiBAQCAtODk4LDcgKzg5Nyw3IEBAIHN0YXRpYyBpbnQgbGl2ZV9jaGFpbl9wcmVlbXB0KHZvaWQg KmFyZykKPiAgCQkJaWYgKElTX0VSUihycSkpCj4gIAkJCQlnb3RvIGVycl93ZWRnZWQ7Cj4gIAkJ CWk5MTVfcmVxdWVzdF9hZGQocnEpOwo+IC0JCQlpZiAoaTkxNV9yZXF1ZXN0X3dhaXQocnEsIEk5 MTVfV0FJVF9MT0NLRUQsIEhaIC8gNSkgPCAwKSB7Cj4gKwkJCWlmIChpOTE1X3JlcXVlc3Rfd2Fp dChycSwgMCwgSFogLyA1KSA8IDApIHsKPiAgCQkJCXN0cnVjdCBkcm1fcHJpbnRlciBwID0KPiAg CQkJCQlkcm1faW5mb19wcmludGVyKGk5MTUtPmRybS5kZXYpOwo+ICAKPiBAQCAtMTM5Niw5ICsx Mzk1LDcgQEAgc3RhdGljIGludCBub3BfdmlydHVhbF9lbmdpbmUoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmk5MTUsCj4gIAkJfQo+ICAKPiAgCQlmb3IgKG5jID0gMDsgbmMgPCBuY3R4OyBuYysr KSB7Cj4gLQkJCWlmIChpOTE1X3JlcXVlc3Rfd2FpdChyZXF1ZXN0W25jXSwKPiAtCQkJCQkgICAg ICBJOTE1X1dBSVRfTE9DS0VELAo+IC0JCQkJCSAgICAgIEhaIC8gMTApIDwgMCkgewo+ICsJCQlp ZiAoaTkxNV9yZXF1ZXN0X3dhaXQocmVxdWVzdFtuY10sIDAsIEhaIC8gMTApIDwgMCkgewo+ICAJ CQkJcHJfZXJyKCIlcyglcyk6IHdhaXQgZm9yICVsbHg6JWxsZCB0aW1lZCBvdXRcbiIsCj4gIAkJ CQkgICAgICAgX19mdW5jX18sIHZlWzBdLT5lbmdpbmUtPm5hbWUsCj4gIAkJCQkgICAgICAgcmVx dWVzdFtuY10tPmZlbmNlLmNvbnRleHQsCj4gQEAgLTE1NDUsNyArMTU0Miw3IEBAIHN0YXRpYyBp bnQgbWFza192aXJ0dWFsX2VuZ2luZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKPiAg CX0KPiAgCj4gIAlmb3IgKG4gPSAwOyBuIDwgbnNpYmxpbmc7IG4rKykgewo+IC0JCWlmIChpOTE1 X3JlcXVlc3Rfd2FpdChyZXF1ZXN0W25dLCBJOTE1X1dBSVRfTE9DS0VELCBIWiAvIDEwKSA8IDAp IHsKPiArCQlpZiAoaTkxNV9yZXF1ZXN0X3dhaXQocmVxdWVzdFtuXSwgMCwgSFogLyAxMCkgPCAw KSB7Cj4gIAkJCXByX2VycigiJXMoJXMpOiB3YWl0IGZvciAlbGx4OiVsbGQgdGltZWQgb3V0XG4i LAo+ICAJCQkgICAgICAgX19mdW5jX18sIHZlLT5lbmdpbmUtPm5hbWUsCj4gIAkJCSAgICAgICBy ZXF1ZXN0W25dLT5mZW5jZS5jb250ZXh0LAo+IEBAIC0xNzIwLDkgKzE3MTcsNyBAQCBzdGF0aWMg aW50IGJvbmRfdmlydHVhbF9lbmdpbmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4g IAkJfQo+ICAJCW9uc3RhY2tfZmVuY2VfZmluaSgmZmVuY2UpOwo+ICAKPiAtCQlpZiAoaTkxNV9y ZXF1ZXN0X3dhaXQocnFbMF0sCj4gLQkJCQkgICAgICBJOTE1X1dBSVRfTE9DS0VELAo+IC0JCQkJ ICAgICAgSFogLyAxMCkgPCAwKSB7Cj4gKwkJaWYgKGk5MTVfcmVxdWVzdF93YWl0KHJxWzBdLCAw LCBIWiAvIDEwKSA8IDApIHsKPiAgCQkJcHJfZXJyKCJNYXN0ZXIgcmVxdWVzdCBkaWQgbm90IGV4 ZWN1dGUgKG9uICVzKSFcbiIsCj4gIAkJCSAgICAgICBycVswXS0+ZW5naW5lLT5uYW1lKTsKPiAg CQkJZXJyID0gLUVJTzsKPiBAQCAtMTczMCw4ICsxNzI1LDcgQEAgc3RhdGljIGludCBib25kX3Zp cnR1YWxfZW5naW5lKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAo+ICAJCX0KPiAgCj4g IAkJZm9yIChuID0gMDsgbiA8IG5zaWJsaW5nOyBuKyspIHsKPiAtCQkJaWYgKGk5MTVfcmVxdWVz dF93YWl0KHJxW24gKyAxXSwKPiAtCQkJCQkgICAgICBJOTE1X1dBSVRfTE9DS0VELAo+ICsJCQlp ZiAoaTkxNV9yZXF1ZXN0X3dhaXQocnFbbiArIDFdLCAwLAo+ICAJCQkJCSAgICAgIE1BWF9TQ0hF RFVMRV9USU1FT1VUKSA8IDApIHsKPiAgCQkJCWVyciA9IC1FSU87Cj4gIAkJCQlnb3RvIG91dDsK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3Rfd29ya2Fyb3Vu ZHMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X3dvcmthcm91bmRzLmMKPiBp bmRleCA5MTQ0OWQ1MTU3ZjYuLjg3NDI2ZjkxODNjZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC9zZWxmdGVzdF93b3JrYXJvdW5kcy5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3Qvc2VsZnRlc3Rfd29ya2Fyb3VuZHMuYwo+IEBAIC01NDEsNyArNTQxLDcgQEAg c3RhdGljIGludCBjaGVja19kaXJ0eV93aGl0ZWxpc3Qoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQg KmN0eCwKPiAgCQlpZiAoZXJyKQo+ICAJCQlnb3RvIG91dF9iYXRjaDsKPiAgCj4gLQkJaWYgKGk5 MTVfcmVxdWVzdF93YWl0KHJxLCBJOTE1X1dBSVRfTE9DS0VELCBIWiAvIDUpIDwgMCkgewo+ICsJ CWlmIChpOTE1X3JlcXVlc3Rfd2FpdChycSwgMCwgSFogLyA1KSA8IDApIHsKPiAgCQkJcHJfZXJy KCIlczogRnV0emluZyAleCB0aW1lZG91dDsgY2FuY2VsbGluZyB0ZXN0XG4iLAo+ICAJCQkgICAg ICAgZW5naW5lLT5uYW1lLCByZWcpOwo+ICAJCQlpOTE1X2dlbV9zZXRfd2VkZ2VkKGN0eC0+aTkx NSk7Cj4gQEAgLTczOSw3ICs3MzksNyBAQCBzdGF0aWMgaW50IHJlYWRfd2hpdGVsaXN0ZWRfcmVn aXN0ZXJzKHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCj4gIGVycl9yZXE6Cj4gIAlpOTE1 X3JlcXVlc3RfYWRkKHJxKTsKPiAgCj4gLQlpZiAoaTkxNV9yZXF1ZXN0X3dhaXQocnEsIEk5MTVf V0FJVF9MT0NLRUQsIEhaIC8gNSkgPCAwKQo+ICsJaWYgKGk5MTVfcmVxdWVzdF93YWl0KHJxLCAw LCBIWiAvIDUpIDwgMCkKPiAgCQllcnIgPSAtRUlPOwo+ICAKPiAgCXJldHVybiBlcnI7Cj4gQEAg LTc5MCw3ICs3OTAsNyBAQCBzdGF0aWMgaW50IHNjcnViX3doaXRlbGlzdGVkX3JlZ2lzdGVycyhz dHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAo+ICAKPiAgZXJyX3JlcXVlc3Q6Cj4gIAlpOTE1 X3JlcXVlc3RfYWRkKHJxKTsKPiAtCWlmIChpOTE1X3JlcXVlc3Rfd2FpdChycSwgSTkxNV9XQUlU X0xPQ0tFRCwgSFogLyA1KSA8IDApCj4gKwlpZiAoaTkxNV9yZXF1ZXN0X3dhaXQocnEsIDAsIEha IC8gNSkgPCAwKQo+ICAJCWVyciA9IC1FSU87Cj4gIAo+ICBlcnJfdW5waW46Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfYWN0aXZlLmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2FjdGl2ZS5oCj4gaW5kZXggZDU1ZDM3NjczOTQ0Li5jMTRlZWJmNmQwNzQgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9hY3RpdmUuaAo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfYWN0aXZlLmgKPiBAQCAtMzMwLDcgKzMzMCw3IEBAIGk5 MTVfYWN0aXZlX3JlcXVlc3RfcmV0aXJlKHN0cnVjdCBpOTE1X2FjdGl2ZV9yZXF1ZXN0ICphY3Rp dmUsCj4gIAkJcmV0dXJuIDA7Cj4gIAo+ICAJcmV0ID0gaTkxNV9yZXF1ZXN0X3dhaXQocmVxdWVz dCwKPiAtCQkJCUk5MTVfV0FJVF9JTlRFUlJVUFRJQkxFIHwgSTkxNV9XQUlUX0xPQ0tFRCwKPiAr CQkJCUk5MTVfV0FJVF9JTlRFUlJVUFRJQkxFLAo+ICAJCQkJTUFYX1NDSEVEVUxFX1RJTUVPVVQp Owo+ICAJaWYgKHJldCA8IDApCj4gIAkJcmV0dXJuIHJldDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3JlcXVlc3QuYwo+IGluZGV4IDk4MTk0ODNkMWI1ZC4uZDdmZDc3ZThhNzg5IDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMKPiBAQCAtMTM2MCwxMCArMTM2MCw2IEBAIHN0YXRp YyB2b2lkIHJlcXVlc3Rfd2FpdF93YWtlKHN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlLCBzdHJ1Y3Qg ZG1hX2ZlbmNlX2NiICpjYikKPiAgICogbWF4aW11bSBvZiBAdGltZW91dCBqaWZmaWVzICh3aXRo IE1BWF9TQ0hFRFVMRV9USU1FT1VUIGltcGx5aW5nIGFuCj4gICAqIHVuYm91bmRlZCB3YWl0KS4K PiAgICoKPiAtICogSWYgdGhlIGNhbGxlciBob2xkcyB0aGUgc3RydWN0X211dGV4LCB0aGUgY2Fs bGVyIG11c3QgcGFzcyBJOTE1X1dBSVRfTE9DS0VECj4gLSAqIGluIHZpYSB0aGUgZmxhZ3MsIGFu ZCB2aWNlIHZlcnNhIGlmIHRoZSBzdHJ1Y3RfbXV0ZXggaXMgbm90IGhlbGQsIHRoZSBjYWxsZXIK PiAtICogbXVzdCBub3Qgc3BlY2lmeSB0aGF0IHRoZSB3YWl0IGlzIGxvY2tlZC4KPiAtICoKPiAg ICogUmV0dXJucyB0aGUgcmVtYWluaW5nIHRpbWUgKGluIGppZmZpZXMpIGlmIHRoZSByZXF1ZXN0 IGNvbXBsZXRlZCwgd2hpY2ggbWF5Cj4gICAqIGJlIHplcm8gb3IgLUVUSU1FIGlmIHRoZSByZXF1 ZXN0IGlzIHVuZmluaXNoZWQgYWZ0ZXIgdGhlIHRpbWVvdXQgZXhwaXJlcy4KPiAgICogTWF5IHJl dHVybiAtRUlOVFIgaXMgY2FsbGVkIHdpdGggSTkxNV9XQUlUX0lOVEVSUlVQVElCTEUgYW5kIGEg c2lnbmFsIGlzCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdHJhY2Uu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdHJhY2UuaAo+IGluZGV4IDVjOGNmYWE3MGQ3 Mi4uZjRjZTY0M2IzYmMzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf dHJhY2UuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdHJhY2UuaAo+IEBAIC04 NjMsMTAgKzg2Myw5IEBAIFRSQUNFX0VWRU5UKGk5MTVfcmVxdWVzdF93YWl0X2JlZ2luLAo+ICAJ CQkgICBfX2VudHJ5LT5mbGFncyA9IGZsYWdzOwo+ICAJCQkgICApLAo+ICAKPiAtCSAgICBUUF9w cmludGsoImRldj0ldSwgZW5naW5lPSV1OiV1LCBod19pZD0ldSwgY3R4PSVsbHUsIHNlcW5vPSV1 LCBibG9ja2luZz0ldSwgZmxhZ3M9MHgleCIsCj4gKwkgICAgVFBfcHJpbnRrKCJkZXY9JXUsIGVu Z2luZT0ldToldSwgaHdfaWQ9JXUsIGN0eD0lbGx1LCBzZXFubz0ldSwgZmxhZ3M9MHgleCIsCj4g IAkJICAgICAgX19lbnRyeS0+ZGV2LCBfX2VudHJ5LT5jbGFzcywgX19lbnRyeS0+aW5zdGFuY2Us Cj4gIAkJICAgICAgX19lbnRyeS0+aHdfaWQsIF9fZW50cnktPmN0eCwgX19lbnRyeS0+c2Vxbm8s Cj4gLQkJICAgICAgISEoX19lbnRyeS0+ZmxhZ3MgJiBJOTE1X1dBSVRfTE9DS0VEKSwKPiAgCQkg ICAgICBfX2VudHJ5LT5mbGFncykKPiAgKTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X3JlcXVlc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L3NlbGZ0ZXN0cy9pOTE1X3JlcXVlc3QuYwo+IGluZGV4IDNkZTI0ZjNkNGVkNS4uMjk4YmI3MTE2 YzUxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X3Jl cXVlc3QuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X3JlcXVl c3QuYwo+IEBAIC03NCwxMiArNzQsMTIgQEAgc3RhdGljIGludCBpZ3Rfd2FpdF9yZXF1ZXN0KHZv aWQgKmFyZykKPiAgCQlnb3RvIG91dF91bmxvY2s7Cj4gIAl9Cj4gIAo+IC0JaWYgKGk5MTVfcmVx dWVzdF93YWl0KHJlcXVlc3QsIEk5MTVfV0FJVF9MT0NLRUQsIDApICE9IC1FVElNRSkgewo+ICsJ aWYgKGk5MTVfcmVxdWVzdF93YWl0KHJlcXVlc3QsIDAsIDApICE9IC1FVElNRSkgewo+ICAJCXBy X2VycigicmVxdWVzdCB3YWl0IChidXN5IHF1ZXJ5KSBzdWNjZWVkZWQgKGV4cGVjdGVkIHRpbWVv dXQgYmVmb3JlIHN1Ym1pdCEpXG4iKTsKPiAgCQlnb3RvIG91dF91bmxvY2s7Cj4gIAl9Cj4gIAo+ IC0JaWYgKGk5MTVfcmVxdWVzdF93YWl0KHJlcXVlc3QsIEk5MTVfV0FJVF9MT0NLRUQsIFQpICE9 IC1FVElNRSkgewo+ICsJaWYgKGk5MTVfcmVxdWVzdF93YWl0KHJlcXVlc3QsIDAsIFQpICE9IC1F VElNRSkgewo+ICAJCXByX2VycigicmVxdWVzdCB3YWl0IHN1Y2NlZWRlZCAoZXhwZWN0ZWQgdGlt ZW91dCBiZWZvcmUgc3VibWl0ISlcbiIpOwo+ICAJCWdvdG8gb3V0X3VubG9jazsKPiAgCX0KPiBA QCAtOTEsNyArOTEsNyBAQCBzdGF0aWMgaW50IGlndF93YWl0X3JlcXVlc3Qodm9pZCAqYXJnKQo+ ICAKPiAgCWk5MTVfcmVxdWVzdF9hZGQocmVxdWVzdCk7Cj4gIAo+IC0JaWYgKGk5MTVfcmVxdWVz dF93YWl0KHJlcXVlc3QsIEk5MTVfV0FJVF9MT0NLRUQsIDApICE9IC1FVElNRSkgewo+ICsJaWYg KGk5MTVfcmVxdWVzdF93YWl0KHJlcXVlc3QsIDAsIDApICE9IC1FVElNRSkgewo+ICAJCXByX2Vy cigicmVxdWVzdCB3YWl0IChidXN5IHF1ZXJ5KSBzdWNjZWVkZWQgKGV4cGVjdGVkIHRpbWVvdXQg YWZ0ZXIgc3VibWl0ISlcbiIpOwo+ICAJCWdvdG8gb3V0X3VubG9jazsKPiAgCX0KPiBAQCAtMTAx LDEyICsxMDEsMTIgQEAgc3RhdGljIGludCBpZ3Rfd2FpdF9yZXF1ZXN0KHZvaWQgKmFyZykKPiAg CQlnb3RvIG91dF91bmxvY2s7Cj4gIAl9Cj4gIAo+IC0JaWYgKGk5MTVfcmVxdWVzdF93YWl0KHJl cXVlc3QsIEk5MTVfV0FJVF9MT0NLRUQsIFQgLyAyKSAhPSAtRVRJTUUpIHsKPiArCWlmIChpOTE1 X3JlcXVlc3Rfd2FpdChyZXF1ZXN0LCAwLCBUIC8gMikgIT0gLUVUSU1FKSB7Cj4gIAkJcHJfZXJy KCJyZXF1ZXN0IHdhaXQgc3VjY2VlZGVkIChleHBlY3RlZCB0aW1lb3V0ISlcbiIpOwo+ICAJCWdv dG8gb3V0X3VubG9jazsKPiAgCX0KPiAgCj4gLQlpZiAoaTkxNV9yZXF1ZXN0X3dhaXQocmVxdWVz dCwgSTkxNV9XQUlUX0xPQ0tFRCwgVCkgPT0gLUVUSU1FKSB7Cj4gKwlpZiAoaTkxNV9yZXF1ZXN0 X3dhaXQocmVxdWVzdCwgMCwgVCkgPT0gLUVUSU1FKSB7Cj4gIAkJcHJfZXJyKCJyZXF1ZXN0IHdh aXQgdGltZWQgb3V0IVxuIik7Cj4gIAkJZ290byBvdXRfdW5sb2NrOwo+ICAJfQo+IEBAIC0xMTYs NyArMTE2LDcgQEAgc3RhdGljIGludCBpZ3Rfd2FpdF9yZXF1ZXN0KHZvaWQgKmFyZykKPiAgCQln b3RvIG91dF91bmxvY2s7Cj4gIAl9Cj4gIAo+IC0JaWYgKGk5MTVfcmVxdWVzdF93YWl0KHJlcXVl c3QsIEk5MTVfV0FJVF9MT0NLRUQsIFQpID09IC1FVElNRSkgewo+ICsJaWYgKGk5MTVfcmVxdWVz dF93YWl0KHJlcXVlc3QsIDAsIFQpID09IC1FVElNRSkgewo+ICAJCXByX2VycigicmVxdWVzdCB3 YWl0IHRpbWVkIG91dCB3aGVuIGFscmVhZHkgY29tcGxldGUhXG4iKTsKPiAgCQlnb3RvIG91dF91 bmxvY2s7Cj4gIAl9Cj4gQEAgLTU3NCw5ICs1NzQsNyBAQCBzdGF0aWMgaW50IGxpdmVfbm9wX3Jl cXVlc3Qodm9pZCAqYXJnKQo+ICAKPiAgCQkJCWk5MTVfcmVxdWVzdF9hZGQocmVxdWVzdCk7Cj4g IAkJCX0KPiAtCQkJaTkxNV9yZXF1ZXN0X3dhaXQocmVxdWVzdCwKPiAtCQkJCQkgIEk5MTVfV0FJ VF9MT0NLRUQsCj4gLQkJCQkJICBNQVhfU0NIRURVTEVfVElNRU9VVCk7Cj4gKwkJCWk5MTVfcmVx dWVzdF93YWl0KHJlcXVlc3QsIDAsIE1BWF9TQ0hFRFVMRV9USU1FT1VUKTsKPiAgCj4gIAkJCXRp bWVzWzFdID0ga3RpbWVfc3ViKGt0aW1lX2dldF9yYXcoKSwgdGltZXNbMV0pOwo+ICAJCQlpZiAo cHJpbWUgPT0gMSkKPiBAQCAtNzA2LDkgKzcwNCw3IEBAIHN0YXRpYyBpbnQgbGl2ZV9lbXB0eV9y ZXF1ZXN0KHZvaWQgKmFyZykKPiAgCQkJZXJyID0gUFRSX0VSUihyZXF1ZXN0KTsKPiAgCQkJZ290 byBvdXRfYmF0Y2g7Cj4gIAkJfQo+IC0JCWk5MTVfcmVxdWVzdF93YWl0KHJlcXVlc3QsCj4gLQkJ CQkgIEk5MTVfV0FJVF9MT0NLRUQsCj4gLQkJCQkgIE1BWF9TQ0hFRFVMRV9USU1FT1VUKTsKPiAr CQlpOTE1X3JlcXVlc3Rfd2FpdChyZXF1ZXN0LCAwLCBNQVhfU0NIRURVTEVfVElNRU9VVCk7Cj4g IAo+ICAJCWZvcl9lYWNoX3ByaW1lX251bWJlcl9mcm9tKHByaW1lLCAxLCA4MTkyKSB7Cj4gIAkJ CXRpbWVzWzFdID0ga3RpbWVfZ2V0X3JhdygpOwo+IEBAIC03MjAsOSArNzE2LDcgQEAgc3RhdGlj IGludCBsaXZlX2VtcHR5X3JlcXVlc3Qodm9pZCAqYXJnKQo+ICAJCQkJCWdvdG8gb3V0X2JhdGNo Owo+ICAJCQkJfQo+ICAJCQl9Cj4gLQkJCWk5MTVfcmVxdWVzdF93YWl0KHJlcXVlc3QsCj4gLQkJ CQkJICBJOTE1X1dBSVRfTE9DS0VELAo+IC0JCQkJCSAgTUFYX1NDSEVEVUxFX1RJTUVPVVQpOwo+ ICsJCQlpOTE1X3JlcXVlc3Rfd2FpdChyZXF1ZXN0LCAwLCBNQVhfU0NIRURVTEVfVElNRU9VVCk7 Cj4gIAo+ICAJCQl0aW1lc1sxXSA9IGt0aW1lX3N1YihrdGltZV9nZXRfcmF3KCksIHRpbWVzWzFd KTsKPiAgCQkJaWYgKHByaW1lID09IDEpCj4gQEAgLTg5NSw4ICs4ODksNyBAQCBzdGF0aWMgaW50 IGxpdmVfYWxsX2VuZ2luZXModm9pZCAqYXJnKQo+ICAJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwg aTkxNSwgaWQpIHsKPiAgCQlsb25nIHRpbWVvdXQ7Cj4gIAo+IC0JCXRpbWVvdXQgPSBpOTE1X3Jl cXVlc3Rfd2FpdChyZXF1ZXN0W2lkXSwKPiAtCQkJCQkgICAgSTkxNV9XQUlUX0xPQ0tFRCwKPiAr CQl0aW1lb3V0ID0gaTkxNV9yZXF1ZXN0X3dhaXQocmVxdWVzdFtpZF0sIDAsCj4gIAkJCQkJICAg IE1BWF9TQ0hFRFVMRV9USU1FT1VUKTsKPiAgCQlpZiAodGltZW91dCA8IDApIHsKPiAgCQkJZXJy ID0gdGltZW91dDsKPiBAQCAtMTAxMyw4ICsxMDA2LDcgQEAgc3RhdGljIGludCBsaXZlX3NlcXVl bnRpYWxfZW5naW5lcyh2b2lkICphcmcpCj4gIAkJCWdvdG8gb3V0X3JlcXVlc3Q7Cj4gIAkJfQo+ ICAKPiAtCQl0aW1lb3V0ID0gaTkxNV9yZXF1ZXN0X3dhaXQocmVxdWVzdFtpZF0sCj4gLQkJCQkJ ICAgIEk5MTVfV0FJVF9MT0NLRUQsCj4gKwkJdGltZW91dCA9IGk5MTVfcmVxdWVzdF93YWl0KHJl cXVlc3RbaWRdLCAwLAo+ICAJCQkJCSAgICBNQVhfU0NIRURVTEVfVElNRU9VVCk7Cj4gIAkJaWYg KHRpbWVvdXQgPCAwKSB7Cj4gIAkJCWVyciA9IHRpbWVvdXQ7Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X3RpbWVsaW5lLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9zZWxmdGVzdHMvaTkxNV90aW1lbGluZS5jCj4gaW5kZXggNzI0YmYzNjUwYjNlLi43 NmQzOTc3ZjFkNGIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3Rz L2k5MTVfdGltZWxpbmUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9p OTE1X3RpbWVsaW5lLmMKPiBAQCAtNzI0LDcgKzcyNCw3IEBAIHN0YXRpYyBpbnQgbGl2ZV9od3Nw X3dyYXAodm9pZCAqYXJnKQo+ICAKPiAgCQlpOTE1X3JlcXVlc3RfYWRkKHJxKTsKPiAgCj4gLQkJ aWYgKGk5MTVfcmVxdWVzdF93YWl0KHJxLCBJOTE1X1dBSVRfTE9DS0VELCBIWiAvIDUpIDwgMCkg ewo+ICsJCWlmIChpOTE1X3JlcXVlc3Rfd2FpdChycSwgMCwgSFogLyA1KSA8IDApIHsKPiAgCQkJ cHJfZXJyKCJXYWl0IGZvciB0aW1lbGluZSB3cml0ZXMgdGltZWQgb3V0IVxuIik7Cj4gIAkJCWVy ciA9IC1FSU87Cj4gIAkJCWdvdG8gb3V0Owo+IEBAIC03OTcsOSArNzk3LDcgQEAgc3RhdGljIGlu dCBsaXZlX2h3c3BfcmVjeWNsZSh2b2lkICphcmcpCj4gIAkJCQlnb3RvIG91dDsKPiAgCQkJfQo+ ICAKPiAtCQkJaWYgKGk5MTVfcmVxdWVzdF93YWl0KHJxLAo+IC0JCQkJCSAgICAgIEk5MTVfV0FJ VF9MT0NLRUQsCj4gLQkJCQkJICAgICAgSFogLyA1KSA8IDApIHsKPiArCQkJaWYgKGk5MTVfcmVx dWVzdF93YWl0KHJxLCAwLCBIWiAvIDUpIDwgMCkgewo+ICAJCQkJcHJfZXJyKCJXYWl0IGZvciB0 aW1lbGluZSB3cml0ZXMgdGltZWQgb3V0IVxuIik7Cj4gIAkJCQlpOTE1X3RpbWVsaW5lX3B1dCh0 bCk7Cj4gIAkJCQllcnIgPSAtRUlPOwo+IC0tIAo+IDIuMjAuMQpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=