From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: Re: [PATCH 07/24] drm/i915: Introduce intel_atomic_get_plane_state_after_check() Date: Thu, 10 Oct 2019 15:01:40 +0200 Message-ID: References: <20191004113514.17064-1-maarten.lankhorst@linux.intel.com> <20191004113514.17064-8-maarten.lankhorst@linux.intel.com> <20191008170318.GS1208@intel.com> <2afc2a18-8955-1a5d-058e-ee6b00857823@linux.intel.com> <20191010123941.GE1208@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id B073B6EAEA for ; Thu, 10 Oct 2019 13:01:43 +0000 (UTC) In-Reply-To: <20191010123941.GE1208@intel.com> 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: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T3AgMTAtMTAtMjAxOSBvbSAxNDozOSBzY2hyZWVmIFZpbGxlIFN5cmrDpGzDpDoKPiBPbiBUaHUs IE9jdCAxMCwgMjAxOSBhdCAwMTo1Njo0MlBNICswMjAwLCBNYWFydGVuIExhbmtob3JzdCB3cm90 ZToKPj4gT3AgMDgtMTAtMjAxOSBvbSAxOTowMyBzY2hyZWVmIFZpbGxlIFN5cmrDpGzDpDoKPj4+ IE9uIEZyaSwgT2N0IDA0LCAyMDE5IGF0IDAxOjM0OjU3UE0gKzAyMDAsIE1hYXJ0ZW4gTGFua2hv cnN0IHdyb3RlOgo+Pj4+IFVzZSB0aGlzIGluIGFsbCB0aGUgcGxhY2VzIHdoZXJlIHdlIHRyeSB0 byBhY3F1aXJlIHBsYW5lcyBhZnRlciB0aGUgcGxhbmVzCj4+Pj4gYXRvbWljX2NoZWNrKCkuCj4+ Pj4KPj4+PiBJbiBjYXNlIG9mIGludGVsX21vZGVzZXRfYWxsX3BpcGVzKCkgdGhpcyBpcyBub3Qg eWV0IGRvbmUgYWZ0ZXIgYXRvbWljX2NoZWNrLAo+Pj4+IGJ1dCBzZWVtcyBsaWtlIGl0IHdpbGwg YmUgaW4gdGhlIGZ1dHVyZS4gVG8gYWRkIHNvbWUgcGFyYW5vaWEsIGFkZCBhbGwgcGxhbmVzCj4+ Pj4gcmF0aGVyIHRoYW4gYWN0aXZlIHBsYW5lcywgYmVjYXVzZSBvZiBiaWdqb2luZXIgYW5kIHBs YW5hciBZVVYgc3VwcG9ydCBoYXZpbmcKPj4+PiBleHRyYSBwbGFuZXMgb3V0c2lkZSBvZiB0aGUg Y29yZSdzIHZpZXcgdGhhdCB3b3VsZG4ndCBiZSBhZGRlZCBvdGhlcndpc2UuCj4+PiBJZiB0aGUg cGxhbmUgaXNuJ3QgYWN0aXZlIHdoYXQgZ29vZCBkb2VzIGFkZGluZyBpdCBkbz8KPj4+Cj4+PiBN YXliZSB0aGUgb25seSByZWFsIGV4Y2VwdGlvbiBJIGNhbiB0aGluayBvZiBpcyB0aGUgd2F0ZXJt YXJrcwo+Pj4gYW5kIHRoZSBwcmltYXJ5IHZzLiBnYW1tYS9jc2NfZW5hYmxlIG9uIHByZS1za2ws IGJ1dCB0aG9zZSBhcmUKPj4+IGFscmVhZHkgaGFuZGxlZCBjb3JyZWN0bHkuCj4+IFBsYW5hciBZ VVYgWSBwbGFuZXMgYXJlIG5vdCBlbnVtZXJhdGVkLCBzbyBpdCdzIHVzZWZ1bCB0byBhZGQuIElu c3RlYWQgb2YKPj4gdHlwaW5nIHVwIHNwZWNpYWwgY2FzZSBzdXBwb3J0IEkgdGhvdWdodCBpdCB3 YXMgZWFzaWVyIHRvIGp1c3QgYWRkIGFsbAo+PiBwbGFuZXMuIE9uIGJpZ2pvaW5lciBzbGF2ZSBu byBwbGFuZXMgYXJlIGVuYWJsZWQgZWl0aGVyLCBldmVuIGlmIHRoZXkncmUKPj4gYWN0aXZlLgo+ IEkgdGhpbmsgb25jZSB3ZSBoYXZlIHRoZSBzdGF0ZSBzcGxpdCB3ZSBzaG91bGQgZ2V0IHJpZCBv ZiBhbGwgdGhlCj4gc3BlY2lhbCBjYXNpbmcgb2YgdGhlIFkgcGxhbmVzLiBUaGVuIHRoZXkgKGFu ZCB0aGUgYmlnam9pbmVyIHNsYXZlCj4gcGxhbmVzKSBzaG91bGQganVzdCBsb29rIGxpa2UgYW4g YWN0aXZlIHBsYW5lcyB3aGljaCBpcyBub3QKPiBsb2dpY2FsbHkgZW5hYmxlZCBieSB1YXBpLgoK V2l0aCB0aGUgcGxhbmUgc3BsaXQgaXQncyBkb2FibGUsIGV2ZW4gZm9yIHdhdGVybWFya3MsIGJ1 dCBwcmVmZXIgdG8gZG8gaXQgbGF0ZXIgb24sIG5vdCBjaGFuZ2UgdGhlIHdvcmxkIHRvbyBtdWNo LiA6KQoKVGhlcmUgaXMgbm8gaXNzdWUgaW4gdGhlIGNvcmUgd2l0aCBhZGRpbmcgcGxhbmVzIHRo YXQgYXJlIGRpc2FibGVkLCBzbyBJIGRvbid0IHNlZSB0aGUgcHJvYmxlbT8KCn5NYWFydGVuCgo+ Pj4+IFNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBs aW51eC5pbnRlbC5jb20+Cj4+Pj4gLS0tCj4+Pj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfYXRvbWljLmMgICB8IDQxICsrKysrKysrKy0tLS0tLS0tLS0KPj4+PiAgLi4uL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F0b21pY19wbGFuZS5jIHwgMTkgKysrKysrKysrCj4+ Pj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY2RjbGsuYyAgICB8IDE1ICsr KystLS0KPj4+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jb2xvci5jICAg IHwgIDcgKystLQo+Pj4+ICAuLi4vZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVz LmggICAgfCAgNiArKysKPj4+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAgICAg ICAgICAgICAgIHwgMTQgKysrKy0tLQo+Pj4+ICA2IGZpbGVzIGNoYW5nZWQsIDY2IGluc2VydGlv bnMoKyksIDM2IGRlbGV0aW9ucygtKQo+Pj4+Cj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2F0b21pYy5jCj4+Pj4gaW5kZXggYzVhNTUyYTY5NzUyLi5lNmNiODVkNDFj OGQgMTAwNjQ0Cj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9h dG9taWMuYwo+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXRv bWljLmMKPj4+PiBAQCAtMzEzLDEzICszMTMsMTAgQEAgaW50IGludGVsX2F0b21pY19zZXR1cF9z Y2FsZXJzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPj4+PiAgCQkJICAgICAg IHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAo+Pj4+ICAJCQkgICAgICAgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4+Pj4gIHsKPj4+PiAtCXN0cnVjdCBkcm1fcGxh bmUgKnBsYW5lID0gTlVMTDsKPj4+PiAtCXN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmU7 Cj4+Pj4gLQlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlID0gTlVMTDsKPj4+ PiAgCXN0cnVjdCBpbnRlbF9jcnRjX3NjYWxlcl9zdGF0ZSAqc2NhbGVyX3N0YXRlID0KPj4+PiAg CQkmY3J0Y19zdGF0ZS0+c2NhbGVyX3N0YXRlOwo+Pj4+ICAJc3RydWN0IGRybV9hdG9taWNfc3Rh dGUgKmRybV9zdGF0ZSA9IGNydGNfc3RhdGUtPmJhc2Uuc3RhdGU7Cj4+Pj4gLQlzdHJ1Y3QgaW50 ZWxfYXRvbWljX3N0YXRlICppbnRlbF9zdGF0ZSA9IHRvX2ludGVsX2F0b21pY19zdGF0ZShkcm1f c3RhdGUpOwo+Pj4+ICsJc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUgPSB0b19pbnRl bF9hdG9taWNfc3RhdGUoZHJtX3N0YXRlKTsKPj4+PiAgCWludCBudW1fc2NhbGVyc19uZWVkOwo+ Pj4+ICAJaW50IGk7Cj4+Pj4gIAo+Pj4+IEBAIC0zNDYsNiArMzQzLDcgQEAgaW50IGludGVsX2F0 b21pY19zZXR1cF9zY2FsZXJzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPj4+ PiAgCj4+Pj4gIAkvKiB3YWxrdGhyb3VnaCBzY2FsZXJfdXNlcnMgYml0cyBhbmQgc3RhcnQgYXNz aWduaW5nIHNjYWxlcnMgKi8KPj4+PiAgCWZvciAoaSA9IDA7IGkgPCBzaXplb2Yoc2NhbGVyX3N0 YXRlLT5zY2FsZXJfdXNlcnMpICogODsgaSsrKSB7Cj4+Pj4gKwkJc3RydWN0IGludGVsX3BsYW5l X3N0YXRlICpwbGFuZV9zdGF0ZSA9IE5VTEw7Cj4+Pj4gIAkJaW50ICpzY2FsZXJfaWQ7Cj4+Pj4g IAkJY29uc3QgY2hhciAqbmFtZTsKPj4+PiAgCQlpbnQgaWR4Owo+Pj4+IEBAIC0zNjEsMTkgKzM1 OSwxNiBAQCBpbnQgaW50ZWxfYXRvbWljX3NldHVwX3NjYWxlcnMoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAo+Pj4+ICAJCQkvKiBwYW5lbCBmaXR0ZXIgY2FzZTogYXNzaWduIGFz IGEgY3J0YyBzY2FsZXIgKi8KPj4+PiAgCQkJc2NhbGVyX2lkID0gJnNjYWxlcl9zdGF0ZS0+c2Nh bGVyX2lkOwo+Pj4+ICAJCX0gZWxzZSB7Cj4+Pj4gLQkJCW5hbWUgPSAiUExBTkUiOwo+Pj4+ICsJ CQlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lOwo+Pj4+ICAKPj4+PiAgCQkJLyogcGxhbmUgc2Nh bGVyIGNhc2U6IGFzc2lnbiBhcyBhIHBsYW5lIHNjYWxlciAqLwo+Pj4+ICAJCQkvKiBmaW5kIHRo ZSBwbGFuZSB0aGF0IHNldCB0aGUgYml0IGFzIHNjYWxlcl91c2VyICovCj4+Pj4gLQkJCXBsYW5l ID0gZHJtX3N0YXRlLT5wbGFuZXNbaV0ucHRyOwo+Pj4+ICAKPj4+PiAgCQkJLyoKPj4+PiAgCQkJ ICogdG8gZW5hYmxlL2Rpc2FibGUgaHEgbW9kZSwgYWRkIHBsYW5lcyB0aGF0IGFyZSB1c2luZyBz Y2FsZXIKPj4+PiAgCQkJICogaW50byB0aGlzIHRyYW5zYWN0aW9uCj4+Pj4gIAkJCSAqLwo+Pj4+ IC0JCQlpZiAoIXBsYW5lKSB7Cj4+Pj4gLQkJCQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0 ZTsKPj4+PiAtCj4+Pj4gKwkJCWlmICghZHJtX3N0YXRlLT5wbGFuZXNbaV0ucHRyKSB7Cj4+Pj4g IAkJCQkvKgo+Pj4+ICAJCQkJICogR0xLKyBzY2FsZXJzIGRvbid0IGhhdmUgYSBIUSBtb2RlIHNv IGl0Cj4+Pj4gIAkJCQkgKiBpc24ndCBuZWNlc3NhcnkgdG8gY2hhbmdlIGJldHdlZW4gSFEgYW5k IGR5biBtb2RlCj4+Pj4gQEAgLTM4MiwyNCArMzc3LDI4IEBAIGludCBpbnRlbF9hdG9taWNfc2V0 dXBfc2NhbGVycyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+Pj4gIAkJCQlp ZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMCB8fCBJU19HRU1JTklMQUtFKGRldl9wcml2KSkK Pj4+PiAgCQkJCQljb250aW51ZTsKPj4+PiAgCj4+Pj4gLQkJCQlwbGFuZSA9IGRybV9wbGFuZV9m cm9tX2luZGV4KCZkZXZfcHJpdi0+ZHJtLCBpKTsKPj4+PiAtCQkJCXN0YXRlID0gZHJtX2F0b21p Y19nZXRfcGxhbmVfc3RhdGUoZHJtX3N0YXRlLCBwbGFuZSk7Cj4+Pj4gLQkJCQlpZiAoSVNfRVJS KHN0YXRlKSkgewo+Pj4+IC0JCQkJCURSTV9ERUJVR19LTVMoIkZhaWxlZCB0byBhZGQgW1BMQU5F OiVkXSB0byBkcm1fc3RhdGVcbiIsCj4+Pj4gLQkJCQkJCXBsYW5lLT5iYXNlLmlkKTsKPj4+PiAt CQkJCQlyZXR1cm4gUFRSX0VSUihzdGF0ZSk7Cj4+Pj4gKwkJCQlwbGFuZSA9IHRvX2ludGVsX3Bs YW5lKGRybV9wbGFuZV9mcm9tX2luZGV4KCZkZXZfcHJpdi0+ZHJtLCBpKSk7Cj4+Pj4gKwkJCQlw bGFuZV9zdGF0ZSA9Cj4+Pj4gKwkJCQkJaW50ZWxfYXRvbWljX2dldF9wbGFuZV9zdGF0ZV9hZnRl cl9jaGVjayhzdGF0ZSwKPj4+PiArCQkJCQkJCQkJCSBjcnRjX3N0YXRlLAo+Pj4+ICsJCQkJCQkJ CQkJIHBsYW5lKTsKPj4+PiArCQkJCWlmIChJU19FUlIocGxhbmVfc3RhdGUpKSB7Cj4+Pj4gKwkJ CQkJRFJNX0RFQlVHX0tNUygiRmFpbGVkIHRvIGFkZCBbUExBTkU6JWRdIHRvIGRybV9zdGF0ZTog JWxpXG4iLAo+Pj4+ICsJCQkJCQlwbGFuZS0+YmFzZS5iYXNlLmlkLCBQVFJfRVJSKHBsYW5lX3N0 YXRlKSk7Cj4+Pj4gKwkJCQkJcmV0dXJuIFBUUl9FUlIocGxhbmVfc3RhdGUpOwo+Pj4+ICAJCQkJ fQo+Pj4+ICsJCQl9IGVsc2Ugewo+Pj4+ICsJCQkJcGxhbmUgPSB0b19pbnRlbF9wbGFuZShkcm1f c3RhdGUtPnBsYW5lc1tpXS5wdHIpOwo+Pj4+ICsJCQkJcGxhbmVfc3RhdGUgPSBpbnRlbF9hdG9t aWNfZ2V0X25ld19wbGFuZV9zdGF0ZShzdGF0ZSwKPj4+PiArCQkJCQkJCQkJICAgICAgIHBsYW5l KTsKPj4+PiAgCQkJfQo+Pj4+ICAKPj4+PiAtCQkJaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFu ZShwbGFuZSk7Cj4+Pj4gLQkJCWlkeCA9IHBsYW5lLT5iYXNlLmlkOwo+Pj4+IC0KPj4+PiAgCQkJ LyogcGxhbmUgb24gZGlmZmVyZW50IGNydGMgY2Fubm90IGJlIGEgc2NhbGVyIHVzZXIgb2YgdGhp cyBjcnRjICovCj4+Pj4gLQkJCWlmIChXQVJOX09OKGludGVsX3BsYW5lLT5waXBlICE9IGludGVs X2NydGMtPnBpcGUpKQo+Pj4+ICsJCQlpZiAoV0FSTl9PTihwbGFuZS0+cGlwZSAhPSBpbnRlbF9j cnRjLT5waXBlKSkKPj4+PiAgCQkJCWNvbnRpbnVlOwo+Pj4+ICAKPj4+PiAtCQkJcGxhbmVfc3Rh dGUgPSBpbnRlbF9hdG9taWNfZ2V0X25ld19wbGFuZV9zdGF0ZShpbnRlbF9zdGF0ZSwKPj4+PiAt CQkJCQkJCQkgICAgICAgaW50ZWxfcGxhbmUpOwo+Pj4+ICsJCQluYW1lID0gIlBMQU5FIjsKPj4+ PiArCQkJaWR4ID0gcGxhbmUtPmJhc2UuYmFzZS5pZDsKPj4+PiAgCQkJc2NhbGVyX2lkID0gJnBs YW5lX3N0YXRlLT5zY2FsZXJfaWQ7Cj4+Pj4gIAkJfQo+Pj4+ICAKPj4+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWNfcGxhbmUuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljX3BsYW5lLmMKPj4+PiBpbmRleCA5 OGI3NzY2ZWFhN2EuLjRlYWFiMGRlOThiZiAxMDA2NDQKPj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2F0b21pY19wbGFuZS5jCj4+Pj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWNfcGxhbmUuYwo+Pj4+IEBAIC0zNjYsNiAr MzY2LDI1IEBAIHZvaWQgaTl4eF91cGRhdGVfcGxhbmVzX29uX2NydGMoc3RydWN0IGludGVsX2F0 b21pY19zdGF0ZSAqc3RhdGUsCj4+Pj4gIAl9Cj4+Pj4gIH0KPj4+PiAgCj4+Pj4gK3N0cnVjdCBp bnRlbF9wbGFuZV9zdGF0ZSAqCj4+Pj4gK2ludGVsX2F0b21pY19nZXRfcGxhbmVfc3RhdGVfYWZ0 ZXJfY2hlY2soc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4+Pj4gKwkJCQkJIHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZSwKPj4+PiArCQkJCQkgc3RydWN0 IGludGVsX3BsYW5lICpwbGFuZSkKPj4+PiArewo+Pj4+ICsJc3RydWN0IGludGVsX3BsYW5lX3N0 YXRlICpwbGFuZV9zdGF0ZSA9Cj4+Pj4gKwkJaW50ZWxfYXRvbWljX2dldF9uZXdfcGxhbmVfc3Rh dGUoc3RhdGUsIHBsYW5lKTsKPj4+PiArCj4+Pj4gKwlpZiAocGxhbmVfc3RhdGUpCj4+Pj4gKwkJ cmV0dXJuIHBsYW5lX3N0YXRlOwo+Pj4+ICsKPj4+PiArCXBsYW5lX3N0YXRlID0gaW50ZWxfYXRv bWljX2dldF9wbGFuZV9zdGF0ZShzdGF0ZSwgcGxhbmUpOwo+Pj4+ICsJaWYgKElTX0VSUihwbGFu ZV9zdGF0ZSkpCj4+Pj4gKwkJcmV0dXJuIHBsYW5lX3N0YXRlOwo+Pj4+ICsKPj4+PiArCW5ld19j cnRjX3N0YXRlLT51cGRhdGVfcGxhbmVzIHw9IEJJVChwbGFuZS0+aWQpOwo+Pj4gSSBhbHNvIGRv bid0IHJlYWxseSBsaWtlIGJ1cnlpbmcgdGhpcyBhbGwgdGhlIHdheSBkb3duLiBTZWVtcwo+Pj4g cmF0aGVyIG5vbi1vYnZpb3VzIGZyb20gdGhlIGNhbGxlci4gQWxzbyBzZWVtcyB3cm9uZyB0byBu b3Qgc2V0Cj4+PiB0aGUgZmxhZyBpZiB0aGUgcGxhbmUgd2FzIGFscmVhZHkgcGFydCBvZiB0aGUg c3RhdGUuCj4+Pgo+Pj4gSSdkIHNheSB3ZSBqdXN0IG5lZWQgdG8gaGFuZCByb2xsIGFkZF9hZmZl Y3RlZF9wbGFuZXMoKSBmb3IgdGhlCj4+PiBjZGNsayBjb2RlLiBBbmQgdGhlcmUgaXMgc2hvdWxk IGRlZmluaXRlbHkgYmUgc3VmZmljaWVudCB0bwo+Pj4gYWRkIGp1c3QgdGhlIGFjdGl2ZSBwbGFu ZXMuCj4+Pgo+Pj4+ICsJcmV0dXJuIHBsYW5lX3N0YXRlOwo+Pj4+ICt9Cj4+Pj4gKwo+Pj4+ICBj b25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2hlbHBlcl9mdW5jcyBpbnRlbF9wbGFuZV9oZWxwZXJfZnVu Y3MgPSB7Cj4+Pj4gIAkucHJlcGFyZV9mYiA9IGludGVsX3ByZXBhcmVfcGxhbmVfZmIsCj4+Pj4g IAkuY2xlYW51cF9mYiA9IGludGVsX2NsZWFudXBfcGxhbmVfZmIsCj4+Pj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY2RjbGsuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY2RjbGsuYwo+Pj4+IGluZGV4IDQzNTY0Mjk1Yjg2NC4u NDJiZDAyNjM4ZDMyIDEwMDY0NAo+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfY2RjbGsuYwo+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfY2RjbGsuYwo+Pj4+IEBAIC0yMjQ5LDYgKzIyNDksNyBAQCBzdGF0aWMgaW50IGludGVs X21vZGVzZXRfYWxsX3BpcGVzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQo+Pj4+ ICAJICovCj4+Pj4gIAlmb3JfZWFjaF9pbnRlbF9jcnRjKCZkZXZfcHJpdi0+ZHJtLCBjcnRjKSB7 Cj4+Pj4gIAkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Cj4+Pj4gKwkJc3Ry dWN0IGludGVsX3BsYW5lICpwbGFuZTsKPj4+PiAgCQlpbnQgcmV0Owo+Pj4+ICAKPj4+PiAgCQlj cnRjX3N0YXRlID0gaW50ZWxfYXRvbWljX2dldF9jcnRjX3N0YXRlKCZzdGF0ZS0+YmFzZSwgY3J0 Yyk7Cj4+Pj4gQEAgLTIyNjYsMTIgKzIyNjcsMTQgQEAgc3RhdGljIGludCBpbnRlbF9tb2Rlc2V0 X2FsbF9waXBlcyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKPj4+PiAgCQlpZiAo cmV0KQo+Pj4+ICAJCQlyZXR1cm4gcmV0Owo+Pj4+ICAKPj4+PiAtCQlyZXQgPSBkcm1fYXRvbWlj X2FkZF9hZmZlY3RlZF9wbGFuZXMoJnN0YXRlLT5iYXNlLAo+Pj4+IC0JCQkJCQkgICAgICZjcnRj LT5iYXNlKTsKPj4+PiAtCQlpZiAocmV0KQo+Pj4+IC0JCQlyZXR1cm4gcmV0Owo+Pj4+IC0KPj4+ PiAtCQljcnRjX3N0YXRlLT51cGRhdGVfcGxhbmVzIHw9IGNydGNfc3RhdGUtPmFjdGl2ZV9wbGFu ZXM7Cj4+Pj4gKwkJZm9yX2VhY2hfaW50ZWxfcGxhbmVfb25fY3J0YygmZGV2X3ByaXYtPmRybSwg Y3J0YywgcGxhbmUpIHsKPj4+PiArCQkJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9z dGF0ZSA9Cj4+Pj4gKwkJCQlpbnRlbF9hdG9taWNfZ2V0X3BsYW5lX3N0YXRlX2FmdGVyX2NoZWNr KHN0YXRlLAo+Pj4+ICsJCQkJCQkJCQkgY3J0Y19zdGF0ZSwKPj4+PiArCQkJCQkJCQkJIHBsYW5l KTsKPj4+PiArCQkJaWYgKElTX0VSUihwbGFuZV9zdGF0ZSkpCj4+Pj4gKwkJCQlyZXR1cm4gUFRS X0VSUihwbGFuZV9zdGF0ZSk7Cj4+Pj4gKwkJfQo+Pj4+ICAJfQo+Pj4+ICAKPj4+PiAgCXJldHVy biAwOwo+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2NvbG9yLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NvbG9yLmMKPj4+ PiBpbmRleCA5YWIzNDkwMjY2M2UuLjFlM2E2MjNlYWY4MiAxMDA2NDQKPj4+PiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NvbG9yLmMKPj4+PiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NvbG9yLmMKPj4+PiBAQCAtMTA3NywxMSArMTA3 NywxMiBAQCBpbnRlbF9jb2xvcl9hZGRfYWZmZWN0ZWRfcGxhbmVzKHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpuZXdfY3J0Y19zdGF0ZSkKPj4+PiAgCQlpZiAoIW5lZWRfcGxhbmVfdXBkYXRlKHBs YW5lLCBuZXdfY3J0Y19zdGF0ZSkpCj4+Pj4gIAkJCWNvbnRpbnVlOwo+Pj4+ICAKPj4+PiAtCQlw bGFuZV9zdGF0ZSA9IGludGVsX2F0b21pY19nZXRfcGxhbmVfc3RhdGUoc3RhdGUsIHBsYW5lKTsK Pj4+PiArCQlwbGFuZV9zdGF0ZSA9Cj4+Pj4gKwkJCWludGVsX2F0b21pY19nZXRfcGxhbmVfc3Rh dGVfYWZ0ZXJfY2hlY2soc3RhdGUsCj4+Pj4gKwkJCQkJCQkJIG5ld19jcnRjX3N0YXRlLAo+Pj4+ ICsJCQkJCQkJCSBwbGFuZSk7Cj4+Pj4gIAkJaWYgKElTX0VSUihwbGFuZV9zdGF0ZSkpCj4+Pj4g IAkJCXJldHVybiBQVFJfRVJSKHBsYW5lX3N0YXRlKTsKPj4+PiAtCj4+Pj4gLQkJbmV3X2NydGNf c3RhdGUtPnVwZGF0ZV9wbGFuZXMgfD0gQklUKHBsYW5lLT5pZCk7Cj4+Pj4gIAl9Cj4+Pj4gIAo+ Pj4+ICAJcmV0dXJuIDA7Cj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgKPj4+PiBpbmRleCA5NzY2NjlmMDFhOGMuLjUyNjQyMzQz N2Y2MyAxMDA2NDQKPj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2Rpc3BsYXlfdHlwZXMuaAo+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfZGlzcGxheV90eXBlcy5oCj4+Pj4gQEAgLTE1NDEsNCArMTU0MSwxMCBAQCBzdGF0aWMg aW5saW5lIHUzMiBpbnRlbF9wbGFuZV9nZ3R0X29mZnNldChjb25zdCBzdHJ1Y3QgaW50ZWxfcGxh bmVfc3RhdGUgKnN0YXRlKQo+Pj4+ICAJcmV0dXJuIGk5MTVfZ2d0dF9vZmZzZXQoc3RhdGUtPnZt YSk7Cj4+Pj4gIH0KPj4+PiAgCj4+Pj4gKy8qIGludGVsX2F0b21pY19wbGFuZS5jICovCj4+Pj4g K3N0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqCj4+Pj4gK2ludGVsX2F0b21pY19nZXRfcGxhbmVf c3RhdGVfYWZ0ZXJfY2hlY2soc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4+Pj4g KwkJCQkJIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+Pj4+ICsJCQkJCSBz dHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lKTsKPj4+PiArCj4+Pj4gICNlbmRpZiAvKiAgX19JTlRF TF9ESVNQTEFZX1RZUEVTX0hfXyAqLwo+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+Pj4+IGlu ZGV4IDUzMzU4ZTMzZGYxYi4uNWU2ZTU0Y2IyMmZlIDEwMDY0NAo+Pj4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9wbS5jCj4+Pj4gQEAgLTUyNDIsMTEgKzUyNDIsMTIgQEAgc2tsX2RkYl9hZGRfYWZmZWN0 ZWRfcGxhbmVzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwK Pj4+PiAgCQkJCQkmbmV3X2NydGNfc3RhdGUtPndtLnNrbC5wbGFuZV9kZGJfdXZbcGxhbmVfaWRd KSkKPj4+PiAgCQkJY29udGludWU7Cj4+Pj4gIAo+Pj4+IC0JCXBsYW5lX3N0YXRlID0gaW50ZWxf YXRvbWljX2dldF9wbGFuZV9zdGF0ZShzdGF0ZSwgcGxhbmUpOwo+Pj4+ICsJCXBsYW5lX3N0YXRl ID0KPj4+PiArCQkJaW50ZWxfYXRvbWljX2dldF9wbGFuZV9zdGF0ZV9hZnRlcl9jaGVjayhzdGF0 ZSwKPj4+PiArCQkJCQkJCQkgbmV3X2NydGNfc3RhdGUsCj4+Pj4gKwkJCQkJCQkJIHBsYW5lKTsK Pj4+PiAgCQlpZiAoSVNfRVJSKHBsYW5lX3N0YXRlKSkKPj4+PiAgCQkJcmV0dXJuIFBUUl9FUlIo cGxhbmVfc3RhdGUpOwo+Pj4+IC0KPj4+PiAtCQluZXdfY3J0Y19zdGF0ZS0+dXBkYXRlX3BsYW5l cyB8PSBCSVQocGxhbmVfaWQpOwo+Pj4+ICAJfQo+Pj4+ICAKPj4+PiAgCXJldHVybiAwOwo+Pj4+ IEBAIC01NTM0LDExICs1NTM1LDEyIEBAIHN0YXRpYyBpbnQgc2tsX3dtX2FkZF9hZmZlY3RlZF9w bGFuZXMoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4+Pj4gIAkJCQkJJm5ld19j cnRjX3N0YXRlLT53bS5za2wub3B0aW1hbC5wbGFuZXNbcGxhbmVfaWRdKSkKPj4+PiAgCQkJY29u dGludWU7Cj4+Pj4gIAo+Pj4+IC0JCXBsYW5lX3N0YXRlID0gaW50ZWxfYXRvbWljX2dldF9wbGFu ZV9zdGF0ZShzdGF0ZSwgcGxhbmUpOwo+Pj4+ICsJCXBsYW5lX3N0YXRlID0KPj4+PiArCQkJaW50 ZWxfYXRvbWljX2dldF9wbGFuZV9zdGF0ZV9hZnRlcl9jaGVjayhzdGF0ZSwKPj4+PiArCQkJCQkJ CQkgbmV3X2NydGNfc3RhdGUsCj4+Pj4gKwkJCQkJCQkJIHBsYW5lKTsKPj4+PiAgCQlpZiAoSVNf RVJSKHBsYW5lX3N0YXRlKSkKPj4+PiAgCQkJcmV0dXJuIFBUUl9FUlIocGxhbmVfc3RhdGUpOwo+ Pj4+IC0KPj4+PiAtCQluZXdfY3J0Y19zdGF0ZS0+dXBkYXRlX3BsYW5lcyB8PSBCSVQocGxhbmVf aWQpOwo+Pj4+ICAJfQo+Pj4+ICAKPj4+PiAgCXJldHVybiAwOwo+Pj4+IC0tIAo+Pj4+IDIuMjMu MAo+Pj4+Cj4+Pj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KPj4+PiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4+Pj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwo+Pj4+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4