From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: Re: [PATCH] drm/i915: Remove begin/finish_crtc_commit, v3. Date: Fri, 27 Sep 2019 10:29:43 +0200 Message-ID: References: <20190925214212.GT1869@mdroper-desk1.amr.corp.intel.com> <20190926094725.5231-1-maarten.lankhorst@linux.intel.com> <20190926162259.GO1208@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 925D46EE4D for ; Fri, 27 Sep 2019 08:29:45 +0000 (UTC) In-Reply-To: <20190926162259.GO1208@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 T3AgMjYtMDktMjAxOSBvbSAxODoyMiBzY2hyZWVmIFZpbGxlIFN5cmrDpGzDpDoKPiBPbiBUaHUs IFNlcCAyNiwgMjAxOSBhdCAxMTo0NzoyNUFNICswMjAwLCBNYWFydGVuIExhbmtob3JzdCB3cm90 ZToKPj4gVGhpcyBjYW4gYWxsIGJlIGRvbmUgZnJvbSB0aGUgaW50ZWxfdXBkYXRlX2NydGMgZnVu Y3Rpb24uIFNwbGl0IG91dCB0aGUKPj4gcGlwZSB1cGRhdGUgaW50byBhIHNlcGFyYXRlIGZ1bmN0 aW9uLCBqdXN0IGxpa2UgaXMgZG9uZSBmb3IgdGhlIHBsYW5lcy4KPj4gUHVsbCBpbiBhbGwgdGhl IGNoYW5nZXMgZG9uZSBkdXJpbmcgZmFzdHNldCBhcyB3ZWxsLiBJdCBtYWtlcyBubyBzZW5zZQo+ PiBmb3IgaXQgdG8gc3RpbGwgZXhpc3QgYXMgYSBzZXBhcmF0ZSBmdW5jdGlvbi4KPj4KPj4gQ2hh bmdlcyBzaW5jZSB2MToKPj4gLSBJbmxpbmUgaW50ZWxfdXBkYXRlX3BpcGVfY29uZmlnKCkKPj4g Q2hhbmdlcyBzaW5jZSB2MjoKPj4gLSBBZGQgY29tbWVudHMgc3VnZ2VzdGVkIGJ5IG1hdHQuCj4+ IC0gUmVvcmRlciBjb21taXRfcGlwZV9jb25maWcoKSB0byByZW1vdmUgYWxsIG5lc3RpbmcuIChW aWxsZSwgTWF0dCkKPj4gLSBVc2UgaW50ZWxfc2V0X3BpcGVfc3JjX3NpemUoKCkuIChNYXR0KQo+ Pgo+PiBTaWduZWQtb2ZmLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RA bGludXguaW50ZWwuY29tPgo+PiAtLS0KPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfZGlzcGxheS5jIHwgMjA2ICsrKysrKysrKy0tLS0tLS0tLS0KPj4gIDEgZmlsZSBjaGFu Z2VkLCA5NSBpbnNlcnRpb25zKCspLCAxMTEgZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jCj4+IGluZGV4IGI3NzU3NGNkYTY0 OC4uMjM5ZTBjYTNlM2VjIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2Rpc3BsYXkuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2Rpc3BsYXkuYwo+PiBAQCAtMTM2LDggKzEzNiw2IEBAIHN0YXRpYyB2b2lkIHZsdl9w cmVwYXJlX3BsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPj4gIAkJCSAgICBjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpOwo+PiAgc3RhdGljIHZvaWQgY2h2X3By ZXBhcmVfcGxsKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+PiAgCQkJICAgIGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZyk7Cj4+IC1zdGF0aWMgdm9pZCBpbnRlbF9i ZWdpbl9jcnRjX2NvbW1pdChzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICosIHN0cnVjdCBpbnRl bF9jcnRjICopOwo+PiAtc3RhdGljIHZvaWQgaW50ZWxfZmluaXNoX2NydGNfY29tbWl0KHN0cnVj dCBpbnRlbF9hdG9taWNfc3RhdGUgKiwgc3RydWN0IGludGVsX2NydGMgKik7Cj4+ICBzdGF0aWMg dm9pZCBpbnRlbF9jcnRjX2luaXRfc2NhbGVycyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPj4g IAkJCQkgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpOwo+PiAgc3RhdGlj IHZvaWQgc2t5bGFrZV9wZml0X2VuYWJsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSk7Cj4+IEBAIC00NDA5LDQ1ICs0NDA3LDYgQEAgc3RhdGljIHZvaWQgaWNsX3Nl dF9waXBlX2NoaWNrZW4oc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4+ICAJSTkxNV9XUklURShQ SVBFX0NISUNLRU4ocGlwZSksIHRtcCk7Cj4+ICB9Cj4+ICAKPj4gLXN0YXRpYyB2b2lkIGludGVs X3VwZGF0ZV9waXBlX2NvbmZpZyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2Ny dGNfc3RhdGUsCj4+IC0JCQkJICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3 X2NydGNfc3RhdGUpCj4+IC17Cj4+IC0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKG5ld19jcnRjX3N0YXRlLT51YXBpLmNydGMpOwo+PiAtCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+PiAtCj4+IC0JLyog ZHJtX2F0b21pY19oZWxwZXJfdXBkYXRlX2xlZ2FjeV9tb2Rlc2V0X3N0YXRlIG1pZ2h0IG5vdCBi ZSBjYWxsZWQuICovCj4+IC0JY3J0Yy0+YmFzZS5tb2RlID0gbmV3X2NydGNfc3RhdGUtPnVhcGku bW9kZTsKPj4gLQo+PiAtCS8qCj4+IC0JICogVXBkYXRlIHBpcGUgc2l6ZSBhbmQgYWRqdXN0IGZp dHRlciBpZiBuZWVkZWQ6IHRoZSByZWFzb24gZm9yIHRoaXMgaXMKPj4gLQkgKiB0aGF0IGluIGNv bXB1dGVfbW9kZV9jaGFuZ2VzIHdlIGNoZWNrIHRoZSBuYXRpdmUgbW9kZSAobm90IHRoZSBwZml0 Cj4+IC0JICogbW9kZSkgdG8gc2VlIGlmIHdlIGNhbiBmbGlwIHJhdGhlciB0aGFuIGRvIGEgZnVs bCBtb2RlIHNldC4gSW4gdGhlCj4+IC0JICogZmFzdGJvb3QgY2FzZSwgd2UnbGwgZmxpcCwgYnV0 IGlmIHdlIGRvbid0IHVwZGF0ZSB0aGUgcGlwZXNyYyBhbmQKPj4gLQkgKiBwZml0IHN0YXRlLCB3 ZSdsbCBlbmQgdXAgd2l0aCBhIGJpZyBmYiBzY2FubmVkIG91dCBpbnRvIHRoZSB3cm9uZwo+PiAt CSAqIHNpemVkIHN1cmZhY2UuCj4+IC0JICovCj4+IC0KPj4gLQlJOTE1X1dSSVRFKFBJUEVTUkMo Y3J0Yy0+cGlwZSksCj4+IC0JCSAgICgobmV3X2NydGNfc3RhdGUtPnBpcGVfc3JjX3cgLSAxKSA8 PCAxNikgfAo+PiAtCQkgICAobmV3X2NydGNfc3RhdGUtPnBpcGVfc3JjX2ggLSAxKSk7Cj4+IC0K Pj4gLQkvKiBvbiBza3lsYWtlIHRoaXMgaXMgZG9uZSBieSBkZXRhY2hpbmcgc2NhbGVycyAqLwo+ PiAtCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpIHsKPj4gLQkJc2tsX2RldGFjaF9zY2Fs ZXJzKG5ld19jcnRjX3N0YXRlKTsKPj4gLQo+PiAtCQlpZiAobmV3X2NydGNfc3RhdGUtPnBjaF9w Zml0LmVuYWJsZWQpCj4+IC0JCQlza3lsYWtlX3BmaXRfZW5hYmxlKG5ld19jcnRjX3N0YXRlKTsK Pj4gLQl9IGVsc2UgaWYgKEhBU19QQ0hfU1BMSVQoZGV2X3ByaXYpKSB7Cj4+IC0JCWlmIChuZXdf Y3J0Y19zdGF0ZS0+cGNoX3BmaXQuZW5hYmxlZCkKPj4gLQkJCWlyb25sYWtlX3BmaXRfZW5hYmxl KG5ld19jcnRjX3N0YXRlKTsKPj4gLQkJZWxzZSBpZiAob2xkX2NydGNfc3RhdGUtPnBjaF9wZml0 LmVuYWJsZWQpCj4+IC0JCQlpcm9ubGFrZV9wZml0X2Rpc2FibGUob2xkX2NydGNfc3RhdGUpOwo+ PiAtCX0KPj4gLQo+PiAtCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKQo+PiAtCQlpY2xf c2V0X3BpcGVfY2hpY2tlbihjcnRjKTsKPj4gLX0KPj4gLQo+PiAgc3RhdGljIHZvaWQgaW50ZWxf ZmRpX25vcm1hbF90cmFpbihzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPj4gIHsKPj4gIAlzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7Cj4+IEBAIC0xMzczOSwxMyArMTM2 OTgsOTEgQEAgdTMyIGludGVsX2NydGNfZ2V0X3ZibGFua19jb3VudGVyKHN0cnVjdCBpbnRlbF9j cnRjICpjcnRjKQo+PiAgCXJldHVybiBjcnRjLT5iYXNlLmZ1bmNzLT5nZXRfdmJsYW5rX2NvdW50 ZXIoJmNydGMtPmJhc2UpOwo+PiAgfQo+PiAgCj4+ICt2b2lkIGludGVsX2NydGNfYXJtX2ZpZm9f dW5kZXJydW4oc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4+ICsJCQkJICBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPj4gK3sKPj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKPj4gKwo+PiArCWlmICghSVNf R0VOKGRldl9wcml2LCAyKSkKPj4gKwkJaW50ZWxfc2V0X2NwdV9maWZvX3VuZGVycnVuX3JlcG9y dGluZyhkZXZfcHJpdiwgY3J0Yy0+cGlwZSwgdHJ1ZSk7Cj4+ICsKPj4gKwlpZiAoY3J0Y19zdGF0 ZS0+aGFzX3BjaF9lbmNvZGVyKSB7Cj4+ICsJCWVudW0gcGlwZSBwY2hfdHJhbnNjb2RlciA9Cj4+ ICsJCQlpbnRlbF9jcnRjX3BjaF90cmFuc2NvZGVyKGNydGMpOwo+PiArCj4+ICsJCWludGVsX3Nl dF9wY2hfZmlmb191bmRlcnJ1bl9yZXBvcnRpbmcoZGV2X3ByaXYsIHBjaF90cmFuc2NvZGVyLCB0 cnVlKTsKPj4gKwl9Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyB2b2lkIGNvbW1pdF9waXBlX2NvbmZp ZyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKPj4gKwkJCSAgICAgICBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsCj4+ICsJCQkgICAgICAgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlKQo+PiArewo+PiArCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhuZXdfY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKPj4g KwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHN0YXRlLT5iYXNl LmRldik7Cj4+ICsJYm9vbCBtb2Rlc2V0ID0gbmVlZHNfbW9kZXNldChuZXdfY3J0Y19zdGF0ZSk7 Cj4+ICsKPj4gKwlpZiAoZGV2X3ByaXYtPmRpc3BsYXkuYXRvbWljX3VwZGF0ZV93YXRlcm1hcmtz KQo+PiArCQlkZXZfcHJpdi0+ZGlzcGxheS5hdG9taWNfdXBkYXRlX3dhdGVybWFya3Moc3RhdGUs Cj4+ICsJCQkJCQkJICAgbmV3X2NydGNfc3RhdGUpOwo+IE1vdmluZyB0aGlzIGhlcmUgd2lkZW5z IHRoZSBnYXAgYmV0d2VlbiBwcm9ncmFtbWluZyB0aGUgRklGTyBzcGxpdCBhbmQKPiBwcm9ncmFt bWluZyB0aGUgcGxhbmVzIG9uIFZMVi9DSFYuIEknZCBwcmVmZXIgdG8ga2VlcCB0aGlzIGF0IHRo ZSBlbmQKPiB0byBrZWVwIGl0IGFzIGNsb3NlIHRvIHRoZSBwbGFuZSBwcm9ncmFtbWluZyBhcyBw b3NzaWJsZS4KSXQgd291bGRuJ3QsIG9ubHkgb24gZmFzdHNldCBhbmQgY29sb3IgdXBkYXRlcy4K Pj4gKwo+PiArCS8qCj4+ICsJICogRHVyaW5nIG1vZGVzZXRzIHBpcGUgY29uZmlndXJhdGlvbiB3 YXMgcHJvZ3JhbW1lZCBhcyB0aGUKPj4gKwkgKiBDUlRDIHdhcyBlbmFibGVkLgo+PiArCSAqLwo+ PiArCWlmIChtb2Rlc2V0KQo+PiArCQlyZXR1cm47Cj4+ICsKPj4gKwlpZiAoSU5URUxfR0VOKGRl dl9wcml2KSA+PSA5KQo+PiArCQlza2xfZGV0YWNoX3NjYWxlcnMobmV3X2NydGNfc3RhdGUpOwo+ IFNpbWlsYXJseSBJJ2QgbW92ZSB0aGlzIGRvd253YXJkcyBwYXN0IHRoZSBuZXh0IHR3byB0aGlu Z3MgdG8gZ2V0Cj4gaXQgYSBiaXQgY2xvc2VyIHRvIHRoZSBwZml0L3BsYW5lIHByb2dyYW1taW5n LgpTaWdoIQo+PiArCj4+ICsJaWYgKG5ld19jcnRjX3N0YXRlLT51YXBpLmNvbG9yX21nbXRfY2hh bmdlZCB8fAo+PiArCSAgICBuZXdfY3J0Y19zdGF0ZS0+dXBkYXRlX3BpcGUpCj4+ICsJCWludGVs X2NvbG9yX2NvbW1pdChuZXdfY3J0Y19zdGF0ZSk7Cj4+ICsKPj4gKwlpZiAoSU5URUxfR0VOKGRl dl9wcml2KSA+PSA5IHx8IElTX0JST0FEV0VMTChkZXZfcHJpdikpCj4+ICsJCWJkd19zZXRfcGlw ZW1pc2MobmV3X2NydGNfc3RhdGUpOwo+PiArCj4+ICsJaWYgKCFuZXdfY3J0Y19zdGF0ZS0+dXBk YXRlX3BpcGUpCj4+ICsJCXJldHVybjsKPj4gKwo+PiArCS8qIGRybV9hdG9taWNfaGVscGVyX3Vw ZGF0ZV9sZWdhY3lfbW9kZXNldF9zdGF0ZSBtaWdodCBub3QgYmUgY2FsbGVkLiAqLwo+PiArCWNy dGMtPmJhc2UubW9kZSA9IG5ld19jcnRjX3N0YXRlLT51YXBpLm1vZGU7Cj4+ICsKPj4gKwkvKgo+ PiArCSAqIFVwZGF0ZSBwaXBlIHNpemUgYW5kIGFkanVzdCBmaXR0ZXIgaWYgbmVlZGVkOiB0aGUg cmVhc29uIGZvciB0aGlzIGlzCj4+ICsJICogdGhhdCBpbiBjb21wdXRlX21vZGVfY2hhbmdlcyB3 ZSBjaGVjayB0aGUgbmF0aXZlIG1vZGUgKG5vdCB0aGUgcGZpdAo+PiArCSAqIG1vZGUpIHRvIHNl ZSBpZiB3ZSBjYW4gZmxpcCByYXRoZXIgdGhhbiBkbyBhIGZ1bGwgbW9kZSBzZXQuIEluIHRoZQo+ PiArCSAqIGZhc3Rib290IGNhc2UsIHdlJ2xsIGZsaXAsIGJ1dCBpZiB3ZSBkb24ndCB1cGRhdGUg dGhlIHBpcGVzcmMgYW5kCj4+ICsJICogcGZpdCBzdGF0ZSwgd2UnbGwgZW5kIHVwIHdpdGggYSBi aWcgZmIgc2Nhbm5lZCBvdXQgaW50byB0aGUgd3JvbmcKPj4gKwkgKiBzaXplZCBzdXJmYWNlLgo+ PiArCSAqLwo+PiArCWludGVsX3NldF9waXBlX3NyY19zaXplKG5ld19jcnRjX3N0YXRlKTsKPj4g Kwo+PiArCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkpIHsKPj4gKwkJLyoKPj4gKwkJICog ZW5hYmxlIHBpcGUgc2NhbGVyIGhlcmUgaWYgbmVlZGVkLCBpZgo+PiArCQkgKiBpdCdzIGRpc2Fi bGVkLCB0aGF0J3MgZG9uZSBieQo+PiArCQkgKiBza2xfZGV0YWNoX3NjYWxlcnMoKSBhYm92ZS4K Pj4gKwkJICovCj4+ICsJCXNreWxha2VfcGZpdF9lbmFibGUobmV3X2NydGNfc3RhdGUpOwo+PiAr CX0gZWxzZSBpZiAoSEFTX1BDSF9TUExJVChkZXZfcHJpdikpIHsKPj4gKwkJaWYgKCFuZXdfY3J0 Y19zdGF0ZS0+cGNoX3BmaXQuZW5hYmxlZCkKPj4gKwkJCWlyb25sYWtlX3BmaXRfZGlzYWJsZShv bGRfY3J0Y19zdGF0ZSk7Cj4+ICsJCWVsc2UKPj4gKwkJCWlyb25sYWtlX3BmaXRfZW5hYmxlKG5l d19jcnRjX3N0YXRlKTsKPj4gKwl9Cj4+ICsKPj4gKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+ PSAxMSkKPj4gKwkJaWNsX3NldF9waXBlX2NoaWNrZW4oY3J0Yyk7Cj4+ICt9Cj4+ICsKPj4gIHN0 YXRpYyB2b2lkIGludGVsX3VwZGF0ZV9jcnRjKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+PiAg CQkJICAgICAgc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4+ICAJCQkgICAgICBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsCj4+ICAJCQkgICAgICBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUpCj4+ICB7Cj4+IC0Jc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IHN0YXRlLT5iYXNlLmRldjsKPj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShzdGF0ZS0+YmFzZS5kZXYpOwo+PiAgCWJvb2wgbW9kZXNl dCA9IG5lZWRzX21vZGVzZXQobmV3X2NydGNfc3RhdGUpOwo+PiAgCXN0cnVjdCBpbnRlbF9wbGFu ZV9zdGF0ZSAqbmV3X3BsYW5lX3N0YXRlID0KPj4gIAkJaW50ZWxfYXRvbWljX2dldF9uZXdfcGxh bmVfc3RhdGUoc3RhdGUsCj4+IEBAIC0xMzc2OSwxNCArMTM4MDYsMjcgQEAgc3RhdGljIHZvaWQg aW50ZWxfdXBkYXRlX2NydGMoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4+ICAJZWxzZSBpZiAo bmV3X3BsYW5lX3N0YXRlKQo+PiAgCQlpbnRlbF9mYmNfZW5hYmxlKGNydGMsIG5ld19jcnRjX3N0 YXRlLCBuZXdfcGxhbmVfc3RhdGUpOwo+PiAgCj4+IC0JaW50ZWxfYmVnaW5fY3J0Y19jb21taXQo c3RhdGUsIGNydGMpOwo+PiArCS8qIFBlcmZvcm0gdmJsYW5rIGV2YXNpb24gYXJvdW5kIGNvbW1p dCBvcGVyYXRpb24gKi8KPj4gKwlpbnRlbF9waXBlX3VwZGF0ZV9zdGFydChuZXdfY3J0Y19zdGF0 ZSk7Cj4+ICsKPj4gKwljb21taXRfcGlwZV9jb25maWcoc3RhdGUsIG9sZF9jcnRjX3N0YXRlLCBu ZXdfY3J0Y19zdGF0ZSk7Cj4+ICAKPj4gIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KQo+ PiAgCQlza2xfdXBkYXRlX3BsYW5lc19vbl9jcnRjKHN0YXRlLCBjcnRjKTsKPj4gIAllbHNlCj4+ ICAJCWk5eHhfdXBkYXRlX3BsYW5lc19vbl9jcnRjKHN0YXRlLCBjcnRjKTsKPj4gIAo+PiAtCWlu dGVsX2ZpbmlzaF9jcnRjX2NvbW1pdChzdGF0ZSwgY3J0Yyk7Cj4+ICsJaW50ZWxfcGlwZV91cGRh dGVfZW5kKG5ld19jcnRjX3N0YXRlKTsKPj4gKwo+PiArICAgICAgICAvKgo+PiArICAgICAgICAg KiBXZSB1c3VhbGx5IGVuYWJsZSBGSUZPIHVuZGVycnVuIGludGVycnVwdHMgYXMgcGFydCBvZiB0 aGUKPj4gKyAgICAgICAgICogQ1JUQyBlbmFibGUgc2VxdWVuY2UgZHVyaW5nIG1vZGVzZXRzLiAg QnV0IHdoZW4gd2UgaW5oZXJpdCBhCj4+ICsgICAgICAgICAqIHZhbGlkIHBpcGUgY29uZmlndXJh dGlvbiBmcm9tIHRoZSBCSU9TIHdlIG5lZWQgdG8gdGFrZSBjYXJlCj4+ICsgICAgICAgICAqIG9m IGVuYWJsaW5nIHRoZW0gb24gdGhlIENSVEMncyBmaXJzdCBmYXN0c2V0Lgo+PiArICAgICAgICAg Ki8KPj4gKwlpZiAobmV3X2NydGNfc3RhdGUtPnVwZGF0ZV9waXBlICYmICFtb2Rlc2V0ICYmCj4+ ICsJICAgIG9sZF9jcnRjX3N0YXRlLT5ody5tb2RlLnByaXZhdGVfZmxhZ3MgJiBJOTE1X01PREVf RkxBR19JTkhFUklURUQpCj4+ICsJCWludGVsX2NydGNfYXJtX2ZpZm9fdW5kZXJydW4oY3J0Yywg bmV3X2NydGNfc3RhdGUpOwo+PiAgfQo+PiAgCj4+ICBzdGF0aWMgdm9pZCBpbnRlbF9vbGRfY3J0 Y19zdGF0ZV9kaXNhYmxlcyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKPj4gQEAg LTE0NTczLDcyICsxNDYyMyw2IEBAIHNrbF9tYXhfc2NhbGUoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUsCj4+ICAJcmV0dXJuIG1heF9zY2FsZTsKPj4gIH0KPj4gIAo+ PiAtc3RhdGljIHZvaWQgaW50ZWxfYmVnaW5fY3J0Y19jb21taXQoc3RydWN0IGludGVsX2F0b21p Y19zdGF0ZSAqc3RhdGUsCj4+IC0JCQkJICAgIHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+PiAt ewo+PiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+ YmFzZS5kZXYpOwo+PiAtCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSA9 Cj4+IC0JCWludGVsX2F0b21pY19nZXRfb2xkX2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOwo+PiAt CXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZSA9Cj4+IC0JCWludGVsX2F0 b21pY19nZXRfbmV3X2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOwo+PiAtCWJvb2wgbW9kZXNldCA9 IG5lZWRzX21vZGVzZXQobmV3X2NydGNfc3RhdGUpOwo+PiAtCj4+IC0JLyogUGVyZm9ybSB2Ymxh bmsgZXZhc2lvbiBhcm91bmQgY29tbWl0IG9wZXJhdGlvbiAqLwo+PiAtCWludGVsX3BpcGVfdXBk YXRlX3N0YXJ0KG5ld19jcnRjX3N0YXRlKTsKPj4gLQo+PiAtCWlmIChtb2Rlc2V0KQo+PiAtCQln b3RvIG91dDsKPj4gLQo+PiAtCWlmIChuZXdfY3J0Y19zdGF0ZS0+dWFwaS5jb2xvcl9tZ210X2No YW5nZWQgfHwKPj4gLQkgICAgbmV3X2NydGNfc3RhdGUtPnVwZGF0ZV9waXBlKQo+PiAtCQlpbnRl bF9jb2xvcl9jb21taXQobmV3X2NydGNfc3RhdGUpOwo+PiAtCj4+IC0JaWYgKG5ld19jcnRjX3N0 YXRlLT51cGRhdGVfcGlwZSkKPj4gLQkJaW50ZWxfdXBkYXRlX3BpcGVfY29uZmlnKG9sZF9jcnRj X3N0YXRlLCBuZXdfY3J0Y19zdGF0ZSk7Cj4+IC0JZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2 KSA+PSA5KQo+PiAtCQlza2xfZGV0YWNoX3NjYWxlcnMobmV3X2NydGNfc3RhdGUpOwo+PiAtCj4+ IC0JaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSB8fCBJU19CUk9BRFdFTEwoZGV2X3ByaXYp KQo+PiAtCQliZHdfc2V0X3BpcGVtaXNjKG5ld19jcnRjX3N0YXRlKTsKPj4gLQo+PiAtb3V0Ogo+ PiAtCWlmIChkZXZfcHJpdi0+ZGlzcGxheS5hdG9taWNfdXBkYXRlX3dhdGVybWFya3MpCj4+IC0J CWRldl9wcml2LT5kaXNwbGF5LmF0b21pY191cGRhdGVfd2F0ZXJtYXJrcyhzdGF0ZSwKPj4gLQkJ CQkJCQkgICBuZXdfY3J0Y19zdGF0ZSk7Cj4+IC19Cj4+IC0KPj4gLXZvaWQgaW50ZWxfY3J0Y19h cm1fZmlmb191bmRlcnJ1bihzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPj4gLQkJCQkgIHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+PiAtewo+PiAtCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+PiAtCj4+IC0J aWYgKCFJU19HRU4oZGV2X3ByaXYsIDIpKQo+PiAtCQlpbnRlbF9zZXRfY3B1X2ZpZm9fdW5kZXJy dW5fcmVwb3J0aW5nKGRldl9wcml2LCBjcnRjLT5waXBlLCB0cnVlKTsKPj4gLQo+PiAtCWlmIChj cnRjX3N0YXRlLT5oYXNfcGNoX2VuY29kZXIpIHsKPj4gLQkJZW51bSBwaXBlIHBjaF90cmFuc2Nv ZGVyID0KPj4gLQkJCWludGVsX2NydGNfcGNoX3RyYW5zY29kZXIoY3J0Yyk7Cj4+IC0KPj4gLQkJ aW50ZWxfc2V0X3BjaF9maWZvX3VuZGVycnVuX3JlcG9ydGluZyhkZXZfcHJpdiwgcGNoX3RyYW5z Y29kZXIsIHRydWUpOwo+PiAtCX0KPj4gLX0KPj4gLQo+PiAtc3RhdGljIHZvaWQgaW50ZWxfZmlu aXNoX2NydGNfY29tbWl0KHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAo+PiAtCQkJ CSAgICAgc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4+IC17Cj4+IC0Jc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlID0KPj4gLQkJaW50ZWxfYXRvbWljX2dldF9vbGRfY3J0 Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7Cj4+IC0Jc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5ld19j cnRjX3N0YXRlID0KPj4gLQkJaW50ZWxfYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZShzdGF0ZSwg Y3J0Yyk7Cj4+IC0KPj4gLQlpbnRlbF9waXBlX3VwZGF0ZV9lbmQobmV3X2NydGNfc3RhdGUpOwo+ PiAtCj4+IC0JaWYgKG5ld19jcnRjX3N0YXRlLT51cGRhdGVfcGlwZSAmJgo+PiAtCSAgICAhbmVl ZHNfbW9kZXNldChuZXdfY3J0Y19zdGF0ZSkgJiYKPj4gLQkgICAgb2xkX2NydGNfc3RhdGUtPmh3 Lm1vZGUucHJpdmF0ZV9mbGFncyAmIEk5MTVfTU9ERV9GTEFHX0lOSEVSSVRFRCkKPj4gLQkJaW50 ZWxfY3J0Y19hcm1fZmlmb191bmRlcnJ1bihjcnRjLCBuZXdfY3J0Y19zdGF0ZSk7Cj4+IC19Cj4+ IC0KPj4gIC8qKgo+PiAgICogaW50ZWxfcGxhbmVfZGVzdHJveSAtIGRlc3Ryb3kgYSBwbGFuZQo+ PiAgICogQHBsYW5lOiBwbGFuZSB0byBkZXN0cm95Cj4+IC0tIAo+PiAyLjIwLjEKCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=