From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: Re: [PATCH 4/4] drm/i915: Remove begin/finish_crtc_commit, v2. Date: Thu, 26 Sep 2019 11:22:24 +0200 Message-ID: References: <20190925145901.3943-1-maarten.lankhorst@linux.intel.com> <20190925145901.3943-4-maarten.lankhorst@linux.intel.com> <20190925214212.GT1869@mdroper-desk1.amr.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id C5E156E086 for ; Thu, 26 Sep 2019 09:22:26 +0000 (UTC) In-Reply-To: <20190925214212.GT1869@mdroper-desk1.amr.corp.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: Matt Roper Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T3AgMjUtMDktMjAxOSBvbSAyMzo0MiBzY2hyZWVmIE1hdHQgUm9wZXI6Cj4gT24gV2VkLCBTZXAg MjUsIDIwMTkgYXQgMDQ6NTk6MDFQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9yc3Qgd3JvdGU6Cj4+ IFRoaXMgY2FuIGFsbCBiZSBkb25lIGZyb20gdGhlIGludGVsX3VwZGF0ZV9jcnRjIGZ1bmN0aW9u LiBTcGxpdCBvdXQgdGhlCj4+IHBpcGUgdXBkYXRlIGludG8gYSBzZXBhcmF0ZSBmdW5jdGlvbiwg anVzdCBsaWtlIGlzIGRvbmUgZm9yIHRoZSBwbGFuZXMuCj4+IFB1bGwgaW4gYWxsIHRoZSBjaGFu Z2VzIGRvbmUgZHVyaW5nIGZhc3RzZXQgYXMgd2VsbC4gSXQgbWFrZXMgbm8gc2Vuc2UKPj4gZm9y IGl0IHRvIHN0aWxsIGV4aXN0IGFzIGEgc2VwYXJhdGUgZnVuY3Rpb24uCj4+Cj4+IENoYW5nZXMg c2luY2UgdjE6Cj4+IC0gSW5saW5lIGludGVsX3VwZGF0ZV9waXBlX2NvbmZpZygpCj4+Cj4+IFNp Z25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5p bnRlbC5jb20+Cj4+IC0tLQo+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9k aXNwbGF5LmMgfCAxOTcgKysrKysrKystLS0tLS0tLS0tLQo+PiAgMSBmaWxlIGNoYW5nZWQsIDg2 IGluc2VydGlvbnMoKyksIDExMSBkZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKPj4gaW5kZXggYjc3NTc0Y2RhNjQ4Li41YTlk MDZhZjlmMjkgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfZGlzcGxheS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf ZGlzcGxheS5jCj4+IEBAIC0xMzYsOCArMTM2LDYgQEAgc3RhdGljIHZvaWQgdmx2X3ByZXBhcmVf cGxsKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+PiAgCQkJICAgIGNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZyk7Cj4+ICBzdGF0aWMgdm9pZCBjaHZfcHJlcGFyZV9w bGwoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4+ICAJCQkgICAgY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKTsKPj4gLXN0YXRpYyB2b2lkIGludGVsX2JlZ2luX2Ny dGNfY29tbWl0KHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKiwgc3RydWN0IGludGVsX2NydGMg Kik7Cj4+IC1zdGF0aWMgdm9pZCBpbnRlbF9maW5pc2hfY3J0Y19jb21taXQoc3RydWN0IGludGVs X2F0b21pY19zdGF0ZSAqLCBzdHJ1Y3QgaW50ZWxfY3J0YyAqKTsKPj4gIHN0YXRpYyB2b2lkIGlu dGVsX2NydGNfaW5pdF9zY2FsZXJzKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+PiAgCQkJCSAg ICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7Cj4+ICBzdGF0aWMgdm9pZCBz a3lsYWtlX3BmaXRfZW5hYmxlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKTsKPj4gQEAgLTQ0MDksNDUgKzQ0MDcsNiBAQCBzdGF0aWMgdm9pZCBpY2xfc2V0X3BpcGVf Y2hpY2tlbihzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPj4gIAlJOTE1X1dSSVRFKFBJUEVfQ0hJ Q0tFTihwaXBlKSwgdG1wKTsKPj4gIH0KPj4gIAo+PiAtc3RhdGljIHZvaWQgaW50ZWxfdXBkYXRl X3BpcGVfY29uZmlnKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0 ZSwKPj4gLQkJCQkgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdfY3J0Y19z dGF0ZSkKPj4gLXsKPj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMo bmV3X2NydGNfc3RhdGUtPnVhcGkuY3J0Yyk7Cj4+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7Cj4+IC0KPj4gLQkvKiBkcm1fYXRv bWljX2hlbHBlcl91cGRhdGVfbGVnYWN5X21vZGVzZXRfc3RhdGUgbWlnaHQgbm90IGJlIGNhbGxl ZC4gKi8KPj4gLQljcnRjLT5iYXNlLm1vZGUgPSBuZXdfY3J0Y19zdGF0ZS0+dWFwaS5tb2RlOwo+ PiAtCj4+IC0JLyoKPj4gLQkgKiBVcGRhdGUgcGlwZSBzaXplIGFuZCBhZGp1c3QgZml0dGVyIGlm IG5lZWRlZDogdGhlIHJlYXNvbiBmb3IgdGhpcyBpcwo+PiAtCSAqIHRoYXQgaW4gY29tcHV0ZV9t b2RlX2NoYW5nZXMgd2UgY2hlY2sgdGhlIG5hdGl2ZSBtb2RlIChub3QgdGhlIHBmaXQKPj4gLQkg KiBtb2RlKSB0byBzZWUgaWYgd2UgY2FuIGZsaXAgcmF0aGVyIHRoYW4gZG8gYSBmdWxsIG1vZGUg c2V0LiBJbiB0aGUKPj4gLQkgKiBmYXN0Ym9vdCBjYXNlLCB3ZSdsbCBmbGlwLCBidXQgaWYgd2Ug ZG9uJ3QgdXBkYXRlIHRoZSBwaXBlc3JjIGFuZAo+PiAtCSAqIHBmaXQgc3RhdGUsIHdlJ2xsIGVu ZCB1cCB3aXRoIGEgYmlnIGZiIHNjYW5uZWQgb3V0IGludG8gdGhlIHdyb25nCj4+IC0JICogc2l6 ZWQgc3VyZmFjZS4KPj4gLQkgKi8KPj4gLQo+PiAtCUk5MTVfV1JJVEUoUElQRVNSQyhjcnRjLT5w aXBlKSwKPj4gLQkJICAgKChuZXdfY3J0Y19zdGF0ZS0+cGlwZV9zcmNfdyAtIDEpIDw8IDE2KSB8 Cj4+IC0JCSAgIChuZXdfY3J0Y19zdGF0ZS0+cGlwZV9zcmNfaCAtIDEpKTsKPj4gLQo+PiAtCS8q IG9uIHNreWxha2UgdGhpcyBpcyBkb25lIGJ5IGRldGFjaGluZyBzY2FsZXJzICovCj4+IC0JaWYg KElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkgewo+PiAtCQlza2xfZGV0YWNoX3NjYWxlcnMobmV3 X2NydGNfc3RhdGUpOwo+PiAtCj4+IC0JCWlmIChuZXdfY3J0Y19zdGF0ZS0+cGNoX3BmaXQuZW5h YmxlZCkKPj4gLQkJCXNreWxha2VfcGZpdF9lbmFibGUobmV3X2NydGNfc3RhdGUpOwo+PiAtCX0g ZWxzZSBpZiAoSEFTX1BDSF9TUExJVChkZXZfcHJpdikpIHsKPj4gLQkJaWYgKG5ld19jcnRjX3N0 YXRlLT5wY2hfcGZpdC5lbmFibGVkKQo+PiAtCQkJaXJvbmxha2VfcGZpdF9lbmFibGUobmV3X2Ny dGNfc3RhdGUpOwo+PiAtCQllbHNlIGlmIChvbGRfY3J0Y19zdGF0ZS0+cGNoX3BmaXQuZW5hYmxl ZCkKPj4gLQkJCWlyb25sYWtlX3BmaXRfZGlzYWJsZShvbGRfY3J0Y19zdGF0ZSk7Cj4+IC0JfQo+ PiAtCj4+IC0JaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEpCj4+IC0JCWljbF9zZXRfcGlw ZV9jaGlja2VuKGNydGMpOwo+PiAtfQo+PiAtCj4+ICBzdGF0aWMgdm9pZCBpbnRlbF9mZGlfbm9y bWFsX3RyYWluKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+PiAgewo+PiAgCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKPj4gQEAgLTEzNzM5LDEzICsxMzY5OCw4OCBA QCB1MzIgaW50ZWxfY3J0Y19nZXRfdmJsYW5rX2NvdW50ZXIoc3RydWN0IGludGVsX2NydGMgKmNy dGMpCj4+ICAJcmV0dXJuIGNydGMtPmJhc2UuZnVuY3MtPmdldF92YmxhbmtfY291bnRlcigmY3J0 Yy0+YmFzZSk7Cj4+ICB9Cj4+ICAKPj4gK3ZvaWQgaW50ZWxfY3J0Y19hcm1fZmlmb191bmRlcnJ1 bihzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPj4gKwkJCQkgIHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlKQo+PiArewo+PiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+PiArCj4+ICsJaWYgKCFJU19HRU4oZGV2 X3ByaXYsIDIpKQo+PiArCQlpbnRlbF9zZXRfY3B1X2ZpZm9fdW5kZXJydW5fcmVwb3J0aW5nKGRl dl9wcml2LCBjcnRjLT5waXBlLCB0cnVlKTsKPj4gKwo+PiArCWlmIChjcnRjX3N0YXRlLT5oYXNf cGNoX2VuY29kZXIpIHsKPj4gKwkJZW51bSBwaXBlIHBjaF90cmFuc2NvZGVyID0KPj4gKwkJCWlu dGVsX2NydGNfcGNoX3RyYW5zY29kZXIoY3J0Yyk7Cj4+ICsKPj4gKwkJaW50ZWxfc2V0X3BjaF9m aWZvX3VuZGVycnVuX3JlcG9ydGluZyhkZXZfcHJpdiwgcGNoX3RyYW5zY29kZXIsIHRydWUpOwo+ PiArCX0KPj4gK30KPj4gKwo+PiArc3RhdGljIHZvaWQgY29tbWl0X3BpcGVfY29uZmlnKHN0cnVj dCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAo+PiArCQkJICAgICAgIHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKPj4gKwkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUpCj4+ICt7Cj4+ICsJc3RydWN0IGludGVsX2NydGMgKmNy dGMgPSB0b19pbnRlbF9jcnRjKG5ld19jcnRjX3N0YXRlLT51YXBpLmNydGMpOwo+PiArCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoc3RhdGUtPmJhc2UuZGV2KTsK Pj4gKwlib29sIG1vZGVzZXQgPSBuZWVkc19tb2Rlc2V0KG5ld19jcnRjX3N0YXRlKTsKPj4gKwo+ PiArCWlmICghbW9kZXNldCkgewo+PiArCQlpZiAobmV3X2NydGNfc3RhdGUtPnVhcGkuY29sb3Jf bWdtdF9jaGFuZ2VkIHx8Cj4+ICsJCSAgICBuZXdfY3J0Y19zdGF0ZS0+dXBkYXRlX3BpcGUpCj4+ ICsJCQlpbnRlbF9jb2xvcl9jb21taXQobmV3X2NydGNfc3RhdGUpOwo+PiArCj4+ICsJCWlmIChJ TlRFTF9HRU4oZGV2X3ByaXYpID49IDkpCj4+ICsJCQlza2xfZGV0YWNoX3NjYWxlcnMobmV3X2Ny dGNfc3RhdGUpOwo+PiArCj4+ICsJCWlmIChuZXdfY3J0Y19zdGF0ZS0+dXBkYXRlX3BpcGUpIHsK Pj4gKwkJCS8qIGRybV9hdG9taWNfaGVscGVyX3VwZGF0ZV9sZWdhY3lfbW9kZXNldF9zdGF0ZSBt aWdodCBub3QgYmUgY2FsbGVkLiAqLwo+PiArCQkJY3J0Yy0+YmFzZS5tb2RlID0gbmV3X2NydGNf c3RhdGUtPnVhcGkubW9kZTsKPj4gKwo+PiArCQkJLyoKPj4gKwkJCSAqIFVwZGF0ZSBwaXBlIHNp emUgYW5kIGFkanVzdCBmaXR0ZXIgaWYgbmVlZGVkOiB0aGUgcmVhc29uIGZvciB0aGlzIGlzCj4+ ICsJCQkgKiB0aGF0IGluIGNvbXB1dGVfbW9kZV9jaGFuZ2VzIHdlIGNoZWNrIHRoZSBuYXRpdmUg bW9kZSAobm90IHRoZSBwZml0Cj4+ICsJCQkgKiBtb2RlKSB0byBzZWUgaWYgd2UgY2FuIGZsaXAg cmF0aGVyIHRoYW4gZG8gYSBmdWxsIG1vZGUgc2V0LiBJbiB0aGUKPj4gKwkJCSAqIGZhc3Rib290 IGNhc2UsIHdlJ2xsIGZsaXAsIGJ1dCBpZiB3ZSBkb24ndCB1cGRhdGUgdGhlIHBpcGVzcmMgYW5k Cj4+ICsJCQkgKiBwZml0IHN0YXRlLCB3ZSdsbCBlbmQgdXAgd2l0aCBhIGJpZyBmYiBzY2FubmVk IG91dCBpbnRvIHRoZSB3cm9uZwo+PiArCQkJICogc2l6ZWQgc3VyZmFjZS4KPj4gKwkJCSAqLwo+ PiArCj4+ICsJCQlJOTE1X1dSSVRFKFBJUEVTUkMoY3J0Yy0+cGlwZSksCj4+ICsJCQkJICAoKG5l d19jcnRjX3N0YXRlLT5waXBlX3NyY193IC0gMSkgPDwgMTYpIHwKPj4gKwkJCQkgIChuZXdfY3J0 Y19zdGF0ZS0+cGlwZV9zcmNfaCAtIDEpKTsKPiBpbnRlbF9zZXRfcGlwZV9zcmNfc2l6ZShuZXdf Y3J0Y19zdGF0ZSk7Cj4KPiB0byBiZSBtb3JlIGZ1dHVyZS1wcm9vZiBpbiBjYXNlIHRoZSByZWdp c3RlciBjaGFuZ2VzIGluIHRoZSBmdXR1cmUuCgpZZWFoLCB0aGlzIGxpbmUgcHJvYmFibHkgcHJl ZGF0ZXMgYXRvbWljLCB3aXRoIHRoZSBvbGQgZmFzdGJvb3QgaGFjayBpbiB0aGUgc2V0Y3J0YyBj YWxsLgoKR29vZCB0byBnZXQgcmlkIG9mIGl0LiA6KQoKPj4gKwo+PiArCQkJaWYgKElOVEVMX0dF TihkZXZfcHJpdikgPj0gOSkgewo+PiArCQkJCS8qCj4+ICsJCQkJICogZW5hYmxlIHBpcGUgc2Nh bGVyIGhlcmUgaWYgbmVlZGVkLCBpZgo+PiArCQkJCSAqIGl0J3MgZGlzYWJsZWQsIHRoYXQncyBk b25lIGJ5Cj4+ICsJCQkJICogc2tsX2RldGFjaF9zY2FsZXJzKCkgYWJvdmUuCj4+ICsJCQkJICov Cj4+ICsJCQkJc2t5bGFrZV9wZml0X2VuYWJsZShuZXdfY3J0Y19zdGF0ZSk7Cj4+ICsJCQl9IGVs c2UgaWYgKEhBU19QQ0hfU1BMSVQoZGV2X3ByaXYpKSB7Cj4+ICsJCQkJaWYgKCFuZXdfY3J0Y19z dGF0ZS0+cGNoX3BmaXQuZW5hYmxlZCkKPj4gKwkJCQkJaXJvbmxha2VfcGZpdF9kaXNhYmxlKG9s ZF9jcnRjX3N0YXRlKTsKPj4gKwkJCQllbHNlCj4+ICsJCQkJCWlyb25sYWtlX3BmaXRfZW5hYmxl KG5ld19jcnRjX3N0YXRlKTsKPj4gKwkJCX0KPj4gKwo+PiArCQkJaWYgKElOVEVMX0dFTihkZXZf cHJpdikgPj0gMTEpCj4+ICsJCQkJaWNsX3NldF9waXBlX2NoaWNrZW4oY3J0Yyk7Cj4+ICsJCX0K Pj4gKwo+PiArCQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5IHx8IElTX0JST0FEV0VMTChk ZXZfcHJpdikpCj4+ICsJCQliZHdfc2V0X3BpcGVtaXNjKG5ld19jcnRjX3N0YXRlKTsKPj4gKwl9 Cj4+ICsKPj4gKwlpZiAoZGV2X3ByaXYtPmRpc3BsYXkuYXRvbWljX3VwZGF0ZV93YXRlcm1hcmtz KQo+PiArCQlkZXZfcHJpdi0+ZGlzcGxheS5hdG9taWNfdXBkYXRlX3dhdGVybWFya3Moc3RhdGUs Cj4+ICsJCQkJCQkJICAgbmV3X2NydGNfc3RhdGUpOwo+IEl0IG1pZ2h0IG1ha2Ugc2Vuc2UgdG8g bW92ZSB0aGUgd2F0ZXJtYXJrIHVwZGF0ZSBvdXQgdG8gdGhlIGNhbGxlci4gIFRoZQo+IHdhdGVy bWFyayByZWdpc3RlcnMgdGhlbXNlbHZlcyBhcmUgcGxhbmUtYmFzZWQsIHNvIGRlYWxpbmcgd2l0 aCB0aGVtIGluCj4gdGhlIGNvbW1pdF9waXBlX2NvbmZpZyBmdW5jdGlvbiBpcyBhbHJlYWR5IHNs aWdodGx5IG5vbi1pbnR1aXRpdmUuICBQbHVzCj4gdGhhdCB3aWxsIGxldCB1cyBqdXN0IGRvIGEK Pgo+ICAgICAgICAgLyoKPiAgICAgICAgICAqIER1cmluZyBtb2Rlc2V0cyBwaXBlIGNvbmZpZ3Vy YXRpb24gd2FzIHByb2dyYW1tZWQgYXMgdGhlCj4gICAgICAgICAgKiBDUlRDIHdhcyBlbmFibGVk Lgo+ICAgICAgICAgICovCj4gICAgICAgICBpZiAoIW1vZGVzZXQpCj4gICAgICAgICAgICAgICAg IHJldHVybjsKPgo+IGFuZCBkcm9wIGEgbGV2ZWwgb2YgbmVzdGluZyBmb3IgdGhlIHJlc3Qgb2Yg dGhpcyBmdW5jdGlvbi4KPgo+Cj4+ICt9Cj4+ICsKPj4gIHN0YXRpYyB2b2lkIGludGVsX3VwZGF0 ZV9jcnRjKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+PiAgCQkJICAgICAgc3RydWN0IGludGVs X2F0b21pY19zdGF0ZSAqc3RhdGUsCj4+ICAJCQkgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqb2xkX2NydGNfc3RhdGUsCj4+ICAJCQkgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq bmV3X2NydGNfc3RhdGUpCj4+ICB7Cj4+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHN0YXRl LT5iYXNlLmRldjsKPj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGRldik7Cj4+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShzdGF0ZS0+YmFzZS5kZXYpOwo+PiAgCWJvb2wgbW9kZXNldCA9IG5lZWRzX21vZGVzZXQobmV3 X2NydGNfc3RhdGUpOwo+PiAgCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqbmV3X3BsYW5lX3N0 YXRlID0KPj4gIAkJaW50ZWxfYXRvbWljX2dldF9uZXdfcGxhbmVfc3RhdGUoc3RhdGUsCj4+IEBA IC0xMzc2OSwxNCArMTM4MDMsMjEgQEAgc3RhdGljIHZvaWQgaW50ZWxfdXBkYXRlX2NydGMoc3Ry dWN0IGludGVsX2NydGMgKmNydGMsCj4+ICAJZWxzZSBpZiAobmV3X3BsYW5lX3N0YXRlKQo+PiAg CQlpbnRlbF9mYmNfZW5hYmxlKGNydGMsIG5ld19jcnRjX3N0YXRlLCBuZXdfcGxhbmVfc3RhdGUp Owo+PiAgCj4+IC0JaW50ZWxfYmVnaW5fY3J0Y19jb21taXQoc3RhdGUsIGNydGMpOwo+PiArCS8q IFBlcmZvcm0gdmJsYW5rIGV2YXNpb24gYXJvdW5kIGNvbW1pdCBvcGVyYXRpb24gKi8KPj4gKwlp bnRlbF9waXBlX3VwZGF0ZV9zdGFydChuZXdfY3J0Y19zdGF0ZSk7Cj4+ICsKPj4gKwljb21taXRf cGlwZV9jb25maWcoc3RhdGUsIG9sZF9jcnRjX3N0YXRlLCBuZXdfY3J0Y19zdGF0ZSk7Cj4+ICAK Pj4gIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KQo+PiAgCQlza2xfdXBkYXRlX3BsYW5l c19vbl9jcnRjKHN0YXRlLCBjcnRjKTsKPj4gIAllbHNlCj4+ICAJCWk5eHhfdXBkYXRlX3BsYW5l c19vbl9jcnRjKHN0YXRlLCBjcnRjKTsKPj4gIAo+PiAtCWludGVsX2ZpbmlzaF9jcnRjX2NvbW1p dChzdGF0ZSwgY3J0Yyk7Cj4+ICsJaW50ZWxfcGlwZV91cGRhdGVfZW5kKG5ld19jcnRjX3N0YXRl KTsKPj4gKwo+PiArCWlmIChuZXdfY3J0Y19zdGF0ZS0+dXBkYXRlX3BpcGUgJiYgIW1vZGVzZXQg JiYKPj4gKwkgICAgb2xkX2NydGNfc3RhdGUtPmh3Lm1vZGUucHJpdmF0ZV9mbGFncyAmIEk5MTVf TU9ERV9GTEFHX0lOSEVSSVRFRCkKPj4gKwkJaW50ZWxfY3J0Y19hcm1fZmlmb191bmRlcnJ1bihj cnRjLCBuZXdfY3J0Y19zdGF0ZSk7Cj4gSXQgbWlnaHQgYmUgd29ydGggYWRkaW5nIGEgY29tbWVu dCB0byB0aGlzIGJsb2NrLiAgSSBhbHdheXMgaGF2ZSB0byBnbwo+IGRpZyBiYWNrIHRocm91Z2gg Z2l0IGhpc3RvcnkgdG8gcmVtaW5kIG15c2VsZiB3ZSB0aGlzIGlzIG5lZWRlZC4gIE1heWJlCj4g c29tZXRoaW5nIGxpa2U6Cj4KPiAgICAgICAgIC8qCj4gICAgICAgICAgKiBXZSB1c3VhbGx5IGVu YWJsZSBGSUZPIHVuZGVycnVuIGludGVycnVwdHMgYXMgcGFydCBvZiB0aGUKPiAgICAgICAgICAq IENSVEMgZW5hYmxlIHNlcXVlbmNlIGR1cmluZyBtb2Rlc2V0cy4gIEJ1dCB3aGVuIHdlIGluaGVy aXQgYQo+ICAgICAgICAgICogdmFsaWQgcGlwZSBjb25maWd1cmF0aW9uIGZyb20gdGhlIEJJT1Mg d2UgbmVlZCB0byB0YWtlIGNhcmUKPiAgICAgICAgICAqIG9mIGVuYWJsaW5nIHRoZW0gb24gdGhl IENSVEMncyBmaXJzdCBmYXN0c2V0Lgo+ICAgICAgICAgICovCj4KPgo+IE1hdHQKPgo+PiAgfQo+ PiAgCj4+ICBzdGF0aWMgdm9pZCBpbnRlbF9vbGRfY3J0Y19zdGF0ZV9kaXNhYmxlcyhzdHJ1Y3Qg aW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKPj4gQEAgLTE0NTczLDcyICsxNDYxNCw2IEBAIHNr bF9tYXhfc2NhbGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4+ ICAJcmV0dXJuIG1heF9zY2FsZTsKPj4gIH0KPj4gIAo+PiAtc3RhdGljIHZvaWQgaW50ZWxfYmVn aW5fY3J0Y19jb21taXQoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4+IC0JCQkJ ICAgIHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+PiAtewo+PiAtCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+PiAtCXN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSA9Cj4+IC0JCWludGVsX2F0b21pY19nZXRf b2xkX2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOwo+PiAtCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpuZXdfY3J0Y19zdGF0ZSA9Cj4+IC0JCWludGVsX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUo c3RhdGUsIGNydGMpOwo+PiAtCWJvb2wgbW9kZXNldCA9IG5lZWRzX21vZGVzZXQobmV3X2NydGNf c3RhdGUpOwo+PiAtCj4+IC0JLyogUGVyZm9ybSB2YmxhbmsgZXZhc2lvbiBhcm91bmQgY29tbWl0 IG9wZXJhdGlvbiAqLwo+PiAtCWludGVsX3BpcGVfdXBkYXRlX3N0YXJ0KG5ld19jcnRjX3N0YXRl KTsKPj4gLQo+PiAtCWlmIChtb2Rlc2V0KQo+PiAtCQlnb3RvIG91dDsKPj4gLQo+PiAtCWlmIChu ZXdfY3J0Y19zdGF0ZS0+dWFwaS5jb2xvcl9tZ210X2NoYW5nZWQgfHwKPj4gLQkgICAgbmV3X2Ny dGNfc3RhdGUtPnVwZGF0ZV9waXBlKQo+PiAtCQlpbnRlbF9jb2xvcl9jb21taXQobmV3X2NydGNf c3RhdGUpOwo+PiAtCj4+IC0JaWYgKG5ld19jcnRjX3N0YXRlLT51cGRhdGVfcGlwZSkKPj4gLQkJ aW50ZWxfdXBkYXRlX3BpcGVfY29uZmlnKG9sZF9jcnRjX3N0YXRlLCBuZXdfY3J0Y19zdGF0ZSk7 Cj4+IC0JZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KQo+PiAtCQlza2xfZGV0YWNo X3NjYWxlcnMobmV3X2NydGNfc3RhdGUpOwo+PiAtCj4+IC0JaWYgKElOVEVMX0dFTihkZXZfcHJp dikgPj0gOSB8fCBJU19CUk9BRFdFTEwoZGV2X3ByaXYpKQo+PiAtCQliZHdfc2V0X3BpcGVtaXNj KG5ld19jcnRjX3N0YXRlKTsKPj4gLQo+PiAtb3V0Ogo+PiAtCWlmIChkZXZfcHJpdi0+ZGlzcGxh eS5hdG9taWNfdXBkYXRlX3dhdGVybWFya3MpCj4+IC0JCWRldl9wcml2LT5kaXNwbGF5LmF0b21p Y191cGRhdGVfd2F0ZXJtYXJrcyhzdGF0ZSwKPj4gLQkJCQkJCQkgICBuZXdfY3J0Y19zdGF0ZSk7 Cj4+IC19Cj4+IC0KPj4gLXZvaWQgaW50ZWxfY3J0Y19hcm1fZmlmb191bmRlcnJ1bihzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YywKPj4gLQkJCQkgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlKQo+PiAtewo+PiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+PiAtCj4+IC0JaWYgKCFJU19HRU4oZGV2X3ByaXYsIDIp KQo+PiAtCQlpbnRlbF9zZXRfY3B1X2ZpZm9fdW5kZXJydW5fcmVwb3J0aW5nKGRldl9wcml2LCBj cnRjLT5waXBlLCB0cnVlKTsKPj4gLQo+PiAtCWlmIChjcnRjX3N0YXRlLT5oYXNfcGNoX2VuY29k ZXIpIHsKPj4gLQkJZW51bSBwaXBlIHBjaF90cmFuc2NvZGVyID0KPj4gLQkJCWludGVsX2NydGNf cGNoX3RyYW5zY29kZXIoY3J0Yyk7Cj4+IC0KPj4gLQkJaW50ZWxfc2V0X3BjaF9maWZvX3VuZGVy cnVuX3JlcG9ydGluZyhkZXZfcHJpdiwgcGNoX3RyYW5zY29kZXIsIHRydWUpOwo+PiAtCX0KPj4g LX0KPj4gLQo+PiAtc3RhdGljIHZvaWQgaW50ZWxfZmluaXNoX2NydGNfY29tbWl0KHN0cnVjdCBp bnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAo+PiAtCQkJCSAgICAgc3RydWN0IGludGVsX2NydGMg KmNydGMpCj4+IC17Cj4+IC0Jc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRl ID0KPj4gLQkJaW50ZWxfYXRvbWljX2dldF9vbGRfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7Cj4+ IC0Jc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlID0KPj4gLQkJaW50ZWxf YXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7Cj4+IC0KPj4gLQlpbnRlbF9w aXBlX3VwZGF0ZV9lbmQobmV3X2NydGNfc3RhdGUpOwo+PiAtCj4+IC0JaWYgKG5ld19jcnRjX3N0 YXRlLT51cGRhdGVfcGlwZSAmJgo+PiAtCSAgICAhbmVlZHNfbW9kZXNldChuZXdfY3J0Y19zdGF0 ZSkgJiYKPj4gLQkgICAgb2xkX2NydGNfc3RhdGUtPmh3Lm1vZGUucHJpdmF0ZV9mbGFncyAmIEk5 MTVfTU9ERV9GTEFHX0lOSEVSSVRFRCkKPj4gLQkJaW50ZWxfY3J0Y19hcm1fZmlmb191bmRlcnJ1 bihjcnRjLCBuZXdfY3J0Y19zdGF0ZSk7Cj4+IC19Cj4+IC0KPj4gIC8qKgo+PiAgICogaW50ZWxf cGxhbmVfZGVzdHJveSAtIGRlc3Ryb3kgYSBwbGFuZQo+PiAgICogQHBsYW5lOiBwbGFuZSB0byBk ZXN0cm95Cj4+IC0tIAo+PiAyLjIwLjEKPj4KPj4gX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KPj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+PiBJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4