From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 23/29] drm/i915: Move i915_request_alloc into selftests/ Date: Fri, 12 Apr 2019 08:05:06 +0100 Message-ID: <26cb7761-e7a6-a8d5-bce7-32197b7c073a@linux.intel.com> References: <20190408091728.20207-1-chris@chris-wilson.co.uk> <20190408091728.20207-23-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" 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 CCF36890BF for ; Fri, 12 Apr 2019 07:05:08 +0000 (UTC) In-Reply-To: <20190408091728.20207-23-chris@chris-wilson.co.uk> Content-Language: en-US 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 Ck9uIDA4LzA0LzIwMTkgMTA6MTcsIENocmlzIFdpbHNvbiB3cm90ZToKPiBIYXZpbmcgdHJhbnNp dGlvbmVkIEdFTSBvdmVyIHRvIHVzaW5nIGludGVsX2NvbnRleHQgYXMgaXRzIHByaW1hcnkgbWVh bnMKPiBvZiB0cmFja2luZyB0aGUgR0VNIGNvbnRleHQgYW5kIGVuZ2luZSBjb21iaW5lZCBhbmQg dXNpbmcKPiAgIGk5MTVfcmVxdWVzdF9jcmVhdGUoKSwgd2UgY2FuIG1vdmUgdGhlIG9sZGVyIGk5 MTVfcmVxdWVzdF9hbGxvYygpCj4gaGVscGVyIGZ1bmN0aW9uIGludG8gc2VsZnRlc3RzLwo+IAo+ IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+ IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgICAgICAgICAgICAgICAgIHwg IDEgKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfaGFuZ2NoZWNrLmMgIHwg IDkgKystLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfbHJjLmMgICAgICAg IHwgMTMgKystLS0KPiAgIC4uLi9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3Rfd29ya2Fyb3VuZHMu YyAgICB8ICA1ICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYyAgICAg ICAgICAgfCA0NyAtLS0tLS0tLS0tLS0tLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3JlcXVlc3QuaCAgICAgICAgICAgfCAgMyAtLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUv c2VsZnRlc3RzL2h1Z2VfcGFnZXMuYyAgIHwgIDMgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L3NlbGZ0ZXN0cy9pOTE1X2dlbS5jICAgICB8ICA1ICstCj4gICAuLi4vZ3B1L2RybS9pOTE1L3Nl bGZ0ZXN0cy9pOTE1X2dlbV9jb250ZXh0LmMgfCAxMyArKy0tLQo+ICAgLi4uL2dwdS9kcm0vaTkx NS9zZWxmdGVzdHMvaTkxNV9nZW1fZXZpY3QuYyAgIHwgIDMgKy0KPiAgIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X3JlcXVlc3QuYyB8ICA0ICstCj4gICAuLi4vZ3B1L2RybS9p OTE1L3NlbGZ0ZXN0cy9pZ3RfZ2VtX3V0aWxzLmMgICAgfCA0MyArKysrKysrKysrKysrKysrKwo+ ICAgLi4uL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaWd0X2dlbV91dGlscy5oICAgIHwgMTcgKysr KysrKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lndF9zcGlubmVyLmMgIHwg IDMgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX3JlcXVlc3QuYyB8 ICAzICstCj4gICAxNSBmaWxlcyBjaGFuZ2VkLCA5NiBpbnNlcnRpb25zKCspLCA3NiBkZWxldGlv bnMoLSkKPiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVz dHMvaWd0X2dlbV91dGlscy5jCj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJt L2k5MTUvc2VsZnRlc3RzL2lndF9nZW1fdXRpbHMuaAo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCj4g aW5kZXggZGQ4ZDkyM2FhMWM2Li41ODY0MzM3MzQ5NWMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvTWFrZWZpbGUKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmls ZQo+IEBAIC0xOTMsNiArMTkzLDcgQEAgaTkxNS0kKENPTkZJR19EUk1fSTkxNV9TRUxGVEVTVCkg Kz0gXAo+ICAgCXNlbGZ0ZXN0cy9pOTE1X3JhbmRvbS5vIFwKPiAgIAlzZWxmdGVzdHMvaTkxNV9z ZWxmdGVzdC5vIFwKPiAgIAlzZWxmdGVzdHMvaWd0X2ZsdXNoX3Rlc3QubyBcCj4gKwlzZWxmdGVz dHMvaWd0X2dlbV91dGlscy5vIFwKPiAgIAlzZWxmdGVzdHMvaWd0X2xpdmVfdGVzdC5vIFwKPiAg IAlzZWxmdGVzdHMvaWd0X3Jlc2V0Lm8gXAo+ICAgCXNlbGZ0ZXN0cy9pZ3Rfc3Bpbm5lci5vCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X2hhbmdjaGVjay5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfaGFuZ2NoZWNrLmMKPiBpbmRleCA2 MDA0ZDY5MDdlOWMuLmMyMDY3NDg2MjlkYyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC9zZWxmdGVzdF9oYW5nY2hlY2suYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d0L3NlbGZ0ZXN0X2hhbmdjaGVjay5jCj4gQEAgLTI5LDYgKzI5LDcgQEAKPiAgICNpbmNsdWRl ICJpOTE1X3NlbGZ0ZXN0LmgiCj4gICAjaW5jbHVkZSAic2VsZnRlc3RzL2k5MTVfcmFuZG9tLmgi Cj4gICAjaW5jbHVkZSAic2VsZnRlc3RzL2lndF9mbHVzaF90ZXN0LmgiCj4gKyNpbmNsdWRlICJz ZWxmdGVzdHMvaWd0X2dlbV91dGlscy5oIgo+ICAgI2luY2x1ZGUgInNlbGZ0ZXN0cy9pZ3RfcmVz ZXQuaCIKPiAgICNpbmNsdWRlICJzZWxmdGVzdHMvaWd0X3dlZGdlX21lLmgiCj4gICAKPiBAQCAt MTc1LDcgKzE3Niw3IEBAIGhhbmdfY3JlYXRlX3JlcXVlc3Qoc3RydWN0IGhhbmcgKmgsIHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgIAlpZiAoZXJyKQo+ICAgCQlnb3RvIHVucGlu X3ZtYTsKPiAgIAo+IC0JcnEgPSBpOTE1X3JlcXVlc3RfYWxsb2MoZW5naW5lLCBoLT5jdHgpOwo+ ICsJcnEgPSBpZ3RfcmVxdWVzdF9hbGxvYyhoLT5jdHgsIGVuZ2luZSk7Cj4gICAJaWYgKElTX0VS UihycSkpIHsKPiAgIAkJZXJyID0gUFRSX0VSUihycSk7Cj4gICAJCWdvdG8gdW5waW5faHdzOwo+ IEBAIC00NTUsNyArNDU2LDcgQEAgc3RhdGljIGludCBpZ3RfcmVzZXRfbm9wKHZvaWQgKmFyZykK PiAgIAkJCWZvciAoaSA9IDA7IGkgPCAxNjsgaSsrKSB7Cj4gICAJCQkJc3RydWN0IGk5MTVfcmVx dWVzdCAqcnE7Cj4gICAKPiAtCQkJCXJxID0gaTkxNV9yZXF1ZXN0X2FsbG9jKGVuZ2luZSwgY3R4 KTsKPiArCQkJCXJxID0gaWd0X3JlcXVlc3RfYWxsb2MoY3R4LCBlbmdpbmUpOwo+ICAgCQkJCWlm IChJU19FUlIocnEpKSB7Cj4gICAJCQkJCWVyciA9IFBUUl9FUlIocnEpOwo+ICAgCQkJCQlicmVh azsKPiBAQCAtNTU0LDcgKzU1NSw3IEBAIHN0YXRpYyBpbnQgaWd0X3Jlc2V0X25vcF9lbmdpbmUo dm9pZCAqYXJnKQo+ICAgCQkJZm9yIChpID0gMDsgaSA8IDE2OyBpKyspIHsKPiAgIAkJCQlzdHJ1 Y3QgaTkxNV9yZXF1ZXN0ICpycTsKPiAgIAo+IC0JCQkJcnEgPSBpOTE1X3JlcXVlc3RfYWxsb2Mo ZW5naW5lLCBjdHgpOwo+ICsJCQkJcnEgPSBpZ3RfcmVxdWVzdF9hbGxvYyhjdHgsIGVuZ2luZSk7 Cj4gICAJCQkJaWYgKElTX0VSUihycSkpIHsKPiAgIAkJCQkJZXJyID0gUFRSX0VSUihycSk7Cj4g ICAJCQkJCWJyZWFrOwo+IEBAIC04MDAsNyArODAxLDcgQEAgc3RhdGljIGludCBhY3RpdmVfZW5n aW5lKHZvaWQgKmRhdGEpCj4gICAJCXN0cnVjdCBpOTE1X3JlcXVlc3QgKm5ldzsKPiAgIAo+ICAg CQltdXRleF9sb2NrKCZlbmdpbmUtPmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwo+IC0JCW5ldyA9 IGk5MTVfcmVxdWVzdF9hbGxvYyhlbmdpbmUsIGN0eFtpZHhdKTsKPiArCQluZXcgPSBpZ3RfcmVx dWVzdF9hbGxvYyhjdHhbaWR4XSwgZW5naW5lKTsKPiAgIAkJaWYgKElTX0VSUihuZXcpKSB7Cj4g ICAJCQltdXRleF91bmxvY2soJmVuZ2luZS0+aTkxNS0+ZHJtLnN0cnVjdF9tdXRleCk7Cj4gICAJ CQllcnIgPSBQVFJfRVJSKG5ldyk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d0L3NlbGZ0ZXN0X2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfbHJj LmMKPiBpbmRleCBjZDA1NTFmOTdjMmYuLjg0NTM4ZjY5MTg1YiAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF9scmMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L3NlbGZ0ZXN0X2xyYy5jCj4gQEAgLTEwLDYgKzEwLDcgQEAKPiAgICNpbmNsdWRl ICJpOTE1X3NlbGZ0ZXN0LmgiCj4gICAjaW5jbHVkZSAic2VsZnRlc3RzL2k5MTVfcmFuZG9tLmgi Cj4gICAjaW5jbHVkZSAic2VsZnRlc3RzL2lndF9mbHVzaF90ZXN0LmgiCj4gKyNpbmNsdWRlICJz ZWxmdGVzdHMvaWd0X2dlbV91dGlscy5oIgo+ICAgI2luY2x1ZGUgInNlbGZ0ZXN0cy9pZ3RfbGl2 ZV90ZXN0LmgiCj4gICAjaW5jbHVkZSAic2VsZnRlc3RzL2lndF9zcGlubmVyLmgiCj4gICAjaW5j bHVkZSAic2VsZnRlc3RzL21vY2tfY29udGV4dC5oIgo+IEBAIC0xNDgsNyArMTQ5LDcgQEAgc3Rh dGljIGludCBsaXZlX2J1c3l3YWl0X3ByZWVtcHQodm9pZCAqYXJnKQo+ICAgCQkgKiBmYWlscywg d2UgaGFuZyBpbnN0ZWFkLgo+ICAgCQkgKi8KPiAgIAo+IC0JCWxvID0gaTkxNV9yZXF1ZXN0X2Fs bG9jKGVuZ2luZSwgY3R4X2xvKTsKPiArCQlsbyA9IGlndF9yZXF1ZXN0X2FsbG9jKGN0eF9sbywg ZW5naW5lKTsKPiAgIAkJaWYgKElTX0VSUihsbykpIHsKPiAgIAkJCWVyciA9IFBUUl9FUlIobG8p Owo+ICAgCQkJZ290byBlcnJfdm1hOwo+IEBAIC0xOTIsNyArMTkzLDcgQEAgc3RhdGljIGludCBs aXZlX2J1c3l3YWl0X3ByZWVtcHQodm9pZCAqYXJnKQo+ICAgCQkJZ290byBlcnJfdm1hOwo+ICAg CQl9Cj4gICAKPiAtCQloaSA9IGk5MTVfcmVxdWVzdF9hbGxvYyhlbmdpbmUsIGN0eF9oaSk7Cj4g KwkJaGkgPSBpZ3RfcmVxdWVzdF9hbGxvYyhjdHhfaGksIGVuZ2luZSk7Cj4gICAJCWlmIChJU19F UlIoaGkpKSB7Cj4gICAJCQllcnIgPSBQVFJfRVJSKGhpKTsKPiAgIAkJCWdvdG8gZXJyX3ZtYTsK PiBAQCAtODU3LDEzICs4NTgsMTMgQEAgc3RhdGljIGludCBsaXZlX2NoYWluX3ByZWVtcHQodm9p ZCAqYXJnKQo+ICAgCQkJaTkxNV9yZXF1ZXN0X2FkZChycSk7Cj4gICAKPiAgIAkJCWZvciAoaSA9 IDA7IGkgPCBjb3VudDsgaSsrKSB7Cj4gLQkJCQlycSA9IGk5MTVfcmVxdWVzdF9hbGxvYyhlbmdp bmUsIGxvLmN0eCk7Cj4gKwkJCQlycSA9IGlndF9yZXF1ZXN0X2FsbG9jKGxvLmN0eCwgZW5naW5l KTsKPiAgIAkJCQlpZiAoSVNfRVJSKHJxKSkKPiAgIAkJCQkJZ290byBlcnJfd2VkZ2VkOwo+ICAg CQkJCWk5MTVfcmVxdWVzdF9hZGQocnEpOwo+ICAgCQkJfQo+ICAgCj4gLQkJCXJxID0gaTkxNV9y ZXF1ZXN0X2FsbG9jKGVuZ2luZSwgaGkuY3R4KTsKPiArCQkJcnEgPSBpZ3RfcmVxdWVzdF9hbGxv YyhoaS5jdHgsIGVuZ2luZSk7Cj4gICAJCQlpZiAoSVNfRVJSKHJxKSkKPiAgIAkJCQlnb3RvIGVy cl93ZWRnZWQ7Cj4gICAJCQlpOTE1X3JlcXVlc3RfYWRkKHJxKTsKPiBAQCAtODgyLDcgKzg4Myw3 IEBAIHN0YXRpYyBpbnQgbGl2ZV9jaGFpbl9wcmVlbXB0KHZvaWQgKmFyZykKPiAgIAkJCX0KPiAg IAkJCWlndF9zcGlubmVyX2VuZCgmbG8uc3Bpbik7Cj4gICAKPiAtCQkJcnEgPSBpOTE1X3JlcXVl c3RfYWxsb2MoZW5naW5lLCBsby5jdHgpOwo+ICsJCQlycSA9IGlndF9yZXF1ZXN0X2FsbG9jKGxv LmN0eCwgZW5naW5lKTsKPiAgIAkJCWlmIChJU19FUlIocnEpKQo+ICAgCQkJCWdvdG8gZXJyX3dl ZGdlZDsKPiAgIAkJCWk5MTVfcmVxdWVzdF9hZGQocnEpOwo+IEBAIC0xMDg3LDcgKzEwODgsNyBA QCBzdGF0aWMgaW50IHNtb2tlX3N1Ym1pdChzdHJ1Y3QgcHJlZW1wdF9zbW9rZSAqc21va2UsCj4g ICAKPiAgIAljdHgtPnNjaGVkLnByaW9yaXR5ID0gcHJpbzsKPiAgIAo+IC0JcnEgPSBpOTE1X3Jl cXVlc3RfYWxsb2Moc21va2UtPmVuZ2luZSwgY3R4KTsKPiArCXJxID0gaWd0X3JlcXVlc3RfYWxs b2MoY3R4LCBzbW9rZS0+ZW5naW5lKTsKPiAgIAlpZiAoSVNfRVJSKHJxKSkgewo+ICAgCQllcnIg PSBQVFJfRVJSKHJxKTsKPiAgIAkJZ290byB1bnBpbjsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3Rfd29ya2Fyb3VuZHMuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L3NlbGZ0ZXN0X3dvcmthcm91bmRzLmMKPiBpbmRleCAwMjg5NDJjYWM0YjQuLjAyNTEx YjUzMmI0MSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF93 b3JrYXJvdW5kcy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3Rfd29y a2Fyb3VuZHMuYwo+IEBAIC04LDYgKzgsNyBAQAo+ICAgI2luY2x1ZGUgImludGVsX3Jlc2V0Lmgi Cj4gICAKPiAgICNpbmNsdWRlICJzZWxmdGVzdHMvaWd0X2ZsdXNoX3Rlc3QuaCIKPiArI2luY2x1 ZGUgInNlbGZ0ZXN0cy9pZ3RfZ2VtX3V0aWxzLmgiCj4gICAjaW5jbHVkZSAic2VsZnRlc3RzL2ln dF9yZXNldC5oIgo+ICAgI2luY2x1ZGUgInNlbGZ0ZXN0cy9pZ3Rfc3Bpbm5lci5oIgo+ICAgI2lu Y2x1ZGUgInNlbGZ0ZXN0cy9pZ3Rfd2VkZ2VfbWUuaCIKPiBAQCAtMTAyLDcgKzEwMyw3IEBAIHJl YWRfbm9ucHJpdnMoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwgc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lKQo+ICAgCWlmIChlcnIpCj4gICAJCWdvdG8gZXJyX29iajsKPiAgIAo+ IC0JcnEgPSBpOTE1X3JlcXVlc3RfYWxsb2MoZW5naW5lLCBjdHgpOwo+ICsJcnEgPSBpZ3RfcmVx dWVzdF9hbGxvYyhjdHgsIGVuZ2luZSk7Cj4gICAJaWYgKElTX0VSUihycSkpIHsKPiAgIAkJZXJy ID0gUFRSX0VSUihycSk7Cj4gICAJCWdvdG8gZXJyX3BpbjsKPiBAQCAtNTU0LDcgKzU1NSw3IEBA IHN0YXRpYyBpbnQgY2hlY2tfZGlydHlfd2hpdGVsaXN0KHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0 ICpjdHgsCj4gICAJCWk5MTVfZ2VtX29iamVjdF91bnBpbl9tYXAoYmF0Y2gtPm9iaik7Cj4gICAJ CWk5MTVfZ2VtX2NoaXBzZXRfZmx1c2goY3R4LT5pOTE1KTsKPiAgIAo+IC0JCXJxID0gaTkxNV9y ZXF1ZXN0X2FsbG9jKGVuZ2luZSwgY3R4KTsKPiArCQlycSA9IGlndF9yZXF1ZXN0X2FsbG9jKGN0 eCwgZW5naW5lKTsKPiAgIAkJaWYgKElTX0VSUihycSkpIHsKPiAgIAkJCWVyciA9IFBUUl9FUlIo cnEpOwo+ICAgCQkJZ290byBvdXRfYmF0Y2g7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcmVxdWVzdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1ZXN0 LmMKPiBpbmRleCA1ZTUyYzE2MjNjMTcuLjY3MzYwMTA3ZDYxZCAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcmVxdWVzdC5jCj4gQEAgLTczOCw1MyArNzM4LDYgQEAgaTkxNV9yZXF1ZXN0X2Ny ZWF0ZShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UpCj4gICAJcmV0dXJuIHJxOwo+ICAgfQo+ICAg Cj4gLS8qKgo+IC0gKiBpOTE1X3JlcXVlc3RfYWxsb2MgLSBhbGxvY2F0ZSBhIHJlcXVlc3Qgc3Ry dWN0dXJlCj4gLSAqCj4gLSAqIEBlbmdpbmU6IGVuZ2luZSB0aGF0IHdlIHdpc2ggdG8gaXNzdWUg dGhlIHJlcXVlc3Qgb24uCj4gLSAqIEBjdHg6IGNvbnRleHQgdGhhdCB0aGUgcmVxdWVzdCB3aWxs IGJlIGFzc29jaWF0ZWQgd2l0aC4KPiAtICoKPiAtICogUmV0dXJucyBhIHBvaW50ZXIgdG8gdGhl IGFsbG9jYXRlZCByZXF1ZXN0IGlmIHN1Y2Nlc3NmdWwsCj4gLSAqIG9yIGFuIGVycm9yIGNvZGUg aWYgbm90Lgo+IC0gKi8KPiAtc3RydWN0IGk5MTVfcmVxdWVzdCAqCj4gLWk5MTVfcmVxdWVzdF9h bGxvYyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIHN0cnVjdCBpOTE1X2dlbV9jb250 ZXh0ICpjdHgpCj4gLXsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gZW5naW5l LT5pOTE1Owo+IC0Jc3RydWN0IGludGVsX2NvbnRleHQgKmNlOwo+IC0Jc3RydWN0IGk5MTVfcmVx dWVzdCAqcnE7Cj4gLQlpbnQgZXJyOwo+IC0KPiAtCS8qCj4gLQkgKiBQcmVlbXB0IGNvbnRleHRz IGFyZSByZXNlcnZlZCBmb3IgZXhjbHVzaXZlIHVzZSB0byBpbmplY3QgYQo+IC0JICogcHJlZW1w dGlvbiBjb250ZXh0IHN3aXRjaC4gVGhleSBhcmUgbmV2ZXIgdG8gYmUgdXNlZCBmb3IgYW55IHRy aXZpYWwKPiAtCSAqIHJlcXVlc3QhCj4gLQkgKi8KPiAtCUdFTV9CVUdfT04oY3R4ID09IGk5MTUt PnByZWVtcHRfY29udGV4dCk7Cj4gLQo+IC0JLyoKPiAtCSAqIFBpbm5pbmcgdGhlIGNvbnRleHRz IG1heSBnZW5lcmF0ZSByZXF1ZXN0cyBpbiBvcmRlciB0byBhY3F1aXJlCj4gLQkgKiBHR1RUIHNw YWNlLCBzbyBkbyB0aGlzIGZpcnN0IGJlZm9yZSB3ZSByZXNlcnZlIGEgc2Vxbm8gZm9yCj4gLQkg KiBvdXJzZWx2ZXMuCj4gLQkgKi8KPiAtCWNlID0gaTkxNV9nZW1fY29udGV4dF9nZXRfZW5naW5l KGN0eCwgZW5naW5lLT5pZCk7Cj4gLQlpZiAoSVNfRVJSKGNlKSkKPiAtCQlyZXR1cm4gRVJSX0NB U1QoY2UpOwo+IC0KPiAtCWVyciA9IGludGVsX2NvbnRleHRfcGluKGNlKTsKPiAtCWlmIChlcnIp IHsKPiAtCQlycSA9IEVSUl9QVFIoZXJyKTsKPiAtCQlnb3RvIGVycl9wdXQ7Cj4gLQl9Cj4gLQo+ IC0JcnEgPSBpOTE1X3JlcXVlc3RfY3JlYXRlKGNlKTsKPiAtCWludGVsX2NvbnRleHRfdW5waW4o Y2UpOwo+IC0KPiAtZXJyX3B1dDoKPiAtCWludGVsX2NvbnRleHRfcHV0KGNlKTsKPiAtCXJldHVy biBycTsKPiAtfQo+IC0KPiAgIHN0YXRpYyBpbnQKPiAgIGVtaXRfc2VtYXBob3JlX3dhaXQoc3Ry dWN0IGk5MTVfcmVxdWVzdCAqdG8sCj4gICAJCSAgICBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpmcm9t LAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVxdWVzdC5oCj4gaW5kZXggYzBiNzUzOWRhYWY1Li5l YTdhMzdhZDYzZTIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZXF1 ZXN0LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlcXVlc3QuaAo+IEBAIC0y NDUsOSArMjQ1LDYgQEAgaTkxNV9yZXF1ZXN0X2NyZWF0ZShzdHJ1Y3QgaW50ZWxfY29udGV4dCAq Y2UpOwo+ICAgCj4gICBzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpfX2k5MTVfcmVxdWVzdF9jb21taXQo c3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVzdCk7Cj4gICAKPiAtc3RydWN0IGk5MTVfcmVxdWVz dCAqIF9fbXVzdF9jaGVjawo+IC1pOTE1X3JlcXVlc3RfYWxsb2Moc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lLAo+IC0JCSAgIHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgpOwo+ICAg dm9pZCBpOTE1X3JlcXVlc3RfcmV0aXJlX3VwdG8oc3RydWN0IGk5MTVfcmVxdWVzdCAqcnEpOwo+ ICAgCj4gICBzdGF0aWMgaW5saW5lIHN0cnVjdCBpOTE1X3JlcXVlc3QgKgo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaHVnZV9wYWdlcy5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvc2VsZnRlc3RzL2h1Z2VfcGFnZXMuYwo+IGluZGV4IDkwNzIxYjU0ZTdhZS4u MWUxZjgzMzI2YTk2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0 cy9odWdlX3BhZ2VzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaHVn ZV9wYWdlcy5jCj4gQEAgLTI2LDYgKzI2LDcgQEAKPiAgIAo+ICAgI2luY2x1ZGUgPGxpbnV4L3By aW1lX251bWJlcnMuaD4KPiAgIAo+ICsjaW5jbHVkZSAiaWd0X2dlbV91dGlscy5oIgo+ICAgI2lu Y2x1ZGUgIm1vY2tfZHJtLmgiCj4gICAjaW5jbHVkZSAiaTkxNV9yYW5kb20uaCIKPiAgIAo+IEBA IC05ODAsNyArOTgxLDcgQEAgc3RhdGljIGludCBncHVfd3JpdGUoc3RydWN0IGk5MTVfdm1hICp2 bWEsCj4gICAJaWYgKElTX0VSUihiYXRjaCkpCj4gICAJCXJldHVybiBQVFJfRVJSKGJhdGNoKTsK PiAgIAo+IC0JcnEgPSBpOTE1X3JlcXVlc3RfYWxsb2MoZW5naW5lLCBjdHgpOwo+ICsJcnEgPSBp Z3RfcmVxdWVzdF9hbGxvYyhjdHgsIGVuZ2luZSk7Cj4gICAJaWYgKElTX0VSUihycSkpIHsKPiAg IAkJZXJyID0gUFRSX0VSUihycSk7Cj4gICAJCWdvdG8gZXJyX2JhdGNoOwo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2dlbS5jCj4gaW5kZXggNzQ2MGI3N2IzNGUwLi4zZjQw MzNjMGU4ZTIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5 MTVfZ2VtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW0u Ywo+IEBAIC04LDggKzgsOSBAQAo+ICAgCj4gICAjaW5jbHVkZSAiLi4vaTkxNV9zZWxmdGVzdC5o Igo+ICAgCj4gLSNpbmNsdWRlICJtb2NrX2NvbnRleHQuaCIKPiArI2luY2x1ZGUgImlndF9nZW1f dXRpbHMuaCIKPiAgICNpbmNsdWRlICJpZ3RfZmx1c2hfdGVzdC5oIgo+ICsjaW5jbHVkZSAibW9j a19jb250ZXh0LmgiCj4gICAKPiAgIHN0YXRpYyBpbnQgc3dpdGNoX3RvX2NvbnRleHQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCj4gICAJCQkgICAgIHN0cnVjdCBpOTE1X2dlbV9jb250 ZXh0ICpjdHgpCj4gQEAgLTIwLDcgKzIxLDcgQEAgc3RhdGljIGludCBzd2l0Y2hfdG9fY29udGV4 dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKPiAgIAlmb3JfZWFjaF9lbmdpbmUoZW5n aW5lLCBpOTE1LCBpZCkgewo+ICAgCQlzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICpycTsKPiAgIAo+IC0J CXJxID0gaTkxNV9yZXF1ZXN0X2FsbG9jKGVuZ2luZSwgY3R4KTsKPiArCQlycSA9IGlndF9yZXF1 ZXN0X2FsbG9jKGN0eCwgZW5naW5lKTsKPiAgIAkJaWYgKElTX0VSUihycSkpCj4gICAJCQlyZXR1 cm4gUFRSX0VSUihycSk7Cj4gICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv c2VsZnRlc3RzL2k5MTVfZ2VtX2NvbnRleHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0 ZXN0cy9pOTE1X2dlbV9jb250ZXh0LmMKPiBpbmRleCBkZWVkZDE4OThmZTUuLmI2MmYwMDVlNGQ1 MCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1f Y29udGV4dC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2Vt X2NvbnRleHQuYwo+IEBAIC0yOSw2ICsyOSw3IEBACj4gICAKPiAgICNpbmNsdWRlICJpOTE1X3Jh bmRvbS5oIgo+ICAgI2luY2x1ZGUgImlndF9mbHVzaF90ZXN0LmgiCj4gKyNpbmNsdWRlICJpZ3Rf Z2VtX3V0aWxzLmgiCj4gICAjaW5jbHVkZSAiaWd0X2xpdmVfdGVzdC5oIgo+ICAgI2luY2x1ZGUg ImlndF9yZXNldC5oIgo+ICAgI2luY2x1ZGUgImlndF9zcGlubmVyLmgiCj4gQEAgLTkxLDcgKzky LDcgQEAgc3RhdGljIGludCBsaXZlX25vcF9zd2l0Y2godm9pZCAqYXJnKQo+ICAgCj4gICAJCXRp bWVzWzBdID0ga3RpbWVfZ2V0X3JhdygpOwo+ICAgCQlmb3IgKG4gPSAwOyBuIDwgbmN0eDsgbisr KSB7Cj4gLQkJCXJxID0gaTkxNV9yZXF1ZXN0X2FsbG9jKGVuZ2luZSwgY3R4W25dKTsKPiArCQkJ cnEgPSBpZ3RfcmVxdWVzdF9hbGxvYyhjdHhbbl0sIGVuZ2luZSk7Cj4gICAJCQlpZiAoSVNfRVJS KHJxKSkgewo+ICAgCQkJCWVyciA9IFBUUl9FUlIocnEpOwo+ICAgCQkJCWdvdG8gb3V0X3VubG9j azsKPiBAQCAtMTIxLDcgKzEyMiw3IEBAIHN0YXRpYyBpbnQgbGl2ZV9ub3Bfc3dpdGNoKHZvaWQg KmFyZykKPiAgIAkJCXRpbWVzWzFdID0ga3RpbWVfZ2V0X3JhdygpOwo+ICAgCj4gICAJCQlmb3Ig KG4gPSAwOyBuIDwgcHJpbWU7IG4rKykgewo+IC0JCQkJcnEgPSBpOTE1X3JlcXVlc3RfYWxsb2Mo ZW5naW5lLCBjdHhbbiAlIG5jdHhdKTsKPiArCQkJCXJxID0gaWd0X3JlcXVlc3RfYWxsb2MoY3R4 W24gJSBuY3R4XSwgZW5naW5lKTsKPiAgIAkJCQlpZiAoSVNfRVJSKHJxKSkgewo+ICAgCQkJCQll cnIgPSBQVFJfRVJSKHJxKTsKPiAgIAkJCQkJZ290byBvdXRfdW5sb2NrOwo+IEBAIC0zMDEsNyAr MzAyLDcgQEAgc3RhdGljIGludCBncHVfZmlsbChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqLAo+ICAgCQlnb3RvIGVycl92bWE7Cj4gICAJfQo+ICAgCj4gLQlycSA9IGk5MTVfcmVxdWVz dF9hbGxvYyhlbmdpbmUsIGN0eCk7Cj4gKwlycSA9IGlndF9yZXF1ZXN0X2FsbG9jKGN0eCwgZW5n aW5lKTsKPiAgIAlpZiAoSVNfRVJSKHJxKSkgewo+ICAgCQllcnIgPSBQVFJfRVJSKHJxKTsKPiAg IAkJZ290byBlcnJfYmF0Y2g7Cj4gQEAgLTEzNTAsNyArMTM1MSw3IEBAIHN0YXRpYyBpbnQgd3Jp dGVfdG9fc2NyYXRjaChzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LAo+ICAgCWlmIChlcnIp Cj4gICAJCWdvdG8gZXJyX3VucGluOwo+ICAgCj4gLQlycSA9IGk5MTVfcmVxdWVzdF9hbGxvYyhl bmdpbmUsIGN0eCk7Cj4gKwlycSA9IGlndF9yZXF1ZXN0X2FsbG9jKGN0eCwgZW5naW5lKTsKPiAg IAlpZiAoSVNfRVJSKHJxKSkgewo+ICAgCQllcnIgPSBQVFJfRVJSKHJxKTsKPiAgIAkJZ290byBl cnJfdW5waW47Cj4gQEAgLTE0NDUsNyArMTQ0Niw3IEBAIHN0YXRpYyBpbnQgcmVhZF9mcm9tX3Nj cmF0Y2goc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKPiAgIAlpZiAoZXJyKQo+ICAgCQln b3RvIGVycl91bnBpbjsKPiAgIAo+IC0JcnEgPSBpOTE1X3JlcXVlc3RfYWxsb2MoZW5naW5lLCBj dHgpOwo+ICsJcnEgPSBpZ3RfcmVxdWVzdF9hbGxvYyhjdHgsIGVuZ2luZSk7Cj4gICAJaWYgKElT X0VSUihycSkpIHsKPiAgIAkJZXJyID0gUFRSX0VSUihycSk7Cj4gICAJCWdvdG8gZXJyX3VucGlu Owo+IEBAIC0xNjY5LDcgKzE2NzAsNyBAQCBzdGF0aWMgaW50IG1vY2tfY29udGV4dF9iYXJyaWVy KHZvaWQgKmFyZykKPiAgIAkJZ290byBvdXQ7Cj4gICAJfQo+ICAgCj4gLQlycSA9IGk5MTVfcmVx dWVzdF9hbGxvYyhpOTE1LT5lbmdpbmVbUkNTMF0sIGN0eCk7Cj4gKwlycSA9IGlndF9yZXF1ZXN0 X2FsbG9jKGN0eCwgaTkxNS0+ZW5naW5lW1JDUzBdKTsKPiAgIAlpZiAoSVNfRVJSKHJxKSkgewo+ ICAgCQlwcl9lcnIoIlJlcXVlc3QgYWxsb2NhdGlvbiBmYWlsZWQhXG4iKTsKPiAgIAkJZ290byBv dXQ7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2dl bV9ldmljdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2k5MTVfZ2VtX2V2aWN0 LmMKPiBpbmRleCA4OTc2NjY4OGU0MjAuLjRmYzZlNTQ0NWRkMSAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaTkxNV9nZW1fZXZpY3QuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X2dlbV9ldmljdC5jCj4gQEAgLTI0LDYgKzI0 LDcgQEAKPiAgIAo+ICAgI2luY2x1ZGUgIi4uL2k5MTVfc2VsZnRlc3QuaCIKPiAgIAo+ICsjaW5j bHVkZSAiaWd0X2dlbV91dGlscy5oIgo+ICAgI2luY2x1ZGUgImxpYl9zd19mZW5jZS5oIgo+ICAg I2luY2x1ZGUgIm1vY2tfY29udGV4dC5oIgo+ICAgI2luY2x1ZGUgIm1vY2tfZHJtLmgiCj4gQEAg LTQ2MCw3ICs0NjEsNyBAQCBzdGF0aWMgaW50IGlndF9ldmljdF9jb250ZXh0cyh2b2lkICphcmcp Cj4gICAKPiAgIAkJCS8qIFdlIHdpbGwgbmVlZCBzb21lIEdHVFQgc3BhY2UgZm9yIHRoZSBycSdz IGNvbnRleHQgKi8KPiAgIAkJCWlndF9ldmljdF9jdGwuZmFpbF9pZl9idXN5ID0gdHJ1ZTsKPiAt CQkJcnEgPSBpOTE1X3JlcXVlc3RfYWxsb2MoZW5naW5lLCBjdHgpOwo+ICsJCQlycSA9IGlndF9y ZXF1ZXN0X2FsbG9jKGN0eCwgZW5naW5lKTsKPiAgIAkJCWlndF9ldmljdF9jdGwuZmFpbF9pZl9i dXN5ID0gZmFsc2U7Cj4gICAKPiAgIAkJCWlmIChJU19FUlIocnEpKSB7Cj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X3JlcXVlc3QuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pOTE1X3JlcXVlc3QuYwo+IGluZGV4IDA5OGQ3YjNhYTEz MS4uYjYwNTkxNTMxZTRhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0 ZXN0cy9pOTE1X3JlcXVlc3QuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0 cy9pOTE1X3JlcXVlc3QuYwo+IEBAIC0yNjcsNyArMjY3LDcgQEAgc3RhdGljIHN0cnVjdCBpOTE1 X3JlcXVlc3QgKgo+ICAgX19saXZlX3JlcXVlc3RfYWxsb2Moc3RydWN0IGk5MTVfZ2VtX2NvbnRl eHQgKmN0eCwKPiAgIAkJICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gICB7 Cj4gLQlyZXR1cm4gaTkxNV9yZXF1ZXN0X2FsbG9jKGVuZ2luZSwgY3R4KTsKPiArCXJldHVybiBp Z3RfcmVxdWVzdF9hbGxvYyhjdHgsIGVuZ2luZSk7Cj4gICB9Cj4gICAKPiAgIHN0YXRpYyBpbnQg X19pZ3RfYnJlYWRjcnVtYnNfc21va2V0ZXN0KHZvaWQgKmFyZykKPiBAQCAtMTA3NCw3ICsxMDc0 LDcgQEAgbWF4X2JhdGNoZXMoc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwgc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAgCWlmIChIQVNfRVhFQ0xJU1RTKGN0eC0+aTkxNSkp Cj4gICAJCXJldHVybiBJTlRfTUFYOwo+ICAgCj4gLQlycSA9IGk5MTVfcmVxdWVzdF9hbGxvYyhl bmdpbmUsIGN0eCk7Cj4gKwlycSA9IGlndF9yZXF1ZXN0X2FsbG9jKGN0eCwgZW5naW5lKTsKPiAg IAlpZiAoSVNfRVJSKHJxKSkgewo+ICAgCQlyZXQgPSBQVFJfRVJSKHJxKTsKPiAgIAl9IGVsc2Ug ewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaWd0X2dlbV91 dGlscy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lndF9nZW1fdXRpbHMuYwo+ IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi4yMzI5OWFhODBhYzQK PiAtLS0gL2Rldi9udWxsCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2ln dF9nZW1fdXRpbHMuYwo+IEBAIC0wLDAgKzEsNDMgQEAKPiArLyoKPiArICogU1BEWC1MaWNlbnNl LUlkZW50aWZpZXI6IE1JVAo+ICsgKgo+ICsgKiBDb3B5cmlnaHQgwqkgMjAxOCBJbnRlbCBDb3Jw b3JhdGlvbgo+ICsgKi8KPiArCj4gKyNpbmNsdWRlICJpZ3RfZ2VtX3V0aWxzLmgiCj4gKwo+ICsj aW5jbHVkZSAiZ3QvaW50ZWxfY29udGV4dC5oIgo+ICsKPiArI2luY2x1ZGUgIi4uL2k5MTVfZ2Vt X2NvbnRleHQuaCIKPiArI2luY2x1ZGUgIi4uL2k5MTVfZ2VtX3BtLmgiCj4gKyNpbmNsdWRlICIu Li9pOTE1X3JlcXVlc3QuaCIKPiArCj4gK3N0cnVjdCBpOTE1X3JlcXVlc3QgKgo+ICtpZ3RfcmVx dWVzdF9hbGxvYyhzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4LCBzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZTsKPiArCXN0 cnVjdCBpOTE1X3JlcXVlc3QgKnJxOwo+ICsJaW50IGVycjsKPiArCj4gKwkvKgo+ICsJICogUGlu bmluZyB0aGUgY29udGV4dHMgbWF5IGdlbmVyYXRlIHJlcXVlc3RzIGluIG9yZGVyIHRvIGFjcXVp cmUKPiArCSAqIEdHVFQgc3BhY2UsIHNvIGRvIHRoaXMgZmlyc3QgYmVmb3JlIHdlIHJlc2VydmUg YSBzZXFubyBmb3IKPiArCSAqIG91cnNlbHZlcy4KPiArCSAqLwo+ICsJY2UgPSBpOTE1X2dlbV9j b250ZXh0X2dldF9lbmdpbmUoY3R4LCBlbmdpbmUtPmlkKTsKPiArCWlmIChJU19FUlIoY2UpKQo+ ICsJCXJldHVybiBFUlJfQ0FTVChjZSk7Cj4gKwo+ICsJZXJyID0gaW50ZWxfY29udGV4dF9waW4o Y2UpOwo+ICsJaWYgKGVycikgewo+ICsJCXJxID0gRVJSX1BUUihlcnIpOwo+ICsJCWdvdG8gZXJy X3B1dDsKPiArCX0KPiArCj4gKwlycSA9IGk5MTVfcmVxdWVzdF9jcmVhdGUoY2UpOwo+ICsJaW50 ZWxfY29udGV4dF91bnBpbihjZSk7Cj4gKwo+ICtlcnJfcHV0Ogo+ICsJaW50ZWxfY29udGV4dF9w dXQoY2UpOwo+ICsJcmV0dXJuIHJxOwo+ICt9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L3NlbGZ0ZXN0cy9pZ3RfZ2VtX3V0aWxzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9z ZWxmdGVzdHMvaWd0X2dlbV91dGlscy5oCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAw MDAwMDAwMDAwMDAuLjBmMTcyNTFjZjc1ZAo+IC0tLSAvZGV2L251bGwKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaWd0X2dlbV91dGlscy5oCj4gQEAgLTAsMCArMSwxNyBA QAo+ICsvKgo+ICsgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUCj4gKyAqCj4gKyAqIENv cHlyaWdodCDCqSAyMDE4IEludGVsIENvcnBvcmF0aW9uCj4gKyAqLwo+ICsKPiArI2lmbmRlZiBf X0lHVF9HRU1fVVRJTFNfSF9fCj4gKyNkZWZpbmUgX19JR1RfR0VNX1VUSUxTX0hfXwo+ICsKPiAr c3RydWN0IGk5MTVfcmVxdWVzdDsKPiArc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQ7Cj4gK3N0cnVj dCBpbnRlbF9lbmdpbmVfY3M7Cj4gKwo+ICtzdHJ1Y3QgaTkxNV9yZXF1ZXN0ICoKPiAraWd0X3Jl cXVlc3RfYWxsb2Moc3RydWN0IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwgc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lKTsKPiArCj4gKyNlbmRpZiAvKiBfX0lHVF9HRU1fVVRJTFNfSF9fICov Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pZ3Rfc3Bpbm5l ci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lndF9zcGlubmVyLmMKPiBpbmRl eCAxNjg5MGRmZTc0YzAuLmVjZThhOGEwZDNiMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9zZWxmdGVzdHMvaWd0X3NwaW5uZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L3NlbGZ0ZXN0cy9pZ3Rfc3Bpbm5lci5jCj4gQEAgLTQsNiArNCw3IEBACj4gICAgKiBDb3B5 cmlnaHQgwqkgMjAxOCBJbnRlbCBDb3Jwb3JhdGlvbgo+ICAgICovCj4gICAKPiArI2luY2x1ZGUg ImlndF9nZW1fdXRpbHMuaCIKPiAgICNpbmNsdWRlICJpZ3Rfc3Bpbm5lci5oIgo+ICAgCj4gICBp bnQgaWd0X3NwaW5uZXJfaW5pdChzdHJ1Y3QgaWd0X3NwaW5uZXIgKnNwaW4sIHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICppOTE1KQo+IEBAIC0xMTQsNyArMTE1LDcgQEAgaWd0X3NwaW5uZXJfY3Jl YXRlX3JlcXVlc3Qoc3RydWN0IGlndF9zcGlubmVyICpzcGluLAo+ICAgCWlmIChlcnIpCj4gICAJ CWdvdG8gdW5waW5fdm1hOwo+ICAgCj4gLQlycSA9IGk5MTVfcmVxdWVzdF9hbGxvYyhlbmdpbmUs IGN0eCk7Cj4gKwlycSA9IGlndF9yZXF1ZXN0X2FsbG9jKGN0eCwgZW5naW5lKTsKPiAgIAlpZiAo SVNfRVJSKHJxKSkgewo+ICAgCQllcnIgPSBQVFJfRVJSKHJxKTsKPiAgIAkJZ290byB1bnBpbl9o d3M7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX3Jl cXVlc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX3JlcXVlc3QuYwo+ IGluZGV4IGY3MzliYTYzMDU3Zi4uYjk5Zjc1NzYxNTNjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX3JlcXVlc3QuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX3JlcXVlc3QuYwo+IEBAIC0yNCw2ICsyNCw3IEBACj4g ICAKPiAgICNpbmNsdWRlICJndC9tb2NrX2VuZ2luZS5oIgo+ICAgCj4gKyNpbmNsdWRlICJpZ3Rf Z2VtX3V0aWxzLmgiCj4gICAjaW5jbHVkZSAibW9ja19yZXF1ZXN0LmgiCj4gICAKPiAgIHN0cnVj dCBpOTE1X3JlcXVlc3QgKgo+IEBAIC0zNCw3ICszNSw3IEBAIG1vY2tfcmVxdWVzdChzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUsCj4gICAJc3RydWN0IGk5MTVfcmVxdWVzdCAqcmVxdWVz dDsKPiAgIAo+ICAgCS8qIE5CIHRoZSBpOTE1LT5yZXF1ZXN0cyBzbGFiIGNhY2hlIGlzIGVubGFy Z2VkIHRvIGZpdCBtb2NrX3JlcXVlc3QgKi8KPiAtCXJlcXVlc3QgPSBpOTE1X3JlcXVlc3RfYWxs b2MoZW5naW5lLCBjb250ZXh0KTsKPiArCXJlcXVlc3QgPSBpZ3RfcmVxdWVzdF9hbGxvYyhjb250 ZXh0LCBlbmdpbmUpOwo+ICAgCWlmIChJU19FUlIocmVxdWVzdCkpCj4gICAJCXJldHVybiBOVUxM Owo+ICAgCj4gCgpSZXZpZXdlZC1ieTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGlu dGVsLmNvbT4KClJlZ2FyZHMsCgpUdnJ0a28KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4