From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH 3/8] drm/i915: Replace engine->timeline with a plain list Date: Fri, 14 Jun 2019 18:50:33 +0300 Message-ID: <878su488ty.fsf@gaia.fi.intel.com> References: <20190612093111.11684-1-chris@chris-wilson.co.uk> <20190612093111.11684-4-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 5E55189736 for ; Fri, 14 Jun 2019 15:50:38 +0000 (UTC) In-Reply-To: <20190612093111.11684-4-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+IHdyaXRlczoKCj4gVG8gY29u dGludWUgdGhlIG9uc2xhdWdodCBvZiByZW1vdmluZyB0aGUgYXNzdW1wdGlvbiBvZiBhIGdsb2Jh bAo+IGV4ZWN1dGlvbiBvcmRlcmluZywgYW5vdGhlciBjYXN1YWx0eSBpcyB0aGUgZW5naW5lLT50 aW1lbGluZS4gV2l0aG91dCBhbgo+IGFjdHVhbCB0aW1lbGluZSB0byB0cmFjaywgaXQgaXMgb3Zl cmtpbGwgYW5kIHdlIGNhbiByZXBsYWNlIGl0IHdpdGggYQo+IG11Y2ggbGVzcyBncmFuZCBwbGFp biBsaXN0LiBXZSBzdGlsbCBuZWVkIGEgbGlzdCBvZiByZXF1ZXN0cyBpbmZsaWdodCwKPiBmb3Ig dGhlIHNpbXBsZSBwdXJwb3NlIG9mIGZpbmRpbmcgaW5mbGlnaHQgcmVxdWVzdHMgKGZvciByZXRp cmluZywKPiByZXNldHRpbmcsIHByZWVtcHRpb24gZXRjKS4KPgo+IFNpZ25lZC1vZmYtYnk6IENo cmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+IC0tLQo+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmUuaCAgICAgICAgfCAgNiArKwo+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3MuYyAgICAgfCA2MiArKysrKystLS0tLS0KPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3R5cGVzLmggIHwgIDYgKy0KPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJjLmMgICAgICAgICAgIHwgOTUgKysrKysr KysrKy0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yZXNldC5jICAg ICAgICAgfCAxMCArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yaW5nYnVmZmVy LmMgICAgfCAxNSArKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvbW9ja19lbmdpbmUuYyAg ICAgICAgIHwgMTggKystLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5j ICAgICAgICAgfCAgNSArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYyAg ICAgICAgICAgfCA0MyArKystLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1 ZXN0LmggICAgICAgICAgIHwgIDIgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zY2hl ZHVsZXIuYyAgICAgICAgIHwgMzggKysrKy0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV90aW1lbGluZS5jICAgICAgICAgIHwgIDEgLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3RpbWVsaW5lLmggICAgICAgICAgfCAxOSAtLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfdGltZWxpbmVfdHlwZXMuaCAgICB8ICA0IC0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZ3VjX3N1Ym1pc3Npb24uYyAgIHwgMTYgKystLQo+ICAuLi4vZ3B1L2RybS9pOTE1L3NlbGZ0 ZXN0cy9tb2NrX3RpbWVsaW5lLmMgICAgfCAgMSAtCj4gIDE2IGZpbGVzIGNoYW5nZWQsIDE1MyBp bnNlcnRpb25zKCspLCAxODggZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9p bnRlbF9lbmdpbmUuaAo+IGluZGV4IGI5ZmQ4OGYyMTYwOS4uNmJlNjA3ZTljMDg0IDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZS5oCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lLmgKPiBAQCAtNTY0LDQgKzU2NCwxMCBA QCBzdGF0aWMgaW5saW5lIGJvb2wgaW5qZWN0X3ByZWVtcHRfaGFuZyhzdHJ1Y3QgaW50ZWxfZW5n aW5lX2V4ZWNsaXN0cyAqZXhlY2xpc3RzKQo+ICAKPiAgI2VuZGlmCj4gIAo+ICt2b2lkIGludGVs X2VuZ2luZV9pbml0X2FjdGl2ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCj4gKwkJ CSAgICAgIHVuc2lnbmVkIGludCBzdWJjbGFzcyk7Cj4gKyNkZWZpbmUgRU5HSU5FX1BIWVNJQ0FM CTAKPiArI2RlZmluZSBFTkdJTkVfTU9DSwkxCj4gKyNkZWZpbmUgRU5HSU5FX1ZJUlRVQUwJMgo+ ICsKPiAgI2VuZGlmIC8qIF9JTlRFTF9SSU5HQlVGRkVSX0hfICovCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9jcy5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ3QvaW50ZWxfZW5naW5lX2NzLmMKPiBpbmRleCA1YTA4MDM2YWU3NzQuLjAxZjUwY2Zk NTE3YyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVf Y3MuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9jcy5jCj4g QEAgLTYxNywxNCArNjE3LDcgQEAgc3RhdGljIGludCBpbnRlbF9lbmdpbmVfc2V0dXBfY29tbW9u KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgCWlmIChlcnIpCj4gIAkJcmV0dXJu IGVycjsKPiAgCj4gLQllcnIgPSBpOTE1X3RpbWVsaW5lX2luaXQoZW5naW5lLT5pOTE1LAo+IC0J CQkJICZlbmdpbmUtPnRpbWVsaW5lLAo+IC0JCQkJIGVuZ2luZS0+c3RhdHVzX3BhZ2Uudm1hKTsK PiAtCWlmIChlcnIpCj4gLQkJZ290byBlcnJfaHdzcDsKPiAtCj4gLQlpOTE1X3RpbWVsaW5lX3Nl dF9zdWJjbGFzcygmZW5naW5lLT50aW1lbGluZSwgVElNRUxJTkVfRU5HSU5FKTsKPiAtCj4gKwlp bnRlbF9lbmdpbmVfaW5pdF9hY3RpdmUoZW5naW5lLCBFTkdJTkVfUEhZU0lDQUwpOwo+ICAJaW50 ZWxfZW5naW5lX2luaXRfYnJlYWRjcnVtYnMoZW5naW5lKTsKPiAgCWludGVsX2VuZ2luZV9pbml0 X2V4ZWNsaXN0cyhlbmdpbmUpOwo+ICAJaW50ZWxfZW5naW5lX2luaXRfaGFuZ2NoZWNrKGVuZ2lu ZSk7Cj4gQEAgLTYzNywxMCArNjMwLDYgQEAgc3RhdGljIGludCBpbnRlbF9lbmdpbmVfc2V0dXBf Y29tbW9uKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgCQlpbnRlbF9zc2V1X2Zy b21fZGV2aWNlX2luZm8oJlJVTlRJTUVfSU5GTyhlbmdpbmUtPmk5MTUpLT5zc2V1KTsKPiAgCj4g IAlyZXR1cm4gMDsKPiAtCj4gLWVycl9od3NwOgo+IC0JY2xlYW51cF9zdGF0dXNfcGFnZShlbmdp bmUpOwo+IC0JcmV0dXJuIGVycjsKPiAgfQo+ICAKPiAgLyoqCj4gQEAgLTc5Nyw2ICs3ODYsMjcg QEAgc3RhdGljIGludCBwaW5fY29udGV4dChzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAo+ ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gK3ZvaWQKPiAraW50ZWxfZW5naW5lX2luaXRfYWN0aXZl KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgdW5zaWduZWQgaW50IHN1YmNsYXNzKQo+ ICt7Cj4gKwlJTklUX0xJU1RfSEVBRCgmZW5naW5lLT5hY3RpdmUucmVxdWVzdHMpOwo+ICsKPiAr CXNwaW5fbG9ja19pbml0KCZlbmdpbmUtPmFjdGl2ZS5sb2NrKTsKPiArCWxvY2tkZXBfc2V0X3N1 YmNsYXNzKCZlbmdpbmUtPmFjdGl2ZS5sb2NrLCBzdWJjbGFzcyk7Cj4gKwo+ICsJLyoKPiArCSAq IER1ZSB0byBhbiBpbnRlcmVzdGluZyBxdWlyayBpbiBsb2NrZGVwJ3MgaW50ZXJuYWwgZGVidWcg dHJhY2tpbmcsCj4gKwkgKiBhZnRlciBzZXR0aW5nIGEgc3ViY2xhc3Mgd2UgbXVzdCBlbnN1cmUg dGhlIGxvY2sgaXMgdXNlZC4gT3RoZXJ3aXNlLAo+ICsJICogbnJfdW51c2VkX2xvY2tzIGlzIGlu Y3JlbWVudGVkIG9uY2UgdG9vIG9mdGVuLgo+ICsJICovCj4gKyNpZmRlZiBDT05GSUdfREVCVUdf TE9DS19BTExPQwo+ICsJbG9jYWxfaXJxX2Rpc2FibGUoKTsKPiArCWxvY2tfbWFwX2FjcXVpcmUo JmVuZ2luZS0+YWN0aXZlLmxvY2suZGVwX21hcCk7Cj4gKwlsb2NrX21hcF9yZWxlYXNlKCZlbmdp bmUtPmFjdGl2ZS5sb2NrLmRlcF9tYXApOwo+ICsJbG9jYWxfaXJxX2VuYWJsZSgpOwo+ICsjZW5k aWYKPiArfQo+ICsKPiAgLyoqCj4gICAqIGludGVsX2VuZ2luZXNfaW5pdF9jb21tb24gLSBpbml0 aWFsaXplIGNlbmdpbmUgc3RhdGUgd2hpY2ggbWlnaHQgcmVxdWlyZSBodyBhY2Nlc3MKPiAgICog QGVuZ2luZTogRW5naW5lIHRvIGluaXRpYWxpemUuCj4gQEAgLTg2MCw2ICs4NzAsOCBAQCBpbnQg aW50ZWxfZW5naW5lX2luaXRfY29tbW9uKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkK PiAgICovCj4gIHZvaWQgaW50ZWxfZW5naW5lX2NsZWFudXBfY29tbW9uKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSkKPiAgewo+ICsJR0VNX0JVR19PTighbGlzdF9lbXB0eSgmZW5naW5l LT5hY3RpdmUucmVxdWVzdHMpKTsKPiArCj4gIAljbGVhbnVwX3N0YXR1c19wYWdlKGVuZ2luZSk7 Cj4gIAo+ICAJaW50ZWxfZW5naW5lX2ZpbmlfYnJlYWRjcnVtYnMoZW5naW5lKTsKPiBAQCAtODc0 LDggKzg4Niw2IEBAIHZvaWQgaW50ZWxfZW5naW5lX2NsZWFudXBfY29tbW9uKHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgCWludGVsX2NvbnRleHRfdW5waW4oZW5naW5lLT5rZXJu ZWxfY29udGV4dCk7Cj4gIAlHRU1fQlVHX09OKCFsbGlzdF9lbXB0eSgmZW5naW5lLT5iYXJyaWVy X3Rhc2tzKSk7Cj4gIAo+IC0JaTkxNV90aW1lbGluZV9maW5pKCZlbmdpbmUtPnRpbWVsaW5lKTsK PiAtCj4gIAlpbnRlbF93YV9saXN0X2ZyZWUoJmVuZ2luZS0+Y3R4X3dhX2xpc3QpOwo+ICAJaW50 ZWxfd2FfbGlzdF9mcmVlKCZlbmdpbmUtPndhX2xpc3QpOwo+ICAJaW50ZWxfd2FfbGlzdF9mcmVl KCZlbmdpbmUtPndoaXRlbGlzdCk7Cj4gQEAgLTE0ODIsMTYgKzE0OTIsNiBAQCB2b2lkIGludGVs X2VuZ2luZV9kdW1wKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKPiAgCj4gIAlkcm1f cHJpbnRmKG0sICJcdFJlcXVlc3RzOlxuIik7Cj4gIAo+IC0JcnEgPSBsaXN0X2ZpcnN0X2VudHJ5 KCZlbmdpbmUtPnRpbWVsaW5lLnJlcXVlc3RzLAo+IC0JCQkgICAgICBzdHJ1Y3QgaTkxNV9yZXF1 ZXN0LCBsaW5rKTsKPiAtCWlmICgmcnEtPmxpbmsgIT0gJmVuZ2luZS0+dGltZWxpbmUucmVxdWVz dHMpCj4gLQkJcHJpbnRfcmVxdWVzdChtLCBycSwgIlx0XHRmaXJzdCAgIik7Cj4gLQo+IC0JcnEg PSBsaXN0X2xhc3RfZW50cnkoJmVuZ2luZS0+dGltZWxpbmUucmVxdWVzdHMsCj4gLQkJCSAgICAg c3RydWN0IGk5MTVfcmVxdWVzdCwgbGluayk7Cj4gLQlpZiAoJnJxLT5saW5rICE9ICZlbmdpbmUt PnRpbWVsaW5lLnJlcXVlc3RzKQo+IC0JCXByaW50X3JlcXVlc3QobSwgcnEsICJcdFx0bGFzdCAg ICIpOwo+IC0KPiAgCXJxID0gaW50ZWxfZW5naW5lX2ZpbmRfYWN0aXZlX3JlcXVlc3QoZW5naW5l KTsKPiAgCWlmIChycSkgewo+ICAJCXByaW50X3JlcXVlc3QobSwgcnEsICJcdFx0YWN0aXZlICIp Owo+IEBAIC0xNTcyLDcgKzE1NzIsNyBAQCBpbnQgaW50ZWxfZW5hYmxlX2VuZ2luZV9zdGF0cyhz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gIAlpZiAoIWludGVsX2VuZ2luZV9zdXBw b3J0c19zdGF0cyhlbmdpbmUpKQo+ICAJCXJldHVybiAtRU5PREVWOwo+ICAKPiAtCXNwaW5fbG9j a19pcnFzYXZlKCZlbmdpbmUtPnRpbWVsaW5lLmxvY2ssIGZsYWdzKTsKPiArCXNwaW5fbG9ja19p cnFzYXZlKCZlbmdpbmUtPmFjdGl2ZS5sb2NrLCBmbGFncyk7Cj4gIAl3cml0ZV9zZXFsb2NrKCZl bmdpbmUtPnN0YXRzLmxvY2spOwo+ICAKPiAgCWlmICh1bmxpa2VseShlbmdpbmUtPnN0YXRzLmVu YWJsZWQgPT0gfjApKSB7Cj4gQEAgLTE1OTgsNyArMTU5OCw3IEBAIGludCBpbnRlbF9lbmFibGVf ZW5naW5lX3N0YXRzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgCj4gIHVubG9j azoKPiAgCXdyaXRlX3NlcXVubG9jaygmZW5naW5lLT5zdGF0cy5sb2NrKTsKPiAtCXNwaW5fdW5s b2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+dGltZWxpbmUubG9jaywgZmxhZ3MpOwo+ICsJc3Bpbl91 bmxvY2tfaXJxcmVzdG9yZSgmZW5naW5lLT5hY3RpdmUubG9jaywgZmxhZ3MpOwo+ICAKPiAgCXJl dHVybiBlcnI7Cj4gIH0KPiBAQCAtMTY4MywyMiArMTY4MywyMiBAQCBpbnRlbF9lbmdpbmVfZmlu ZF9hY3RpdmVfcmVxdWVzdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gIAkgKiBB dCBhbGwgb3RoZXIgdGltZXMsIHdlIG11c3QgYXNzdW1lIHRoZSBHUFUgaXMgc3RpbGwgcnVubmlu ZywgYnV0Cj4gIAkgKiB3ZSBvbmx5IGNhcmUgYWJvdXQgdGhlIHNuYXBzaG90IG9mIHRoaXMgbW9t ZW50Lgo+ICAJICovCj4gLQlzcGluX2xvY2tfaXJxc2F2ZSgmZW5naW5lLT50aW1lbGluZS5sb2Nr LCBmbGFncyk7Cj4gLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHJlcXVlc3QsICZlbmdpbmUtPnRpbWVs aW5lLnJlcXVlc3RzLCBsaW5rKSB7Cj4gKwlzcGluX2xvY2tfaXJxc2F2ZSgmZW5naW5lLT5hY3Rp dmUubG9jaywgZmxhZ3MpOwo+ICsJbGlzdF9mb3JfZWFjaF9lbnRyeShyZXF1ZXN0LCAmZW5naW5l LT5hY3RpdmUucmVxdWVzdHMsIHNjaGVkLmxpbmspIHsKPiAgCQlpZiAoaTkxNV9yZXF1ZXN0X2Nv bXBsZXRlZChyZXF1ZXN0KSkKPiAgCQkJY29udGludWU7Cj4gIAo+ICAJCWlmICghaTkxNV9yZXF1 ZXN0X3N0YXJ0ZWQocmVxdWVzdCkpCj4gLQkJCWJyZWFrOwo+ICsJCQljb250aW51ZTsKPiAgCj4g IAkJLyogTW9yZSB0aGFuIG9uZSBwcmVlbXB0aWJsZSByZXF1ZXN0IG1heSBtYXRjaCEgKi8KPiAg CQlpZiAoIW1hdGNoX3JpbmcocmVxdWVzdCkpCj4gLQkJCWJyZWFrOwo+ICsJCQljb250aW51ZTsK PiAgCj4gIAkJYWN0aXZlID0gcmVxdWVzdDsKPiAgCQlicmVhazsKPiAgCX0KPiAtCXNwaW5fdW5s b2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+dGltZWxpbmUubG9jaywgZmxhZ3MpOwo+ICsJc3Bpbl91 bmxvY2tfaXJxcmVzdG9yZSgmZW5naW5lLT5hY3RpdmUubG9jaywgZmxhZ3MpOwo+ICAKPiAgCXJl dHVybiBhY3RpdmU7Cj4gIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv aW50ZWxfZW5naW5lX3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdp bmVfdHlwZXMuaAo+IGluZGV4IDMzYTMxYWEyZDJhZS4uYjJmYWNhOGU1ZGVjIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV90eXBlcy5oCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX3R5cGVzLmgKPiBAQCAtMjg4LDcg KzI4OCwxMSBAQCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzIHsKPiAgCj4gIAlzdHJ1Y3QgaW50ZWxf cmluZyAqYnVmZmVyOwo+ICAKPiAtCXN0cnVjdCBpOTE1X3RpbWVsaW5lIHRpbWVsaW5lOwo+ICsJ c3RydWN0IHsKPiArCQlzcGlubG9ja190IGxvY2s7Cj4gKwkJc3RydWN0IGxpc3RfaGVhZCByZXF1 ZXN0czsKPiArCX0gYWN0aXZlOwo+ICsKPiAgCXN0cnVjdCBsbGlzdF9oZWFkIGJhcnJpZXJfdGFz a3M7Cj4gIAo+ICAJc3RydWN0IGludGVsX2NvbnRleHQgKmtlcm5lbF9jb250ZXh0OyAvKiBwaW5u ZWQgKi8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJjLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9scmMuYwo+IGluZGV4IDA1NTI0NDg5NjE1 Yy4uODUzMzc2ODk1NTA1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2lu dGVsX2xyYy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJjLmMKPiBA QCAtMjk4LDggKzI5OCw4IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBuZWVkX3ByZWVtcHQoY29uc3Qg c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAo+ICAJICogQ2hlY2sgYWdhaW5zdCB0aGUg Zmlyc3QgcmVxdWVzdCBpbiBFTFNQWzFdLCBpdCB3aWxsLCB0aGFua3MgdG8gdGhlCj4gIAkgKiBw b3dlciBvZiBQSSwgYmUgdGhlIGhpZ2hlc3QgcHJpb3JpdHkgb2YgdGhhdCBjb250ZXh0Lgo+ICAJ ICovCj4gLQlpZiAoIWxpc3RfaXNfbGFzdCgmcnEtPmxpbmssICZlbmdpbmUtPnRpbWVsaW5lLnJl cXVlc3RzKSAmJgo+IC0JICAgIHJxX3ByaW8obGlzdF9uZXh0X2VudHJ5KHJxLCBsaW5rKSkgPiBs YXN0X3ByaW8pCj4gKwlpZiAoIWxpc3RfaXNfbGFzdCgmcnEtPnNjaGVkLmxpbmssICZlbmdpbmUt PmFjdGl2ZS5yZXF1ZXN0cykgJiYKPiArCSAgICBycV9wcmlvKGxpc3RfbmV4dF9lbnRyeShycSwg c2NoZWQubGluaykpID4gbGFzdF9wcmlvKQo+ICAJCXJldHVybiB0cnVlOwo+ICAKPiAgCWlmIChy Yikgewo+IEBAIC00MzQsMTEgKzQzNCwxMSBAQCBfX3Vud2luZF9pbmNvbXBsZXRlX3JlcXVlc3Rz KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgCXN0cnVjdCBsaXN0X2hlYWQgKnVu aW5pdGlhbGl6ZWRfdmFyKHBsKTsKPiAgCWludCBwcmlvID0gSTkxNV9QUklPUklUWV9JTlZBTElE Owo+ICAKPiAtCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmVuZ2luZS0+dGltZWxpbmUubG9jayk7Cj4g Kwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZlbmdpbmUtPmFjdGl2ZS5sb2NrKTsKPiAgCj4gIAlsaXN0 X2Zvcl9lYWNoX2VudHJ5X3NhZmVfcmV2ZXJzZShycSwgcm4sCj4gLQkJCQkJICZlbmdpbmUtPnRp bWVsaW5lLnJlcXVlc3RzLAo+IC0JCQkJCSBsaW5rKSB7Cj4gKwkJCQkJICZlbmdpbmUtPmFjdGl2 ZS5yZXF1ZXN0cywKPiArCQkJCQkgc2NoZWQubGluaykgewo+ICAJCXN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKm93bmVyOwo+ICAKPiAgCQlpZiAoaTkxNV9yZXF1ZXN0X2NvbXBsZXRlZChycSkpCj4g QEAgLTQ2NSw3ICs0NjUsNyBAQCBfX3Vud2luZF9pbmNvbXBsZXRlX3JlcXVlc3RzKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgCQkJfQo+ICAJCQlHRU1fQlVHX09OKFJCX0VNUFRZ X1JPT1QoJmVuZ2luZS0+ZXhlY2xpc3RzLnF1ZXVlLnJiX3Jvb3QpKTsKPiAgCj4gLQkJCWxpc3Rf YWRkKCZycS0+c2NoZWQubGluaywgcGwpOwo+ICsJCQlsaXN0X21vdmUoJnJxLT5zY2hlZC5saW5r LCBwbCk7Cj4gIAkJCWFjdGl2ZSA9IHJxOwo+ICAJCX0gZWxzZSB7Cj4gIAkJCXJxLT5lbmdpbmUg PSBvd25lcjsKPiBAQCAtOTMzLDExICs5MzMsMTEgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX2Rl cXVldWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAJCQlyYl9lbnRyeShyYiwg dHlwZW9mKCp2ZSksIG5vZGVzW2VuZ2luZS0+aWRdLnJiKTsKPiAgCQlzdHJ1Y3QgaTkxNV9yZXF1 ZXN0ICpycTsKPiAgCj4gLQkJc3Bpbl9sb2NrKCZ2ZS0+YmFzZS50aW1lbGluZS5sb2NrKTsKPiAr CQlzcGluX2xvY2soJnZlLT5iYXNlLmFjdGl2ZS5sb2NrKTsKPiAgCj4gIAkJcnEgPSB2ZS0+cmVx dWVzdDsKPiAgCQlpZiAodW5saWtlbHkoIXJxKSkgeyAvKiBsb3N0IHRoZSByYWNlIHRvIGEgc2li bGluZyAqLwo+IC0JCQlzcGluX3VubG9jaygmdmUtPmJhc2UudGltZWxpbmUubG9jayk7Cj4gKwkJ CXNwaW5fdW5sb2NrKCZ2ZS0+YmFzZS5hY3RpdmUubG9jayk7Cj4gIAkJCXJiX2VyYXNlX2NhY2hl ZChyYiwgJmV4ZWNsaXN0cy0+dmlydHVhbCk7Cj4gIAkJCVJCX0NMRUFSX05PREUocmIpOwo+ICAJ CQlyYiA9IHJiX2ZpcnN0X2NhY2hlZCgmZXhlY2xpc3RzLT52aXJ0dWFsKTsKPiBAQCAtOTUwLDEz ICs5NTAsMTMgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX2RlcXVldWUoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lKQo+ICAKPiAgCQlpZiAocnFfcHJpbyhycSkgPj0gcXVldWVfcHJpbyhl eGVjbGlzdHMpKSB7Cj4gIAkJCWlmICghdmlydHVhbF9tYXRjaGVzKHZlLCBycSwgZW5naW5lKSkg ewo+IC0JCQkJc3Bpbl91bmxvY2soJnZlLT5iYXNlLnRpbWVsaW5lLmxvY2spOwo+ICsJCQkJc3Bp bl91bmxvY2soJnZlLT5iYXNlLmFjdGl2ZS5sb2NrKTsKPiAgCQkJCXJiID0gcmJfbmV4dChyYik7 Cj4gIAkJCQljb250aW51ZTsKPiAgCQkJfQo+ICAKPiAgCQkJaWYgKGxhc3QgJiYgIWNhbl9tZXJn ZV9ycShsYXN0LCBycSkpIHsKPiAtCQkJCXNwaW5fdW5sb2NrKCZ2ZS0+YmFzZS50aW1lbGluZS5s b2NrKTsKPiArCQkJCXNwaW5fdW5sb2NrKCZ2ZS0+YmFzZS5hY3RpdmUubG9jayk7Cj4gIAkJCQly ZXR1cm47IC8qIGxlYXZlIHRoaXMgcnEgZm9yIGFub3RoZXIgZW5naW5lICovCj4gIAkJCX0KPiAg Cj4gQEAgLTEwMTEsNyArMTAxMSw3IEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19kZXF1ZXVlKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgCQkJbGFzdCA9IHJxOwo+ICAJCX0KPiAg Cj4gLQkJc3Bpbl91bmxvY2soJnZlLT5iYXNlLnRpbWVsaW5lLmxvY2spOwo+ICsJCXNwaW5fdW5s b2NrKCZ2ZS0+YmFzZS5hY3RpdmUubG9jayk7Cj4gIAkJYnJlYWs7Cj4gIAl9Cj4gIAo+IEBAIC0x MDY4LDggKzEwNjgsNiBAQCBzdGF0aWMgdm9pZCBleGVjbGlzdHNfZGVxdWV1ZShzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gIAkJCQlHRU1fQlVHX09OKHBvcnRfaXNzZXQocG9ydCkp Owo+ICAJCQl9Cj4gIAo+IC0JCQlsaXN0X2RlbF9pbml0KCZycS0+c2NoZWQubGluayk7Cj4gLQo+ ICAJCQlfX2k5MTVfcmVxdWVzdF9zdWJtaXQocnEpOwo+ICAJCQl0cmFjZV9pOTE1X3JlcXVlc3Rf aW4ocnEsIHBvcnRfaW5kZXgocG9ydCwgZXhlY2xpc3RzKSk7Cj4gIAo+IEBAIC0xMTcwLDcgKzEx NjgsNyBAQCBzdGF0aWMgdm9pZCBwcm9jZXNzX2NzYihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUpCj4gIAljb25zdCB1OCBudW1fZW50cmllcyA9IGV4ZWNsaXN0cy0+Y3NiX3NpemU7Cj4g IAl1OCBoZWFkLCB0YWlsOwo+ICAKPiAtCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmVuZ2luZS0+dGlt ZWxpbmUubG9jayk7Cj4gKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZlbmdpbmUtPmFjdGl2ZS5sb2Nr KTsKPiAgCj4gIAkvKgo+ICAJICogTm90ZSB0aGF0IGNzYl93cml0ZSwgY3NiX3N0YXR1cyBtYXkg YmUgZWl0aGVyIGluIEhXU1Agb3IgbW1pby4KPiBAQCAtMTMzMCw3ICsxMzI4LDcgQEAgc3RhdGlj IHZvaWQgcHJvY2Vzc19jc2Ioc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAKPiAg c3RhdGljIHZvaWQgX19leGVjbGlzdHNfc3VibWlzc2lvbl90YXNrbGV0KHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmNvbnN0IGVuZ2luZSkKPiAgewo+IC0JbG9ja2RlcF9hc3NlcnRfaGVsZCgmZW5n aW5lLT50aW1lbGluZS5sb2NrKTsKPiArCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmVuZ2luZS0+YWN0 aXZlLmxvY2spOwo+ICAKPiAgCXByb2Nlc3NfY3NiKGVuZ2luZSk7Cj4gIAlpZiAoIWV4ZWNsaXN0 c19pc19hY3RpdmUoJmVuZ2luZS0+ZXhlY2xpc3RzLCBFWEVDTElTVFNfQUNUSVZFX1BSRUVNUFQp KQo+IEBAIC0xMzUxLDE1ICsxMzQ5LDE2IEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19zdWJtaXNz aW9uX3Rhc2tsZXQodW5zaWduZWQgbG9uZyBkYXRhKQo+ICAJCSAgISFpbnRlbF93YWtlcmVmX2Fj dGl2ZSgmZW5naW5lLT53YWtlcmVmKSwKPiAgCQkgIGVuZ2luZS0+ZXhlY2xpc3RzLmFjdGl2ZSk7 Cj4gIAo+IC0Jc3Bpbl9sb2NrX2lycXNhdmUoJmVuZ2luZS0+dGltZWxpbmUubG9jaywgZmxhZ3Mp Owo+ICsJc3Bpbl9sb2NrX2lycXNhdmUoJmVuZ2luZS0+YWN0aXZlLmxvY2ssIGZsYWdzKTsKPiAg CV9fZXhlY2xpc3RzX3N1Ym1pc3Npb25fdGFza2xldChlbmdpbmUpOwo+IC0Jc3Bpbl91bmxvY2tf aXJxcmVzdG9yZSgmZW5naW5lLT50aW1lbGluZS5sb2NrLCBmbGFncyk7Cj4gKwlzcGluX3VubG9j a19pcnFyZXN0b3JlKCZlbmdpbmUtPmFjdGl2ZS5sb2NrLCBmbGFncyk7Cj4gIH0KPiAgCj4gIHN0 YXRpYyB2b2lkIHF1ZXVlX3JlcXVlc3Qoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAo+ ICAJCQkgIHN0cnVjdCBpOTE1X3NjaGVkX25vZGUgKm5vZGUsCj4gIAkJCSAgaW50IHByaW8pCj4g IHsKPiArCUdFTV9CVUdfT04oIWxpc3RfZW1wdHkoJm5vZGUtPmxpbmspKTsKPiAgCWxpc3RfYWRk X3RhaWwoJm5vZGUtPmxpbmssIGk5MTVfc2NoZWRfbG9va3VwX3ByaW9saXN0KGVuZ2luZSwgcHJp bykpOwo+ICB9Cj4gIAo+IEBAIC0xMzkwLDcgKzEzODksNyBAQCBzdGF0aWMgdm9pZCBleGVjbGlz dHNfc3VibWl0X3JlcXVlc3Qoc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCkKPiAgCXVuc2ln bmVkIGxvbmcgZmxhZ3M7Cj4gIAo+ICAJLyogV2lsbCBiZSBjYWxsZWQgZnJvbSBpcnEtY29udGV4 dCB3aGVuIHVzaW5nIGZvcmVpZ24gZmVuY2VzLiAqLwo+IC0Jc3Bpbl9sb2NrX2lycXNhdmUoJmVu Z2luZS0+dGltZWxpbmUubG9jaywgZmxhZ3MpOwo+ICsJc3Bpbl9sb2NrX2lycXNhdmUoJmVuZ2lu ZS0+YWN0aXZlLmxvY2ssIGZsYWdzKTsKPiAgCj4gIAlxdWV1ZV9yZXF1ZXN0KGVuZ2luZSwgJnJl cXVlc3QtPnNjaGVkLCBycV9wcmlvKHJlcXVlc3QpKTsKPiAgCj4gQEAgLTEzOTksNyArMTM5OCw3 IEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19zdWJtaXRfcmVxdWVzdChzdHJ1Y3QgaTkxNV9yZXF1 ZXN0ICpyZXF1ZXN0KQo+ICAKPiAgCXN1Ym1pdF9xdWV1ZShlbmdpbmUsIHJxX3ByaW8ocmVxdWVz dCkpOwo+ICAKPiAtCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+dGltZWxpbmUubG9j aywgZmxhZ3MpOwo+ICsJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZW5naW5lLT5hY3RpdmUubG9j aywgZmxhZ3MpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZCBfX2V4ZWNsaXN0c19jb250ZXh0X2Zp bmkoc3RydWN0IGludGVsX2NvbnRleHQgKmNlKQo+IEBAIC0yMDUwLDggKzIwNDksOCBAQCBzdGF0 aWMgdm9pZCBleGVjbGlzdHNfcmVzZXRfcHJlcGFyZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUpCj4gIAlpbnRlbF9lbmdpbmVfc3RvcF9jcyhlbmdpbmUpOwo+ICAKPiAgCS8qIEFuZCBm bHVzaCBhbnkgY3VycmVudCBkaXJlY3Qgc3VibWlzc2lvbi4gKi8KPiAtCXNwaW5fbG9ja19pcnFz YXZlKCZlbmdpbmUtPnRpbWVsaW5lLmxvY2ssIGZsYWdzKTsKPiAtCXNwaW5fdW5sb2NrX2lycXJl c3RvcmUoJmVuZ2luZS0+dGltZWxpbmUubG9jaywgZmxhZ3MpOwo+ICsJc3Bpbl9sb2NrX2lycXNh dmUoJmVuZ2luZS0+YWN0aXZlLmxvY2ssIGZsYWdzKTsKPiArCXNwaW5fdW5sb2NrX2lycXJlc3Rv cmUoJmVuZ2luZS0+YWN0aXZlLmxvY2ssIGZsYWdzKTsKPiAgfQo+ICAKPiAgc3RhdGljIGJvb2wg bHJjX3JlZ3Nfb2soY29uc3Qgc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCj4gQEAgLTIwOTQsMTEg KzIwOTMsMTEgQEAgc3RhdGljIHZvaWQgcmVzZXRfY3NiX3BvaW50ZXJzKHN0cnVjdCBpbnRlbF9l bmdpbmVfZXhlY2xpc3RzICpleGVjbGlzdHMpCj4gIAo+ICBzdGF0aWMgc3RydWN0IGk5MTVfcmVx dWVzdCAqYWN0aXZlX3JlcXVlc3Qoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCj4gIHsKPiAtCWNv bnN0IHN0cnVjdCBsaXN0X2hlYWQgKiBjb25zdCBsaXN0ID0gJnJxLT5lbmdpbmUtPnRpbWVsaW5l LnJlcXVlc3RzOwo+ICsJY29uc3Qgc3RydWN0IGxpc3RfaGVhZCAqIGNvbnN0IGxpc3QgPSAmcnEt PmVuZ2luZS0+YWN0aXZlLnJlcXVlc3RzOwo+ICAJY29uc3Qgc3RydWN0IGludGVsX2NvbnRleHQg KiBjb25zdCBjb250ZXh0ID0gcnEtPmh3X2NvbnRleHQ7Cj4gIAlzdHJ1Y3QgaTkxNV9yZXF1ZXN0 ICphY3RpdmUgPSBOVUxMOwo+ICAKPiAtCWxpc3RfZm9yX2VhY2hfZW50cnlfZnJvbV9yZXZlcnNl KHJxLCBsaXN0LCBsaW5rKSB7Cj4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X2Zyb21fcmV2ZXJzZShy cSwgbGlzdCwgc2NoZWQubGluaykgewo+ICAJCWlmIChpOTE1X3JlcXVlc3RfY29tcGxldGVkKHJx KSkKPiAgCQkJYnJlYWs7Cj4gIAo+IEBAIC0yMjE1LDExICsyMjE0LDExIEBAIHN0YXRpYyB2b2lk IGV4ZWNsaXN0c19yZXNldChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIGJvb2wgc3Rh bGxlZCkKPiAgCj4gIAlHRU1fVFJBQ0UoIiVzXG4iLCBlbmdpbmUtPm5hbWUpOwo+ICAKPiAtCXNw aW5fbG9ja19pcnFzYXZlKCZlbmdpbmUtPnRpbWVsaW5lLmxvY2ssIGZsYWdzKTsKPiArCXNwaW5f bG9ja19pcnFzYXZlKCZlbmdpbmUtPmFjdGl2ZS5sb2NrLCBmbGFncyk7Cj4gIAo+ICAJX19leGVj bGlzdHNfcmVzZXQoZW5naW5lLCBzdGFsbGVkKTsKPiAgCj4gLQlzcGluX3VubG9ja19pcnFyZXN0 b3JlKCZlbmdpbmUtPnRpbWVsaW5lLmxvY2ssIGZsYWdzKTsKPiArCXNwaW5fdW5sb2NrX2lycXJl c3RvcmUoJmVuZ2luZS0+YWN0aXZlLmxvY2ssIGZsYWdzKTsKPiAgfQo+ICAKPiAgc3RhdGljIHZv aWQgbm9wX3N1Ym1pc3Npb25fdGFza2xldCh1bnNpZ25lZCBsb25nIGRhdGEpCj4gQEAgLTIyNTAs MTIgKzIyNDksMTIgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX2NhbmNlbF9yZXF1ZXN0cyhzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gIAkgKiBzdWJtaXNzaW9uJ3MgaXJxIHN0YXRl LCB3ZSBhbHNvIHdpc2ggdG8gcmVtaW5kIG91cnNlbHZlcyB0aGF0Cj4gIAkgKiBpdCBpcyBpcnEg c3RhdGUuKQo+ICAJICovCj4gLQlzcGluX2xvY2tfaXJxc2F2ZSgmZW5naW5lLT50aW1lbGluZS5s b2NrLCBmbGFncyk7Cj4gKwlzcGluX2xvY2tfaXJxc2F2ZSgmZW5naW5lLT5hY3RpdmUubG9jaywg ZmxhZ3MpOwo+ICAKPiAgCV9fZXhlY2xpc3RzX3Jlc2V0KGVuZ2luZSwgdHJ1ZSk7Cj4gIAo+ICAJ LyogTWFyayBhbGwgZXhlY3V0aW5nIHJlcXVlc3RzIGFzIHNraXBwZWQuICovCj4gLQlsaXN0X2Zv cl9lYWNoX2VudHJ5KHJxLCAmZW5naW5lLT50aW1lbGluZS5yZXF1ZXN0cywgbGluaykgewo+ICsJ bGlzdF9mb3JfZWFjaF9lbnRyeShycSwgJmVuZ2luZS0+YWN0aXZlLnJlcXVlc3RzLCBzY2hlZC5s aW5rKSB7Cj4gIAkJaWYgKCFpOTE1X3JlcXVlc3Rfc2lnbmFsZWQocnEpKQo+ICAJCQlkbWFfZmVu Y2Vfc2V0X2Vycm9yKCZycS0+ZmVuY2UsIC1FSU8pOwo+ICAKPiBAQCAtMjI4Niw3ICsyMjg1LDcg QEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX2NhbmNlbF9yZXF1ZXN0cyhzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUpCj4gIAkJcmJfZXJhc2VfY2FjaGVkKHJiLCAmZXhlY2xpc3RzLT52aXJ0 dWFsKTsKPiAgCQlSQl9DTEVBUl9OT0RFKHJiKTsKPiAgCj4gLQkJc3Bpbl9sb2NrKCZ2ZS0+YmFz ZS50aW1lbGluZS5sb2NrKTsKPiArCQlzcGluX2xvY2soJnZlLT5iYXNlLmFjdGl2ZS5sb2NrKTsK PiAgCQlpZiAodmUtPnJlcXVlc3QpIHsKPiAgCQkJdmUtPnJlcXVlc3QtPmVuZ2luZSA9IGVuZ2lu ZTsKPiAgCQkJX19pOTE1X3JlcXVlc3Rfc3VibWl0KHZlLT5yZXF1ZXN0KTsKPiBAQCAtMjI5NSw3 ICsyMjk0LDcgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX2NhbmNlbF9yZXF1ZXN0cyhzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gIAkJCXZlLT5iYXNlLmV4ZWNsaXN0cy5xdWV1ZV9w cmlvcml0eV9oaW50ID0gSU5UX01JTjsKPiAgCQkJdmUtPnJlcXVlc3QgPSBOVUxMOwo+ICAJCX0K PiAtCQlzcGluX3VubG9jaygmdmUtPmJhc2UudGltZWxpbmUubG9jayk7Cj4gKwkJc3Bpbl91bmxv Y2soJnZlLT5iYXNlLmFjdGl2ZS5sb2NrKTsKPiAgCX0KPiAgCj4gIAkvKiBSZW1haW5pbmcgX3Vu cmVhZHlfIHJlcXVlc3RzIHdpbGwgYmUgbm9wJ2VkIHdoZW4gc3VibWl0dGVkICovCj4gQEAgLTIz MDcsNyArMjMwNiw3IEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19jYW5jZWxfcmVxdWVzdHMoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAJR0VNX0JVR19PTihfX3Rhc2tsZXRfaXNf ZW5hYmxlZCgmZXhlY2xpc3RzLT50YXNrbGV0KSk7Cj4gIAlleGVjbGlzdHMtPnRhc2tsZXQuZnVu YyA9IG5vcF9zdWJtaXNzaW9uX3Rhc2tsZXQ7Cj4gIAo+IC0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9y ZSgmZW5naW5lLT50aW1lbGluZS5sb2NrLCBmbGFncyk7Cj4gKwlzcGluX3VubG9ja19pcnFyZXN0 b3JlKCZlbmdpbmUtPmFjdGl2ZS5sb2NrLCBmbGFncyk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lk IGV4ZWNsaXN0c19yZXNldF9maW5pc2goc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ IEBAIC0zMDEwLDEyICszMDA5LDE4IEBAIHN0YXRpYyBpbnQgZXhlY2xpc3RzX2NvbnRleHRfZGVm ZXJyZWRfYWxsb2Moc3RydWN0IGludGVsX2NvbnRleHQgKmNlLAo+ICAJcmV0dXJuIHJldDsKPiAg fQo+ICAKPiArc3RhdGljIHN0cnVjdCBsaXN0X2hlYWQgKnZpcnR1YWxfcXVldWUoc3RydWN0IHZp cnR1YWxfZW5naW5lICp2ZSkKPiArewo+ICsJcmV0dXJuICZ2ZS0+YmFzZS5leGVjbGlzdHMuZGVm YXVsdF9wcmlvbGlzdC5yZXF1ZXN0c1swXTsKPiArfQo+ICsKPiAgc3RhdGljIHZvaWQgdmlydHVh bF9jb250ZXh0X2Rlc3Ryb3koc3RydWN0IGtyZWYgKmtyZWYpCj4gIHsKPiAgCXN0cnVjdCB2aXJ0 dWFsX2VuZ2luZSAqdmUgPQo+ICAJCWNvbnRhaW5lcl9vZihrcmVmLCB0eXBlb2YoKnZlKSwgY29u dGV4dC5yZWYpOwo+ICAJdW5zaWduZWQgaW50IG47Cj4gIAo+ICsJR0VNX0JVR19PTighbGlzdF9l bXB0eSh2aXJ0dWFsX3F1ZXVlKHZlKSkpOwo+ICAJR0VNX0JVR19PTih2ZS0+cmVxdWVzdCk7Cj4g IAlHRU1fQlVHX09OKHZlLT5jb250ZXh0LmluZmxpZ2h0KTsKPiAgCj4gQEAgLTMwMjYsMTMgKzMw MzEsMTMgQEAgc3RhdGljIHZvaWQgdmlydHVhbF9jb250ZXh0X2Rlc3Ryb3koc3RydWN0IGtyZWYg KmtyZWYpCj4gIAkJaWYgKFJCX0VNUFRZX05PREUobm9kZSkpCj4gIAkJCWNvbnRpbnVlOwo+ICAK PiAtCQlzcGluX2xvY2tfaXJxKCZzaWJsaW5nLT50aW1lbGluZS5sb2NrKTsKPiArCQlzcGluX2xv Y2tfaXJxKCZzaWJsaW5nLT5hY3RpdmUubG9jayk7Cj4gIAo+ICAJCS8qIERldGFjaG1lbnQgaXMg bGF6aWx5IHBlcmZvcm1lZCBpbiB0aGUgZXhlY2xpc3RzIHRhc2tsZXQgKi8KPiAgCQlpZiAoIVJC X0VNUFRZX05PREUobm9kZSkpCj4gIAkJCXJiX2VyYXNlX2NhY2hlZChub2RlLCAmc2libGluZy0+ ZXhlY2xpc3RzLnZpcnR1YWwpOwo+ICAKPiAtCQlzcGluX3VubG9ja19pcnEoJnNpYmxpbmctPnRp bWVsaW5lLmxvY2spOwo+ICsJCXNwaW5fdW5sb2NrX2lycSgmc2libGluZy0+YWN0aXZlLmxvY2sp Owo+ICAJfQo+ICAJR0VNX0JVR19PTihfX3Rhc2tsZXRfaXNfc2NoZWR1bGVkKCZ2ZS0+YmFzZS5l eGVjbGlzdHMudGFza2xldCkpOwo+ICAKPiBAQCAtMzA0MCw4ICszMDQ1LDYgQEAgc3RhdGljIHZv aWQgdmlydHVhbF9jb250ZXh0X2Rlc3Ryb3koc3RydWN0IGtyZWYgKmtyZWYpCj4gIAkJX19leGVj bGlzdHNfY29udGV4dF9maW5pKCZ2ZS0+Y29udGV4dCk7Cj4gIAo+ICAJa2ZyZWUodmUtPmJvbmRz KTsKPiAtCj4gLQlpOTE1X3RpbWVsaW5lX2ZpbmkoJnZlLT5iYXNlLnRpbWVsaW5lKTsKPiAgCWtm cmVlKHZlKTsKPiAgfQo+ICAKPiBAQCAtMzE2MSwxNiArMzE2NCwxNiBAQCBzdGF0aWMgdm9pZCB2 aXJ0dWFsX3N1Ym1pc3Npb25fdGFza2xldCh1bnNpZ25lZCBsb25nIGRhdGEpCj4gIAo+ICAJCWlm ICh1bmxpa2VseSghKG1hc2sgJiBzaWJsaW5nLT5tYXNrKSkpIHsKPiAgCQkJaWYgKCFSQl9FTVBU WV9OT0RFKCZub2RlLT5yYikpIHsKPiAtCQkJCXNwaW5fbG9jaygmc2libGluZy0+dGltZWxpbmUu bG9jayk7Cj4gKwkJCQlzcGluX2xvY2soJnNpYmxpbmctPmFjdGl2ZS5sb2NrKTsKPiAgCQkJCXJi X2VyYXNlX2NhY2hlZCgmbm9kZS0+cmIsCj4gIAkJCQkJCSZzaWJsaW5nLT5leGVjbGlzdHMudmly dHVhbCk7Cj4gIAkJCQlSQl9DTEVBUl9OT0RFKCZub2RlLT5yYik7Cj4gLQkJCQlzcGluX3VubG9j aygmc2libGluZy0+dGltZWxpbmUubG9jayk7Cj4gKwkJCQlzcGluX3VubG9jaygmc2libGluZy0+ YWN0aXZlLmxvY2spOwo+ICAJCQl9Cj4gIAkJCWNvbnRpbnVlOwo+ICAJCX0KPiAgCj4gLQkJc3Bp bl9sb2NrKCZzaWJsaW5nLT50aW1lbGluZS5sb2NrKTsKPiArCQlzcGluX2xvY2soJnNpYmxpbmct PmFjdGl2ZS5sb2NrKTsKPiAgCj4gIAkJaWYgKCFSQl9FTVBUWV9OT0RFKCZub2RlLT5yYikpIHsK PiAgCQkJLyoKPiBAQCAtMzIxNCw3ICszMjE3LDcgQEAgc3RhdGljIHZvaWQgdmlydHVhbF9zdWJt aXNzaW9uX3Rhc2tsZXQodW5zaWduZWQgbG9uZyBkYXRhKQo+ICAJCQl0YXNrbGV0X2hpX3NjaGVk dWxlKCZzaWJsaW5nLT5leGVjbGlzdHMudGFza2xldCk7Cj4gIAkJfQo+ICAKPiAtCQlzcGluX3Vu bG9jaygmc2libGluZy0+dGltZWxpbmUubG9jayk7Cj4gKwkJc3Bpbl91bmxvY2soJnNpYmxpbmct PmFjdGl2ZS5sb2NrKTsKPiAgCX0KPiAgCWxvY2FsX2lycV9lbmFibGUoKTsKPiAgfQo+IEBAIC0z MjMxLDkgKzMyMzQsMTMgQEAgc3RhdGljIHZvaWQgdmlydHVhbF9zdWJtaXRfcmVxdWVzdChzdHJ1 Y3QgaTkxNV9yZXF1ZXN0ICpycSkKPiAgCUdFTV9CVUdfT04odmUtPmJhc2Uuc3VibWl0X3JlcXVl c3QgIT0gdmlydHVhbF9zdWJtaXRfcmVxdWVzdCk7Cj4gIAo+ICAJR0VNX0JVR19PTih2ZS0+cmVx dWVzdCk7Cj4gKwlHRU1fQlVHX09OKCFsaXN0X2VtcHR5KHZpcnR1YWxfcXVldWUodmUpKSk7Cj4g Kwo+ICAJdmUtPmJhc2UuZXhlY2xpc3RzLnF1ZXVlX3ByaW9yaXR5X2hpbnQgPSBycV9wcmlvKHJx KTsKPiAgCVdSSVRFX09OQ0UodmUtPnJlcXVlc3QsIHJxKTsKPiAgCj4gKwlsaXN0X21vdmVfdGFp bCgmcnEtPnNjaGVkLmxpbmssIHZpcnR1YWxfcXVldWUodmUpKTsKPiArCj4gIAl0YXNrbGV0X3Nj aGVkdWxlKCZ2ZS0+YmFzZS5leGVjbGlzdHMudGFza2xldCk7Cj4gIH0KPiAgCj4gQEAgLTMyOTcs MTAgKzMzMDQsNyBAQCBpbnRlbF9leGVjbGlzdHNfY3JlYXRlX3ZpcnR1YWwoc3RydWN0IGk5MTVf Z2VtX2NvbnRleHQgKmN0eCwKPiAgCj4gIAlzbnByaW50Zih2ZS0+YmFzZS5uYW1lLCBzaXplb2Yo dmUtPmJhc2UubmFtZSksICJ2aXJ0dWFsIik7Cj4gIAo+IC0JZXJyID0gaTkxNV90aW1lbGluZV9p bml0KGN0eC0+aTkxNSwgJnZlLT5iYXNlLnRpbWVsaW5lLCBOVUxMKTsKPiAtCWlmIChlcnIpCj4g LQkJZ290byBlcnJfcHV0Owo+IC0JaTkxNV90aW1lbGluZV9zZXRfc3ViY2xhc3MoJnZlLT5iYXNl LnRpbWVsaW5lLCBUSU1FTElORV9WSVJUVUFMKTsKPiArCWludGVsX2VuZ2luZV9pbml0X2FjdGl2 ZSgmdmUtPmJhc2UsIEVOR0lORV9WSVJUVUFMKTsKPiAgCj4gIAlpbnRlbF9lbmdpbmVfaW5pdF9l eGVjbGlzdHMoJnZlLT5iYXNlKTsKPiAgCj4gQEAgLTMzMTEsNiArMzMxNSw3IEBAIGludGVsX2V4 ZWNsaXN0c19jcmVhdGVfdmlydHVhbChzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAo+ICAJ dmUtPmJhc2Uuc3VibWl0X3JlcXVlc3QgPSB2aXJ0dWFsX3N1Ym1pdF9yZXF1ZXN0Owo+ICAJdmUt PmJhc2UuYm9uZF9leGVjdXRlID0gdmlydHVhbF9ib25kX2V4ZWN1dGU7Cj4gIAo+ICsJSU5JVF9M SVNUX0hFQUQodmlydHVhbF9xdWV1ZSh2ZSkpOwo+ICAJdmUtPmJhc2UuZXhlY2xpc3RzLnF1ZXVl X3ByaW9yaXR5X2hpbnQgPSBJTlRfTUlOOwo+ICAJdGFza2xldF9pbml0KCZ2ZS0+YmFzZS5leGVj bGlzdHMudGFza2xldCwKPiAgCQkgICAgIHZpcnR1YWxfc3VibWlzc2lvbl90YXNrbGV0LAo+IEBA IC0zNDY1LDExICszNDcwLDExIEBAIHZvaWQgaW50ZWxfZXhlY2xpc3RzX3Nob3dfcmVxdWVzdHMo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAo+ICAJdW5zaWduZWQgaW50IGNvdW50Owo+ ICAJc3RydWN0IHJiX25vZGUgKnJiOwo+ICAKPiAtCXNwaW5fbG9ja19pcnFzYXZlKCZlbmdpbmUt PnRpbWVsaW5lLmxvY2ssIGZsYWdzKTsKPiArCXNwaW5fbG9ja19pcnFzYXZlKCZlbmdpbmUtPmFj dGl2ZS5sb2NrLCBmbGFncyk7Cj4gIAo+ICAJbGFzdCA9IE5VTEw7Cj4gIAljb3VudCA9IDA7Cj4g LQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHJxLCAmZW5naW5lLT50aW1lbGluZS5yZXF1ZXN0cywgbGlu aykgewo+ICsJbGlzdF9mb3JfZWFjaF9lbnRyeShycSwgJmVuZ2luZS0+YWN0aXZlLnJlcXVlc3Rz LCBzY2hlZC5saW5rKSB7Cj4gIAkJaWYgKGNvdW50KysgPCBtYXggLSAxKQo+ICAJCQlzaG93X3Jl cXVlc3QobSwgcnEsICJcdFx0RSAiKTsKPiAgCQllbHNlCj4gQEAgLTM1MzIsNyArMzUzNyw3IEBA IHZvaWQgaW50ZWxfZXhlY2xpc3RzX3Nob3dfcmVxdWVzdHMoc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lLAo+ICAJCXNob3dfcmVxdWVzdChtLCBsYXN0LCAiXHRcdFYgIik7Cj4gIAl9Cj4g IAo+IC0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZW5naW5lLT50aW1lbGluZS5sb2NrLCBmbGFn cyk7Cj4gKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZlbmdpbmUtPmFjdGl2ZS5sb2NrLCBmbGFn cyk7Cj4gIH0KPiAgCj4gIHZvaWQgaW50ZWxfbHJfY29udGV4dF9yZXNldChzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUsCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0 L2ludGVsX3Jlc2V0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9yZXNldC5jCj4g aW5kZXggNjBkMjQxMTBhZjgwLi5jZjI1OGVjMzhiYTYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmVzZXQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d0L2ludGVsX3Jlc2V0LmMKPiBAQCAtNDksMTIgKzQ5LDEyIEBAIHN0YXRpYyB2b2lkIGVuZ2lu ZV9za2lwX2NvbnRleHQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpCj4gIAlzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUgPSBycS0+ZW5naW5lOwo+ICAJc3RydWN0IGk5MTVfZ2VtX2NvbnRl eHQgKmh1bmdfY3R4ID0gcnEtPmdlbV9jb250ZXh0Owo+ICAKPiAtCWxvY2tkZXBfYXNzZXJ0X2hl bGQoJmVuZ2luZS0+dGltZWxpbmUubG9jayk7Cj4gKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZlbmdp bmUtPmFjdGl2ZS5sb2NrKTsKPiAgCj4gIAlpZiAoIWk5MTVfcmVxdWVzdF9pc19hY3RpdmUocnEp KQo+ICAJCXJldHVybjsKPiAgCj4gLQlsaXN0X2Zvcl9lYWNoX2VudHJ5X2NvbnRpbnVlKHJxLCAm ZW5naW5lLT50aW1lbGluZS5yZXF1ZXN0cywgbGluaykKPiArCWxpc3RfZm9yX2VhY2hfZW50cnlf Y29udGludWUocnEsICZlbmdpbmUtPmFjdGl2ZS5yZXF1ZXN0cywgc2NoZWQubGluaykKPiAgCQlp ZiAocnEtPmdlbV9jb250ZXh0ID09IGh1bmdfY3R4KQo+ICAJCQlpOTE1X3JlcXVlc3Rfc2tpcChy cSwgLUVJTyk7Cj4gIH0KPiBAQCAtMTMwLDcgKzEzMCw3IEBAIHZvaWQgaTkxNV9yZXNldF9yZXF1 ZXN0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxLCBib29sIGd1aWx0eSkKPiAgCQkgIHJxLT5mZW5j ZS5zZXFubywKPiAgCQkgIHllc25vKGd1aWx0eSkpOwo+ICAKPiAtCWxvY2tkZXBfYXNzZXJ0X2hl bGQoJnJxLT5lbmdpbmUtPnRpbWVsaW5lLmxvY2spOwo+ICsJbG9ja2RlcF9hc3NlcnRfaGVsZCgm cnEtPmVuZ2luZS0+YWN0aXZlLmxvY2spOwo+ICAJR0VNX0JVR19PTihpOTE1X3JlcXVlc3RfY29t cGxldGVkKHJxKSk7Cj4gIAo+ICAJaWYgKGd1aWx0eSkgewo+IEBAIC03ODUsMTAgKzc4NSwxMCBA QCBzdGF0aWMgdm9pZCBub3Bfc3VibWl0X3JlcXVlc3Qoc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVx dWVzdCkKPiAgCQkgIGVuZ2luZS0+bmFtZSwgcmVxdWVzdC0+ZmVuY2UuY29udGV4dCwgcmVxdWVz dC0+ZmVuY2Uuc2Vxbm8pOwo+ICAJZG1hX2ZlbmNlX3NldF9lcnJvcigmcmVxdWVzdC0+ZmVuY2Us IC1FSU8pOwo+ICAKPiAtCXNwaW5fbG9ja19pcnFzYXZlKCZlbmdpbmUtPnRpbWVsaW5lLmxvY2ss IGZsYWdzKTsKPiArCXNwaW5fbG9ja19pcnFzYXZlKCZlbmdpbmUtPmFjdGl2ZS5sb2NrLCBmbGFn cyk7Cj4gIAlfX2k5MTVfcmVxdWVzdF9zdWJtaXQocmVxdWVzdCk7Cj4gIAlpOTE1X3JlcXVlc3Rf bWFya19jb21wbGV0ZShyZXF1ZXN0KTsKPiAtCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVuZ2lu ZS0+dGltZWxpbmUubG9jaywgZmxhZ3MpOwo+ICsJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZW5n aW5lLT5hY3RpdmUubG9jaywgZmxhZ3MpOwo+ICAKPiAgCWludGVsX2VuZ2luZV9xdWV1ZV9icmVh ZGNydW1icyhlbmdpbmUpOwo+ICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d0L2ludGVsX3JpbmdidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jp bmdidWZmZXIuYwo+IGluZGV4IDdhYjI4YjZmNjJhMS4uNjY5YWEwMzYyNDJkIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3JpbmdidWZmZXIuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3JpbmdidWZmZXIuYwo+IEBAIC03MzAsMTQgKzcz MCwxMyBAQCBzdGF0aWMgdm9pZCByZXNldF9wcmVwYXJlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSkKPiAgCj4gIHN0YXRpYyB2b2lkIHJlc2V0X3Jpbmcoc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lLCBib29sIHN0YWxsZWQpCj4gIHsKPiAtCXN0cnVjdCBpOTE1X3RpbWVsaW5l ICp0bCA9ICZlbmdpbmUtPnRpbWVsaW5lOwo+ICAJc3RydWN0IGk5MTVfcmVxdWVzdCAqcG9zLCAq cnE7Cj4gIAl1bnNpZ25lZCBsb25nIGZsYWdzOwo+ICAJdTMyIGhlYWQ7Cj4gIAo+ICAJcnEgPSBO VUxMOwo+IC0Jc3Bpbl9sb2NrX2lycXNhdmUoJnRsLT5sb2NrLCBmbGFncyk7Cj4gLQlsaXN0X2Zv cl9lYWNoX2VudHJ5KHBvcywgJnRsLT5yZXF1ZXN0cywgbGluaykgewo+ICsJc3Bpbl9sb2NrX2ly cXNhdmUoJmVuZ2luZS0+YWN0aXZlLmxvY2ssIGZsYWdzKTsKPiArCWxpc3RfZm9yX2VhY2hfZW50 cnkocG9zLCAmZW5naW5lLT5hY3RpdmUucmVxdWVzdHMsIHNjaGVkLmxpbmspIHsKPiAgCQlpZiAo IWk5MTVfcmVxdWVzdF9jb21wbGV0ZWQocG9zKSkgewo+ICAJCQlycSA9IHBvczsKPiAgCQkJYnJl YWs7Cj4gQEAgLTc5MSw3ICs3OTAsNyBAQCBzdGF0aWMgdm9pZCByZXNldF9yaW5nKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgYm9vbCBzdGFsbGVkKQo+ICAJfQo+ICAJZW5naW5lLT5i dWZmZXItPmhlYWQgPSBpbnRlbF9yaW5nX3dyYXAoZW5naW5lLT5idWZmZXIsIGhlYWQpOwo+ICAK PiAtCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnRsLT5sb2NrLCBmbGFncyk7Cj4gKwlzcGluX3Vu bG9ja19pcnFyZXN0b3JlKCZlbmdpbmUtPmFjdGl2ZS5sb2NrLCBmbGFncyk7Cj4gIH0KPiAgCj4g IHN0YXRpYyB2b2lkIHJlc2V0X2ZpbmlzaChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUp Cj4gQEAgLTg3NywxMCArODc2LDEwIEBAIHN0YXRpYyB2b2lkIGNhbmNlbF9yZXF1ZXN0cyhzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gIAlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1 ZXN0Owo+ICAJdW5zaWduZWQgbG9uZyBmbGFnczsKPiAgCj4gLQlzcGluX2xvY2tfaXJxc2F2ZSgm ZW5naW5lLT50aW1lbGluZS5sb2NrLCBmbGFncyk7Cj4gKwlzcGluX2xvY2tfaXJxc2F2ZSgmZW5n aW5lLT5hY3RpdmUubG9jaywgZmxhZ3MpOwo+ICAKPiAgCS8qIE1hcmsgYWxsIHN1Ym1pdHRlZCBy ZXF1ZXN0cyBhcyBza2lwcGVkLiAqLwo+IC0JbGlzdF9mb3JfZWFjaF9lbnRyeShyZXF1ZXN0LCAm ZW5naW5lLT50aW1lbGluZS5yZXF1ZXN0cywgbGluaykgewo+ICsJbGlzdF9mb3JfZWFjaF9lbnRy eShyZXF1ZXN0LCAmZW5naW5lLT5hY3RpdmUucmVxdWVzdHMsIHNjaGVkLmxpbmspIHsKPiAgCQlp ZiAoIWk5MTVfcmVxdWVzdF9zaWduYWxlZChyZXF1ZXN0KSkKPiAgCQkJZG1hX2ZlbmNlX3NldF9l cnJvcigmcmVxdWVzdC0+ZmVuY2UsIC1FSU8pOwo+ICAKPiBAQCAtODg5LDcgKzg4OCw3IEBAIHN0 YXRpYyB2b2lkIGNhbmNlbF9yZXF1ZXN0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUp Cj4gIAo+ICAJLyogUmVtYWluaW5nIF91bnJlYWR5XyByZXF1ZXN0cyB3aWxsIGJlIG5vcCdlZCB3 aGVuIHN1Ym1pdHRlZCAqLwo+ICAKPiAtCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+ dGltZWxpbmUubG9jaywgZmxhZ3MpOwo+ICsJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZW5naW5l LT5hY3RpdmUubG9jaywgZmxhZ3MpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZCBpOXh4X3N1Ym1p dF9yZXF1ZXN0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QpCj4gQEAgLTEyNjcsOCArMTI2 Niw2IEBAIGludGVsX2VuZ2luZV9jcmVhdGVfcmluZyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUsCj4gIAo+ICAJR0VNX0JVR19PTighaXNfcG93ZXJfb2ZfMihzaXplKSk7Cj4gIAlHRU1f QlVHX09OKFJJTkdfQ1RMX1NJWkUoc2l6ZSkgJiB+UklOR19OUl9QQUdFUyk7Cj4gLQlHRU1fQlVH X09OKHRpbWVsaW5lID09ICZlbmdpbmUtPnRpbWVsaW5lKTsKPiAtCWxvY2tkZXBfYXNzZXJ0X2hl bGQoJmVuZ2luZS0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4gIAo+ICAJcmluZyA9IGt6YWxs b2Moc2l6ZW9mKCpyaW5nKSwgR0ZQX0tFUk5FTCk7Cj4gIAlpZiAoIXJpbmcpCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L21vY2tfZW5naW5lLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC9tb2NrX2VuZ2luZS5jCj4gaW5kZXggYjc2NzVlZjE4NTIzLi4wMGM2NjZkM2U2 NTIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvbW9ja19lbmdpbmUuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L21vY2tfZW5naW5lLmMKPiBAQCAtMjI5LDE3 ICsyMjksMTcgQEAgc3RhdGljIHZvaWQgbW9ja19jYW5jZWxfcmVxdWVzdHMoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lKQo+ICAJc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdDsKPiAg CXVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4gIAo+IC0Jc3Bpbl9sb2NrX2lycXNhdmUoJmVuZ2luZS0+ dGltZWxpbmUubG9jaywgZmxhZ3MpOwo+ICsJc3Bpbl9sb2NrX2lycXNhdmUoJmVuZ2luZS0+YWN0 aXZlLmxvY2ssIGZsYWdzKTsKPiAgCj4gIAkvKiBNYXJrIGFsbCBzdWJtaXR0ZWQgcmVxdWVzdHMg YXMgc2tpcHBlZC4gKi8KPiAtCWxpc3RfZm9yX2VhY2hfZW50cnkocmVxdWVzdCwgJmVuZ2luZS0+ dGltZWxpbmUucmVxdWVzdHMsIHNjaGVkLmxpbmspIHsKPiArCWxpc3RfZm9yX2VhY2hfZW50cnko cmVxdWVzdCwgJmVuZ2luZS0+YWN0aXZlLnJlcXVlc3RzLCBzY2hlZC5saW5rKSB7Cj4gIAkJaWYg KCFpOTE1X3JlcXVlc3Rfc2lnbmFsZWQocmVxdWVzdCkpCj4gIAkJCWRtYV9mZW5jZV9zZXRfZXJy b3IoJnJlcXVlc3QtPmZlbmNlLCAtRUlPKTsKPiAgCj4gIAkJaTkxNV9yZXF1ZXN0X21hcmtfY29t cGxldGUocmVxdWVzdCk7Cj4gIAl9Cj4gIAo+IC0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZW5n aW5lLT50aW1lbGluZS5sb2NrLCBmbGFncyk7Cj4gKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZl bmdpbmUtPmFjdGl2ZS5sb2NrLCBmbGFncyk7Cj4gIH0KPiAgCj4gIHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKm1vY2tfZW5naW5lKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAo+IEBAIC0y ODUsMjggKzI4NSwyMyBAQCBpbnQgbW9ja19lbmdpbmVfaW5pdChzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUpCj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGVuZ2luZS0+ aTkxNTsKPiAgCWludCBlcnI7Cj4gIAo+ICsJaW50ZWxfZW5naW5lX2luaXRfYWN0aXZlKGVuZ2lu ZSwgRU5HSU5FX01PQ0spOwo+ICAJaW50ZWxfZW5naW5lX2luaXRfYnJlYWRjcnVtYnMoZW5naW5l KTsKPiAgCWludGVsX2VuZ2luZV9pbml0X2V4ZWNsaXN0cyhlbmdpbmUpOwo+ICAJaW50ZWxfZW5n aW5lX2luaXRfX3BtKGVuZ2luZSk7Cj4gIAo+IC0JaWYgKGk5MTVfdGltZWxpbmVfaW5pdChpOTE1 LCAmZW5naW5lLT50aW1lbGluZSwgTlVMTCkpCj4gLQkJZ290byBlcnJfYnJlYWRjcnVtYnM7Cj4g LQlpOTE1X3RpbWVsaW5lX3NldF9zdWJjbGFzcygmZW5naW5lLT50aW1lbGluZSwgVElNRUxJTkVf RU5HSU5FKTsKPiAtCj4gIAllbmdpbmUtPmtlcm5lbF9jb250ZXh0ID0KPiAgCQlpOTE1X2dlbV9j b250ZXh0X2dldF9lbmdpbmUoaTkxNS0+a2VybmVsX2NvbnRleHQsIGVuZ2luZS0+aWQpOwo+ICAJ aWYgKElTX0VSUihlbmdpbmUtPmtlcm5lbF9jb250ZXh0KSkKPiAtCQlnb3RvIGVycl90aW1lbGlu ZTsKPiArCQlnb3RvIGVycl9icmVhZGNydW1iczsKPiAgCj4gIAllcnIgPSBpbnRlbF9jb250ZXh0 X3BpbihlbmdpbmUtPmtlcm5lbF9jb250ZXh0KTsKPiAgCWludGVsX2NvbnRleHRfcHV0KGVuZ2lu ZS0+a2VybmVsX2NvbnRleHQpOwo+ICAJaWYgKGVycikKPiAtCQlnb3RvIGVycl90aW1lbGluZTsK PiArCQlnb3RvIGVycl9icmVhZGNydW1iczsKPiAgCj4gIAlyZXR1cm4gMDsKPiAgCj4gLWVycl90 aW1lbGluZToKPiAtCWk5MTVfdGltZWxpbmVfZmluaSgmZW5naW5lLT50aW1lbGluZSk7Cj4gIGVy cl9icmVhZGNydW1iczoKPiAgCWludGVsX2VuZ2luZV9maW5pX2JyZWFkY3J1bWJzKGVuZ2luZSk7 Cj4gIAlyZXR1cm4gLUVOT01FTTsKPiBAQCAtMzQwLDcgKzMzNSw2IEBAIHZvaWQgbW9ja19lbmdp bmVfZnJlZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gIAlpbnRlbF9jb250ZXh0 X3VucGluKGVuZ2luZS0+a2VybmVsX2NvbnRleHQpOwo+ICAKPiAgCWludGVsX2VuZ2luZV9maW5p X2JyZWFkY3J1bWJzKGVuZ2luZSk7Cj4gLQlpOTE1X3RpbWVsaW5lX2ZpbmkoJmVuZ2luZS0+dGlt ZWxpbmUpOwo+ICAKPiAgCWtmcmVlKGVuZ2luZSk7Cj4gIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ3B1X2Vycm9yLmMKPiBpbmRleCBkYzAyNmQ1Y2Q3YTAuLjRjYmVlNGMyMDZiZCAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwo+IEBAIC0xMjc1LDcgKzEyNzUsNyBA QCBzdGF0aWMgdm9pZCBlbmdpbmVfcmVjb3JkX3JlcXVlc3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSwKPiAgCj4gIAljb3VudCA9IDA7Cj4gIAlyZXF1ZXN0ID0gZmlyc3Q7Cj4gLQls aXN0X2Zvcl9lYWNoX2VudHJ5X2Zyb20ocmVxdWVzdCwgJmVuZ2luZS0+dGltZWxpbmUucmVxdWVz dHMsIGxpbmspCj4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X2Zyb20ocmVxdWVzdCwgJmVuZ2luZS0+ YWN0aXZlLnJlcXVlc3RzLCBzY2hlZC5saW5rKQo+ICAJCWNvdW50Kys7Cj4gIAlpZiAoIWNvdW50 KQo+ICAJCXJldHVybjsKPiBAQCAtMTI4OCw3ICsxMjg4LDggQEAgc3RhdGljIHZvaWQgZW5naW5l X3JlY29yZF9yZXF1ZXN0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCj4gIAo+ICAJ Y291bnQgPSAwOwo+ICAJcmVxdWVzdCA9IGZpcnN0Owo+IC0JbGlzdF9mb3JfZWFjaF9lbnRyeV9m cm9tKHJlcXVlc3QsICZlbmdpbmUtPnRpbWVsaW5lLnJlcXVlc3RzLCBsaW5rKSB7Cj4gKwlsaXN0 X2Zvcl9lYWNoX2VudHJ5X2Zyb20ocmVxdWVzdCwKPiArCQkJCSAmZW5naW5lLT5hY3RpdmUucmVx dWVzdHMsIHNjaGVkLmxpbmspIHsKPiAgCQlpZiAoY291bnQgPj0gZWUtPm51bV9yZXF1ZXN0cykg ewo+ICAJCQkvKgo+ICAJCQkgKiBJZiB0aGUgcmluZyByZXF1ZXN0IGxpc3Qgd2FzIGNoYW5nZWQg aW4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYwo+IGluZGV4IDljNThhZTZlNGFmYi4u NmIwYTRkOTM0M2E2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVx dWVzdC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmMKPiBAQCAt MjMyLDkgKzIzMiw5IEBAIHN0YXRpYyBib29sIGk5MTVfcmVxdWVzdF9yZXRpcmUoc3RydWN0IGk5 MTVfcmVxdWVzdCAqcnEpCj4gIAo+ICAJbG9jYWxfaXJxX2Rpc2FibGUoKTsKPiAgCj4gLQlzcGlu X2xvY2soJnJxLT5lbmdpbmUtPnRpbWVsaW5lLmxvY2spOwo+IC0JbGlzdF9kZWwoJnJxLT5saW5r KTsKPiAtCXNwaW5fdW5sb2NrKCZycS0+ZW5naW5lLT50aW1lbGluZS5sb2NrKTsKPiArCXNwaW5f bG9jaygmcnEtPmVuZ2luZS0+YWN0aXZlLmxvY2spOwo+ICsJbGlzdF9kZWwoJnJxLT5zY2hlZC5s aW5rKTsKPiArCXNwaW5fdW5sb2NrKCZycS0+ZW5naW5lLT5hY3RpdmUubG9jayk7Cj4gIAo+ICAJ c3Bpbl9sb2NrKCZycS0+bG9jayk7Cj4gIAlpOTE1X3JlcXVlc3RfbWFya19jb21wbGV0ZShycSk7 Cj4gQEAgLTI1NCw2ICsyNTQsNyBAQCBzdGF0aWMgYm9vbCBpOTE1X3JlcXVlc3RfcmV0aXJlKHN0 cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQo+ICAJaW50ZWxfY29udGV4dF91bnBpbihycS0+aHdfY29u dGV4dCk7Cj4gIAo+ICAJaTkxNV9yZXF1ZXN0X3JlbW92ZV9mcm9tX2NsaWVudChycSk7Cj4gKwls aXN0X2RlbCgmcnEtPmxpbmspOwoKVGhpcyBpcyBub3cgdW5ndWFyZGVkLiBhbmQgdGhlIHRpbWVs aW5lIG11dGV4IGlzIG5vdCBoZXJlCnRvIGhlbHAgZWl0aGVyLgoKLU1pa2EKCgo+ICAKPiAgCWZy ZWVfY2FwdHVyZV9saXN0KHJxKTsKPiAgCWk5MTVfc2NoZWRfbm9kZV9maW5pKCZycS0+c2NoZWQp Owo+IEBAIC0zNzMsMjggKzM3NCwxNyBAQCBfX2k5MTVfcmVxdWVzdF9hd2FpdF9leGVjdXRpb24o c3RydWN0IGk5MTVfcmVxdWVzdCAqcnEsCj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAKPiAtc3RhdGlj IHZvaWQgbW92ZV90b190aW1lbGluZShzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpyZXF1ZXN0LAo+IC0J CQkgICAgIHN0cnVjdCBpOTE1X3RpbWVsaW5lICp0aW1lbGluZSkKPiAtewo+IC0JR0VNX0JVR19P TihyZXF1ZXN0LT50aW1lbGluZSA9PSAmcmVxdWVzdC0+ZW5naW5lLT50aW1lbGluZSk7Cj4gLQls b2NrZGVwX2Fzc2VydF9oZWxkKCZyZXF1ZXN0LT5lbmdpbmUtPnRpbWVsaW5lLmxvY2spOwo+IC0K PiAtCXNwaW5fbG9jaygmcmVxdWVzdC0+dGltZWxpbmUtPmxvY2spOwo+IC0JbGlzdF9tb3ZlX3Rh aWwoJnJlcXVlc3QtPmxpbmssICZ0aW1lbGluZS0+cmVxdWVzdHMpOwo+IC0Jc3Bpbl91bmxvY2so JnJlcXVlc3QtPnRpbWVsaW5lLT5sb2NrKTsKPiAtfQo+IC0KPiAgdm9pZCBfX2k5MTVfcmVxdWVz dF9zdWJtaXQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCkKPiAgewo+ICAJc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lID0gcmVxdWVzdC0+ZW5naW5lOwo+ICAKPiAtCUdFTV9UUkFD RSgiJXMgZmVuY2UgJWxseDolbGxkIC0+IGN1cnJlbnQgJWRcbiIsCj4gKwlHRU1fVFJBQ0UoIiVz IGZlbmNlICVsbHg6JWxsZCwgY3VycmVudCAlZFxuIiwKPiAgCQkgIGVuZ2luZS0+bmFtZSwKPiAg CQkgIHJlcXVlc3QtPmZlbmNlLmNvbnRleHQsIHJlcXVlc3QtPmZlbmNlLnNlcW5vLAo+ICAJCSAg aHdzcF9zZXFubyhyZXF1ZXN0KSk7Cj4gIAo+ICAJR0VNX0JVR19PTighaXJxc19kaXNhYmxlZCgp KTsKPiAtCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmVuZ2luZS0+dGltZWxpbmUubG9jayk7Cj4gKwls b2NrZGVwX2Fzc2VydF9oZWxkKCZlbmdpbmUtPmFjdGl2ZS5sb2NrKTsKPiAgCj4gIAlpZiAoaTkx NV9nZW1fY29udGV4dF9pc19iYW5uZWQocmVxdWVzdC0+Z2VtX2NvbnRleHQpKQo+ICAJCWk5MTVf cmVxdWVzdF9za2lwKHJlcXVlc3QsIC1FSU8pOwo+IEBAIC00MjIsNiArNDEyLDggQEAgdm9pZCBf X2k5MTVfcmVxdWVzdF9zdWJtaXQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCkKPiAgCS8q IFdlIG1heSBiZSByZWN1cnNpbmcgZnJvbSB0aGUgc2lnbmFsIGNhbGxiYWNrIG9mIGFub3RoZXIg aTkxNSBmZW5jZSAqLwo+ICAJc3Bpbl9sb2NrX25lc3RlZCgmcmVxdWVzdC0+bG9jaywgU0lOR0xF X0RFUFRIX05FU1RJTkcpOwo+ICAKPiArCWxpc3RfbW92ZV90YWlsKCZyZXF1ZXN0LT5zY2hlZC5s aW5rLCAmZW5naW5lLT5hY3RpdmUucmVxdWVzdHMpOwo+ICsKPiAgCUdFTV9CVUdfT04odGVzdF9i aXQoSTkxNV9GRU5DRV9GTEFHX0FDVElWRSwgJnJlcXVlc3QtPmZlbmNlLmZsYWdzKSk7Cj4gIAlz ZXRfYml0KEk5MTVfRkVOQ0VfRkxBR19BQ1RJVkUsICZyZXF1ZXN0LT5mZW5jZS5mbGFncyk7Cj4g IAo+IEBAIC00MzcsOSArNDI5LDYgQEAgdm9pZCBfX2k5MTVfcmVxdWVzdF9zdWJtaXQoc3RydWN0 IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCkKPiAgCWVuZ2luZS0+ZW1pdF9maW5pX2JyZWFkY3J1bWIo cmVxdWVzdCwKPiAgCQkJCSAgICAgcmVxdWVzdC0+cmluZy0+dmFkZHIgKyByZXF1ZXN0LT5wb3N0 Zml4KTsKPiAgCj4gLQkvKiBUcmFuc2ZlciBmcm9tIHBlci1jb250ZXh0IG9udG8gdGhlIGdsb2Jh bCBwZXItZW5naW5lIHRpbWVsaW5lICovCj4gLQltb3ZlX3RvX3RpbWVsaW5lKHJlcXVlc3QsICZl bmdpbmUtPnRpbWVsaW5lKTsKPiAtCj4gIAllbmdpbmUtPnNlcmlhbCsrOwo+ICAKPiAgCXRyYWNl X2k5MTVfcmVxdWVzdF9leGVjdXRlKHJlcXVlc3QpOwo+IEBAIC00NTEsMTEgKzQ0MCwxMSBAQCB2 b2lkIGk5MTVfcmVxdWVzdF9zdWJtaXQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCkKPiAg CXVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4gIAo+ICAJLyogV2lsbCBiZSBjYWxsZWQgZnJvbSBpcnEt Y29udGV4dCB3aGVuIHVzaW5nIGZvcmVpZ24gZmVuY2VzLiAqLwo+IC0Jc3Bpbl9sb2NrX2lycXNh dmUoJmVuZ2luZS0+dGltZWxpbmUubG9jaywgZmxhZ3MpOwo+ICsJc3Bpbl9sb2NrX2lycXNhdmUo JmVuZ2luZS0+YWN0aXZlLmxvY2ssIGZsYWdzKTsKPiAgCj4gIAlfX2k5MTVfcmVxdWVzdF9zdWJt aXQocmVxdWVzdCk7Cj4gIAo+IC0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZW5naW5lLT50aW1l bGluZS5sb2NrLCBmbGFncyk7Cj4gKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZlbmdpbmUtPmFj dGl2ZS5sb2NrLCBmbGFncyk7Cj4gIH0KPiAgCj4gIHZvaWQgX19pOTE1X3JlcXVlc3RfdW5zdWJt aXQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCkKPiBAQCAtNDY4LDcgKzQ1Nyw3IEBAIHZv aWQgX19pOTE1X3JlcXVlc3RfdW5zdWJtaXQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCkK PiAgCQkgIGh3c3Bfc2Vxbm8ocmVxdWVzdCkpOwo+ICAKPiAgCUdFTV9CVUdfT04oIWlycXNfZGlz YWJsZWQoKSk7Cj4gLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZlbmdpbmUtPnRpbWVsaW5lLmxvY2sp Owo+ICsJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZW5naW5lLT5hY3RpdmUubG9jayk7Cj4gIAo+ICAJ LyoKPiAgCSAqIE9ubHkgdW53aW5kIGluIHJldmVyc2Ugb3JkZXIsIHJlcXVpcmVkIHNvIHRoYXQg dGhlIHBlci1jb250ZXh0IGxpc3QKPiBAQCAtNDg2LDkgKzQ3NSw2IEBAIHZvaWQgX19pOTE1X3Jl cXVlc3RfdW5zdWJtaXQoc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCkKPiAgCj4gIAlzcGlu X3VubG9jaygmcmVxdWVzdC0+bG9jayk7Cj4gIAo+IC0JLyogVHJhbnNmZXIgYmFjayBmcm9tIHRo ZSBnbG9iYWwgcGVyLWVuZ2luZSB0aW1lbGluZSB0byBwZXItY29udGV4dCAqLwo+IC0JbW92ZV90 b190aW1lbGluZShyZXF1ZXN0LCByZXF1ZXN0LT50aW1lbGluZSk7Cj4gLQo+ICAJLyogV2UndmUg YWxyZWFkeSBzcHVuLCBkb24ndCBjaGFyZ2Ugb24gcmVzdWJtaXR0aW5nLiAqLwo+ICAJaWYgKHJl cXVlc3QtPnNjaGVkLnNlbWFwaG9yZXMgJiYgaTkxNV9yZXF1ZXN0X3N0YXJ0ZWQocmVxdWVzdCkp IHsKPiAgCQlyZXF1ZXN0LT5zY2hlZC5hdHRyLnByaW9yaXR5IHw9IEk5MTVfUFJJT1JJVFlfTk9T RU1BUEhPUkU7Cj4gQEAgLTUxMCwxMSArNDk2LDExIEBAIHZvaWQgaTkxNV9yZXF1ZXN0X3Vuc3Vi bWl0KHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJlcXVlc3QpCj4gIAl1bnNpZ25lZCBsb25nIGZsYWdz Owo+ICAKPiAgCS8qIFdpbGwgYmUgY2FsbGVkIGZyb20gaXJxLWNvbnRleHQgd2hlbiB1c2luZyBm b3JlaWduIGZlbmNlcy4gKi8KPiAtCXNwaW5fbG9ja19pcnFzYXZlKCZlbmdpbmUtPnRpbWVsaW5l LmxvY2ssIGZsYWdzKTsKPiArCXNwaW5fbG9ja19pcnFzYXZlKCZlbmdpbmUtPmFjdGl2ZS5sb2Nr LCBmbGFncyk7Cj4gIAo+ICAJX19pOTE1X3JlcXVlc3RfdW5zdWJtaXQocmVxdWVzdCk7Cj4gIAo+ IC0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZW5naW5lLT50aW1lbGluZS5sb2NrLCBmbGFncyk7 Cj4gKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZlbmdpbmUtPmFjdGl2ZS5sb2NrLCBmbGFncyk7 Cj4gIH0KPiAgCj4gIHN0YXRpYyBpbnQgX19pOTE1X3N3X2ZlbmNlX2NhbGwKPiBAQCAtNjY5LDcg KzY1NSw2IEBAIF9faTkxNV9yZXF1ZXN0X2NyZWF0ZShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2Us IGdmcF90IGdmcCkKPiAgCXJxLT5lbmdpbmUgPSBjZS0+ZW5naW5lOwo+ICAJcnEtPnJpbmcgPSBj ZS0+cmluZzsKPiAgCXJxLT50aW1lbGluZSA9IHRsOwo+IC0JR0VNX0JVR19PTihycS0+dGltZWxp bmUgPT0gJmNlLT5lbmdpbmUtPnRpbWVsaW5lKTsKPiAgCXJxLT5od3NwX3NlcW5vID0gdGwtPmh3 c3Bfc2Vxbm87Cj4gIAlycS0+aHdzcF9jYWNoZWxpbmUgPSB0bC0+aHdzcF9jYWNoZWxpbmU7Cj4g IAlycS0+cmN1c3RhdGUgPSBnZXRfc3RhdGVfc3luY2hyb25pemVfcmN1KCk7IC8qIGFjdHMgYXMg c21wX21iKCkgKi8KPiBAQCAtMTEzNyw5ICsxMTIyLDcgQEAgX19pOTE1X3JlcXVlc3RfYWRkX3Rv X3RpbWVsaW5lKHN0cnVjdCBpOTE1X3JlcXVlc3QgKnJxKQo+ICAJCQkJCQkJIDApOwo+ICAJfQo+ ICAKPiAtCXNwaW5fbG9ja19pcnEoJnRpbWVsaW5lLT5sb2NrKTsKPiAgCWxpc3RfYWRkX3RhaWwo JnJxLT5saW5rLCAmdGltZWxpbmUtPnJlcXVlc3RzKTsKPiAtCXNwaW5fdW5sb2NrX2lycSgmdGlt ZWxpbmUtPmxvY2spOwo+ICAKPiAgCS8qCj4gIAkgKiBNYWtlIHN1cmUgdGhhdCBubyByZXF1ZXN0 IGdhenVtcGVkIHVzIC0gaWYgaXQgd2FzIGFsbG9jYXRlZCBhZnRlcgo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcmVxdWVzdC5oCj4gaW5kZXggYzlmN2QwNzk5MWM4Li5lZGJiZGZlYzI0YWIgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0LmgKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuaAo+IEBAIC0yMTcsNyArMjE3LDcgQEAgc3Ry dWN0IGk5MTVfcmVxdWVzdCB7Cj4gIAo+ICAJYm9vbCB3YWl0Ym9vc3Q7Cj4gIAo+IC0JLyoqIGVu Z2luZS0+cmVxdWVzdF9saXN0IGVudHJ5IGZvciB0aGlzIHJlcXVlc3QgKi8KPiArCS8qKiB0aW1l bGluZS0+cmVxdWVzdCBlbnRyeSBmb3IgdGhpcyByZXF1ZXN0ICovCj4gIAlzdHJ1Y3QgbGlzdF9o ZWFkIGxpbms7Cj4gIAo+ICAJLyoqIHJpbmctPnJlcXVlc3RfbGlzdCBlbnRyeSBmb3IgdGhpcyBy ZXF1ZXN0ICovCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2NoZWR1 bGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3NjaGVkdWxlci5jCj4gaW5kZXggNzhj ZWI1NmQ3ODAxLi4yZTliMzhiZGMzM2MgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9zY2hlZHVsZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc2No ZWR1bGVyLmMKPiBAQCAtNzcsNyArNzcsNyBAQCBpOTE1X3NjaGVkX2xvb2t1cF9wcmlvbGlzdChz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIGludCBwcmlvKQo+ICAJYm9vbCBmaXJzdCA9 IHRydWU7Cj4gIAlpbnQgaWR4LCBpOwo+ICAKPiAtCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmVuZ2lu ZS0+dGltZWxpbmUubG9jayk7Cj4gKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZlbmdpbmUtPmFjdGl2 ZS5sb2NrKTsKPiAgCWFzc2VydF9wcmlvbGlzdHMoZXhlY2xpc3RzKTsKPiAgCj4gIAkvKiBidWNr ZXRzIHNvcnRlZCBmcm9tIGhpZ2hlc3QgW2luIHNsb3QgMF0gdG8gbG93ZXN0IHByaW9yaXR5ICov Cj4gQEAgLTE2Miw5ICsxNjIsOSBAQCBzY2hlZF9sb2NrX2VuZ2luZShjb25zdCBzdHJ1Y3QgaTkx NV9zY2hlZF9ub2RlICpub2RlLAo+ICAJICogY2hlY2sgdGhhdCB0aGUgcnEgc3RpbGwgYmVsb25n cyB0byB0aGUgbmV3bHkgbG9ja2VkIGVuZ2luZS4KPiAgCSAqLwo+ICAJd2hpbGUgKGxvY2tlZCAh PSAoZW5naW5lID0gUkVBRF9PTkNFKHJxLT5lbmdpbmUpKSkgewo+IC0JCXNwaW5fdW5sb2NrKCZs b2NrZWQtPnRpbWVsaW5lLmxvY2spOwo+ICsJCXNwaW5fdW5sb2NrKCZsb2NrZWQtPmFjdGl2ZS5s b2NrKTsKPiAgCQltZW1zZXQoY2FjaGUsIDAsIHNpemVvZigqY2FjaGUpKTsKPiAtCQlzcGluX2xv Y2soJmVuZ2luZS0+dGltZWxpbmUubG9jayk7Cj4gKwkJc3Bpbl9sb2NrKCZlbmdpbmUtPmFjdGl2 ZS5sb2NrKTsKPiAgCQlsb2NrZWQgPSBlbmdpbmU7Cj4gIAl9Cj4gIAo+IEBAIC0xODksNyArMTg5 LDcgQEAgc3RhdGljIHZvaWQga2lja19zdWJtaXNzaW9uKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSwgaW50IHByaW8pCj4gIAkgKiB0YXNrbGV0LCBpLmUuIHdlIGhhdmUgbm90IGNoYW5n ZSB0aGUgcHJpb3JpdHkgcXVldWUKPiAgCSAqIHN1ZmZpY2llbnRseSB0byBvdXN0IHRoZSBydW5u aW5nIGNvbnRleHQuCj4gIAkgKi8KPiAtCWlmIChpbmZsaWdodCAmJiAhaTkxNV9zY2hlZHVsZXJf bmVlZF9wcmVlbXB0KHByaW8sIHJxX3ByaW8oaW5mbGlnaHQpKSkKPiArCWlmICghaW5mbGlnaHQg fHwgIWk5MTVfc2NoZWR1bGVyX25lZWRfcHJlZW1wdChwcmlvLCBycV9wcmlvKGluZmxpZ2h0KSkp Cj4gIAkJcmV0dXJuOwo+ICAKPiAgCXRhc2tsZXRfaGlfc2NoZWR1bGUoJmVuZ2luZS0+ZXhlY2xp c3RzLnRhc2tsZXQpOwo+IEBAIC0yNzgsNyArMjc4LDcgQEAgc3RhdGljIHZvaWQgX19pOTE1X3Nj aGVkdWxlKHN0cnVjdCBpOTE1X3NjaGVkX25vZGUgKm5vZGUsCj4gIAo+ICAJbWVtc2V0KCZjYWNo ZSwgMCwgc2l6ZW9mKGNhY2hlKSk7Cj4gIAllbmdpbmUgPSBub2RlX3RvX3JlcXVlc3Qobm9kZSkt PmVuZ2luZTsKPiAtCXNwaW5fbG9jaygmZW5naW5lLT50aW1lbGluZS5sb2NrKTsKPiArCXNwaW5f bG9jaygmZW5naW5lLT5hY3RpdmUubG9jayk7Cj4gIAo+ICAJLyogRmlmbyBhbmQgZGVwdGgtZmly c3QgcmVwbGFjZW1lbnQgZW5zdXJlIG91ciBkZXBzIGV4ZWN1dGUgYmVmb3JlIHVzICovCj4gIAll bmdpbmUgPSBzY2hlZF9sb2NrX2VuZ2luZShub2RlLCBlbmdpbmUsICZjYWNoZSk7Cj4gQEAgLTI4 Nyw3ICsyODcsNyBAQCBzdGF0aWMgdm9pZCBfX2k5MTVfc2NoZWR1bGUoc3RydWN0IGk5MTVfc2No ZWRfbm9kZSAqbm9kZSwKPiAgCj4gIAkJbm9kZSA9IGRlcC0+c2lnbmFsZXI7Cj4gIAkJZW5naW5l ID0gc2NoZWRfbG9ja19lbmdpbmUobm9kZSwgZW5naW5lLCAmY2FjaGUpOwo+IC0JCWxvY2tkZXBf YXNzZXJ0X2hlbGQoJmVuZ2luZS0+dGltZWxpbmUubG9jayk7Cj4gKwkJbG9ja2RlcF9hc3NlcnRf aGVsZCgmZW5naW5lLT5hY3RpdmUubG9jayk7Cj4gIAo+ICAJCS8qIFJlY2hlY2sgYWZ0ZXIgYWNx dWlyaW5nIHRoZSBlbmdpbmUtPnRpbWVsaW5lLmxvY2sgKi8KPiAgCQlpZiAocHJpbyA8PSBub2Rl LT5hdHRyLnByaW9yaXR5IHx8IG5vZGVfc2lnbmFsZWQobm9kZSkpCj4gQEAgLTI5NiwxNCArMjk2 LDggQEAgc3RhdGljIHZvaWQgX19pOTE1X3NjaGVkdWxlKHN0cnVjdCBpOTE1X3NjaGVkX25vZGUg Km5vZGUsCj4gIAkJR0VNX0JVR19PTihub2RlX3RvX3JlcXVlc3Qobm9kZSktPmVuZ2luZSAhPSBl bmdpbmUpOwo+ICAKPiAgCQlub2RlLT5hdHRyLnByaW9yaXR5ID0gcHJpbzsKPiAtCQlpZiAoIWxp c3RfZW1wdHkoJm5vZGUtPmxpbmspKSB7Cj4gLQkJCUdFTV9CVUdfT04oaW50ZWxfZW5naW5lX2lz X3ZpcnR1YWwoZW5naW5lKSk7Cj4gLQkJCWlmICghY2FjaGUucHJpb2xpc3QpCj4gLQkJCQljYWNo ZS5wcmlvbGlzdCA9Cj4gLQkJCQkJaTkxNV9zY2hlZF9sb29rdXBfcHJpb2xpc3QoZW5naW5lLAo+ IC0JCQkJCQkJCSAgIHByaW8pOwo+IC0JCQlsaXN0X21vdmVfdGFpbCgmbm9kZS0+bGluaywgY2Fj aGUucHJpb2xpc3QpOwo+IC0JCX0gZWxzZSB7Cj4gKwo+ICsJCWlmIChsaXN0X2VtcHR5KCZub2Rl LT5saW5rKSkgewo+ICAJCQkvKgo+ICAJCQkgKiBJZiB0aGUgcmVxdWVzdCBpcyBub3QgaW4gdGhl IHByaW9saXN0IHF1ZXVlIGJlY2F1c2UKPiAgCQkJICogaXQgaXMgbm90IHlldCBydW5uYWJsZSwg dGhlbiBpdCBkb2Vzbid0IGNvbnRyaWJ1dGUKPiBAQCAtMzEyLDggKzMwNiwxNiBAQCBzdGF0aWMg dm9pZCBfX2k5MTVfc2NoZWR1bGUoc3RydWN0IGk5MTVfc2NoZWRfbm9kZSAqbm9kZSwKPiAgCQkJ ICogcXVldWU7IGJ1dCBpbiB0aGF0IGNhc2Ugd2UgbWF5IHN0aWxsIG5lZWQgdG8gcmVvcmRlcgo+ ICAJCQkgKiB0aGUgaW5mbGlnaHQgcmVxdWVzdHMuCj4gIAkJCSAqLwo+IC0JCQlpZiAoIWk5MTVf c3dfZmVuY2VfZG9uZSgmbm9kZV90b19yZXF1ZXN0KG5vZGUpLT5zdWJtaXQpKQo+IC0JCQkJY29u dGludWU7Cj4gKwkJCWNvbnRpbnVlOwo+ICsJCX0KPiArCj4gKwkJaWYgKCFpbnRlbF9lbmdpbmVf aXNfdmlydHVhbChlbmdpbmUpICYmCj4gKwkJICAgICFpOTE1X3JlcXVlc3RfaXNfYWN0aXZlKG5v ZGVfdG9fcmVxdWVzdChub2RlKSkpIHsKPiArCQkJaWYgKCFjYWNoZS5wcmlvbGlzdCkKPiArCQkJ CWNhY2hlLnByaW9saXN0ID0KPiArCQkJCQlpOTE1X3NjaGVkX2xvb2t1cF9wcmlvbGlzdChlbmdp bmUsCj4gKwkJCQkJCQkJICAgcHJpbyk7Cj4gKwkJCWxpc3RfbW92ZV90YWlsKCZub2RlLT5saW5r LCBjYWNoZS5wcmlvbGlzdCk7Cj4gIAkJfQo+ICAKPiAgCQlpZiAocHJpbyA8PSBlbmdpbmUtPmV4 ZWNsaXN0cy5xdWV1ZV9wcmlvcml0eV9oaW50KQo+IEBAIC0zMjUsNyArMzI3LDcgQEAgc3RhdGlj IHZvaWQgX19pOTE1X3NjaGVkdWxlKHN0cnVjdCBpOTE1X3NjaGVkX25vZGUgKm5vZGUsCj4gIAkJ a2lja19zdWJtaXNzaW9uKGVuZ2luZSwgcHJpbyk7Cj4gIAl9Cj4gIAo+IC0Jc3Bpbl91bmxvY2so JmVuZ2luZS0+dGltZWxpbmUubG9jayk7Cj4gKwlzcGluX3VubG9jaygmZW5naW5lLT5hY3RpdmUu bG9jayk7Cj4gIH0KPiAgCj4gIHZvaWQgaTkxNV9zY2hlZHVsZShzdHJ1Y3QgaTkxNV9yZXF1ZXN0 ICpycSwgY29uc3Qgc3RydWN0IGk5MTVfc2NoZWRfYXR0ciAqYXR0cikKPiBAQCAtNDM5LDggKzQ0 MSw2IEBAIHZvaWQgaTkxNV9zY2hlZF9ub2RlX2Zpbmkoc3RydWN0IGk5MTVfc2NoZWRfbm9kZSAq bm9kZSkKPiAgewo+ICAJc3RydWN0IGk5MTVfZGVwZW5kZW5jeSAqZGVwLCAqdG1wOwo+ICAKPiAt CUdFTV9CVUdfT04oIWxpc3RfZW1wdHkoJm5vZGUtPmxpbmspKTsKPiAtCj4gIAlzcGluX2xvY2tf aXJxKCZzY2hlZHVsZV9sb2NrKTsKPiAgCj4gIAkvKgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3RpbWVsaW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Rp bWVsaW5lLmMKPiBpbmRleCAwMDBlMWE5YjY3NTAuLmMzMTFjZTljNmY5ZCAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3RpbWVsaW5lLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3RpbWVsaW5lLmMKPiBAQCAtMjUxLDcgKzI1MSw2IEBAIGludCBpOTE1 X3RpbWVsaW5lX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4gIAo+ICAJdGlt ZWxpbmUtPmZlbmNlX2NvbnRleHQgPSBkbWFfZmVuY2VfY29udGV4dF9hbGxvYygxKTsKPiAgCj4g LQlzcGluX2xvY2tfaW5pdCgmdGltZWxpbmUtPmxvY2spOwo+ICAJbXV0ZXhfaW5pdCgmdGltZWxp bmUtPm11dGV4KTsKPiAgCj4gIAlJTklUX0FDVElWRV9SRVFVRVNUKCZ0aW1lbGluZS0+bGFzdF9y ZXF1ZXN0KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90aW1lbGlu ZS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90aW1lbGluZS5oCj4gaW5kZXggMjc2Njhh MWE2OWEzLi4zNmU1ZTVhNjUxNTUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV90aW1lbGluZS5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90aW1lbGlu ZS5oCj4gQEAgLTM2LDI1ICszNiw2IEBAIGludCBpOTE1X3RpbWVsaW5lX2luaXQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4gIAkJICAgICAgIHN0cnVjdCBpOTE1X3ZtYSAqaHdzcCk7 Cj4gIHZvaWQgaTkxNV90aW1lbGluZV9maW5pKHN0cnVjdCBpOTE1X3RpbWVsaW5lICp0bCk7Cj4g IAo+IC1zdGF0aWMgaW5saW5lIHZvaWQKPiAtaTkxNV90aW1lbGluZV9zZXRfc3ViY2xhc3Moc3Ry dWN0IGk5MTVfdGltZWxpbmUgKnRpbWVsaW5lLAo+IC0JCQkgICB1bnNpZ25lZCBpbnQgc3ViY2xh c3MpCj4gLXsKPiAtCWxvY2tkZXBfc2V0X3N1YmNsYXNzKCZ0aW1lbGluZS0+bG9jaywgc3ViY2xh c3MpOwo+IC0KPiAtCS8qCj4gLQkgKiBEdWUgdG8gYW4gaW50ZXJlc3RpbmcgcXVpcmsgaW4gbG9j a2RlcCdzIGludGVybmFsIGRlYnVnIHRyYWNraW5nLAo+IC0JICogYWZ0ZXIgc2V0dGluZyBhIHN1 YmNsYXNzIHdlIG11c3QgZW5zdXJlIHRoZSBsb2NrIGlzIHVzZWQuIE90aGVyd2lzZSwKPiAtCSAq IG5yX3VudXNlZF9sb2NrcyBpcyBpbmNyZW1lbnRlZCBvbmNlIHRvbyBvZnRlbi4KPiAtCSAqLwo+ IC0jaWZkZWYgQ09ORklHX0RFQlVHX0xPQ0tfQUxMT0MKPiAtCWxvY2FsX2lycV9kaXNhYmxlKCk7 Cj4gLQlsb2NrX21hcF9hY3F1aXJlKCZ0aW1lbGluZS0+bG9jay5kZXBfbWFwKTsKPiAtCWxvY2tf bWFwX3JlbGVhc2UoJnRpbWVsaW5lLT5sb2NrLmRlcF9tYXApOwo+IC0JbG9jYWxfaXJxX2VuYWJs ZSgpOwo+IC0jZW5kaWYKPiAtfQo+IC0KPiAgc3RydWN0IGk5MTVfdGltZWxpbmUgKgo+ICBpOTE1 X3RpbWVsaW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKPiAgCQkgICAg IHN0cnVjdCBpOTE1X3ZtYSAqZ2xvYmFsX2h3c3ApOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3RpbWVsaW5lX3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3RpbWVsaW5lX3R5cGVzLmgKPiBpbmRleCAxNjg4NzA1ZjRhMmIuLmZjZTVjYjRmMTA5MCAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3RpbWVsaW5lX3R5cGVzLmgK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3RpbWVsaW5lX3R5cGVzLmgKPiBAQCAt MjMsMTAgKzIzLDYgQEAgc3RydWN0IGk5MTVfdGltZWxpbmUgewo+ICAJdTY0IGZlbmNlX2NvbnRl eHQ7Cj4gIAl1MzIgc2Vxbm87Cj4gIAo+IC0Jc3BpbmxvY2tfdCBsb2NrOwo+IC0jZGVmaW5lIFRJ TUVMSU5FX0NMSUVOVCAwIC8qIGRlZmF1bHQgc3ViY2xhc3MgKi8KPiAtI2RlZmluZSBUSU1FTElO RV9FTkdJTkUgMQo+IC0jZGVmaW5lIFRJTUVMSU5FX1ZJUlRVQUwgMgo+ICAJc3RydWN0IG11dGV4 IG11dGV4OyAvKiBwcm90ZWN0cyB0aGUgZmxvdyBvZiByZXF1ZXN0cyAqLwo+ICAKPiAgCXVuc2ln bmVkIGludCBwaW5fY291bnQ7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2d1Y19zdWJtaXNzaW9uLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfc3Vi bWlzc2lvbi5jCj4gaW5kZXggODk1OTJlZjc3OGI4Li45MjgxMjFmMDYwNTQgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX3N1Ym1pc3Npb24uYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19zdWJtaXNzaW9uLmMKPiBAQCAtNzQwLDcgKzc0 MCw3IEBAIHN0YXRpYyBib29sIF9fZ3VjX2RlcXVldWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lKQo+ICAJYm9vbCBzdWJtaXQgPSBmYWxzZTsKPiAgCXN0cnVjdCByYl9ub2RlICpyYjsK PiAgCj4gLQlsb2NrZGVwX2Fzc2VydF9oZWxkKCZlbmdpbmUtPnRpbWVsaW5lLmxvY2spOwo+ICsJ bG9ja2RlcF9hc3NlcnRfaGVsZCgmZW5naW5lLT5hY3RpdmUubG9jayk7Cj4gIAo+ICAJaWYgKHBv cnRfaXNzZXQocG9ydCkpIHsKPiAgCQlpZiAoaW50ZWxfZW5naW5lX2hhc19wcmVlbXB0aW9uKGVu Z2luZSkpIHsKPiBAQCAtODIyLDcgKzgyMiw3IEBAIHN0YXRpYyB2b2lkIGd1Y19zdWJtaXNzaW9u X3Rhc2tsZXQodW5zaWduZWQgbG9uZyBkYXRhKQo+ICAJc3RydWN0IGk5MTVfcmVxdWVzdCAqcnE7 Cj4gIAl1bnNpZ25lZCBsb25nIGZsYWdzOwo+ICAKPiAtCXNwaW5fbG9ja19pcnFzYXZlKCZlbmdp bmUtPnRpbWVsaW5lLmxvY2ssIGZsYWdzKTsKPiArCXNwaW5fbG9ja19pcnFzYXZlKCZlbmdpbmUt PmFjdGl2ZS5sb2NrLCBmbGFncyk7Cj4gIAo+ICAJcnEgPSBwb3J0X3JlcXVlc3QocG9ydCk7Cj4g IAl3aGlsZSAocnEgJiYgaTkxNV9yZXF1ZXN0X2NvbXBsZXRlZChycSkpIHsKPiBAQCAtODQ3LDcg Kzg0Nyw3IEBAIHN0YXRpYyB2b2lkIGd1Y19zdWJtaXNzaW9uX3Rhc2tsZXQodW5zaWduZWQgbG9u ZyBkYXRhKQo+ICAJaWYgKCFleGVjbGlzdHNfaXNfYWN0aXZlKGV4ZWNsaXN0cywgRVhFQ0xJU1RT X0FDVElWRV9QUkVFTVBUKSkKPiAgCQlndWNfZGVxdWV1ZShlbmdpbmUpOwo+ICAKPiAtCXNwaW5f dW5sb2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+dGltZWxpbmUubG9jaywgZmxhZ3MpOwo+ICsJc3Bp bl91bmxvY2tfaXJxcmVzdG9yZSgmZW5naW5lLT5hY3RpdmUubG9jaywgZmxhZ3MpOwo+ICB9Cj4g IAo+ICBzdGF0aWMgdm9pZCBndWNfcmVzZXRfcHJlcGFyZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUpCj4gQEAgLTg4NCw3ICs4ODQsNyBAQCBzdGF0aWMgdm9pZCBndWNfcmVzZXQoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBib29sIHN0YWxsZWQpCj4gIAlzdHJ1Y3QgaTkx NV9yZXF1ZXN0ICpycTsKPiAgCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4gIAo+IC0Jc3Bpbl9sb2Nr X2lycXNhdmUoJmVuZ2luZS0+dGltZWxpbmUubG9jaywgZmxhZ3MpOwo+ICsJc3Bpbl9sb2NrX2ly cXNhdmUoJmVuZ2luZS0+YWN0aXZlLmxvY2ssIGZsYWdzKTsKPiAgCj4gIAlleGVjbGlzdHNfY2Fu Y2VsX3BvcnRfcmVxdWVzdHMoZXhlY2xpc3RzKTsKPiAgCj4gQEAgLTkwMCw3ICs5MDAsNyBAQCBz dGF0aWMgdm9pZCBndWNfcmVzZXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCBib29s IHN0YWxsZWQpCj4gIAlpbnRlbF9scl9jb250ZXh0X3Jlc2V0KGVuZ2luZSwgcnEtPmh3X2NvbnRl eHQsIHJxLT5oZWFkLCBzdGFsbGVkKTsKPiAgCj4gIG91dF91bmxvY2s6Cj4gLQlzcGluX3VubG9j a19pcnFyZXN0b3JlKCZlbmdpbmUtPnRpbWVsaW5lLmxvY2ssIGZsYWdzKTsKPiArCXNwaW5fdW5s b2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+YWN0aXZlLmxvY2ssIGZsYWdzKTsKPiAgfQo+ICAKPiAg c3RhdGljIHZvaWQgZ3VjX2NhbmNlbF9yZXF1ZXN0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUpCj4gQEAgLTkyNiwxMyArOTI2LDEzIEBAIHN0YXRpYyB2b2lkIGd1Y19jYW5jZWxfcmVx dWVzdHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAJICogc3VibWlzc2lvbidz IGlycSBzdGF0ZSwgd2UgYWxzbyB3aXNoIHRvIHJlbWluZCBvdXJzZWx2ZXMgdGhhdAo+ICAJICog aXQgaXMgaXJxIHN0YXRlLikKPiAgCSAqLwo+IC0Jc3Bpbl9sb2NrX2lycXNhdmUoJmVuZ2luZS0+ dGltZWxpbmUubG9jaywgZmxhZ3MpOwo+ICsJc3Bpbl9sb2NrX2lycXNhdmUoJmVuZ2luZS0+YWN0 aXZlLmxvY2ssIGZsYWdzKTsKPiAgCj4gIAkvKiBDYW5jZWwgdGhlIHJlcXVlc3RzIG9uIHRoZSBI VyBhbmQgY2xlYXIgdGhlIEVMU1AgdHJhY2tlci4gKi8KPiAgCWV4ZWNsaXN0c19jYW5jZWxfcG9y dF9yZXF1ZXN0cyhleGVjbGlzdHMpOwo+ICAKPiAgCS8qIE1hcmsgYWxsIGV4ZWN1dGluZyByZXF1 ZXN0cyBhcyBza2lwcGVkLiAqLwo+IC0JbGlzdF9mb3JfZWFjaF9lbnRyeShycSwgJmVuZ2luZS0+ dGltZWxpbmUucmVxdWVzdHMsIGxpbmspIHsKPiArCWxpc3RfZm9yX2VhY2hfZW50cnkocnEsICZl bmdpbmUtPmFjdGl2ZS5yZXF1ZXN0cywgc2NoZWQubGluaykgewo+ICAJCWlmICghaTkxNV9yZXF1 ZXN0X3NpZ25hbGVkKHJxKSkKPiAgCQkJZG1hX2ZlbmNlX3NldF9lcnJvcigmcnEtPmZlbmNlLCAt RUlPKTsKPiAgCj4gQEAgLTk2MSw3ICs5NjEsNyBAQCBzdGF0aWMgdm9pZCBndWNfY2FuY2VsX3Jl cXVlc3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgCWV4ZWNsaXN0cy0+cXVl dWUgPSBSQl9ST09UX0NBQ0hFRDsKPiAgCUdFTV9CVUdfT04ocG9ydF9pc3NldChleGVjbGlzdHMt PnBvcnQpKTsKPiAgCj4gLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZlbmdpbmUtPnRpbWVsaW5l LmxvY2ssIGZsYWdzKTsKPiArCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmVuZ2luZS0+YWN0aXZl LmxvY2ssIGZsYWdzKTsKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQgZ3VjX3Jlc2V0X2ZpbmlzaChz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX3RpbWVsaW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9zZWxmdGVzdHMvbW9ja190aW1lbGluZS5jCj4gaW5kZXggZTA4NDQ3NjQ2OWVmLi42NWI1MmJl MjNkNDIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tf dGltZWxpbmUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX3Rp bWVsaW5lLmMKPiBAQCAtMTMsNyArMTMsNiBAQCB2b2lkIG1vY2tfdGltZWxpbmVfaW5pdChzdHJ1 Y3QgaTkxNV90aW1lbGluZSAqdGltZWxpbmUsIHU2NCBjb250ZXh0KQo+ICAJdGltZWxpbmUtPmk5 MTUgPSBOVUxMOwo+ICAJdGltZWxpbmUtPmZlbmNlX2NvbnRleHQgPSBjb250ZXh0Owo+ICAKPiAt CXNwaW5fbG9ja19pbml0KCZ0aW1lbGluZS0+bG9jayk7Cj4gIAltdXRleF9pbml0KCZ0aW1lbGlu ZS0+bXV0ZXgpOwo+ICAKPiAgCUlOSVRfQUNUSVZFX1JFUVVFU1QoJnRpbWVsaW5lLT5sYXN0X3Jl cXVlc3QpOwo+IC0tIAo+IDIuMjAuMQo+Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeA==